Aligning LLMs for FL-free Program Repair

要約

大規模言語モデル (LLM) は、自動プログラム修復 (APR) でまともな結果を達成しました。
ただし、デコーダ専用 LLM (GPT-4 など) の次のトークン予測トレーニング目標は、現在のインフィリング スタイル手法のマスクされたスパン予測目標とずれており、LLM がプログラム修復のために事前トレーニングされた知識を十分に活用することを妨げています。
さらに、一部の LLM は、関連するアーティファクト (テスト ケースなど) を使用して特定の関数のバグを特定して修復できますが、既存の方法は、修復のためのバグのあるハンクのリストを提供するために依然としてステートメント レベルの障害位置特定方法に依存しています。
この制限により、LLM は指定された場所を超えて潜在的なパッチを探索できなくなります。
この論文では、LLM をプログラム修復に適応させるための新しいアプローチを調査します。
私たちの中心的な洞察は、最初に欠陥のあるステートメントを特定することなく、出力をトレーニング目標に合わせてプログラム全体を改良できるようにするだけで、LLM の APR 機能を大幅に向上できるということです。
この洞察に基づいて、APR 用の簡単なプロンプト フレームワークである D4C を設計しました。
D4C は、Defects4J で 180 個のバグを正しく修復できますが、各パッチは 10 回だけサンプリングされます。
これは、完全な障害位置特定を行う SOTA APR メソッドを 10% 上回り、パッチのサンプリング数を 90% 削減します。
私たちの調査結果は、(1) LLM の事前トレーニングされた機能を最大限に活用するには、客観的な調整が重要であること、(2) LLM ベースの APR 手法では、従来のローカライズ→バグのあるハンク→修復のワークフローを直接デバッグに置き換えることがより効果的であることを明らかにしています。
したがって、このホワイトペーパーは、APR で LLM を活用するための新しい考え方を紹介すると考えています。

要約(オリジナル)

Large language models (LLMs) have achieved decent results on automated program repair (APR). However, the next token prediction training objective of decoder-only LLMs (e.g., GPT-4) is misaligned with the masked span prediction objective of current infilling-style methods, which impedes LLMs from fully leveraging pre-trained knowledge for program repair. In addition, while some LLMs can locate and repair bugs in certain functions using the related artifacts (e.g., test cases), existing methods still depend on statement-level fault localization methods to provide a list of buggy hunks for repair. This restriction hinders LLMs from exploring potential patches beyond the given locations. In this paper, we investigate a new approach to adapt LLMs to program repair. Our core insight is that LLM’s APR capability can be greatly improved by simply aligning the output to their training objective and allowing them to refine the whole program without first identifying faulty statements. Based on this insight, we designed D4C, a straightforward prompting framework for APR. D4C can repair 180 bugs correctly in Defects4J, with each patch being sampled only 10 times. This surpasses the SOTA APR methods with perfect fault localization by 10% and reduces the patch sampling number by 90%. Our findings reveal that (1) objective alignment is crucial for fully exploiting LLM’s pre-trained capability, and (2) replacing the traditional localize-buggy-hunks-then-repair workflow with direct debugging is more effective for LLM-based APR methods. Thus, we believe this paper introduces a new mindset for harnessing LLMs in APR.

arxiv情報

著者 Junjielong Xu,Ying Fu,Shin Hwei Tan,Pinjia He
発行日 2024-11-11 14:35:45+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL, cs.LG, cs.SE パーマリンク