CoSPlay: 자체 생성된 코드와 유닛 테스트를 활용한 테스트 단계에서의 협력적 셀프 플레이 (Cooperative Self-Play at
요약
CoSPlay는 정답 유닛 테스트(GT UTs) 없이도 코드와 테스트를 동시에 개선하는 협력적 셀프 플레이 프레임워크입니다. 코드-유닛 테스트 실행 행렬의 통과 횟수 신호를 활용해 두 요소를 상호 진화시키며, 학습 없이도 높은 코드 생성 성능을 달성합니다.
핵심 포인트
- 정답 유닛 테스트가 없는 환경에서도 작동하는 GT-free 프레임워크
- 코드와 유닛 테스트를 공동으로 개선하는 협력적 셀프 플레이 방식
- Qwen2.5-7B 모델에서 BoN 및 유닛 테스트 정확도 대폭 향상
- 학습이 필요 없는(training-free) 확장 가능한 추론 전략 제안
최근 검증 가능한 보상을 활용한 강화학습 (RLVR, Reinforcement Learning with Verifiable Rewards)과 테스트 단계 스케일링 (TTS, Test-Time Scaling)은 실행 가능한 검증을 통해 LLM 코드 생성 능력을 발전시켜 왔습니다. 하지만 정답 유닛 테스트 (GT UTs, Ground-Truth Unit Tests)가 여전히 병목 현상으로 남아 있습니다. 최첨단 (SOTA) RLVR 방식은 비용이 많이 드는 학습을 위해 이를 필요로 하며, 기존의 TTS 방식은 정답 유닛 테스트가 없으면 경쟁력을 잃습니다. 이는 정답(GT)이 없는 TTS에 대한 동기를 부여하며, 여기서 기존 방식들은 자체 생성된 유닛 테스트 (UTs)를 직접 사용하여 코드 후보를 개선하고 선택합니다. 그러나 이러한 유닛 테스트는 종종 노이즈가 섞여 있거나 잘못된 코드와 가짜로 결합되어 있으며, 반대로 신뢰할 수 있는 코드 없이는 유닛 테스트의 품질을 검증할 수 없습니다. 따라서 핵심 과제는 이 두 가지를 공동으로 개선하는 것입니다.
이를 위해 우리는 협력적 셀프 플레이 (Cooperative Self-Play)를 통해 코드와 유닛 테스트를 공동으로 개선하는 GT-free, 학습이 필요 없는 (training-free) 프레임워크인 CoSPlay를 제안합니다. 이 방식은 먼저 다양한 해결 아이디어를 탐색하고 잠재적인 실패 모드를 식별하여 변별력 있는 유닛 테스트 아이디어를 생성합니다. 그다음 코드-유닛 테스트 (Code-UT) 실행 행렬로부터 얻은 양방향 통과 횟수 (pass-count) 신호를 사용하여 취약한 코드를 반복적으로 가지치기하거나 수정하고, 신뢰할 수 없는 유닛 테스트를 갱신하거나 교체함으로써 두 풀 (pool)이 함께 진화하도록 합니다. 마지막으로, 여러 코드가 가장 높은 통과 횟수에서 동률을 이룰 경우, 가장 큰 출력 합의 클러스터 (output-consensus cluster)에서 최종 코드를 선택합니다. 이는 올바른 코드는 동일한 입력에 대해 일치하는 반면, 잘못된 코드는 서로 갈라지기 때문입니다.
네 가지 도전적인 벤치마크에 대한 실험 결과, Qwen2.5-7B-Instruct 모델에 적용된 CoSPlay는 평균 BoN (Best-of-N)을 22.1%에서 33.2%로, 유닛 테스트 정확도를 14.6%에서 78.3%로 향상시켜 RLVR 모델인 CURE-7B와 대등하거나 이를 능가하는 성능을 보였습니다. CURE-7B에 적용했을 때는 BoN을 5.7% 추가로 향상시켰습니다. 또한 CoSPlay는 다양한 백본 (backbone) 모델에 걸쳐 일반화 성능을 보였으며, 유사한 토큰 예산 하에서 GT-free TTS 베이스라인 모델들을 능가하였고, 예산이 늘어남에 따라 성능 향상이 지속되었습니다. 이러한 결과는 어떠한 정답 (GT) 데이터 없이도 경쟁력 있는 코드 생성을 위한 확장 가능한 추론 전략을 시사합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.CL (NLP)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기