Claude Code, Codex, Hermes, Pi, @opencode 등 코딩 하니스를 RL 환경으로 변환
요약
본 글은 Claude Code, Codex 등 다양한 코딩 하니스를 강화학습(RL) 환경으로 변환하는 방법을 제시합니다. 핵심은 모델 API와 통신하는 캡처 프록시를 구현하여, 실제 하니스가 환경 역할을 수행하도록 만든 것입니다. 이를 통해 모델의 행동을 정밀하게 제어하고 성능 향상을 입증했습니다.
핵심 포인트
- 코딩 하니스를 RL 환경으로 변환하여 모델 학습에 활용 가능합니다.
- 캡처 프록시는 다양한 코딩 에이전트 API를 처리하는 핵심 기술입니다.
- RL 훈련 시 보상 제어를 통해 불필요한 호출을 줄이는 효과를 확인했습니다.
우리는 Claude Code, Codex, Hermes, Pi, @opencode 및 기타 코딩 하니스를 RL (강화학습) 환경으로 만들었습니다. 하니스에는 변경 사항이 없고, 훈련 코드에도 변경 사항이 없습니다. 모든 오픈 모델, 모든 태스크 세트가 완전히 오픈 소스입니다, 친구들!
동일한 모델, 동일한 가중치: Mini-SWE-Agent에서는 62%, Claude Code에서는 33%의 성능을 보였습니다. 하지만 실제 하니스 내부에서 훈련한다는 것은 일반적으로 이를 환경으로 재구현해야 함을 의미하므로, 대부분의 모델은 실제로 배포되지 않는 스캐폴드(scaffold)에서 훈련됩니다.
해결책은 리라이트(rewrite)가 아니라 프록시(proxy)입니다. 하니스는 자신이 모델 API와 통신한다고 생각합니다. 하지만 실제로는 4가지 코딩 에이전트가 사용하는 형식(OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, Gemini)을 처리하는 캡처 프록시(capture proxy)와 통신하며, @vllm_project로 포워딩하고 vLLM이 샘플링한 정확한 토큰 ID 및 logprobs를 기록하여 TRL이 훈련할 수 있는 시퀀스를 전달합니다. 이 하니스가 환경 역할을 하게 됩니다. 오늘 10개의 하니스가 이를 통해 실행되었으며, 수정된 것은 없습니다.
그리고 보상을 제어하기 때문에, 하니스가 요청하지 않은 행동까지도 모양을 만들 수 있습니다. 우리는 도구 호출(tool calls)을 적게 사용하여 태스크를 해결할 경우 작은 보너스를 추가했습니다. 이로 인해 모델은 이미 해결했던 태스크에서도 모든 하니스에서 31% 더 적은 호출을 사용하게 되었고, Codex에서는 약 절반의 감소율을 보였습니다.
@liquidai의 LFM2.5-2.6B를 대상으로 테스트한 결과:
→ 하나의 하니스에서 훈련: 해당 하니스에서 성능 향상이 더 좋았습니다 (OpenCode 34% → 58%).
→ 4개의 하니스에서 동시에 훈련: 4개 모두에서 성능 향상을 보였습니다 (42% → 54%).
→ 대신 Qwen3.8-27B의 3,189개 롤아웃(rollouts)으로 SFT(지도 미세 조정) 수행: 47.5%에서 정체되었으며, 두 RL 실행 결과보다 낮았습니다.
모든 것이 오픈되어 있고 재현 가능합니다: OpenEnv의 캡처 프록시, TRL의 트레이너, 태스크, SFT 데이터, 훈련 코드 및 훈련된 모든 7개 모델. 다음에는 더 큰 모델과 더 큰 실행이 있을 것입니다.
전체 가이드: https://t.co/sKZURuOcza
AI 자동 생성 콘텐츠
본 콘텐츠는 X @clementdelangue (자동 발견)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기