論文の概要: GAMMA: Revisiting Template-based Automated Program Repair via Mask
Prediction
- arxiv url: http://arxiv.org/abs/2309.09308v1
- Date: Sun, 17 Sep 2023 15:49:40 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 07:30:35.134576
- Title: GAMMA: Revisiting Template-based Automated Program Repair via Mask
Prediction
- Title(参考訳): GAMMA: マスク予測によるテンプレートベースの自動プログラム修復の再検討
- Authors: Quanjun Zhang, Chunrong Fang, Tongke Zhang, Bowen Yu, Weisong Sun,
Zhenyu Chen
- Abstract要約: 不適切なドナーコードは、修正パターンが正しい場合でも、プラウジブルだが不正なパッチ生成を引き起こす可能性がある。
本稿では,ドナーコード生成のための大規模事前学習言語モデルを直接活用するGAMMAを提案する。
その結果、GAMMAはDefects4J-v1.2の82のバグを正しく修復し、20.59%(14のバグ)と26.15%(17のバグ)を以前の最先端のテンプレートベースのアプローチであるTBarと学習ベースの1つのRecoderに対して改善した。
- 参考スコア(独自算出の注目度): 14.741742268621403
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Automated program repair (APR) aims to fix software bugs without human
intervention and template-based APR has been widely investigated with promising
results. However, it is challenging for template-based APR to select the
appropriate donor code, which is an important repair ingredient for generating
candidate patches. Inappropriate donor code may cause plausible but incorrect
patch generation even with correct fix patterns, limiting the repair
performance.
In this paper, we aim to revisit template-based APR, and propose GAMMA, to
directly leverage large pre-trained language models for donor code generation.
Our main insight is that instead of retrieving donor code in the local buggy
file, we can directly predict the correct code tokens based on the context code
snippets and repair patterns by a cloze task. Specifically, (1) GAMMA revises a
variety of fix templates from state-of-the-art template-based APR techniques
(i.e., TBar) and transforms them into mask patterns. (2) GAMMA adopts a
pre-trained language model to predict the correct code for masked code as a
fill-in-the-blank task. The experimental results demonstrate that GAMMA
correctly repairs 82 bugs on Defects4J-v1.2, which achieves 20.59\% (14 bugs)
and 26.15\% (17 bugs) improvement over the previous state-of-the-art
template-based approach TBar and learning-based one Recoder. Furthermore, GAMMA
repairs 45 bugs and 22 bugs from the additional Defects4J-v2.0 and QuixBugs,
indicating the generalizability of GAMMA in addressing the dataset overfitting
issue. We also prove that adopting other pre-trained language models can
provide substantial advancement, e.g., CodeBERT-based and ChatGPT-based GAMMA
is able to fix 80 and 67 bugs on Defects4J-v1.2, indicating the scalability of
GAMMA. Overall, our study highlights the promising future of adopting
pre-trained models to generate correct patches on top of fix patterns.
- Abstract(参考訳): 自動プログラム修復(APR)は人間の介入なしにソフトウェアバグを修正することを目的としており、テンプレートベースのAPRは有望な結果で広く研究されている。
しかし、テンプレートベースのaprでは、候補パッチを生成する上で重要な修正要素である適切なドナーコードを選択することが難しい。
不適切なドナーコードは、修正パターンが正しい場合でも、プラウジブルだが不正なパッチ生成を引き起こし、修理性能が制限される。
本稿ではテンプレートベースのAPRを再検討し、GAMMAを提案し、ドナーコード生成に大規模な事前学習言語モデルを直接活用する。
私たちのおもな洞察は、ローカルのバギーファイルでドナーコードを検索するのではなく、コンテキストコードスニペットとclozeタスクによる修正パターンに基づいて、正しいコードトークンを直接予測できるということです。
具体的には、(1)GAMAは、最先端のテンプレートベースのAPR技術(TBar)から様々な修正テンプレートを改訂し、それらをマスクパターンに変換する。
2) GAMMAはトレーニング済みの言語モデルを採用して,マスク付きコードの正しいコードを予測する。
実験の結果、ガンマは欠陥4j-v1.2の82のバグを正しく修復し、20.59\% (14のバグ) と26.15\% (17のバグ)の改善を達成した。
さらに、ガンマは追加の欠陥である4j-v2.0とquixbugsから45のバグと22のバグを修復する。
また、CodeBERTベースのGAMMAやChatGPTベースのGAMMAでは、Defects4J-v1.2の80と67のバグを修正でき、GAMMAのスケーラビリティを示している。
全体として、本研究は、修正パターンの上に正しいパッチを生成するために事前訓練されたモデルを採用する有望な未来を強調している。
関連論文リスト
- A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - Automated Bug Generation in the era of Large Language Models [6.0770779409377775]
BugFarmは任意のコードを複数の複雑なバグに変換する。
BUGFARMが生成した1.9万以上の変異株から435k以上のバグを総合的に評価する。
論文 参考訳(メタデータ) (2023-10-03T20:01:51Z) - 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) - Domain Knowledge Matters: Improving Prompts with Fix Templates for
Repairing Python Type Errors [41.87781274165405]
Pythonの型エラーを自動的に修復するためのルールベースのアプローチがある。
アプローチは正確なパッチを生成することができるが、ドメインの専門家がパッチ合成ルールを設計する必要がある。
本稿では,Pythonの型エラーの修正に修正テンプレートを組み込んだ新しいプロンプトベースのアプローチであるTypeFixを提案する。
論文 参考訳(メタデータ) (2023-06-02T09:42:16Z) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - BigIssue: A Realistic Bug Localization Benchmark [89.8240118116093]
BigIssueは、現実的なバグローカライゼーションのためのベンチマークである。
実際のJavaバグと合成Javaバグの多様性を備えた一般的なベンチマークを提供する。
われわれは,バグローカライゼーションの最先端技術として,APRの性能向上と,現代の開発サイクルへの適用性の向上を期待している。
論文 参考訳(メタデータ) (2022-07-21T20:17:53Z) - Memory-Based Model Editing at Scale [102.28475739907498]
既存のモデルエディタは、編集対象のスコープを正確にモデル化するのに苦労する。
SERAC(Retrieval-Augmented Counterfactal Model)を用いた半パラメトリック編集を提案する。
SERACは、編集を明示的なメモリに格納し、必要に応じてベースモデルの予測を変更できるように、それらを推論することを学ぶ。
論文 参考訳(メタデータ) (2022-06-13T23:40:34Z) - DapStep: Deep Assignee Prediction for Stack Trace Error rePresentation [61.99379022383108]
本稿では,バグトリアージ問題を解決するための新しいディープラーニングモデルを提案する。
モデルは、注目された双方向のリカレントニューラルネットワークと畳み込みニューラルネットワークに基づいている。
ランキングの質を向上させるために,バージョン管理システムのアノテーションから追加情報を利用することを提案する。
論文 参考訳(メタデータ) (2022-01-14T00:16:57Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z) - CURE: Code-Aware Neural Machine Translation for Automatic Program Repair [11.556110575946631]
提案するCUREは,3つの新奇性を持つ新しいNMTベースのAPR手法である。
CUREは、APRタスクの前に開発者ライクなソースコードを学ぶために、大きなソフトウェア上でプログラミング言語(PL)モデルを事前にトレーニングします。
第2に、curyは、バギーコードに近いコンパイル可能なパッチとパッチに注目して、より正確な修正を見つける新しいコードアウェア検索戦略をデザインする。
論文 参考訳(メタデータ) (2021-02-26T22:30:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。