코드에서 정확성까지: 계층적 디버깅을 활용한 코드 생성의 마지막 단계 완성

대형 언어 모델(Large Language Models, LLM)은 코드 생성에서 상당한 발전을 이루어냈지만, 생성된 코드의 통과율은 미묘한 오류로 인해 제약을 받고 있어, 특히 복잡한 문제에서는 테스트를 통과하기 위해 인간의 개입이 자주 필요합니다. 기존의 LLM 기반 디버깅 시스템들은 생성된 프로그램을 단일 단위로 취급하여, 저수준 문법 오류부터 고수준 알고리즘 결함까지 다양한 수준의 오류를 해결하지 못하고 있습니다. 본 논문에서는 이러한 문제를 해결하기 위해 다중 수준 디버거(Multi-Granularity Debugger, MGDebugger)를 소개합니다. MGDebugger는 문제 코드를 하위 함수들의 계층적 트리 구조로 분해하여, 각 수준에서 특정 오류의 세부 사항을 격리하고 식별하며 해결하는 계층적 코드 디버깅 도구입니다.디버깅 과정에서 MGDebugger는 각 하위 함수를 분석하고 하향식으로 반복적으로 버그를 해결합니다. 각 하위 함수를 효과적으로 테스트하기 위해, 우리는 LLM 시뮬레이션 Python 실행기(LLM-simulated Python executor)를 제안합니다. 이 실행기는 코드 실행을 추적하고 중요한 변수 상태를 기록하여 오류를 정확히 파악할 수 있도록 합니다. 광범위한 실험 결과, MGDebugger는 기존 디버깅 시스템들보다 우수한 성능을 보여주며, HumanEval에서 초기 생성 대비 18.9%의 정확도 향상과 HumanEvalFix에서 97.6%의 수정 성공률을 달성하였습니다.또한, MGDebugger는 다양한 범주와 난이도에 걸친 버그들을 효과적으로 수정하는 능력을 보여주어 그 탄탄함과 효율성을 입증하였습니다.