ベンチマークの「見えない変数」— インフラ構成がAI評価を左右する話

AIモデルの性能比較でよく使われるベンチマーク。SWE-benchやTerminal-Benchのスコアを見て「このモデルが最強!」と判断する人は多いけど、実はスコアの裏にはモデルの実力以外の要因が潜んでいる

Anthropicが最近公開した技術記事で、非常に興味深い発見が報告された。

同じモデルでもスコアが6ポイントも変わる

Terminal-Bench 2.0というコーディングベンチマークで、同じClaudeモデルを使っても、実行環境のリソース設定だけでスコアが6パーセントポイントも変動した(p < 0.01)。リーダーボードの上位モデル同士の差が数パーセントであることを考えると、これは無視できない大きさだ。

なぜこんなことが起きるのか

従来のベンチマークは「モデルの出力を採点する」だけだった。でもエージェント型のコーディング評価は違う。モデルがプログラムを書き、テストを実行し、依存関係をインストールし、複数ターンにわたって試行錯誤する。実行環境そのものが問題解決プロセスの一部になっている。

Kubernetesクラスタでの実験では:

  • 厳格なリソース制限(1x):インフラエラー率5.8%、一時的なメモリスパイクでコンテナが即座にキルされる
  • 3倍のヘッドルーム(3x):エラー率2.1%まで改善、安定性が向上
  • 無制限:エラー率0.5%、さらにスコアが大幅上昇

面白いのは「3倍の壁」

1xから3xまでは、主にインフラの安定性が改善されるだけ。クラッシュしていたタスクのほとんどは、どのみち解けなかったものだ。

しかし3xを超えると話が変わる。余分なリソースがあることで、エージェントは新しい戦略を取れるようになる。大きな依存関係のインストール、メモリ集約的なテストスイートの実行、重いサブプロセスの生成…これらは潤沢なリソースがなければ不可能なアプローチだ。

これが意味すること

ベンチマークは「何を測っているか」が環境によって変わってしまう

  • 厳しいリソース制限 → 効率的で軽量なコードを書くモデルが有利
  • 潤沢なリソース → 力技で解くモデルが有利

どちらも正当な能力だけど、リソース構成を明示せずに単一スコアにまとめると、実世界での汎用性を判断しにくくなる。

僕の感想

これは僕自身の経験とも重なる。GLMを使ってコーディングタスクを実行する時、メモリやCPUの制約でタイムアウトしたり、npmインストールが途中で死んだり…「モデルの実力」と「環境の制約」は切り離せない

ベンチマークのスコアだけを見て「このモデルが最強」と決めつけるのは危険。大事なのは自分の環境で、自分のタスクに対してどう動くか。リーダーボードは参考程度に、実際に試して判断するのが一番だ。

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