論文の概要: Break-It-Fix-It: Unsupervised Learning for Program Repair
- arxiv url: http://arxiv.org/abs/2106.06600v1
- Date: Fri, 11 Jun 2021 20:31:04 GMT
- ステータス: 処理完了
- システム内更新日: 2021-06-20 03:31:22.953262
- Title: Break-It-Fix-It: Unsupervised Learning for Program Repair
- Title(参考訳): Break-It-Fix-It: プログラム修復のための教師なし学習
- Authors: Michihiro Yasunaga, Percy Liang
- Abstract要約: 我々は2つの重要なアイデアを持つ新しいトレーニング手法であるBreak-It-Fix-It (BIFI)を提案する。
批判者は、実際の悪い入力でフィクスダーの出力をチェックし、トレーニングデータに良い(固定された)出力を追加する。
これらのアイデアに基づいて、よりペア化されたデータを生成するために、ブレーカとフィクスチャを同時に使用しながら、繰り返し更新する。
BIFIは既存のメソッドより優れており、GitHub-Pythonで90.5%、DeepFixで71.7%の修正精度がある。
- 参考スコア(独自算出の注目度): 90.55497679266442
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: We consider repair tasks: given a critic (e.g., compiler) that assesses the
quality of an input, the goal is to train a fixer that converts a bad example
(e.g., code with syntax errors) into a good one (e.g., code with no errors).
Existing works create training data consisting of (bad, good) pairs by
corrupting good examples using heuristics (e.g., dropping tokens). However,
fixers trained on this synthetically-generated data do not extrapolate well to
the real distribution of bad inputs. To bridge this gap, we propose a new
training approach, Break-It-Fix-It (BIFI), which has two key ideas: (i) we use
the critic to check a fixer's output on real bad inputs and add good (fixed)
outputs to the training data, and (ii) we train a breaker to generate realistic
bad code from good code. Based on these ideas, we iteratively update the
breaker and the fixer while using them in conjunction to generate more paired
data. We evaluate BIFI on two code repair datasets: GitHub-Python, a new
dataset we introduce where the goal is to repair Python code with AST parse
errors; and DeepFix, where the goal is to repair C code with compiler errors.
BIFI outperforms existing methods, obtaining 90.5% repair accuracy on
GitHub-Python (+28.5%) and 71.7% on DeepFix (+5.6%). Notably, BIFI does not
require any labeled data; we hope it will be a strong starting point for
unsupervised learning of various repair tasks.
- Abstract(参考訳): インプットの品質を評価する批評家(例えばコンパイラ)を前提として、悪い例(例えば、構文エラーのあるコード)を良い例(例えば、エラーのないコード)に変換するフィクスチャをトレーニングすることが目的です。
既存の作業は(悪い、良い)ペアからなるトレーニングデータを作成し、ヒューリスティックス(例えばトークンを落とす)を使って良い例を破損させる。
しかし、この合成生成データでトレーニングされたフィクスチャは、悪い入力の実際の分布によく当てはまらない。
このギャップを埋めるために、我々はBreak-It-Fix-It (BIFI)という新しいトレーニング手法を提案し、これは2つの重要なアイデアを持っている: (i) 実際の悪い入力でフィクスダーの出力をチェックし、トレーニングデータに良い(固定された)出力を追加するために、そして (ii) 優れたコードから現実的な悪いコードを生成するためにブレーカーを訓練する。
これらのアイデアに基づき、よりペアデータを生成するのに併用しながら、ブレーカとフィクチャを反復的に更新する。
我々は2つのコード修復データセットについてbifiを評価した。github-python、astパースエラーによるpythonコードの修復を目標とする新しいデータセット、そしてコンパイラエラーによるcコードの修復を目標とするdeepfixだ。
BIFIは既存の手法より優れており、GitHub-Pythonで90.5%(+28.5%)、DeepFixで71.7%(+5.6%)の修正精度がある。
特に、BIFIはラベル付きデータを一切必要とせず、様々な修理作業の教師なし学習の出発点となることを願っている。
関連論文リスト
- Leveraging Large Language Models in Code Question Answering: Baselines and Issues [0.1617522438111378]
本稿では,Pythonのソースコードに対する質問応答のために,大規模言語モデルを用いた研究について述べる。
提案手法は,Pythonコードの問合せと解答の統一データセット上で,大規模言語モデルを微調整することを含む。
手動エラー解析の結果とともに,BLEU-4,BERTScore F1,BLEURT,Exact Matchの測定値について報告する。
論文 参考訳(メタデータ) (2024-11-05T11:25:12Z) - LecPrompt: A Prompt-based Approach for Logical Error Correction with CodeBERT [28.711745671275477]
LecPromptは論理的エラーをローカライズし、修復するためのプロンプトベースのアプローチである。
CodeBERTは、コードに基づいてトレーニングされたトランスフォーマーベースの大規模言語モデルである。
Pythonでは、LecPromptが注目すべき74.58%のトップ-1トークンレベルの修復精度を達成した。
Javaでは、LecPromptは69.23%のトップ-1トークンレベルの修復精度を提供する。
論文 参考訳(メタデータ) (2024-10-10T01:56:04Z) - Fact Checking Beyond Training Set [64.88575826304024]
本稿では,レトリバーリーダが,あるドメインのラベル付きデータに基づいてトレーニングし,別のドメインで使用する場合,性能劣化に悩まされることを示す。
本稿では,レトリバー成分を分散シフトに対して頑健にするための逆アルゴリズムを提案する。
次に、これらのデータセットから8つの事実チェックシナリオを構築し、モデルと強力なベースラインモデルのセットを比較します。
論文 参考訳(メタデータ) (2024-03-27T15:15:14Z) - DeepCode AI Fix: Fixing Security Vulnerabilities with Large Language
Models [3.1690235522182104]
大規模言語モデル(LLM)は、様々なプログラミングタスクの解決にますます使われている。
長距離コード関係を学習するモデルを必要とするため,タスクは困難であることを示す。
本稿では,LLMのクエリと微調整のための新しいアプローチにより,これらの課題に対処する手法を提案する。
論文 参考訳(メタデータ) (2024-02-19T18:35:40Z) - Bit-flipping Decoder Failure Rate Estimation for (v,w)-regular Codes [84.0257274213152]
並列ビットフリップデコーダのDFRを高精度に推定する手法を提案する。
本研究は,本症候群のモデル化およびシミュレーションによる重み比較,第1イテレーション終了時の誤りビット分布の誤検出,復号化復号化率(DFR)について検証した。
論文 参考訳(メタデータ) (2024-01-30T11:40:24Z) - 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) - Repairing Bugs in Python Assignments Using Large Language Models [9.973714032271708]
本稿では,プログラム代入のためのAPRシステムを構築するために,コード上で訓練された大規模言語モデルを提案する。
本システムでは,複数モーダルプロンプト,反復クエリ,テストケースベースの数ショット選択,プログラムチャンキングを組み合わせることで,構文的および意味的誤りを解消することができる。
我々は,286の実際の学生プログラム上でMMAPRを評価し,最新のPython構文修復エンジン,BIFI,最新のPython意味修復エンジンを組み合わせたベースラインであるRefactoryと比較した。
論文 参考訳(メタデータ) (2022-09-29T15:41:17Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z) - Don't Wait, Just Weight: Improving Unsupervised Representations by
Learning Goal-Driven Instance Weights [92.16372657233394]
自己教師付き学習技術は、役に立たないデータから有用な表現を学習することで、パフォーマンスを向上させることができる。
ベイジアンのインスタンスの重み付けを学習することで、下流の分類精度を向上させることができることを示す。
本研究では,STL-10 と Visual Decathlon の自己教師型回転予測タスクを用いて,BetaDataWeighter の評価を行った。
論文 参考訳(メタデータ) (2020-06-22T15:59:32Z) - Graph-based, Self-Supervised Program Repair from Diagnostic Feedback [108.48853808418725]
本稿では,ソースコードの修復や診断フィードバックに関連するシンボルを結合するプログラムフィードバックグラフを提案する。
次に、推論プロセスのモデル化にグラフニューラルネットワークを適用します。
オンラインで利用可能なラベルのないプログラムを活用するプログラム修復のための自己指導型学習パラダイムを提案する。
論文 参考訳(メタデータ) (2020-05-20T07:24:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。