CodeMidas、ソースコードそのものからコーディングAIの強化学習環境を構築
はじめに
コーディングエージェントを強化学習で訓練するには、幅広い課題だけでなく、正解を安定して判定できる検証器が必要になる。従来の方法では、issue、commit、修正履歴などの開発アーティファクトから課題を作ることが多かった。しかし、こうした情報はリポジトリに実装されている機能全体を必ずしもカバーしていない。
Xiaomi MiMoチームが提案したCodeMidasは、課題の出発点をソースコードそのものに置く。既存コードの機能を観察し、実行可能な強化学習環境へ変換することで、コーディングエージェントが学べるタスクの供給を広げようとしている。
エージェントによる環境構築
CodeMidasの特徴は、タスク生成を単なる説明文の自動作成として扱わず、複数の段階に分けてエージェントの計算資源を割り当てる点にある。
- 機能の探索:エージェントがリポジトリを読み、コードを実行して、入力・出力や機能の境界を調べる。
- 振る舞いの仕様化:実行結果をもとに、実装が満たすべき条件を行動仕様として整理する。
- テストの構築:元のコードを実際に動かした結果に基づき、候補タスクを判定するテストを作成する。
- 検証と選別:実行チェックと複数回の解答ロールアウトを通じて、タスクの解決可能性やテストの信頼性を確認する。
重要なのは、生成と検証を一つのループに組み込んでいることだ。実行でき、成功と失敗を区別でき、偶然の抜け道だけで通過しにくい課題でなければ、強化学習用データとしての価値は下がる。
データ規模と結果
CodeMidasで構築されたデータセットは、3,185のオープンソースコードベースから得た5,545件の訓練タスクで構成される。23のプログラミング言語と15の技術分野を含む。研究チームはこれらのタスクを使い、GRPOによってMiMo-V2.5を訓練した。
報告された結果では、5種類の異なるベンチマークすべてで性能向上が確認された。具体的には、DeepSWEのissue修正で11.7%、ProgramBenchのプログラム全体の構築で17%、Terminal-Bench v2.1のターミナル作業で8.5%の改善が示されている。
アブレーションでは、高品質な訓練タスクの数を増やすほど性能が向上する傾向が確認された。また、軌跡分析からは、訓練後のエージェントがコードベースをより深く探索し、より多様な自己検証を行うようになったことが示唆されている。
意義と課題
CodeMidasは、コードベースを単に修正される対象ではなく、学習環境の原材料として捉える。手作業で書かれた要件や開発履歴への依存を減らし、言語、フレームワーク、ソフトウェア分野をまたいでタスクを拡張できる可能性がある。
一方で、実装済みの挙動が完全で正しい仕様だとは限らない。自動生成テストが境界条件を見落とす可能性もあり、繰り返しのロールアウトも人による品質確認を完全には代替しない。したがって、CodeMidasは検証問題を解消する最終解ではなく、コーディングRL用タスクを大規模に増やすための基盤と見るのが適切だ。
今後は、バグ報告だけでなく、実際のソフトウェアが示す関数、インターフェース、依存関係、実行挙動そのものが、エージェント学習の重要なデータ源になっていく可能性がある。
コメント
ログイン状態を確認中…
コメントを読み込み中…