論文の概要: RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair
- arxiv url: http://arxiv.org/abs/2309.06057v1
- Date: Tue, 12 Sep 2023 08:52:56 GMT
- ステータス: 処理完了
- システム内更新日: 2023-09-13 13:52:41.810389
- Title: RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair
- Title(参考訳): RAP-Gen: 自動プログラム修復のためのCodeT5による検索拡張パッチ生成
- Authors: Weishi Wang, Yue Wang, Shafiq Joty, Steven C.H. Hoi
- Abstract要約: 新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
- 参考スコア(独自算出の注目度): 75.40584530380589
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Automatic program repair (APR) is crucial to reduce manual debugging efforts
for developers and improve software reliability. While conventional
search-based techniques typically rely on heuristic rules or a redundancy
assumption to mine fix patterns, recent years have witnessed the surge of deep
learning (DL) based approaches to automate the program repair process in a
data-driven manner. However, their performance is often limited by a fixed set
of parameters to model the highly complex search space of APR. To ease such
burden on the parametric models, in this work, we propose a novel
Retrieval-Augmented Patch Generation framework (RAP-Gen) by explicitly
leveraging relevant fix patterns retrieved from a codebase of previous bug-fix
pairs. Specifically, we build a hybrid patch retriever to account for both
lexical and semantic matching based on the raw source code in a
language-agnostic manner, which does not rely on any code-specific features. In
addition, we adapt a code-aware language model CodeT5 as our foundation model
to facilitate both patch retrieval and generation tasks in a unified manner. We
adopt a stage-wise approach where the patch retriever first retrieves a
relevant external bug-fix pair to augment the buggy input for the CodeT5 patch
generator, which synthesizes a ranked list of repair patch candidates. Notably,
RAP-Gen is a generic APR framework that can flexibly integrate different patch
retrievers and generators to repair various types of bugs. We thoroughly
evaluate RAP-Gen on three benchmarks in two programming languages, including
the TFix benchmark in JavaScript, and Code Refinement and Defects4J benchmarks
in Java, where the bug localization information may or may not be provided.
Experimental results show that RAP-Gen significantly outperforms previous
state-of-the-art approaches on all benchmarks, e.g., repairing 15 more bugs on
818 Defects4J bugs.
- Abstract(参考訳): 自動プログラム修復(APR)は、開発者の手作業によるデバッグ作業の削減と、ソフトウェアの信頼性向上に不可欠である。
従来の検索ベースの手法は、一般的にヒューリスティックなルールや冗長性の仮定をマイニングパターンに頼っているが、近年は、プログラムの修正プロセスをデータ駆動で自動化するためのディープラーニング(DL)ベースのアプローチが急増している。
しかし、それらの性能はAPRの非常に複雑な探索空間をモデル化するためのパラメータの固定セットによって制限されることが多い。
そこで本研究では,従来のバグフィックスペアのコードベースから取得した関連する修正パターンを明示的に活用して,新たなRAP-Gen(Retrieval-Augmented Patch Generation framework)を提案する。
具体的には、コード固有の機能に依存しない言語に依存しない、生のソースコードに基づく語彙的および意味的マッチングの両方を考慮し、ハイブリッドなパッチレトリバーを構築する。
さらに,コード認識型言語モデルであるcodet5を基盤モデルとして採用し,パッチ検索と生成タスクを統一的に支援した。
まず,パッチレトリバーが関連する外部のバグフィックスペアを検索して,修復パッチ候補のランク付けリストを合成するcodet5パッチジェネレータのバギー入力を増強する段階的アプローチを採用する。
特に、RAP-Genは、様々な種類のバグを修復するために異なるパッチレトリバーとジェネレータを柔軟に統合できる一般的なAPRフレームワークである。
我々は、JavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークを含む2つのプログラミング言語の3つのベンチマークで、RAP-Genを徹底的に評価した。
実験の結果、RAP-Genは818のDefects4Jバグの15以上のバグを修復するなど、すべてのベンチマークで従来の最先端のアプローチよりも大幅に優れていた。
関連論文リスト
- ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - A Novel Approach for Automatic Program Repair using Round-Trip
Translation with Large Language Models [50.86686630756207]
研究によると、ある文の文法的誤りは、それを他の言語に翻訳し、その語を返せば修正できる。
現在の自動プログラム修復(APR)生成モデルは、ソースコードで事前訓練され、修正のために微調整されている。
本稿では,あるプログラミング言語から別のプログラミング言語,あるいは自然言語へのコード変換,そして,その逆といった,微調整ステップをバイパスし,ラウンド・トリップ変換(RTT)を用いる手法を提案する。
論文 参考訳(メタデータ) (2024-01-15T22:36:31Z) - GAMMA: Revisiting Template-based Automated Program Repair via Mask
Prediction [14.741742268621403]
不適切なドナーコードは、修正パターンが正しい場合でも、プラウジブルだが不正なパッチ生成を引き起こす可能性がある。
本稿では,ドナーコード生成のための大規模事前学習言語モデルを直接活用するGAMMAを提案する。
その結果、GAMMAはDefects4J-v1.2の82のバグを正しく修復し、20.59%(14のバグ)と26.15%(17のバグ)を以前の最先端のテンプレートベースのアプローチであるTBarと学習ベースの1つのRecoderに対して改善した。
論文 参考訳(メタデータ) (2023-09-17T15:49:40Z) - Neural Program Repair with Program Dependence Analysis and Effective
Filter Mechanism [37.70518599085677]
単行Javaバグを修正するために、一般的な事前学習言語モデルに適応する、アプローチと呼ばれる新しいニューラルプログラム修復フレームワークを提案する。
我々は,プログラムスライシングを用いて,与えられたバギー文に直接関連した文脈情報を,対応するプログラム依存グラフから補修材料として抽出する試みを行う。
最先端のベースラインと比較して,5つのベンチマークに対するアプローチの有効性を示す。
論文 参考訳(メタデータ) (2023-05-16T09:43:04Z) - 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) - CodeRL: Mastering Code Generation through Pretrained Models and Deep
Reinforcement Learning [92.36705236706678]
CodeRLは、事前訓練されたLMと深層強化学習によるプログラム合成タスクのための新しいフレームワークである。
推論中、我々は重要なサンプリング戦略を持つ新しい生成手順を導入する。
モデルバックボーンについては,CodeT5のエンコーダデコーダアーキテクチャを拡張し,学習目標を拡張した。
論文 参考訳(メタデータ) (2022-07-05T02:42:15Z) - 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) - ENCORE: Ensemble Learning using Convolution Neural Machine Translation for Automatic Program Repair [7.026028136636735]
本稿では,新しいG&Vプログラム修復技術であるENCOREを提案する。
畳み込みニューラルネットワーク翻訳(NMT)モデルでアンサンブル学習を使用して、複数のプログラミング言語のバグを自動的に修正する。
ENCOREは4つの人気のあるプログラミング言語に適用された最初のG&V修復技術である。
論文 参考訳(メタデータ) (2019-06-20T15:25:16Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。