AIに自ら敵を倒させて成長させる。MetaがSelf-play RLを用いてコーディングを超知能へと導く

こんにちは、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で同時に更新します。

旧パラダイム(SFT/RLHF)
新パラダイム(SSR Self-Play)
GitHub Issue/PR、人間が書いた自然言語の説明とテストケースに依存
只需要一份能跑起來的 Docker 鏡像(源碼+依賴)
(日本語訳:動くDockerイメージ(ソースコード+依存)一份のみ
「人間がバグを修正する方法」を学習
自らがどのようにしてより難しいバグを製造し解決するか」を学習
データには天井(限界)がある
データは訓練とともにより無限に増殖する

方法の要点

3.1 最小限の仮定——「裸のリポジトリ」で十分

  • 入力:依存関係が整ったDockerイメージ
  • 不要:既存のテストコマンド、Issue説明、テストパーサ、甚至は言語タイプタグ
  • 全てのテストの発見/解析/実行コマンドは、Injection Agentによって現場(その場)で探索される

3.2 Bugアーティファクト(Artifact)の構成

どのテストファイルが検証に参加するか記録し、Agentがテストを改変して「チート」するのを防止
ファイル名
役割
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)訓練フロー

画像
  1. Injection(注入)役割
    • 戦略:コードの全体削除またはgit historyの逆revert
    • 報酬:rinject = ⎩⎨⎧ −1.0  −α  1−(1+α)s  一貫性失敗  Bugが解決不能(s=0)または簡単すぎる(s=1)  理想的な難易度(0<s<1)
    • 目標:solve-rate sを~0.2に引き上げる(理論的最適値は論文§B参照)
画像
  1. Solver(修復)役割
    • 「逆テストパッチ」+ エラー報告されたリポジトリのみを見る
    • 報酬:二値。全テスト合格で+1、それ以外は-1
    • 失敗した試行は、そのまま高難度バグとして次のラウンドの自分に供給し、「間違い帳」を形成
画像
  1. 重み共有+同時RL更新:二つの役割の勾配が同時にバックプロパゲーションされ、モデルに同時に「難易度の製造」と「難易度の解決」を学習させる。
画像

実験結果

4.1 主結果

図8は、全体の150ステップの訓練軌跡上で、SSRが安定して自己向上し、かつ全体を通じて人間データベースラインを圧倒していることを示しています。

画像
ベンチマーク
CWM-sft 起点
人間データ RL
SSR(Self-Play)
Δ
SWE-bench Verified
22.1 %
25.3 %
35.7 %
+10.4
SWE-Bench Pro
21.1 %
24.4 %
32.2 %
+7.8

> 注:人間データ RL = 同じイメージ+自然言語Issue+人間作成テストスクリプト;SSRはこれらを完全に持たない

4.2 消去実験(Ablation)

図9は3つのアブレーション(要素削減)テストを示しています。

画像
  1. Injection-OnlyまたはRepair-Onlyの両方ともスコア低下;両役割を同時に訓練する必要がある
  2. Bug注入戦略:
    • 単なるランダム改変 → 一行の自明な値変更に崩壊
    • 削除+History活用(git逆revert融合)→ 最もリアルでスコア最高
  3. 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の面前では、オープンソースの小規模モデルの方がずっと便利

    2026、新風向:世界モデル × 具身知能 最新総説

    最新の自己進化AIエージェントの新しいパラダイムに関する体系的な総説


    毎日一篇、大規模モデルの論文で私達の思考を鍛えましょう~ここまで読んだなら、ぜひ👍、❤️、↗️の三連、そして⭐のフォローをお願いします!道に迷わなくなりますよ~


    分享網址
    AINews·AI 新聞聚合平台
    © 2026 AINews. All rights reserved.