Skip to main content
QUICK REVIEW

[論文レビュー] Large Language Models for Test-Free Fault Localization

Aidan Z. H. Yang, Ruben Martins|arXiv (Cornell University)|Oct 3, 2023
Software Engineering Research被引用数 4
ひとこと要約

本稿では、テストカバレッジやプログラム解析に依存せずに、バグのあるコード行を特定する、最初の大規模言語モデル(LLM)ベースの故暲局所化手法LLMAOを提案する。コード最適化されたLLM(例:CodeGen)の上に双方向アダプターレイヤーをファインチューニングすることで、最先端の性能を達成し、従来の機械学習ベースの手法と比較して、Top-1およびTop-5の故暲局所化精度をそれぞれ最大54.4%および35.6%向上する。

ABSTRACT

Fault Localization (FL) aims to automatically localize buggy lines of code, a key first step in many manual and automatic debugging tasks. Previous FL techniques assume the provision of input tests, and often require extensive program analysis, program instrumentation, or data preprocessing. Prior work on deep learning for APR struggles to learn from small datasets and produces limited results on real-world programs. Inspired by the ability of large language models (LLMs) of code to adapt to new tasks based on very few examples, we investigate the applicability of LLMs to line level fault localization. Specifically, we propose to overcome the left-to-right nature of LLMs by fine-tuning a small set of bidirectional adapter layers on top of the representations learned by LLMs to produce LLMAO, the first language model based fault localization approach that locates buggy lines of code without any test coverage information. We fine-tune LLMs with 350 million, 6 billion, and 16 billion parameters on small, manually curated corpora of buggy programs such as the Defects4J corpus. We observe that our technique achieves substantially more confidence in fault localization when built on the larger models, with bug localization performance scaling consistently with the LLM size. Our empirical evaluation shows that LLMAO improves the Top-1 results over the state-of-the-art machine learning fault localization (MLFL) baselines by 2.3%-54.4%, and Top-5 results by 14.4%-35.6%. LLMAO is also the first FL technique trained using a language model architecture that can detect security vulnerabilities down to the code line level.

研究の動機と目的

  • テストカバレッジ、プログラムインストルメンテーション、または大量の前処理に依存する既存の故暲局所化技術の限界を解消すること。
  • 少量のショット学習を用いて、大規模言語モデル(LLM)をテストなし、行単位の故暲局所化に適応可能かどうかを調査すること。
  • 標準的なLLMの左から右への自己回帰的制約を、故暲局所化のような判別的タスクにおいて克服すること。
  • 基盤となるLLMのスケーリングが故暲局所化性能に与える影響を評価すること。
  • テストケースやコンパイル可能コードが不要な状況でも、LLMがセキュリティ脆弱性を行単位で検出可能かどうかを示すこと。

提案手法

  • コード最適化された事前学習済みLLM(例:350M、6B、16Bパラメータを有するCodeGenなど)の上に、小型で軽量な双方向アダプターレイヤーをファインチューニングし、双方向の文脈理解を可能にする。
  • Defects4J、BugsInPy、Devignから収集したバグありプログラムの小規模で手動でキュレートされたデータセットを用いて、アダプターレイヤーをファインチューニングする。
  • LLMが深い意味的理解を活用することで、全プログラムの文脈に基づいて各コード行がバグである可能性を予測するようにモデルを訓練する。
  • 標準的なLLMに内在する自己回帰的バイアスを克服するため、トークンの左および右の文脈に同時に注目できるアダプターレイヤーを導入する。
  • モデルのアテンションメカニズムを用いて、各行の不審度スコアを計算し、スコアが高いほどバグである可能性が高くなるようにする。
  • 複数のベンチマークおよびモデルサイズで、標準的な故暲局所化指標(例:Top-1、Top-5、AUC)を用いて性能を評価する。
Figure 2 . LLMAO ’s architecture, which takes as input a buggy program and produces a list of suspiciousness scores for each code line
Figure 2 . LLMAO ’s architecture, which takes as input a buggy program and produces a list of suspiciousness scores for each code line

実験結果

リサーチクエスチョン

  • RQ1テストカバレッジやプログラム解析に依存せず、テストなしで行単位の故暲局所化に効果的にファインチューニング可能な大規模言語モデル(LLM)は存在するか?
  • RQ2基盤となるモデルのサイズが大きくなるに従い、LLMベースの故暲局所化性能は向上するか?
  • RQ3双方向アダプターレイヤーは、標準的な左から右へのLLMと比較して、故暲局所化精度を向上させることができるか?
  • RQ4LLMベースの故暲局所化は、テストケースが不要な状況でも、行単位でのセキュリティ脆弱性を検出可能か?
  • RQ5精度と再現率の観点から、LLMAOは最先端の機械学習ベースの故暲局所化手法と比較してどのように差をつけるか?

主な発見

  • LLMAOは、最も強力な既存の機械学習ベースのベースラインと比較して、Top-1故暲局所化精度を2.3%から54.4%まで向上させる。
  • LLMAOは、既存の最先端手法と比較して、Top-5故暲局所化精度を14.4%から35.6%まで向上させる。
  • LLMのサイズに応じて性能が一貫して向上し、16Bパラメータを有するCodeGenベースのモデルが、すべてのデータセットで最高のAUCを達成する。
  • 双方向アダプターレイヤーの使用は、状態の最良の結果を達成するために不可欠であり、モデルが両方向の文脈にアクセス可能になるからである。
  • LLMAOは、テストケースやコンパイル可能コードが不要な状況でも、行単位でセキュリティ脆弱性を局所化できる最初のディープラーニングベースの手法である。
  • モデルは3つの異なるベンチマークで強力な性能を発揮し、Defects4Jの395件、BugsInPyの493件、Devignの5,260件のバグを正しく特定する。
Figure 4 . Attention masking procedure of LLMAO
Figure 4 . Attention masking procedure of LLMAO

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

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

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

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