PreciseCoder: 단위 테스트 보상 이상의 충실하고 일반화 가능한 디버깅
요약
본 논문은 단위 테스트만으로는 디버깅 과정에서 모델에게 불충분한 보상을 제공함을 분석하고, 이를 개선하기 위해 PreciseCoder라는 새로운 훈련 알고리즘을 제안합니다. 이 방법은 의미론적으로 검증된 국소적 편집 신호를 추가하여, 적은 수정으로 높은 패스율을 달성하는 효율적인 디버깅 모델을 만듭니다.
핵심 포인트
- 단순 단위 테스트 보상은 모델에게 불충분한 학습 신호임.
- PreciseCoder는 의미론적으로 검증된 국소적 편집 신호를 추가함.
- 모델의 평균 편집 라인 수를 7-15개에서 3개로 크게 줄여 효율성을 높임.
- 훈련된 정밀도가 최첨단 모델(GPT-5.6 Sol 등)에 전이되어 성능 향상을 가져옴.
단위 테스트를 통한 강화학습 (RL)은 사후 훈련 코드 모델에 흔히 사용되는 방식이지만, 단위 테스트는 최종 프로그램이 통과하는지 여부만을 확인합니다. 우리는 이처럼 단위 테스트만으로 얻는 보상이 디버깅 과정에서 모델에게 무엇을 가르치는지 분석했고, 이는 패스율을 높이는 동시에 모델에게 더 많이 수정하도록 하고 이미 올바른 코드에서 버그를 환각(hallucinate)하도록 가르친다는 것을 발견했습니다. 우리는 단위 테스트 보상에 의미론적으로 검증된 국소적 편집(localized edits) 신호를 추가하는 훈련 알고리즘인 PreciseCoder를 소개합니다. 이 신호는 더 적은 수정과 높은 패스율과 상관관계가 있습니다. 4B, 9B, 그리고 27B 모델에서 PreciseCoder는 단위 테스트만으로 훈련한 경우와 비슷한 패스율을 유지하면서 평균 편집 라인 수를 7-15개에서 3개로 줄였습니다. 단일 라인 버그에 대해서만 훈련된 PreciseCoder는 저장소 수준의 프로그램 복구(repository-level program repair)에도 일반화될 수 있으며, 여기서 더 적은 패치로 더 많은 문제를 해결합니다. 또한 그 정밀도는 약한 모델에서 강한 모델로 전이됩니다: 9B PreciseCoder 모델의 추론 과정을 제공하면, GPT-5.6 Sol이나 Qwen3.8-Max와 같은 최첨단(frontier) 모델들이 추가적인 훈련 없이 편집 정밀도에서 4.6~12.4점의 향상을 얻습니다. 사고 과정(thinking traces)에 대한 언어학적 분석은 우리의 보상이 모델이 개별 라인에 대해 추론하고, 버그가 있는 라인을 명명하며, 일관된 버그 가설을 형성하도록 장려한다는 것을 보여줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기