SWE-rebench V2: Language-Agnostic SWE Task Collection at Scale
本論文は、20 言語・3,600 以上のリポジトリにまたがる 32,000 件以上の実行可能なタスクと、さらに 12 万件のメタデータ付きタスクを含む大規模な言語非依存の SWE ベンチマーク「SWE-rebench V2」を提案し、これにより多様な言語とリポジトリを対象とした大規模なソフトウェア工学エージェントの強化学習を可能にするものです。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
SWE-rebench V2 の解説:AI 職人さんを育てるための「超巨大な練習場」
この論文は、**「AI にプログラミングを教えるための、世界最大規模で多言語対応の練習セット」**を作ったという話です。
従来の AI(大規模言語モデル)は、コードを書くのが得意になりつつありますが、実際に「本物のソフトウェアのバグを直す」という複雑な作業を、自分自身で試行錯誤しながら学ぶには、**「練習用の課題と、その正解がすぐにわかる環境」**が足りていませんでした。
この研究チームは、その不足を埋めるために**「SWE-rebench V2」**という新しいシステムを開発しました。以下に、難しい専門用語を使わず、身近な例え話で解説します。
1. 何が問題だったのか?(「練習場」の不足)
AI にプログラミングを教えるには、**「強化学習(RL)」**という方法が使われます。これは、人間がゲームをしながら上達していくように、AI が「試して、失敗して、正解したら褒めてもらう」を繰り返す学習法です。
しかし、ここには大きな壁がありました。
- 課題が少ない: 本物のバグ修正の課題は、手作業で確認しないと「本当に正しいか」がわかりません。
- 環境がバラバラ: Python なら簡単でも、C++ や Java だと、環境のセットアップが難しすぎて、AI が練習する前に挫折してしまいます。
- 言語の偏り: 多くのデータは英語圏の Python 中心で、他の言語やニッチな言語のデータが不足していました。
つまり、**「AI が練習できる『本物っぽいシミュレーション教室』が、数が足りず、設備も整っていない」**状態だったのです。
2. SWE-rebench V2 の正体:「自動で教室を作るロボット」
この論文の核心は、**「人間が手作業で教室を作るのではなく、AI 自体が自動的に教室を構築するパイプライン」**を作った点にあります。
① 自動で「教室」を建てる(Setup Synthesis)
本物のソフトウェアのプロジェクト(例:GitHub 上の巨大なコード庫)は、それぞれ「必要な道具(ライブラリ)」や「動かし方」が異なります。
- 昔のやり方: 人間が一つずつ「このコードはこうやって動かす」とマニュアルを書き、環境を整える。
- 新しいやり方(SWE-rebench V2): 「インタラクティブな AI アシスタント」を派遣します。このアシスタントは、コードを見て「あ、これはこのツールが必要だな」「エラーが出たから、この設定を変えよう」と自分で試行錯誤し、「AI がすぐにテストできる環境(Docker コンテナ)」を自動で完成させます。
- 例え: 料理教室で、生徒(AI)が来る前に、先生(このシステム)が「材料を揃え、包丁を研ぎ、レシピ通りに火加減を調整した状態」まで完璧に準備してくれるようなものです。
② 20 言語、3600 以上のプロジェクトから「課題」を収穫
このシステムは、世界中の GitHub から、**「バグ修正の履歴(プルリクエスト)」**を自動で集めます。
- 20 種類のプログラミング言語(Python, Go, Rust, Java など)に対応。
- 3,600 以上の異なるプロジェクトから、32,000 個以上の「本物の課題」を抽出しました。
- さらに、課題の説明がないものでも、AI が「このコード変更は何を直したのか?」を推測して、12 万個以上の追加課題も作成しました。
③ 「質の悪い課題」をフィルタリングする(裁判官チーム)
集めた課題の中には、「問題文が曖昧すぎる」や「テストが不正確」というゴミも混ざっています。
- ここでは、**複数の AI 裁判官(LLM ジャッジ)**をチームで動かし、人間がチェックしたデータと照らし合わせながら、「この課題は AI に解かせる価値があるか?」を厳しく判定します。
- 曖昧な課題は排除し、**「AI が頑張れば解ける、しかし簡単すぎない課題」**だけを残します。
3. このデータセットのすごいところ
🌍 言語の壁を越える(Language-Agnostic)
これまでのデータセットは「Python 専用」や「Java 専用」が多かったですが、これは**「どの言語でも同じ仕組みで課題を作れる」**ように設計されています。
- 例え: 料理教室が「イタリアン専門」だけでなく、「中華、フレンチ、和食、インド料理」まで、同じシステムでメニューと調理器具を自動準備してくれるようなものです。
🔍 故障原因の「診断書」付き
AI が課題を解けなかったとき、それは「AI が頭が悪いから」なのか、「課題の環境が壊れていたから(テストがおかしい)」なのか、区別がつかないことが問題でした。
- SWE-rebench V2 は、各課題に**「診断メタデータ」**を付けます。
- 「テストが不安定(B1)」
- 「問題文に書かれていない暗黙のルールがある(B2)」
- 「外部のサイトに依存している(B3)」
- など。
- これにより、研究者は「まずは環境の問題を排除した課題で基礎を教える」や「あえて難しい環境の課題で耐性を鍛える」といった、目的に合わせたカリキュラムを組むことができます。
4. 結果と未来
このシステムを使って、7 つの最先端 AI モデルにテストさせたところ、**「AI が自分で環境を構築し、課題を解く」**というタスクにおいて、これまでになかった規模と多様性で学習データが得られました。
- Pythonでは 36% 程度、GoやRustなどでも一定の成功率を記録。
- 特に、**「インタラクティブな AI が環境設定をする」**方が、単純なマニュアル読み込みよりもはるかに成功率高いことが証明されました。
まとめ:なぜこれが重要なのか?
この研究は、**「AI がソフトウェアエンジニアとして、人間と同じように『本物の現場』で修行できる土台」**を作りました。
これまでは、AI にプログラミングを教えるのは「教科書(静的なデータ)だけ」でしたが、SWE-rebench V2 は**「実習室(実行可能な環境)」まで提供します。これにより、AI は「コードを書く」だけでなく、「環境を整え、テストを走り、バグを特定し、修正する」という一連のエンジニアリング作業**を、大規模に、そして多様な言語で学ぶことができるようになります。
将来的には、このシステムで鍛えられた AI が、私たちが普段使っているアプリやシステムのバグを、人間よりも速く、正確に修正する日が来るかもしれません。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。