論文の概要: LPR: Large Language Models-Aided Program Reduction
- arxiv url: http://arxiv.org/abs/2312.13064v2
- Date: Sat, 2 Mar 2024 01:31:20 GMT
- ステータス: 処理完了
- システム内更新日: 2024-03-05 20:02:29.659593
- Title: LPR: Large Language Models-Aided Program Reduction
- Title(参考訳): LPR:大規模言語モデルに基づくプログラム削減
- Authors: Mengxiao Zhang, Yongqiang Tian, Zhenyang Xu, Yiwen Dong, Shin Hwei Tan
and Chengnian Sun
- Abstract要約: 本稿では,LLMを用いて複数の言語に対して言語固有のプログラム還元を行う最初の手法であるLPRを提案する。
有効性のために、LPRは、C、Rust、JavaScriptのベンチマークで24.93%、4.47%、11.71%の小さなプログラムを生成することでVulcanを上回っている。
- 参考スコア(独自算出の注目度): 10.354862129018892
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Program reduction is a prevalent technique to facilitate compilers' debugging
by automatically minimizing bug-triggering programs. Existing program reduction
techniques are either generic across languages (e.g., Perses and Vulcan) or
specifically customized for one certain language by employing language-specific
features, like C-Reduce. However, striking the balance between generality
across multiple programming languages and specificity to individual languages
in program reduction is yet to be explored. This paper proposes LPR, the first
technique utilizing LLMs to perform language-specific program reduction for
multiple languages. The core insight is to utilize both the language-generic
syntax level program reduction (e.g., Perses) and the language-specific
semantic level program transformations learned by LLMs. Alternately,
language-generic program reducers efficiently reduce programs into
1-tree-minimality, which is small enough to be manageable for LLMs; LLMs
effectively transform programs via the learned semantics to expose new
reduction opportunities for the language-generic program reducers to further
reduce the programs. Our extensive evaluation on 50 benchmarks across three
languages (C, Rust, and JavaScript) has highlighted LPR's practicality and
superiority over Vulcan, the state-of-the-art language-generic program reducer.
For effectiveness, LPR surpasses Vulcan by producing 24.93%, 4.47%, and 11.71%
smaller programs on benchmarks in C, Rust and JavaScript. Moreover, LPR and
Vulcan have demonstrated their potential to complement each other. By using
Vulcan on LPR's output for C programs, we achieve program sizes comparable to
those reduced by C-Reduce. For efficiency, LPR takes 10.77%, 34.88%, 36.96%
less time than Vulcan to finish all benchmarks in C, Rust and JavaScript,
separately.
- Abstract(参考訳): プログラムリダクションは、バグトリガプログラムを自動的に最小化し、コンパイラのデバッグを容易にする一般的なテクニックである。
既存のプログラムリダクション技術は、言語全体(例えばPersesやVulcan)にまたがって汎用的であるか、C-Reduceのような言語固有の機能を使って特定の言語用に特別にカスタマイズされている。
しかし、複数のプログラミング言語にまたがる汎用性と、プログラム削減における個々の言語に対する特異性とのバランスは、まだ検討されていない。
本稿では,LLMを用いて複数の言語に対して言語固有のプログラム還元を行う最初の手法であるLPRを提案する。
中心となる洞察は、言語ジェネリックな構文レベルでのプログラム還元(例えばPerses)とLLMによって学習された言語固有の意味レベルでのプログラム変換の両方を活用することである。
言語ジェネリック・プログラム・リデューサは、プログラムを1-ツリー・ミニマリティに効率的に還元するが、LLMは学習セマンティクスを通じてプログラムを効果的に変換し、言語ジェネリック・プログラム・リデューサに新たな還元機会を公開し、プログラムをさらに削減する。
3つの言語(C、Rust、JavaScript)にわたる50のベンチマークに関する広範な評価では、最先端の言語ジェネリックプログラムリデューサであるVulcanよりもLPRの実用性と優位性が強調されました。
LPRは、C、Rust、JavaScriptのベンチマークで24.93%、4.47%、11.71%の小さなプログラムを生成することで、Vulcanを上回っている。
さらに、LPRとVulcanは互いに補完する可能性を実証している。
C プログラムの LPR 出力に Vulcan を用いることで,C-Reduce で削減されたプログラムに匹敵するプログラムサイズを実現する。
効率性のために、LPRは10.77%、34.88%、36.96%の時間をVulcanより短くし、C、Rust、JavaScriptのすべてのベンチマークを別々に完了する。
関連論文リスト
- ReGAL: Refactoring Programs to Discover Generalizable Abstractions [66.37493420911979]
Generalizable Abstraction Learning (ReGAL)は、コードカプセル化によって再利用可能な関数のライブラリを学ぶ方法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはグラフィックスで11.5%、日付理解で26.1%、MinecraftベースのテキストゲームであるTextCraftで8.1%という絶対的な精度向上を実現している。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - Refactoring Programs Using Large Language Models with Few-Shot Examples [20.48175387745551]
ユーザ記述型Pythonプログラムのより複雑なバージョンを提案するために,大規模言語モデル (LLM) である GPT-3.5 を用いることを実演する。
95.68%のプログラムは、それぞれ10の候補を発生させ、結果として平均的なサイクロマティックな複雑さが17.35%減少することを示した。
論文 参考訳(メタデータ) (2023-11-20T11:43:45Z) - The Ups and Downs of Large Language Model Inference with Vocabulary Trimming by Language Heuristics [74.99898531299148]
本研究は,興味のある言語への埋め込みエントリを制限し,時間と記憶効率を高めることによる語彙トリミング(VT)について検討する。
Unicodeベースのスクリプトフィルタリングとコーパスベースの選択という2つの言語を異なる言語ファミリやサイズに適用する。
その結果、VTは小型モデルのメモリ使用量を50%近く削減し、生成速度が25%向上した。
論文 参考訳(メタデータ) (2023-11-16T09:35:50Z) - PLUG: Leveraging Pivot Language in Cross-Lingual Instruction Tuning [46.153828074152436]
我々は、低リソース言語における命令チューニングを強化するために、ピボット言語ガイド生成手法を提案する。
モデルを訓練して、まずピボット言語で命令を処理し、次にターゲット言語で応答を生成する。
提案手法は,LLMの命令追従能力が平均29%向上したことを示す。
論文 参考訳(メタデータ) (2023-11-15T05:28:07Z) - InstructAlign: High-and-Low Resource Language Alignment via Continual
Crosslingual Instruction Tuning [66.31509106146605]
命令を調整した大規模言語モデル(LLM)は、様々なタスクや言語で顕著な能力を示している。
しかし、利用可能なデータが不足しているため、表現不足の言語に一般化する能力は限られている。
InstructAlignは、LLMが新しい未知の言語を学習済みの高リソース言語と整列できるようにするために、連続的なクロスリンガル命令チューニングを使用する。
論文 参考訳(メタデータ) (2023-05-23T02:51:34Z) - Understanding Programs by Exploiting (Fuzzing) Test Cases [26.8259045248779]
プログラムのより深い意味理解を実現するために,入力と出力/振る舞いの関係を学習に取り入れることを提案する。
コードの大部分の実行をトリガーするのに十分な入力を得るために,ファズテストを採用し,ファズチューニングを提案する。
提案手法の有効性は,コードクローン検出とコード分類を含む2つのプログラム理解タスクにおいて検証され,最先端技術よりも大きなマージンで優れている。
論文 参考訳(メタデータ) (2023-05-23T01:51:46Z) - LEVER: Learning to Verify Language-to-Code Generation with Execution [64.36459105535]
本稿では,プログラムの実行結果の検証を学習することで,言語からコードへの生成を改善するシンプルな手法であるLEVERを提案する。
具体的には、LLMからサンプリングされたプログラムが、自然言語入力、プログラム自体とその実行結果に基づいて正しいか否かを判定するために、検証者を訓練する。
LEVER はベースコード LLMs (4.6% から 10.9% まで) を継続的に改善し、それらすべてに対して新しい最先端の結果を得る。
論文 参考訳(メタデータ) (2023-02-16T18:23:22Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。