아티클 목록으로
코딩 AI

CodeMidas, 소스 코드 자체로 코딩 에이전트 강화학습 환경 구축

약 3분 소요

배경

코딩 에이전트를 강화학습으로 훈련하려면 다양한 과제와 함께 정답 여부를 안정적으로 판정할 수 있는 검증기가 필요하다. 기존 방식은 주로 이슈, 커밋, 수정 기록 같은 개발 아티팩트에서 과제를 추출했다. 이런 자료는 유용하지만, 저장소에 이미 구현된 기능 전체를 충분히 반영하지 못할 수 있다.

샤오미 MiMo 팀이 제안한 CodeMidas는 과제의 출발점을 소스 코드 자체로 옮긴다. 오픈소스 저장소에 존재하는 기능을 관찰하고 실행해, 코딩 에이전트가 학습할 수 있는 강화학습 환경으로 변환하는 접근이다.

CodeMidas의 구축 과정

CodeMidas는 과제 설명을 한 번에 생성하는 대신, 환경을 만드는 각 단계에 에이전트의 추론과 실행을 활용한다.

  • 기능 탐색: 에이전트가 저장소를 읽고 코드를 실행하면서 입력, 출력, 기능의 경계를 파악한다.
  • 행동 사양 작성: 실행 결과를 바탕으로 구현이 충족해야 할 행동과 조건을 정리한다.
  • 테스트 구성: 원본 코드의 실제 실행에 근거해 후보 구현을 평가할 테스트를 만든다.
  • 검증 및 필터링: 실행 점검과 여러 차례의 풀이 롤아웃을 통해 과제의 해결 가능성과 테스트의 신뢰성을 확인한다.

핵심은 과제 생성과 검증을 하나의 폐쇄형 과정으로 묶는 데 있다. 실제로 실행할 수 있고, 성공과 실패를 구분하며, 우연한 우회로만으로 통과하기 어려운 과제일수록 강화학습 데이터로서 가치가 높다.

데이터 규모와 실험 결과

CodeMidas가 만든 데이터셋은 3,185개 오픈소스 코드베이스에서 수집한 5,545개 훈련 과제로 구성된다. 23개 프로그래밍 언어와 15개 기술 분야를 포함한다. 연구팀은 이 과제로 GRPO를 사용해 MiMo-V2.5를 훈련했다.

그 결과 다섯 가지 유형의 벤치마크 모두에서 성능 향상이 보고됐다. DeepSWE의 이슈 수정에서는 11.7%, ProgramBench의 전체 프로그램 구축에서는 17%, Terminal-Bench v2.1의 터미널 작업에서는 8.5%의 개선이 나타났다.

절제 실험은 고품질 훈련 과제의 수를 늘릴수록 성능이 좋아지는 경향을 보여준다. 또한 궤적 분석에서는 강화학습 이후 에이전트가 코드베이스를 더 폭넓게 탐색하고, 자기 검증 방식도 더 다양하게 사용하는 모습이 관찰됐다.

의미와 남은 과제

CodeMidas의 중요한 관점은 코드 저장소를 단순히 수정해야 하는 대상으로만 보지 않는다는 점이다. 이미 구현된 함수와 실행 행동 자체를 학습 환경의 재료로 활용함으로써, 사람이 작성한 요구사항이나 개발 이력에 대한 의존을 줄이고 더 많은 언어와 소프트웨어 영역을 다룰 가능성을 제시한다.

물론 구현된 동작이 항상 완전하고 올바른 사양인 것은 아니다. 자동 생성 테스트가 경계 조건을 놓칠 수 있고, 반복적인 풀이 검증도 세심한 품질 검사를 완전히 대신할 수 없다. 따라서 CodeMidas는 검증 신뢰성 문제를 모두 해결한 방법이라기보다, 코딩 강화학습에 공급할 수 있는 과제의 양과 범위를 확장하는 기반 기술로 이해하는 편이 적절하다.

앞으로 코딩 에이전트의 학습 데이터는 버그 보고서와 커밋뿐 아니라 실제 소프트웨어의 기능, 인터페이스, 의존성, 실행 행동에서도 계속 만들어질 수 있다.

출처: Hugging Face Daily Papers

댓글

로그인 상태 확인 중…

댓글 불러오는 중…

관련 게시물