Skip to main content
QUICK REVIEW

[논문 리뷰] Automated Repair of Programs from Large Language Models

Zhiyu Fan, Xiang Gao|arXiv (Cornell University)|2022. 05. 21.
Software Engineering Research인용 수 9
한 줄 요약

이 논문은 대규모 언어 모델(LM)인 Codex와 같은 모델이 생성한 코드의 신뢰성을 향상시키기 위해 자동 프로그램 수리(APR) 기법이 효과적인지 조사한다. 특히 경쟁 프로그래밍 맥락에서의 적용을 중심으로 분석한다. 연구 결과, 고장 위치 진단을 통해 안내받는 경우, APR 도구—특히 Codex의 편집 모드—가 생성된 코드의 많은 버그를 효과적으로 수정할 수 있음을 확인하였다. 이는 언어 모델과 APR를 융합함으로써 코드 품질과 내구성을 크게 향상시킬 수 있음을 시사한다.

ABSTRACT

Large language models such as Codex, have shown the capability to produce code for many programming tasks. However, the success rate of existing models is low, especially for complex programming tasks. One of the reasons is that language models lack awareness of program semantics, resulting in incorrect programs, or even programs which do not compile. In this paper, we systematically study whether automated program repair (APR) techniques can fix the incorrect solutions produced by language models in LeetCode contests. The goal is to study whether APR techniques can enhance reliability in the code produced by large language models. Our study revealed that: (1) automatically generated code shares common programming mistakes with human-crafted solutions, indicating APR techniques may have potential to fix auto-generated code; (2) given bug location information provided by a statistical fault localization approach, the newly released Codex edit mode, which supports editing code, is similar to or better than existing Java repair tools TBar and Recoder in fixing incorrect solutions. By analyzing the experimental results generated by these tools, we provide several suggestions: (1) enhancing APR tools to surpass limitations in patch space (e.g., introducing more flexible fault localization) is desirable; (2) as large language models can derive more fix patterns by training on more data, future APR tools could shift focus from adding more fix patterns to synthesis/semantics based approaches, (3) combination of language models with APR to curate patch ingredients, is worth studying.

연구 동기 및 목표

  • Codex와 같은 대규모 언어 모델에서 자동으로 생성된 코드에 존재하는 버그의 유형을 분석하기 위해.
  • 기존의 자동 프로그램 수리(APR) 도구—TBar와 Recoder—가 LLM 생성 코드의 버그를 수정하는 데 얼마나 효과적인지 평가하기 위해.
  • Codex의 편집 모드(Codex-e)가 자동 생성된 프로그램을 수리하기 위한 새로운 APR 기법으로서의 성능을 평가하기 위해.
  • 언어 모델과 APR를 융합하여 수리 패턴과 고장 위치 진단을 개선함으로써 코드 품질을 향상시키는 잠재력을 탐색하기 위해.
  • 현재 APR 접근법의 핵심적 한계를 규명하고, LLM 생성 코드의 수리 가능성 향상을 위한 향후 연구 방향을 제안하기 위해.

제안 방법

  • LeetCode에서 113개의 프로그래밍 문제를 수집하고, Codex를 사용해 솔루션을 생성하여 LMDefects 데이터셋을 구성하였다.
  • 통계적 고장 위치 진단(SFL)을 적용하여 잘못된 솔루션에서 버그가 발생할 만한 위치를 식별하고, APR 도구의 가이드라인을 제공하였다.
  • 테스트 셋을 사용하여 기존의 APR 도구(TBar와 Recoder)가 Codex가 생성한 코드의 버그를 수정하는 능력을 평가하였다.
  • Codex-e를 블랙박스 수리 도구로 사용하여 자연어 지시와 고장 위치 힌트를 제공함으로써 패치를 생성하였다.
  • 고장 위치 진단 가이드라인 유무에 따라 TBar, Recoder, Codex-e의 수리 성공률를 비교 분석하였다.
  • 패치 특성과 버그 패턴을 분석하여 LLM 생성 코드에서 반복적으로 나타나는 결함과 수리 과제를 규명하였다.
Figure 1: The workflow of automatically fixing programs generated by Codex
Figure 1: The workflow of automatically fixing programs generated by Codex

실험 결과

연구 질문

  • RQ1Codex와 같은 대규모 언어 모델에서 생성된 코드에 흔히 발생하는 버그의 유형은 무엇인가?
  • RQ2기존의 패턴 기반 및 학습 기반 APR 도구(TBar, Recoder 등)는 LLM 생성 코드의 버그를 수정하는 데 얼마나 효과적인가?
  • RQ3Codex의 편집 모드(Codex-e)는 대규모 언어 모델의 잘못된 솔루션을 수정하는 데 기존의 APR 도구를 초월할 수 있는가?
  • RQ4고장 위치 정보를 포함할 경우, Codex-e가 생성하는 패치의 품질과 성공률는 어떻게 영향을 받는가?
  • RQ5현재 APR 기법이 LLM 생성 코드에 적용되었을 때의 핵심적 한계는 무엇이며, 언어 모델의 능력을 기반으로 향후 APR 연구는 어떻게 이끌어가야 하는가?

주요 결과

  • Codex가 생성한 코드의 57%의 버그는 알고리즘적 오류이며, 11%는 문법 오류로, LLM도 인간 프로그래머와 유사한 실수를 한다는 것을 시사한다.
  • 13.4%의 버그는 단순한 수정(예: 연산자나 변수 교체)으로 해결되며, 18.5%는 더 큰 코드 수정이 필요하여 수리의 복잡도가 높음을 보여준다.
  • 고장 위치 진단 가이드라인 제공 시, Codex-e는 TBar와 Recoder를 모두 능가하는 성능을 보이며 더 높은 수리 성공률를 기록하였다.
  • 명시적인 고장 위치 정보가 없더라도, Codex-e는 기존의 APR 도구와 유사하거나 더 나은 성능을 보이며, 민첩한 수리 메커니즘으로서의 잠재력을 확인하였다.
  • 기존 APR 도구는 검색 공간이 제한적이고, 다중 편집 패치 생성 능력이 떨어지며 프로그램 종속성에 대한 인식이 부족하여, 확장성과 표현력 측면에서 핵심적 한계를 드러냈다.
  • 본 연구는 향후 APR 연구가 고장 위치 진단의 유연성 향상과 대규모 코드 생성 데이터에서 자동으로 수리 패턴을 캐리어하는 데 언어 모델의 능력을 활용해야 한다고 제안한다.
Figure 7: The repair results of different APR tools
Figure 7: The repair results of different APR tools

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.