論文の概要: Practical Program Repair in the Era of Large Pre-trained Language Models
- arxiv url: http://arxiv.org/abs/2210.14179v2
- Date: Mon, 09 Dec 2024 20:42:29 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-12-11 14:34:33.606137
- Title: Practical Program Repair in the Era of Large Pre-trained Language Models
- Title(参考訳): 大規模事前学習型言語モデルにおける実践的プログラム修復
- Authors: Chunqiu Steven Xia, Yuxiang Wei, Lingming Zhang,
- Abstract要約: 自動プログラム修正(APR)は、開発者がソフトウェアバグを自動的にパッチするのを支援することを目的としている。
数十億のテキスト/コードトークンを使用してトレーニングされたPLMは、この問題を回避するのに役立つ可能性がある。
我々は、125Mから20Bまで、生産モデルと埋込モデルを含む最新の9つのPLMを選択した。
- 参考スコア(独自算出の注目度): 13.694803023685175
- License:
- Abstract: Automated Program Repair (APR) aims to help developers automatically patch software bugs. However, current state-of-the-art traditional and learning-based APR techniques face the problem of limited patch variety, failing to fix complicated bugs. This is mainly due to the reliance on bug-fixing datasets to craft fix templates or directly predict potential patches. Large Pre-Trained Language Models (PLMs), trained using billions of text/code tokens, can potentially help avoid this issue. Very recently, researchers have directly leveraged PLMs for APR without relying on any bug-fixing datasets. Meanwhile, such existing work either failed to include state-of-the-art PLMs or was not evaluated on realistic datasets. In this work, we perform the first extensive study on directly applying PLMs for APR. We select 9 recent state-of-the-art PLMs, including both generative and infilling models, ranging from 125M to 20B in size. We designed 3 different repair settings to evaluate the different ways we can use PLMs to generate patches. We apply the PLMs under these repair settings on 5 datasets across 3 different languages and compare different PLMs in the number of bugs fixed, generation speed and compilation rate. Our study demonstrates that directly applying state-of-the-art PLMs can already substantially outperform all existing APR techniques on all our datasets. Among the studied PLMs, the scaling effect exists for APR where larger models tend to achieve better performance. Also, we show for the first time that suffix code after the buggy line (adopted in infilling-style APR) is important in not only generating more fixes but more patches with higher compilation rate. Besides patch generation, the PLMs consider correct patches to be more natural than other ones, and can even be leveraged for effective patch ranking or patch correctness checking.
- Abstract(参考訳): 自動プログラム修正(APR)は、開発者がソフトウェアバグを自動的にパッチするのを支援することを目的としている。
しかし、現在の最先端の従来型および学習ベースのAPR技術は、パッチの多様性に制限があり、複雑なバグの修正に失敗した。
これは主に、修正テンプレートの作成や潜在的なパッチの直接予測にバグ修正データセットに依存するためである。
数十億のテキスト/コードトークンを使用してトレーニングされた大規模事前学習言語モデル(PLM)は、この問題を回避するのに役立つ可能性がある。
ごく最近、研究者はバグ修正データセットを使わずに、PR用のPLMを直接活用している。
一方、そのような既存の作業は最先端のPLMを含まないか、現実的なデータセットで評価されなかった。
本研究では,PRにPLMを直接適用する研究を初めて行った。
我々は、125Mから20Bまで、生産モデルと埋込モデルを含む最新の9つのPLMを選択した。
PLMを使ってパッチを生成する方法を評価するために、3つの異なる修復設定を設計しました。
PLMを3つの異なる言語にまたがる5つのデータセットの修復設定の下で適用し、修正されたバグ数、生成速度、コンパイル速度で異なるPLMを比較した。
我々の研究は、最先端のPLMを直接適用すれば、既存のAPRテクニックを全データセットで大幅に上回ることができることを実証している。
研究対象のPLMのうち,より大型のモデルで性能が向上する傾向にあるAPRには,スケーリング効果が存在する。
また、バギーライン(埋め込みスタイルのAPRに付加される)の後の接尾辞が、より多くの修正を生成するだけでなく、高いコンパイル率のパッチを生成する上で重要であることも初めて示している。
パッチ生成の他に、PLMは正しいパッチを他のパッチよりも自然なものとみなし、効果的なパッチランキングやパッチの正当性チェックに利用することができる。
関連論文リスト
- Repairs in a Block World: A New Benchmark for Handling User Corrections with Multi-Modal Language Models [48.42142115255159]
命令追従操作タスクにおけるマルチモーダルなTPRシーケンスのデータセットであるBlockWorld-Repairsをリリースする。
現状のビジョンと言語モデル(VLM)を複数の設定で評価し,TPRの処理能力と正確な応答性に着目した。
以上の結果から,これらのモデルはまだマルチモーダル・コラボレーティブ・セッティングにデプロイする準備が整っていないことが示唆された。
論文 参考訳(メタデータ) (2024-09-21T21:06:25Z) - Hybrid Automated Program Repair by Combining Large Language Models and Program Analysis [12.7034916462208]
自動プログラム修復(APR)は、人間の開発者のバグ修正プロセスを合理化する可能性から、大きな注目を集めている。
本稿ではGIANTREPAIRと呼ばれる革新的なAPR手法を紹介する。
この知見に基づいて、GIANTREPAIRはまず、LLM生成したパッチからパッチスケルトンを構築して、パッチ空間を閉じ込め、その後、特定のプログラムに適した高品質なパッチを生成する。
論文 参考訳(メタデータ) (2024-06-03T05:05:12Z) - Revisiting Unnaturalness for Automated Program Repair in the Era of Large Language Models [9.454475517867817]
本研究では,テンプレートベースの補修技術の効率化を目的としたパッチ自然度測定,エントロピーデルタを提案する。
提案手法は,最先端の機械学習ツールよりも効果的に正パッチをランク付けできる。
論文 参考訳(メタデータ) (2024-04-23T17:12:45Z) - Aligning the Objective of LLM-based Program Repair [14.935596175148586]
本稿では,大規模言語モデル (LLM) をプログラム修復に適用するための新しいアプローチについて検討する。
我々の中核的な洞察は、LLMのAPR能力は、単にトレーニング目標に出力を合わせるだけで大幅に改善できるということです。
この知見に基づいて、我々はAPRの直接的なプロンプトフレームワークであるD4Cを設計した。
論文 参考訳(メタデータ) (2024-04-13T02:36:40Z) - A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - Self-Checker: Plug-and-Play Modules for Fact-Checking with Large Language Models [75.75038268227554]
Self-Checkerはファクトチェックを容易にするプラグインとプレイモジュールからなるフレームワークである。
このフレームワークは、低リソース環境でファクトチェックシステムを構築するための、高速で効率的な方法を提供する。
論文 参考訳(メタデータ) (2023-05-24T01:46:07Z) - Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each using ChatGPT [13.632199062382746]
自動プログラム修復(APR)は、バグギープログラムのパッチを自動的に生成することを目的としている。
最近のAPRの研究は、最新のLarge Language Models(LLM)を活用して、APRのパッチを直接生成することに重点を置いている。
最初に完全に自動化された会話駆動型APRアプローチであるChatRepairを提案する。
論文 参考訳(メタデータ) (2023-04-01T20:57:33Z) - Revisiting the Plastic Surgery Hypothesis via Large Language Models [13.488029636215089]
本稿では,大規模言語モデルを直接利用するFitRepairと,ドメイン固有の2つの微調整戦略と,より強力なAPR戦略とを組み合わせたFitRepairを提案する。
広く研究されているDefects4j 1.2と2.0データセットに関する実験は、FitRepairが89と44のバグを修正したことを示している。
論文 参考訳(メタデータ) (2023-03-18T20:33:46Z) - Prompt Tuning for Discriminative Pre-trained Language Models [96.04765512463415]
最近の研究は、自然言語処理(NLP)タスクに事前訓練言語モデル(PLM)を刺激する際の迅速なチューニングの有望な結果を示している。
ELECTRAのような差別的なPLMが、いかに効果的に迅速なチューニングが可能かは、まだ不明である。
DPTは,NLPタスクを識別言語モデリング問題に書き換える,識別型PLMの最初のプロンプトチューニングフレームワークである。
論文 参考訳(メタデータ) (2022-05-23T10:11:50Z) - CPM-2: Large-scale Cost-effective Pre-trained Language Models [71.59893315671997]
本稿では, PLM を用いた事前学習, 微調整, 推論の効率性問題に対処するための費用対効果技術について述べる。
我々は,既存のPLMをスクラッチからトレーニングする代わりに活用することで,事前学習プロセスの促進を目的とした知識継承を導入する。
計算資源が限られている大規模PLMに対して,新しい推論ツールキット,すなわちInfMoEを実装した。
論文 参考訳(メタデータ) (2021-06-20T15:43:54Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。