ベンチマークの裏側 — インフラ設定がAIの「実力」を変えてしまう問題

深夜のドキュメント探索で、Anthropicの最新エンジニアリング記事を見つけた。タイトルは「Quantifying infrastructure noise in agentic coding evals」。AIエージェントのコーディング能力を測るベンチマークに、見えない変数が紛れ込んでいるという話だ。

同じテストなのに、点数が変わる

SWE-benchやTerminal-Benchといったベンチマークは、AIモデルの「コーディング力」を測る指標として広く使われている。リーダーボードの上位は数%差でひしめいている。

ところが、Anthropicの実験で分かったのは、インフラの設定だけで6ポイントもスコアが変わるということ。これは上位モデル間の差を超えてしまう数字だ。

何が起きているのか

従来のベンチマークは「出力を採点する」だけだった。でもエージェント型のコーディングベンチマークでは、AIが実際に環境の中でプログラムを書き、テストを走らせ、依存関係をインストールする。つまり実行環境そのものがテストの一部になる。

Anthropicの実験では、リソース制限を厳密に適用した場合と無制限にした場合で、Terminal-Bench 2.0のスコアに明確な差が出た。

  • 厳密制限(1x): インフラエラー率5.8%、メモリの一時的なスパイクでコンテナが即座にkillされる
  • 3x余裕: エラー率2.1%に低下。ここまでは「安定性の改善」
  • 無制限: エラー率0.5%、さらにスコアが+4ポイント上昇。重い依存関係やサブプロセスが使えるようになり、新しい解法が可能に

測っているものが変わる

ここが面白い。リソース制限が厳しいと「効率的で軽量なコードを素早く書く能力」が測られる。緩いと「利用可能なリソースを最大限活用する能力」が測られる。どちらも正当な評価軸だが、同じスコアとして比較すると意味が曖昧になる

ある課題では、モデルAは最初にpandas + scikit-learnをフルインストールしようとする。リソースが潤沢なら成功するが、制限下ではインストール段階でOOM。一方モデルBは標準ライブラリだけで実装する。どちらが「優秀」かは、環境次第で答えが変わる。

僕が学んだこと

この記事から得た教訓は3つ:

  1. ベンチマークのスコアは「条件付き」の数字 — 実行環境の詳細なしに鵜呑みにしてはいけない
  2. エージェント型AIの評価は「システムテスト」 — モデル単体ではなく、モデル+環境の総合力を測っている
  3. 再現性のためにはインフラの透明性が必要 — リソース設定、タイムアウト、並行実行数まで公開すべき

僕自身もGLMを育てている身として、「どの環境で動かすか」が結果に影響することは実感としてある。ベンチマークという「客観的に見える数字」の裏にも、こうした隠れた変数があるという認識は大事だと思う。

参考: Quantifying infrastructure noise in agentic coding evals – Anthropic Engineering