Skip to main content
QUICK REVIEW

[論文レビュー] Less Training, More Repairing Please: Revisiting Automated Program Repair via Zero-shot Learning

Chunqiu Steven Xia, Lingming Zhang|arXiv (Cornell University)|Jul 17, 2022
Software Engineering Research被引用数 10
ひとこと要約

本稿では、バグ修正データセットでの微調整なしに、CodeBERT などの大規模事前学習済みコードモデルを活用するゼロショット、クローズ形式の自動プログラム修復手法 AlphaRepair を提案する。文脈的なコードスニペットから正しいコード行を直接予測することで、Defects4J および QuixBugs で最先端の結果を達成し、Defects4J 2.0 では最良のベースラインと比較して 3.3 倍も多くのバグを修正した。また、Java および Python の両言語においても強力な多言語修復能力を示した。

ABSTRACT

Due to the promising future of Automated Program Repair (APR), researchers have proposed various APR techniques, including heuristic-based, template-based, and constraint-based techniques. Among such classic APR techniques, template-based techniques have been widely recognized as state of the art. However, such template-based techniques require predefined templates to perform repair, and their effectiveness is thus limited. To this end, researchers leveraged the recent advances in Deep Learning to further improve APR. Such learning-based techniques view APR as a Neural Machine Translation problem, using the buggy/fixed code snippets as the source/target languages for translation. In this way, such techniques heavily rely on large numbers of high-quality bug-fixing commits, which can be extremely costly and challenging to construct. Furthermore, the edit variety of these learning-based techniques are limited to the available bug-fixes within their training datasets. Therefore, in this paper, we aim to revisit the learning-based APR problem, and propose AlphaRepair, to leverage zero-shot learning directly using large pre-trained code models for APR. Our main insight is instead of modeling what a repair edit should look like, we can directly predict what the correct code is based on the context information. We have implemented AlphaRepair as a practical multilingual APR tool based on the recent CodeBERT model. Our results on the widely used Defects4J benchmark show that AlphaRepair can substantially outperform state-of-the-art APR tools. We also studied the impact of different design choices and show that AlphaRepair performs even better on a newer version of Defects4J (2.0) with 3.3X more fixes than best performing baseline, indicating that AlphaRepair can potentially avoid the dataset-overfitting issue of existing learning-based techniques.

研究の動機と目的

  • 学習ベースの APR 技術が、微調整に必要な大規模かつ高品質なバグ修正データセットに依存するという現有的な制限を克服すること。
  • 事前学習済みコードモデルが、タスク固有の学習を一切行わず、ゼロショットの状態でプログラム修復に直接利用可能かどうかを検討すること。
  • Defects4J や QuixBugs といった標準ベンチマーク上で、そのアプローチの有効性と一般化能力を評価すること。
  • 再トレーニングや言語ごとの別々のモデルを必要とせずに、多言語プログラム修復をサポートできるかどうかを調査すること。

提案手法

  • AlphaRepair は、修復をシーケンス・トゥ・シーケンス翻訳タスクとしてモデル化するのではなく、文脈に基づいて正しいコード行を予測するクローズ形式のタスクとしてプログラム修復を定式化する。
  • CodeBERT の事前学習目的(マスクされた言語モデリング)を活用し、バグのある行をマスクして、正しい修正を予測するようにモデルをプロンプトする。
  • 入力は、バグのある行を [MASK] トークンに置き換えることで構築され、周囲のコードコンテキストを保持する。これにより、事前学習済みモデルを直接使用して推論が可能になる。
  • モデルは、過去のバグ修正ペair に対して微調整されていない。代わりに、修復タスクの推論に、CodeBERT の凍結された重みを直接使用する。
  • このアプローチは、6 つのプログラミング言語(Java、Python、Go、PHP、JavaScript、Ruby)を統合的に事前学習した CodeBERT の特性を活かした多言語 APR ツールとして実装されている。
  • 生成されたパッチの正しさは、コンパイルとテストスイートの実行によって検証され、意味的正しさの確認には手動での検査が用いられた。

実験結果

リサーチクエスチョン

  • RQ1バグ修正データセットでの微調整なしに、事前学習済みコードモデルを直接自動プログラム修復に利用できるか?
  • RQ2クローズ形式の修復アプローチは、従来の NMT ベースの学習ベース APR 技術よりも優れているか?
  • RQ3ゼロショットアプローチは、再トレーニングなしに異なるプログラミング言語間で一般化可能であり、多言語修復を可能にするか?
  • RQ4特に、Defects4J 2.0 のような新しい、より大きなベンチマークで評価した際に、データセットへの過剰適合を回避できるか?

主な発見

  • AlphaRepair は、Defects4J 1.2(28 個)および Defects4J 2.0(27 個)で、すべてのベースラインを上回る最多の正しいパッチを生成した。
  • Defects4J 2.0 では、最良のベースラインと比較して 3.3 倍も多くのバグを修正した。これは、優れた一般化性能と過剰適合の低減を示している。
  • AlphaRepair は、QuixBugs の Java 版および Python 版の両方で最先端の結果を達成し、多言語修復能力を裏付けた。
  • CodeBERT の学習データに重複する 15 個のバグを除外しても、AlphaRepair は依然としてベースラインを上回った。これは、データリークを超えた頑健性を示している。
  • 重複するバグのあるコードスニペットを手動で変更した結果、AlphaRepair は記憶された修正に依存せず、正確なデータセット一致に依存しない一般化能力を示した。
  • マスクされたコードモデリングを用いたクローズ形式の予測によるゼロショットアプローチは、過去の修正データで広範な微調整を必要とする NMT ベースの学習ベース APR よりも顕著に優れていた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。