[논문 리뷰] NExT: Teaching Large Language Models to Reason about Code Execution
NExT는 단위 테스트 피드백이 포함된 자기훈련을 통해 자연어로 프로그램 실행 흔적을 추론하도록 LLM들을 미세조정하여, 테스트 시 실행 흔적이 없더라도 Python 프로그램 수리 정확도와 근거 품질을 향상시킨다.
A fundamental skill among human developers is the ability to understand and reason about program execution. As an example, a programmer can mentally simulate code execution in natural language to debug and repair code (aka. rubber duck debugging). However, large language models (LLMs) of code are typically trained on the surface textual form of programs, thus may lack a semantic understanding of how programs execute at run-time. To address this issue, we propose NExT, a method to teach LLMs to inspect the execution traces of programs (variable states of executed lines) and reason about their run-time behavior through chain-of-thought (CoT) rationales. Specifically, NExT uses self-training to bootstrap a synthetic training set of execution-aware rationales that lead to correct task solutions (e.g., fixed programs) without laborious manual annotation. Experiments on program repair tasks based on MBPP and HumanEval demonstrate that NExT improves the fix rate of a PaLM 2 model, by 26.1% and 14.3% absolute, respectively, with significantly improved rationale quality as verified by automated metrics and human raters. Our model can also generalize to scenarios where program traces are absent at test-time.
연구 동기 및 목표
- LLM 기반 코드 작업에서 런타임 동작에 대한 추론 필요성에 대해 동기를 부여한다.
- CoT 합리화를 사용하여 실행 흔적을 추론하도록 LLM에 가르치는 Naturalized Execution Tuning (NExT)을 제안한다.
- 단위 테스트로 필터링하고 실행 인식 가능한 합리화 및 수정으로 미세조정하는 약한 지도 학습 루프를 개발한다.
- 코드 구조를 해치지 않으면서 LLM 이해를 돕는 간결한 인라인 코드 주석으로 실행 흔적을 표현한다.
- Mbpp-R 및 HumanEvalFix-Plus 벤치마크에서 NExT를 평가하고, 내재적 및 외재적으로 합리화 품질을 분석한다.]
- method: [
제안 방법
- 실행 순서로 인덱싱된 인라인 주석으로 프로그램 실행 흔적을 표현하여 런타임 상태를 포착한다.
- 자연어 합리화와 수정 생성을 위해 프롬프트 기반의 CoT 추론 접근법을 사용한다.
- 샘플링 → 단위 테스트 필터링 → 학습의 약한 지도 루프를 적용하여 어려운 문제로부터 합성 학습 데이터를 만든다.
- 다양한 반복에서 합성 데이터로 기본 LLM(PaLM 2-L)을 미세조정하고 dev pass@1로 최상의 체크포인트를 선택한다.
- 합리화 품질을 지표화하기 위해 합리화를 조건으로 한 작은 LMs를 사용한 프록시 기반 메트릭으로 평가한다.
- 실험 시 traces가 없더라도 테스트 시간 시나리오 및 분포 외 수리 작업에서 일반화를 테스트한다.
실험 결과
연구 질문
- RQ1LLMs가 실행 흔적이 주어졌을 때 프로그램 실행을 효과적으로 추론할 수 있는가?
- RQ2훈련 중 실행 인식 CoT 합리화를 추가하는 것이 수정 정확도와 합리화 품질을 향상시키는가?
- RQ3테스트 시 흔적이 없거나 분포 외 작업에서 NExT가 일반화되는가?
- RQ4생성된 합리화가 인간과 프록시 메트릭으로 판단했을 때 버그를 의미 있게 설명하고 수정을 제안하는가?
주요 결과
- NExT는 PaLM 2-L의 엔드-투-엔드 수정 속도에서 상당한 향상을 보이며 Mbpp-R pass@1에서 절대적 증가(예: 26.1%)를 달성한다.
- 합리화 품질은 프록시 기반 메트릭과 인간 평가를 통해 NExT로 개선된다.
- PaLM 2-L+NExT는 여러 강력한 LLM을 능가하고 엔드-투-엔드 수정 지표에서 GPT-3.5와 경쟁력이 있다.
- 테스트 시 흔적이 없어도 PaLM 2-L+NExT는 베이스라인 대비 주목할 만한 개선을 유지한다.
- NExT는 HeFix+에 일반화되며 기본 모델보다 더 높은 품질의 합리화를 보여준다.
- 추출 연구에서 실행 흔적과 CoT를 통한 추론이 이득의 핵심임을 보여주며, 흔적이나 합리화를 제거하면 성능이 저하된다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.