코드스케일러: 실행 없이 코드 LLM을 학습·추론까지 확장하는 보상 모델
초록
코드스케일러는 실행 기반 테스트 없이도 코드 생성 모델을 강화학습으로 훈련하고, 추론 시에도 빠르게 순위를 매길 수 있는 고성능 보상 모델이다. 검증된 코딩 문제에서 만든 선호 데이터와 구문 인식 코드 추출, 유효성 보존 보상 형태를 결합해 학습 안정성을 확보했으며, 5개 벤치마크에서 평균 +11.72 점 향상, 기존 실행 기반 RL보다 +1.82 점 앞섰다. 테스트 시에는 단일 패스로 후보를 평가해 10배 낮은 지연시간을 제공한다. 또한 RM‑Bench에서도 코드·일반·추론 영역 전반에 걸쳐 기존 모델을 능가한다.
상세 분석
코드스케일러는 기존 RL‑VR(Execution‑based Reinforcement Learning from Verifiable Rewards)의 근본적인 한계—고품질 테스트 케이스의 부족과 실행 비용—를 해결하기 위해 설계된 실행‑free 보상 모델이다. 핵심 설계는 크게 세 부분으로 나뉜다. 첫째, 선호 데이터 구축 단계에서 저자들은 DeepCoder와 같은 검증된 문제 집합(24 K 문제)에서 RL‑VR로 학습된 정책(Qwen‑3‑8B‑Base)의 온‑폴리시 롤아웃을 수집한다. 이 롤아웃은 정답(모든 테스트 통과)과 오답(하나라도 실패)으로 라벨링된 코드 쌍을 제공하며, 동일 문제 내에서만 비교하는 것이 아니라 다른 문제에서 생성된 코드를 부정 샘플로 추가해 모델이 문제‑코드 매칭을 학습하도록 만든다.
둘째, 구문‑aware 코드 추출와 유효성‑보존 보상 형태가 도입된다. 보상 모델은 입력 응답에서 단일 코드 블록만을 추출하고, AST 파싱을 통해 구문 오류가 있는 경우 빈 문자열(ε)로 대체한다. 이렇게 하면 구문 오류가 있는 코드가 인위적으로 높은 점수를 받는 현상을 방지한다. 보상 자체는 로그‑시그모이드 변환 f(z)=ln(1+e^z) 를 적용해 양의 값만 반환하도록 설계했으며, ε에 대해서는 0을 부여해 명확한 패널티를 만든다. 이는 RL 훈련 시 “reward hacking”을 억제하고, 정책이 실제 실행 가능한 코드를 생성하도록 유도한다.
셋째, 학습 및 적용 전략이다. 보상 모델은 Bradley‑Terry 손실을 사용해 쌍별 선호를 학습한다(σ(r⁺−r⁻) 형태). RL 단계에서는 GRPO(Generalized PPO)와 V‑RL3를 활용해 정책을 업데이트하고, 보상은 위에서 정의한 R′(q,c)로 제공한다. 테스트‑time에서는 Best‑of‑N(BoN) 샘플링에 보상 모델을 직접 적용해 후보 코드를 한 번의 포워드 패스로 순위 매긴다. 이때 실행 기반 테스트와 비교해 평균 +1.82 점 차이(8‑candidate 평균 정확도)만을 보이며, 지연시간은 10배 감소한다.
실험 결과는 두 가지 축을 보여준다. (1) 훈련‑time 스케일링: 동일 모델(Qwen‑3‑8B‑Base)을 DeepCoder와 KodCode(447 K synthetic) 두 데이터셋으로 학습했을 때, synthetic 데이터만으로는 성능 격차가 존재했지만, 코드스케일러를 사용하면 synthetic 데이터에서도 RL‑VR 수준에 근접하거나 초과한다. (2) 테스트‑time 스케일링: LiveCodeBench, CodeContests, LiveBench, MBPP, CodeForces 등 5개 벤치마크에서 평균 +11.72 점 향상을 기록했으며, 특히 코드 도메인에서 RM‑Bench 점수가 +3.3 점, 일반·추론 도메인에서도 평균 +2.7 점 상승했다.
전체적으로 코드스케일러는 (a) 고품질 선호 데이터와 (b) 구문·유효성 보강를 결합해 실행‑free 보상 모델의 신뢰성을 크게 높였으며, (c) RL 훈련과 테스트‑time 후보 선택 모두에서 기존 실행 기반 방법을 대체하거나 보완할 수 있는 실용적인 솔루션을 제시한다. 향후 연구에서는 더 다양한 프로그래밍 언어와 복합적인 코드 구조(예: 클래스, 모듈)에도 적용 가능하도록 확장하고, 보상 모델의 해석 가능성을 높이는 방향이 기대된다.
댓글 및 학술 토론
Loading comments...
의견 남기기