論文の概要: DeepDebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and
Code Skeletons
- arxiv url: http://arxiv.org/abs/2105.09352v1
- Date: Wed, 19 May 2021 18:40:16 GMT
- ステータス: 処理完了
- システム内更新日: 2021-05-22 01:37:38.285560
- Title: DeepDebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and
Code Skeletons
- Title(参考訳): DeepDebug: スタックトレース、バックトランスレーション、コードスケルトンを使用したPythonバグの修正
- Authors: Dawn Drain, Colin B. Clement, Guillermo Serrato, and Neel Sundaresan
- Abstract要約: 本稿では,大規模な事前学習型トランスを用いた自動デバッグ手法を提案する。
まず、合成バグを生成するために、逆コミットデータにバグ生成モデルをトレーニングすることから始めます。
次に、テストを実行できる10Kリポジトリに焦点を当て、テストをパスすることでカバーされるすべての関数のバグの多いバージョンを作成します。
- 参考スコア(独自算出の注目度): 5.564793925574796
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: The joint task of bug localization and program repair is an integral part of
the software development process. In this work we present DeepDebug, an
approach to automated debugging using large, pretrained transformers. We begin
by training a bug-creation model on reversed commit data for the purpose of
generating synthetic bugs. We apply these synthetic bugs toward two ends.
First, we directly train a backtranslation model on all functions from 200K
repositories. Next, we focus on 10K repositories for which we can execute
tests, and create buggy versions of all functions in those repositories that
are covered by passing tests. This provides us with rich debugging information
such as stack traces and print statements, which we use to finetune our model
which was pretrained on raw source code. Finally, we strengthen all our models
by expanding the context window beyond the buggy function itself, and adding a
skeleton consisting of that function's parent class, imports, signatures,
docstrings, and method bodies, in order of priority. On the QuixBugs benchmark,
we increase the total number of fixes found by over 50%, while also decreasing
the false positive rate from 35% to 5% and decreasing the timeout from six
hours to one minute. On our own benchmark of executable tests, our model fixes
68% of all bugs on its first attempt without using traces, and after adding
traces it fixes 75% on first attempt. We will open-source our framework and
validation set for evaluating on executable tests.
- Abstract(参考訳): バグのローカライゼーションとプログラムの修復という共同作業は、ソフトウェア開発プロセスの不可欠な部分です。
この作業では、大規模な事前トレーニングされたトランスフォーマーを使用した自動デバッグのアプローチであるDeepDebugを紹介します。
まず、合成バグを生成するために、逆コミットデータにバグ生成モデルをトレーニングする。
これらの合成バグを両端に適用する。
まず、200Kリポジトリからすべての関数のバックトランスレーションモデルをトレーニングする。
次に、テストの実行が可能な10kリポジトリに注目し、テストの通過によってカバーされるリポジトリ内のすべての関数のバギーバージョンを作成します。
これにより、スタックトレースやプリントステートメントといったリッチなデバッグ情報が得られます。
最後に、バギー関数自体を越えてコンテキストウィンドウを拡張し、その関数の親クラス、インポート、シグネチャ、docstring、メソッドボディからなるスケルトンを優先順に追加することで、すべてのモデルを強化します。
QuixBugsベンチマークでは、50%以上の修正数を増やしながら、偽陽性率を35%から5%に下げ、タイムアウトを6時間から1分に短縮しています。
実行可能なテストのベンチマークでは、トレースを使わずに最初の試行ですべてのバグの68%を修正し、トレースを追加した後、最初の試行で75%を修正しました。
実行可能なテストを評価するためのフレームワークと検証セットをオープンソースにします。
関連論文リスト
- Checker Bug Detection and Repair in Deep Learning Libraries [30.494018435420706]
Deep Learning (DL)ライブラリのチェッカーバグは批判的だが、十分に調査されていない。
広範に利用されている2つのDLライブラリにおけるDLチェッカーバグの総合的研究について紹介する。
我々は、概念実証のJAXGuardベースのツールであるZeroGuardを提案し、DLライブラリのチェッカーバグを検出し、修正する。
論文 参考訳(メタデータ) (2024-10-09T00:48:12Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - 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) - Detect-Localize-Repair: A Unified Framework for Learning to Debug with
CodeT5 [14.712753336831172]
本稿では,事前訓練されたプログラミング言語モデルであるCodeT5に基づく,新しい統一型emphDetect-Localize-Repairフレームワークを提案する。
我々のモデルは、NLPとソフトウェア工学の両方の領域から既存のベースラインを著しく上回ります。
論文 参考訳(メタデータ) (2022-11-27T16:11:29Z) - DS-1000: A Natural and Reliable Benchmark for Data Science Code
Generation [70.96868419971756]
DS-1000は7つのPythonライブラリにまたがる1000のデータサイエンス問題のあるコード生成ベンチマークである。
まず、StackOverflowからそれらを収集して以来の、多様で現実的で実践的なユースケースを反映しています。
第2に、私たちの自動評価は非常に具体的(信頼性)です -- 評価が受け入れているすべてのCodex予測ソリューションに対して、そのわずか1.8%が間違っています。
論文 参考訳(メタデータ) (2022-11-18T17:20:27Z) - On Distribution Shift in Learning-based Bug Detectors [4.511923587827301]
まず、モデルをバグ検出領域に適応させるため、次に実際のバグ検出領域に適応させるために、モデルを実際の配布に向けて駆動するために、バグ検出装置を2つのフェーズで訓練する。
我々は,本手法を広範に研究した3種類のバグタイプに対して評価し,実際のバグ分布を捉えるために慎重に設計された新しいデータセットを構築した。
論文 参考訳(メタデータ) (2022-04-21T12:17:22Z) - DapStep: Deep Assignee Prediction for Stack Trace Error rePresentation [61.99379022383108]
本稿では,バグトリアージ問題を解決するための新しいディープラーニングモデルを提案する。
モデルは、注目された双方向のリカレントニューラルネットワークと畳み込みニューラルネットワークに基づいている。
ランキングの質を向上させるために,バージョン管理システムのアノテーションから追加情報を利用することを提案する。
論文 参考訳(メタデータ) (2022-01-14T00:16:57Z) - 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) - Self-Supervised Bug Detection and Repair [27.46717890823656]
本稿では,バグ検出と修復の自己教師型学習手法であるBugLabを紹介する。
BugLabのPython実装では、2374の実際のバグのテストデータセットのベースラインメソッドで最大30%改善されている。
論文 参考訳(メタデータ) (2021-05-26T18:41:05Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。