13일 전

대규모 언어 모델에게 자가 디버깅 능력 가르치기

Xinyun Chen, Maxwell Lin, Nathanael Schärli, Denny Zhou
대규모 언어 모델에게 자가 디버깅 능력 가르치기
초록

대규모 언어 모델(LLM)은 코드 생성 과제에서 놀라운 성능을 달성해왔다. 그러나 복잡한 프로그래밍 작업에서는 한 번의 시도로 정확한 해결책을 생성하는 것이 어려워지며, 이에 따라 이전 연구들은 코드 생성 성능을 향상시키기 위해 프로그램 복구 기법을 설계해왔다. 본 연구에서는 소수의 예시를 통해 대규모 언어 모델이 자체 예측한 프로그램을 디버깅할 수 있도록 가르치는 '셀프 디버깅(Self-Debugging)'을 제안한다. 특히, 셀프 디버깅이 언어 모델에게 '고무오리 디버깅(rubber duck debugging)'을 수행하도록 가르칠 수 있음을 보여주며, 코드의 정확성에 대한 인간의 피드백이나 오류 메시지 없이도, 실행 결과를 분석하고 생성된 코드를 자연어로 설명함으로써 자신의 오류를 스스로 식별할 수 있음을 입증한다. 셀프 디버깅은 텍스트-SQL 생성을 위한 Spider 데이터셋, C++에서 Python으로의 번역을 위한 TransCoder, 텍스트-파이썬 생성을 위한 MBPP 등 여러 코드 생성 벤치마크에서 최고 수준의 성능을 달성했다. Spider 벤치마크에서는 예측의 정확성을 검증할 수 있는 단위 테스트가 없지만, 코드 설명을 활용한 셀프 디버깅은 기준 모델 대비 일관되게 2~3% 향상시키며, 가장 어려운 난이도의 문제에서 예측 정확도를 9% 향상시켰다. TransCoder와 MBPP에서는 단위 테스트가 존재하므로, 셀프 디버깅은 기준 모델의 정확도를 최대 12%까지 향상시켰다. 동시에, 실패한 예측을 재사용하고 피드백 메시지를 활용함으로써 셀프 디버깅은 샘플 효율성을 크게 향상시켜, 10배 이상의 후보 프로그램을 생성하는 기준 모델과 비교해도 동등하거나 더 뛰어난 성능을 발휘할 수 있다.

대규모 언어 모델에게 자가 디버깅 능력 가르치기 | 최신 연구 논문 | HyperAI초신경