CODESCOUT:コード探偵への「究極のレシピ」
この論文は、**「巨大なコードの山から、必要な場所を素早く見つけ出す AI(エージェント)」**をどうすれば最強に鍛え上げられるかという、新しいトレーニング方法を紹介しています。
タイトルは**「CODESCOUT(コードスカウト)」**。まるで探偵が事件現場の証拠を集めるように、AI がコードのどこを直すべきかを見つけることを目指しています。
🕵️♂️ 従来の方法:高価な「特殊装備」に頼りすぎた探偵
これまでの AI 探偵たちは、コードを探すために**「特殊な道具」**を大量に持っていました。
- 例え話: 探偵が事件を解くために、毎回「専用の地図作成機」や「言語ごとの翻訳機」を背負って歩いているようなものです。
- 問題点: これらは特定の言語(Python など)にしか使えず、準備に時間がかかり、コストも高いです。「この道具は Python 用だから、Java の現場には使えない」という制限がありました。
🚀 CODESCOUT の方法:「ただのハンマー」だけで最強になる
CODESCOUT は、**「特別な道具は不要。ただの『ターミナル(黒い画面)』さえあればいい」**という考え方を採用しました。
- 例え話: 探偵が「高価な地図作成機」を捨て、**「ただのハンマーとノコギリ(ターミナルのコマンド)」**だけを持って現場に赴くイメージです。
- どうやって?
- AI に「コードを探すこと」を教えるのではなく、**「正解に近づくとご褒美(報酬)をあげる」という「試行錯誤(強化学習)」**のトレーニングを行いました。
- AI は最初は失敗しますが、ご褒美をもらうために「grep(検索)」や「sed(編集)」といった基本的なコマンドを賢く使いこなすようになります。
- 結果として、「特殊な道具なし」でも、巨大な AI や、高価な特殊道具を持った AI よりも上手にコードを見つけられるようになりました。
🏆 驚きの結果:小さな AI が巨人を倒す
このトレーニングを受けた CODESCOUT は、以下のような驚異的な成績を残しました。
- サイズは小さいのに強い:
- 1.7 億パラメータ(小さな脳みそ)のモデルでも、14 億や 32 億パラメータ(巨大な脳みそ)のモデルよりも、コードを見つける精度が高くなりました。
- 例え話: 小さな犬が、巨大な熊よりも森の道案内を上手にできるようなものです。
- 有料の「天才」に匹敵:
- 有料で使われる最高峰の AI(Claude や GPT-5 など)と肩を並べる、あるいはそれ以上になる性能を出しました。
- どんな言語でも通用する:
- 「Python 専用」の道具を使わないので、他のプログラミング言語の現場でもすぐに活躍できます。
🧠 なぜこれほど成功したのか?(3 つの秘訣)
- シンプルさ: 複雑な道具を使わず、ターミナルだけを使うことで、AI が混乱せず、純粋に「探す力」を磨くことができました。
- 報酬の設計: 「ファイルを見つけたら 1 点、関数まで特定できたら 2 点」というように、**「どこまで詳しく見つけたか」**を細かく評価するルールを作りました。
- トレーニングの工夫: AI が「答えを出す前に時間切れになる」のを防ぎ、効率的に学習させるための工夫を凝らしました。
💡 この技術がもたらす未来
この「CODESCOUT」のレシピは、**「コードを探す AI」**を誰でも簡単に作れるようにしました。
- メリット:
- 開発者は、高価な特殊ツールを買う必要がなくなります。
- 小さな AI でも、大きなプロジェクトのコードを素早く理解できるようになります。
- 結果として、ソフトウェアのバグ修正や機能追加が、より速く、安く行えるようになります。
まとめ:
CODESCOUT は、「高価な道具に頼る必要はない。正しいトレーニング(レシピ)があれば、シンプルな道具でも、どんな巨大なコードの山でも見事に探偵できる」ということを証明した画期的な研究です。まるで、**「ただのハンマー一本で、王様の城の鍵を見つけ出す達人」**が誕生したようなものです。
CODESCOUT: コード検索エージェントの強化学習のための効果的なレシピ
本論文は、大規模なコードリポジトリにおける「コードローカライゼーション(関連するファイル、クラス、関数の特定)」という課題に焦点を当て、複雑な専用ツールを一切使用せず、標準的な Unix ターミナルのみを備えたエージェントを強化学習(RL)で訓練し、最先端の性能を達成する手法「CODESCOUT」を提案しています。
以下に、問題定義、手法、主要な貢献、結果、そして意義について詳細にまとめます。
1. 問題定義
ソフトウェアエンジニアリングタスク(例:GitHub の Issue 解決)を自動化するコーディングエージェントにとって、コードローカライゼーションは不可欠な前処理ステップです。これは、与えられた問題記述に基づき、修正が必要なファイル、クラス、関数を特定する作業です。
従来のアプローチには以下の課題がありました:
- 高コストと誤り: 汎用的な LLM に直接このタスクを任せることは、コストが高く、誤った修正やコードの肥大化を招く可能性があります。
- 複雑な依存関係: 大規模リポジトリでは依存関係が複雑で、単純な検索では解決が困難です。
- 言語依存のツール: 既存の最先端手法(LocAgent, RepoNavigator など)は、静的解析(AST パース、依存グラフ構築など)に基づいた専用ツールやインデックスを必要とします。これらは特定のプログラミング言語(主に Python)に限定され、展開の複雑さや計算コストを増大させています。
- 閉じたモデルへの依存: 多くの手法が、教師あり微調整(SFT)のために高価なクローズドソースモデル(Claude や GPT 等)からのデータ収集に依存しています。
2. 手法 (Methodology)
CODESCOUT は、複雑なインフラなしに、標準的なターミナルツールのみで動作するエージェントを RL で訓練する「レシピ」を提供します。
2.1 エージェントの構造 (OpenHands-Bash)
- シンプルな scaffold: 既存の複雑なグラフ探索ツールやベクトルデータベースは使用しません。
- 使用ツール: 標準的な Unix コマンド(
ripgrep, find, ls, grep, sed など)を実行できる「Terminal」ツールと、結果を提出する「LocalizationFinish」ツールの 2 つのみを使用します。
- 言語非依存: Bash ターミナルのみを使用するため、設計上プログラミング言語に依存しません。
2.2 データと環境の構築
- データソース: SWE-Smith データセットなどの GitHub Issue を使用。
- 正解ラベルの抽出: 解決パッチ(Gold Patch)を解析し、修正された「ファイル」「モジュール(クラス)」「関数」の 3 つの粒度で正解ラベルを生成します。
- 環境: リポジトリのクローンを作成し、依存関係のインストールやサンドボックス化は行わず、ターミナル操作のみで環境を構築します。
2.3 報酬設計 (Reward Design)
- F1 スコアの最大化: 予測したファイル、モジュール、関数の集合と正解ラベルを比較し、それぞれの粒度で F1 スコア(適合率と再現率の調和平均)を計算します。これらを合計した値を報酬とします。
- r=rF1−file+rF1−module+rF1−func
- 早期終了の促進: エージェントがステップ制限内で終了しない場合、報酬がゼロになる問題を防ぐため、正確に k ステップで終了した場合にのみ 1 を与えるバイナリ報酬を追加しました。
2.4 強化学習アルゴリズム
- GSPO (Group Sequence Policy Optimization): 従来の PPO や GRPO を改良したアルゴリズムを使用。KL 正則化項を削除し、アドバンテージの標準化を行わないなど、コードローカライゼーションタスクに最適化された設定を採用しています。
- モデル: Qwen3 シリーズ(1.7B, 4B, 14B)をベースモデルとして使用。1.7B モデルについては、まず 14B モデルの成功軌跡を用いた拒否サンプリング微調整(RFT)でウォームアップし、その後 RL 訓練を行いました。
3. 主要な貢献 (Key Contributions)
- シンプルかつ効果的な RL レシピの提示: 複雑な静的解析ツールや言語固有のインフラを一切必要とせず、ターミナルのみで動作するエージェントを RL で訓練し、高性能を実現する初めての公開実装です。
- 大規模モデルとの競合: 1.7B〜14B の CODESCOUT モデルは、8〜18 倍のサイズを持つ既存のオープンソース LLM(Qwen2.5-32B など)や、複雑な scaffold を持つ先行研究(RepoNavigator など)を凌駕する性能を示しました。
- クローズドソースモデルへの接近: Claude Sonnet や GPT-5 などの最先端クローズドソースモデルに匹敵、あるいは特定の条件下で上回る性能を達成しました。
- 完全なオープンソース化: モデル、コード、データ、トレーニングレシピをすべて公開し、コミュニティの発展を支援しています。
4. 実験結果 (Results)
SWE-Bench Verified, Pro, Lite の 3 つのベンチマークで評価を行いました。
性能の優位性:
- SWE-Bench Verified: CODESCOUT-14B は、ファイルレベル F1 スコアで 68.57%、関数レベルで 40.32% を達成。これは 32B モデルの RepoNavigator や、14B モデルの Qwen2.5 を大きく上回ります。
- パラメータ効率: CODESCOUT-1.7B は、8 倍のサイズを持つ Qwen3-14B ベースモデルよりも高い精度を達成しました。
- クローズドモデルとの比較: 専用 scaffold を持つ RepoNavigator を使用した場合でも、Claude-3.7-Sonnet や GPT-5-Chat を上回る結果を示すケースがありました。また、Claude-Sonnet-4.5 を CODESCOUT のシンプルな scaffold(Bash のみ)で使用した場合、専用 scaffold 使用時よりも性能が向上するという驚くべき結果も得られました(「専用 scaffold が必ずしも高性能ではない」ことを示唆)。
ツール使用の進化:
- RL 訓練を通じて、エージェントは多様なコマンドを使用する状態から、
ripgrep (検索) と sed (ファイル読み込み) の 2 つのコマンドに収束していくことが観察されました。これは、限られたツールセットでも高度なタスクが達成可能であることを示しています。
Issue 解決への波及効果:
- CODESCOUT によって特定されたコード位置を Issue 解決エージェントに付与することで、解決率の向上(+3.8%)と、必要なステップ数・トークン数の削減(効率化)が確認されました。
5. 意義と結論
CODESCOUT は、コード検索エージェントの訓練において、「複雑な専用ツール」や「大規模な事前学習モデル」に依存するパラダイムからの転換を示しました。
- 汎用性とスケーラビリティ: 言語に依存しない Bash ターミナルのみを使用するため、Python 以外の言語への拡張が容易です。
- コスト削減: 高価なクローズドソースモデルへの依存を排除し、オープンソースモデルと RL だけで高性能を実現できることを実証しました。
- 実用性: 既存のコーディングエージェント(OpenHands など)の標準機能のみで高性能なローカライゼーションが可能であるため、導入コストが極めて低く、セキュリティ面でもターミナルの制限が容易です。
本論文は、コードローカライゼーションというタスクにおいて、適切な RL 設計とシンプルな環境構築がいかに重要かを示し、今後のオープンソースコーディングエージェント開発の強力な基盤を提供しています。
毎週最高の NLP 論文をお届け。
スタンフォード、ケンブリッジ、フランス科学アカデミーの研究者に信頼されています。
受信トレイを確認して登録を完了してください。
問題が発生しました。もう一度お試しください。
スパムなし、いつでも解除可能。
週刊ダイジェスト — 最新の研究をわかりやすく。登録