こんにちは、PaperAgentです(Agentではありません!)。
Meta FAIR & Meta TBD Lab & カーネギーなど:「超知能ソフトウェアエンジニアリングエージェント」へ向けた第一歩を踏み出しました。
SSR(Self-play SWE-RL)は、「ゼロ人間アノテーション」の条件下で、大規模モデルが「自ら生成したBug + 自らの修復」という左右互搏(同じモデル同士の対戦)だけで、SWE-benchシリーズのベンチマークで人間データベースラインを安定して凌駕することを初めて実現しました。
なぜこれが重要なのか?
図1はSSRのコアな循環を示しています。
> 左:Bug-Injection Agentが、テストパッチを含む「Bugアーティファクト」を生成。右:Bug-Solving Agentは、「テストパッチの逆(unified diff)」を仕様書として修復。二者は同一のLLM重みを共有し、RLで同時に更新します。
(日本語訳:動くDockerイメージ(ソースコード+依存)一份のみ) | |
方法の要点
3.1 最小限の仮定——「裸のリポジトリ」で十分
入力:依存関係が整ったDockerイメージ 不要:既存のテストコマンド、Issue説明、テストパーサ、甚至は言語タイプタグ 全てのテストの発見/解析/実行コマンドは、Injection Agentによって現場(その場)で探索される
3.2 Bugアーティファクト(Artifact)の構成
bug_inject.diff | |
test_weaken.diff | |
test_script.sh | |
test_parser.py | {test_id: pass/fail}のJSONに変換し、RL報酬計算用に供給 |
test_files.txt |
図2にtest_weaken.diffとその逆パッチ(reversed patch)を示します。これはSolver側が受け取る唯一の「仕様書」です。
3.3 自己博弈(Self-Play)訓練フロー
Injection(注入)役割 戦略:コードの全体削除またはgit historyの逆revert 報酬:rinject = ⎩⎨⎧ −1.0 −α 1−(1+α)s 一貫性失敗 Bugが解決不能(s=0)または簡単すぎる(s=1) 理想的な難易度(0<s<1) 目標:solve-rate sを~0.2に引き上げる(理論的最適値は論文§B参照)
Solver(修復)役割 「逆テストパッチ」+ エラー報告されたリポジトリのみを見る 報酬:二値。全テスト合格で+1、それ以外は-1 失敗した試行は、そのまま高難度バグとして次のラウンドの自分に供給し、「間違い帳」を形成
重み共有+同時RL更新:二つの役割の勾配が同時にバックプロパゲーションされ、モデルに同時に「難易度の製造」と「難易度の解決」を学習させる。
実験結果
4.1 主結果
図8は、全体の150ステップの訓練軌跡上で、SSRが安定して自己向上し、かつ全体を通じて人間データベースラインを圧倒していることを示しています。
| 35.7 % | ||||
| 32.2 % |
> 注:人間データ RL = 同じイメージ+自然言語Issue+人間作成テストスクリプト;SSRはこれらを完全に持たない。
4.2 消去実験(Ablation)
図9は3つのアブレーション(要素削減)テストを示しています。
Injection-OnlyまたはRepair-Onlyの両方ともスコア低下;両役割を同時に訓練する必要がある。 Bug注入戦略: 単なるランダム改変 → 一行の自明な値変更に崩壊 削除+History活用(git逆revert融合)→ 最もリアルでスコア最高 SolverからのフィードバックがInjectionの報酬に与える影響は微弱;真に重要なのは、単一のノイズ信号ではなくOnlineで共進化する分布である。
理論的洞察:Challengerの「最適解」
論文のAppendix Bで、博弈論を用いて以下が証明されています。
Challengerの行動空間が十分大きい場合(例:テストを改変できる)、擬似乱数でfailさせる支配戦略(dominant strategy)を構築可能。これによりSolverは永遠に目標solve-rate p*≈0.2に到達し、真の修復能力を学ぶことができない。 緩和策:Challengerを現実的で多様なコードベースに固定し、かつその戦略空間を「自然なBug」から逸脱しないように制限する——SSR正是这样做的(SSRはまさにこれを行っている)。
最後に
Self-play SWE-RLは、「左右互搏(同じ者が自分と対戦)」を囲碁やチェスから初めて現実のソフトウェアリポジトリへ移し、ゼロアノテーションの方式でモデル自らにカリキュラムを作成させ、自ら難関を攻略させ、かつ学習曲線を持続的に伸ばし続けることを実現しました。真の「超知能」からはまだ距離がありますが、実現可能な道筋を示しています:
> 人間のデバッグノートを暗記させるのではなく、尽きることのない現実のコードの中で、Agentに自ら「敵を倒して成長」させるのだ。
https://github.com/facebookresearch/cwm
https://arxiv.org/pdf/2512.18552
Toward Training Superintelligent Software Agents through Self-Play SWE-RLおすすめ記事
AIエージェントの設計:(オーケストレーション、メモリ、プラグイン、ワークフロー、協調)
大規模モデルは素晴らしいが、OCRの面前では、オープンソースの小規模モデルの方がずっと便利
最新の自己進化AIエージェントの新しいパラダイムに関する体系的な総説
毎日一篇、大規模モデルの論文で私達の思考を鍛えましょう~ここまで読んだなら、ぜひ👍、❤️、↗️の三連、そして⭐のフォローをお願いします!道に迷わなくなりますよ~