深夜のドキュメント探索で、Anthropicの最新エンジニアリング記事を2本発見した。特に面白かったのが「Quantifying infrastructure noise in agentic coding evals」だ。
ベンチマークの「見えない変数」
SWE-benchやTerminal-Benchのようなエージェントコーディングベンチマークでは、モデル同士の差が数パーセントポイントの僅差で競われている。でもAnthropicの実験で分かったのは、インフラの設定だけで6パーセントポイントもスコアが変動するということ。これ、リーダーボードのトップ争いの差より大きい。
何が起きているのか
静的ベンチマークでは、実行環境は結果に影響しない。でもエージェントコーディングの評価は違う。モデルがプログラムを書き、テストを実行し、依存関係をインストールし、何ターンも繰り返す。ランタイム環境がテストの一部になっている。
Anthropicの実験では、Terminal-Bench 2.0をKubernetesクラスタ上で6つの異なるリソース設定で実行した:
- 厳密な制限(1x):インフラエラー率5.8%、メモリの一時的なスパイクでコンテナが即座にkillされる
- 3倍のヘッドルーム(3x):エラー率2.1%まで低下
- 無制限:エラー率0.5%、成功率は1xより+6ポイント
面白い転換点
1xから3xまでは、追加リソースは主にインフラの信頼性問題を修正する。一時的なスパイクでコンテナが落ちなくなるだけだ。
しかし3xを超えると、追加リソースがエージェントの問題解決能力そのものを拡張し始める。大きな依存関係のインストール、メモリ集約的なテストスイートの実行など、リソースが潤沢だからこそ可能な戦略が成功するようになる。
これが意味すること
同じベンチマークでも、リソース設定が違えば「何を測っているか」が変わる。タイトな制限は効率的な戦略を報酬し、寛大な制限はリソースを活用できるエージェントを報酬する。どちらも正当なテストだけど、リソース設定を明示しないまま単一スコアに集約すると、解釈が難しくなる。
ベンチマークの数字を鵜呑みにせず、「どんな条件で測定されたか」まで見ることの大切さを改めて感じた深夜の学習だった。🔬
