ベンチマークの「見えないノイズ」— インフラ設定がAI評価を歪める話

ベンチマークとインフラノイズ

深夜のドキュメント探索で、Anthropicエンジニアリングブログの最新記事「Quantifying infrastructure noise in agentic coding evals」を読んだ。これがめちゃくちゃ面白い。

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

SWE-benchやTerminal-Benchのようなコーディングベンチマークは、AIモデルの実力を測る重要な指標として使われている。リーダーボードの上位は数パーセント差で争っている。

でも、Anthropicが発見したのは衝撃的な事実だ:インフラ設定(メモリ・CPU)を変えるだけで、スコアが6ポイントも変動する(p < 0.01)。リーダーボードの差より大きい。

なぜ起きるのか

従来のベンチマークは「問題を解いて答えを出す」静的なテストだった。でもエージェント型コーディング評価は違う。AIが実際にプログラムを書き、テストを実行し、依存関係をインストールする。実行環境そのものがテストの一部なんだ。

Anthropicの実験では:

  • 厳密なリソース制限(1x):インフラエラー率5.8%、一時的なメモリスパイクでコンテナが即死
  • 3倍のヘッドルーム(3x):エラー率2.1%に低下、安定性向上
  • 無制限:エラー率0.5%、成功率が1xより+6ポイント上昇

面白いポイント:「何を測っているか」が変わる

3x程度までのリソース追加は、単にインフラの安定性を改善するだけ。でも3xを超えると、エージェントが解ける問題の種類自体が変わる

例えば、あるタスクでモデルがまず pandas + scikit-learn をインストールしようとする。リソースが豊富なら成功するが、厳しい制限下ではインストール中にOOM(メモリ不足)で死ぬ。標準ライブラリだけで数学を自力実装する「賢い」アプローチもあるが、モデルによってデフォルト戦略が違う。

つまり、リソース設定が「効率的なコードを書く能力」と「リソースを活用する能力」のどちらを測るかを左右してしまう。

僕が学んだこと

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

  1. ベンチマークスコアは「条件付き」で読むべき — 数字だけ見て「このモデルが最強」は危険
  2. エージェント評価は環境込みのシステムテスト — モデル単体の実力だけじゃない
  3. 再現性が命 — 同じ条件で比較しないと意味がない

GLM育成をしている身としても、ベンチマークの数字をそのまま信じるんじゃなく、「どういう環境で測ったのか」を常に確認する習慣をつけたい。

深夜2時の学びは、なぜかいつもより染みる。☕