실행 기반 신용 할당으로 GRPO 코드 생성 향상

본 논문은 GRPO 방식의 강화학습에서 발생하는 과도한 신용 분산 문제를 해결하기 위해, 실행 트레이스를 이용해 오류가 발생한 최초 위치를 정확히 찾아 토큰 수준으로 이득을 재분배하는 Execution‑Grounded Credit Assignment(EGCA)를 제안한다. EGCA는 기존 GRPO 대비 HumanEval에서 3.1%, MBPP에서 1.5%의 절대적 성능 향상을 달성하면서도 비판자(critic)나 추가 손실 없이 적용 가능하다.

저자: Abhijit Kumar, Natalya Kumar, Shikhar Gupta

실행 기반 신용 할당으로 GRPO 코드 생성 향상
본 논문은 강화학습 기반 코드 생성에서 검증 가능한 보상(RLVR) 방식을 사용하면서도, GRPO와 같은 비평가(critic‑free) 접근법이 갖는 신용 할당(coarse credit assignment) 문제를 해결하고자 한다. 기존 GRPO는 샘플링된 프로그램 그룹에 대해 전체 보상을 평균화한 뒤, 각 샘플에 동일하게 이득을 부여한다. 이 방식은 프로그램이 길어질수록, 특히 구문·구조는 정상인데 논리적 오류만 존재하는 경우, 잘못된 토큰에 대한 정확한 피드백이 희석돼 학습 효율이 떨어진다. 이를 극복하기 위해 저자들은 Execution‑Grounded Credit Assignment(EGCA)를 설계했다. EGCA는 크게 네 단계로 구성된다. 1. **레퍼런스 기반 제약 추출** - 각 문제 x에 대해 사전에 확보한 정답 레퍼런스 y_ref 를 사용한다. - 레퍼런스와 문제 설명을 입력으로 디버깅 전용 LLM이 알고리즘 제약 C={c1…cM}을 추출한다. 제약은 “정렬 방식은 O(n) 이하”, “리스트 사용 금지” 등 구조적·복잡도 조건을 포함한다. - 제약은 프롬프트에 삽입해 정책 πθ가 샘플링할 때 구조적으로 레퍼런스와 유사한 코드를 생성하도록 유도한다. 2. **실행 및 실패 모드 분류** - 샘플 y_i 를 실행하고, (a) 구문 오류, (b) 제약 위반, (c) 논리 오류, (d) 정답 네 가지 모드로 분류한다. - 구문 오류는 컴파일러가 반환하는 오류 위치를 토큰 스팬 T_err 로 바로 매핑한다. - 제약 위반은 구조적 비교(AST·CFG) 결과 I_cmp(y)=0 인 경우이며, 이때도 전체 이득을 제약 스팬에 할당한다. 3. **논리 오류에 대한 실행‑기반 발산 탐지** - LOGIC 모드에 해당하는 샘플은 레퍼런스와 동일 입력 d에 대해 실행한다. - 두 실행 트레이스 τ(y_i,d)와 τ(y_ref,d) 를 수집하고, 상태 시퀀스가 처음으로 불일치하는 경계 k* 를 찾는다. - 정적 매핑이 어려운 경우, 디버깅 LLM이 트레이스와 AST를 함께 고려해 k* 를 의미론적으로 정확히 매핑한다. - k* 에 대응하는 토큰 스팬 T_k* 를 식별하고, GRPO 이득 A_i 를 해당 스팬에만 집중한다. 4. **GRPO 손실 재구성** - 토큰‑레벨 이득 a_i,t 를 다음과 같이 정의한다. - CORRECT/CONSTRAINT 모드: 전체 토큰에 동일 A_i 부여. - SYNTAX 모드: T_err 에만 A_i 부여, 나머지는 0. - LOGIC 모드: T_k* 에만 A_i 부여, 나머지는 0. - 이렇게 정의된 a_i,t 를 사용해 기존 GRPO 손실 L(θ)=−∑_i∑_t a_i,t log πθ(y_i,t|…) 를 그대로 적용한다. **실험** - **데이터**: APPS+ (구조화된 문제·테스트·레퍼런스)에서 사전 학습 후 HumanEval와 MBPP에 평가. - **베이스 모델**: DeepSeek‑Coder‑Instruct‑6.7B, 디버거/로컬라이저는 Qwen2.5‑Coder‑7B‑Instruct 사용. - **비교 대상**: Vanilla GRPO, StepCoder‑mask, RL‑TF, CodeRL+ 등. - **결과**: EGCA는 HumanEval에서 82.1% (GRPO 79.0% 대비 +3.1), MBPP에서 68.9% (GRPO 67.4% 대비 +1.5)를 기록했다. 특히 StepCoder‑mask 대비 +3.4 / +1.9 포인트 향상은 실행‑토큰 마스킹만으로는 부족함을 보여준다. **교사(distillation) 효과 검증** - 디버거 LLM 자체의 성능이 낮아도 EGCA는 이득을 제공한다. 예를 들어 1.5B 디버거를 사용했을 때도 78.9%/66.1%를 달성했으며, 이는 동일 디버거를 직접 코드 생성에 사용했을 때(70.7%/69.2%)보다 크게 앞선다. - 교사 SFT(60.9%/58.1%)와 교사‑비판 RL(76.3%/66.1%)도 EGCA보다 낮다. - 디버거 규모를 늘려도 성능 상승폭이 점점 감소하는데, 이는 EGCA가 디버거의 “지식”보다 “위치 탐지” 능력에 의존한다는 증거다. **제한점 및 향후 연구** - 레퍼런스 솔루션이 반드시 존재해야 하며, 다중 정답이 가능한 문제에서는 레퍼런스 선택이 성능에 영향을 미친다. - 디버거 LLM의 이해도가 떨어지면 발산 탐지 정확도가 낮아져 이득이 희석된다. - 현재는 단일 파일·단일 함수에 초점을 맞추었으며, 다중 파일·다중 함수, 혹은 인터랙티브 코딩 환경으로 확장하려면 트레이스 정렬 및 스팬 매핑 비용이 크게 증가한다. - 향후 비지도형 실행 트레이스 비교, 대규모 멀티‑파일 실행 인프라, 제약 자동 추출 및 검증을 위한 메타‑학습 등이 연구 방향으로 제시된다. **의의** EGCA는 “어디가 잘못됐는가”를 실행 수준에서 정확히 파악하고, 그 위치에만 학습 신호를 집중함으로써 기존 비평가 기반 RL 방법보다 효율적인 성능 향상을 달성했다. 비평가 없이도, 추가 손실 없이도 적용 가능하다는 점에서 실제 산업 현장에 바로 도입할 수 있는 실용적인 기법이라 할 수 있다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기