論文の概要: Generating Bug-Fixes Using Pretrained Transformers
- arxiv url: http://arxiv.org/abs/2104.07896v1
- Date: Fri, 16 Apr 2021 05:27:04 GMT
- ステータス: 処理完了
- システム内更新日: 2021-04-20 02:00:04.745186
- Title: Generating Bug-Fixes Using Pretrained Transformers
- Title(参考訳): 予習変圧器を用いたバグフィックスの生成
- Authors: Dawn Drain, Chen Wu, Alexey Svyatkovskiy, Neel Sundaresan
- Abstract要約: 実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
- 参考スコア(独自算出の注目度): 11.012132897417592
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Detecting and fixing bugs are two of the most important yet frustrating parts
of the software development cycle. Existing bug detection tools are based
mainly on static analyzers, which rely on mathematical logic and symbolic
reasoning about the program execution to detect common types of bugs. Fixing
bugs is typically left out to the developer. In this work we introduce
DeepDebug: a data-driven program repair approach which learns to detect and fix
bugs in Java methods mined from real-world GitHub repositories. We frame
bug-patching as a sequence-to-sequence learning task consisting of two steps:
(i) denoising pretraining, and (ii) supervised finetuning on the target
translation task. We show that pretraining on source code programs improves the
number of patches found by 33% as compared to supervised training from scratch,
while domain-adaptive pretraining from natural language to code further
improves the accuracy by another 32%. We refine the standard accuracy
evaluation metric into non-deletion and deletion-only fixes, and show that our
best model generates 75% more non-deletion fixes than the previous state of the
art. In contrast to prior work, we attain our best results when generating raw
code, as opposed to working with abstracted code that tends to only benefit
smaller capacity models. Finally, we observe a subtle improvement from adding
syntax embeddings along with the standard positional embeddings, as well as
with adding an auxiliary task to predict each token's syntactic class. Despite
focusing on Java, our approach is language agnostic, requiring only a
general-purpose parser such as tree-sitter.
- Abstract(参考訳): バグの検出と修正は、ソフトウェア開発サイクルでもっとも重要でフラストレーションのある部分の2つです。
既存のバグ検出ツールは、主に静的アナライザに基づいており、一般的なタイプのバグを検出するためにプログラムの実行に関する数学的論理と記号的推論に依存している。
バグの修正は通常、開発者に任される。
この作業では、実際のgithubリポジトリからマイニングされたjavaメソッドのバグの検出と修正を学ぶデータ駆動プログラム修復アプローチであるdeepdebugを紹介します。
バグパッチングを,(i)事前学習,(ii)目標翻訳タスクの微調整という2つのステップからなるシーケンス・ツー・シーケンス学習タスクとして構成する。
ソースコードプログラムの事前学習では,スクラッチからの教師付きトレーニングに比べて33%のパッチ数を改善する一方,自然言語からコードへのドメイン適応型事前学習では,さらに32%の精度向上が期待できる。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
以前の作業とは対照的に、より小さなキャパシティモデルにのみメリットがある抽象的なコードを扱うのではなく、生のコードを生成する際の最高の結果を得るのです。
最後に、標準的な位置埋め込みと共に構文埋め込みを追加することによる微妙な改善と、トークンの構文クラスを予測する補助的なタスクの追加を観察する。
Javaに重点を置いているにも関わらず、我々のアプローチは言語に依存しない。
関連論文リスト
- LLM Critics Help Catch Bugs in Mathematics: Towards a Better Mathematical Verifier with Natural Language Feedback [71.95402654982095]
本研究では,自然言語フィードバック型検証器Math-Minosを提案する。
実験の結果,少量の自然言語フィードバックが検証器の性能を大幅に向上させることがわかった。
論文 参考訳(メタデータ) (2024-06-20T06:42:27Z) - 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) - Pre-training Code Representation with Semantic Flow Graph for Effective
Bug Localization [4.159296619915587]
セマンティックフローグラフ (Semantic Flow Graph, SFG) という, 有向多ラベル符号グラフの表現法を提案する。
そこで本手法は,バグローカライゼーションにおける最先端性能を実現する。
論文 参考訳(メタデータ) (2023-08-24T13:25:17Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - 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) - Detect-Localize-Repair: A Unified Framework for Learning to Debug with
CodeT5 [14.712753336831172]
本稿では,事前訓練されたプログラミング言語モデルであるCodeT5に基づく,新しい統一型emphDetect-Localize-Repairフレームワークを提案する。
我々のモデルは、NLPとソフトウェア工学の両方の領域から既存のベースラインを著しく上回ります。
論文 参考訳(メタデータ) (2022-11-27T16:11:29Z) - BigIssue: A Realistic Bug Localization Benchmark [89.8240118116093]
BigIssueは、現実的なバグローカライゼーションのためのベンチマークである。
実際のJavaバグと合成Javaバグの多様性を備えた一般的なベンチマークを提供する。
われわれは,バグローカライゼーションの最先端技術として,APRの性能向上と,現代の開発サイクルへの適用性の向上を期待している。
論文 参考訳(メタデータ) (2022-07-21T20:17:53Z) - On Distribution Shift in Learning-based Bug Detectors [4.511923587827301]
まず、モデルをバグ検出領域に適応させるため、次に実際のバグ検出領域に適応させるために、モデルを実際の配布に向けて駆動するために、バグ検出装置を2つのフェーズで訓練する。
我々は,本手法を広範に研究した3種類のバグタイプに対して評価し,実際のバグ分布を捉えるために慎重に設計された新しいデータセットを構築した。
論文 参考訳(メタデータ) (2022-04-21T12:17:22Z) - Break-It-Fix-It: Unsupervised Learning for Program Repair [90.55497679266442]
我々は2つの重要なアイデアを持つ新しいトレーニング手法であるBreak-It-Fix-It (BIFI)を提案する。
批判者は、実際の悪い入力でフィクスダーの出力をチェックし、トレーニングデータに良い(固定された)出力を追加する。
これらのアイデアに基づいて、よりペア化されたデータを生成するために、ブレーカとフィクスチャを同時に使用しながら、繰り返し更新する。
BIFIは既存のメソッドより優れており、GitHub-Pythonで90.5%、DeepFixで71.7%の修正精度がある。
論文 参考訳(メタデータ) (2021-06-11T20:31:04Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。