[논문 리뷰] Large Language Models for Test-Free Fault Localization
이 논문은 테스트 커버리지나 프로그램 분석 없이 버그가 있는 코드 라인을 식별할 수 있는 최초의 대규모 언어 모델(LLM) 기반 결함 로컬라이제이션 방법인 LLMAO를 제안한다. 코드 최적화된 LLM(예: CodeGen) 위에 양방향 어댑터 레이어를 피지터너닝하여, 기존의 기계학습 기반 방법에 비해 최대 54.4%와 35.6% 향상된 상위 1위 및 상위 5위 결함 로컬라이제이션 정확도를 달성한다.
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.
연구 동기 및 목표
- 테스트 커버리지, 프로그램 인스트루멘테이션 또는 광범위한 사전 처리에 의존하는 기존 결함 로컬라이제이션 기법의 한계를 해결하기 위해.
- 소수의 예제를 활용한 few-shot 학습을 통해 대규모 언어 모델(LLM)이 테스트 없는 라인 수준의 결함 로컬라이제이션에 적합하게 조정될 수 있는지 탐색하기 위해.
- 표준 LLM의 왼쪽에서 오른쪽으로의 자동회귀적 제약을 해결하여, 결함 로컬라이제이션과 같은 분류 작업에 적합하도록 하기 위해.
- 기반 LLM의 크기를 늘릴 경우 결함 로컬라이제이션 성능이 향상되는지 평가하기 위해.
- 테스트 케이스나 컴iles블 코드 없이도 LLM이 라인 수준에서 보안 취약성을 탐지할 수 있는지 입증하기 위해.
제안 방법
- 코드 최적화된 사전 학습된 LLM(예: 350M, 6B, 16B 파라미터를 가진 CodeGen 등) 위에 소형이고 경량인 양방향 어댑터 레이어를 미세조정하여 이중 방향의 문맥 이해 능력을 제공한다.
- Defects4J, BugsInPy, Devign에서 수집한 버그가 있는 프로그램의 소규모 수동 커리레이티드 데이터셋을 사용해 어댑터 레이어를 미세조정한다.
- LLM의 깊은 의미적 이해 능력을 활용해 전체 프로그램의 문맥을 바탕으로 각 코드 라인의 버그 가능성 확률을 예측하도록 모델을 훈련시킨다.
- 표준 LLM의 내재된 자동회귀적 편향을 극복하기 위해, 토큰의 왼쪽과 오른쪽 양방향 문맥에 모두 주목할 수 있도록 어댑터 레이어를 도입한다.
- 모델의 어텐션 메커니즘을 활용해 각 라인의 의심스러움 점수를 계산하며, 높은 점수일수록 버그일 가능성이 높다는 것을 의미한다.
- 다양한 벤치마크와 모델 크기에서 표준 결함 로컬라이제이션 메트릭(예: 상위 1위, 상위 5위, AUC)을 사용해 성능을 평가한다.

실험 결과
연구 질문
- RQ1테스트 커버리지나 프로그램 분석에 의존하지 않고도 대규모 언어 모델(LLM)을 효과적으로 미세조정하여 테스트 없는 라인 수준의 결함 로컬라이제이션을 수행할 수 있는가?
- RQ2기반 모델의 크기가 커질수록 LLM 기반의 결함 로컬라이제이션 성능이 향상되는가?
- RQ3양방향 어댑터 레이어를 사용할 경우 표준 왼쪽에서 오른쪽으로의 LLM보다 결함 로컬라이제이션 정확도가 향상되는가?
- RQ4LLM 기반의 결함 로컬라이제이션은 테스트 케이스 없이도 보안 취약성을 라인 수준에서 탐지할 수 있는가?
- RQ5정밀도와 재현율 측면에서 LLMAO는 기존 최상위 기계학습 기반 결함 로컬라이제이션 기법보다 어떻게 비교되는가?
주요 결과
- LLMAO는 가장 강력한 기존 기계학습 기반 기준 모델 대비 상위 1위 결함 로컬라이제이션 정확도를 2.3%에서 최대 54.4% 향상시켰다.
- LLMAO는 기존 최상위 기계학습 기반 방법 대비 상위 5위 결함 로컬라이제이션 정확도를 14.4%에서 최대 35.6% 향상시켰다.
- LLM 크기에 따라 성능이 일관되게 향상되며, 16B 파라미터를 가진 CodeGen 기반 모델이 모든 데이터셋에서 가장 높은 AUC를 기록했다.
- 양방향 어댑터 레이어의 사용은 최상의 성능을 달성하기 위해 필수적이며, 이는 모델이 양방향 문맥에 모두 접근할 수 있도록 해준다.
- LLMAO는 테스트 케이스나 컴iles블 코드 없이도 라인 수준에서 보안 취약성을 탐지할 수 있는 최초의 딥러닝 기반 접근법이다.
- 모델은 세 가지 다른 벤치마크에서 뛰어난 성능을 보였으며, Defects4J에서 395개, BugsInPy에서 493개, Devign에서 5,260개의 버그를 성공적으로 탐지했다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.