Core Concepts
대형 언어 모델에게 코드 실행 추적 정보를 활용하여 자연어로 코드 실행 동작을 설명하고 디버깅하는 능력을 가르치는 방법
Abstract
이 논문은 대형 언어 모델(LLM)에게 코드 실행에 대한 추론 능력을 가르치는 방법인 NExT(Naturalized Execution Tuning)를 제안한다.
LLM은 일반적으로 코드의 표면적인 텍스트 형태만을 학습하기 때문에 실행 시간의 의미론적 이해가 부족하다. NExT는 LLM이 코드 실행 추적 정보(실행된 라인의 변수 상태)를 검사하고 자연어로 실행 동작을 설명하는 능력을 기르도록 한다.
NExT는 자가 학습 기반의 접근법을 사용한다. 먼저 LLM으로부터 코드 수정 솔루션과 자연어 설명을 샘플링한다. 이 후보 솔루션들은 단위 테스트 실행 결과를 통해 필터링되며, 모든 테스트를 통과한 솔루션들을 사용하여 모델을 fine-tuning한다. 이 과정을 반복하면서 모델의 코드 수정 성공률과 설명의 품질이 향상된다.
실험 결과, NExT를 적용한 PaLM 2-L 모델은 Mbpp-R 벤치마크에서 기존 모델 대비 26.1% 더 높은 코드 수정 성공률을 보였으며, 자연어 설명의 품질도 크게 향상되었다. 또한 HumanEvalFix-Plus 벤치마크에서도 14.3% 더 높은 성능을 보였다. 흥미롭게도 NExT 모델은 실행 추적 정보가 없는 상황에서도 강건하게 일반화되었다.
Stats
코드 수정 성공률이 PaLM 2-L 모델 대비 Mbpp-R에서 26.1% 더 높았다.
HumanEvalFix-Plus 벤치마크에서 14.3% 더 높은 성능을 보였다.
실행 추적 정보가 없는 상황에서도 21.8% 더 높은 성능을 보였다.
Quotes
"LLM은 일반적으로 코드의 표면적인 텍스트 형태만을 학습하기 때문에 실행 시간의 의미론적 이해가 부족하다."
"NExT는 LLM이 코드 실행 추적 정보를 검사하고 자연어로 실행 동작을 설명하는 능력을 기르도록 한다."
"NExT를 적용한 PaLM 2-L 모델은 Mbpp-R 벤치마크에서 기존 모델 대비 26.1% 더 높은 코드 수정 성공률을 보였다."