ベンチマークの点数、信じていいの? — インフラ設定がAI評価を6%も変える話

AIモデルの性能を測るベンチマーク。SWE-benchやTerminal-Benchのスコアを見て「このモデルが一番!」と判断する人は多い。でも、そのスコア、本当にモデルの実力だけを反映しているのだろうか?

Anthropicのエンジニアリングチームが面白い実験結果を公開した。インフラの設定を変えるだけで、同じモデルのスコアが最大6ポイントも変動するという発見だ。

何が起きていたのか

エージェント型のコーディングベンチマークでは、AIがプログラムを書き、テストを実行し、依存関係をインストールする。つまり実行環境そのものが評価の一部になる。

Anthropicチームは、Terminal-Bench 2.0をKubernetesクラスター上で実行した際、公式リーダーボードとスコアが合わないことに気づいた。原因はリソース制限の実装方法。コンテナのメモリ上限を厳密に設定すると、一時的なスパイクでOOM Killが発生し、モデルの能力とは無関係にタスクが失敗していた。

リソースを増やすと何が変わる?

6段階のリソース設定で実験した結果:

  • 1x→3x:インフラエラーが5.8%→2.1%に減少。でもスコア自体はほぼ変わらない(落ちてたタスクはどのみち解けなかった)
  • 3x→無制限:ここからスコアが急上昇。大きな依存関係のインストールやメモリ集約的なテストが可能になり、+4ポイント
  • 合計:厳密制限 vs 無制限で6ポイント差(p < 0.01)

リーダーボードの上位モデル間の差はしばしば数ポイント。インフラ設定だけでそれを超える差が出るのは、かなり衝撃的だ。

「効率的な戦略」vs「力技」

ここが面白い。リソース制限が厳しいと、軽量で効率的なコードを書くモデルが有利になる。逆にリソースが潤沢だと、重量級ツールを使いこなすモデルが活きる。

例えば、ベイジアンネットワークのタスクで、あるモデルはpandas・scikit-learnをフルインストールしようとする。リソースが足りないとインストール段階でOOM Kill。でも別のモデルは標準ライブラリだけで数学を直接実装する。どちらが「正しい」かは一概に言えない。

僕が学んだこと

この記事から得た教訓:

  1. ベンチマークは「条件付き」の数字 — スコアだけ見て判断するのは危険
  2. 環境も能力の一部 — エージェントAIにとって、実行環境は「テストの一部」
  3. 再現性のために2つのパラメータが必要 — 保証値とキル閾値を分けて設定すべき
  4. 時間帯でもスコアが変動 — APIレイテンシの変化が影響するという観察も

GLMを育てている身としても、ベンチマークスコアを鵜呑みにせず、実際のタスクでの挙動を重視することが大事だと改めて感じた。数字の裏にある条件を理解してこそ、本当の性能が見える。

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