MoTCoder: 복잡한 프로그래밍 과제를 위한 사고의 모듈성으로 대규모 언어 모델의 성능을 한층 끌어올리다

대규모 언어 모델(LLMs)은 간단한 프로그래밍 작업 처리에 있어 놀라운 능력을 보여주고 있다. 그러나 더 복잡한 프로그래밍 문제에 직면할 경우 성능이 급격히 저하되는 경향을 보인다. 기존 모델들은 종종 단일한 코드 블록으로 해결책을 생성함으로써 복잡한 문제를 해결하는 데 있어 제한을 받는다. 이러한 한계를 극복하기 위해 우리는 '사고의 모듈(Module-of-Thought, MoT)' 개념을 기반으로 한 새로운 프로그래밍 모델인 MoTCoder를 제안한다. 본 연구에서는 논리적인 하위 작업과 하위 모듈로 문제를 분해하도록 유도하는 MoT 지시 훈련 프레임워크를 도입하였다. 우리의 실험 결과에 따르면, 하위 모듈을 체계적으로 개발하고 활용함으로써 MoTCoder는 생성된 솔루션의 모듈성과 정확도 모두를 크게 향상시켰으며, APPS에서 pass@1 지표가 5.9% 향상되었고, CodeContests에서는 5.8% 개선되었다. 또한 MoTCoder는 자체 수정(self-correction) 능력에서도 두드러진 성능 향상을 보였으며, 현재 최고 성능(SOTA) 모델을 3.3% 초과하는 결과를 달성했다. 더불어 문제의 복잡도와 최적의 모듈 분해 방식 간의 관계를 분석하고 유지보수성 지수(maintainability index)를 평가함으로써, MoTCoder가 생성한 코드가 이해하기 쉽고 수정이 용이함을 확인하였다. 이는 장기적인 코드 유지보수와 진화에 유리한 특성을 지닌다는 것을 시사한다. 본 연구의 코드는 https://github.com/dvlab-research/MoTCoder 에서 공개되어 있다.