論文の概要: 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はラベル付きデータを一切必要とせず、様々な修理作業の教師なし学習の出発点となることを願っている。
関連論文リスト
- Verifix: Post-Training Correction to Improve Label Noise Robustness with
Verified Samples [9.91998873101083]
トレーニング後の補正は、初期訓練後のモデルパラメータを調整し、ラベルノイズを軽減する。
Verifixは、小さな検証済みのデータセットを利用して、1回の更新でモデルの重みを補正する新しいアルゴリズムである。
25%の合成汚職を伴うCIFARデータセットの実験では、平均して7.36%の一般化改善が見られた。
論文 参考訳(メタデータ) (2024-03-13T15:32:08Z) - DeepCode AI Fix: Fixing Security Vulnerabilities with Large Language
Models [3.1690235522182104]
大規模言語モデル(LLM)は、様々なプログラミングタスクの解決にますます使われている。
長距離コード関係を学習するモデルを必要とするため,タスクは困難であることを示す。
本稿では,LLMのクエリと微調整のための新しいアプローチにより,これらの課題に対処する手法を提案する。
論文 参考訳(メタデータ) (2024-02-19T18:35: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) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。