ベンチ数字が嘘をつくとき:試験台と実機を混ぜない
AI 公開日 更新日 中級

ベンチ数字が嘘をつくとき:試験台と実機を混ぜない

開発機での確認値と実機GPUの計測を混同しない読み方と、公開前のチェックを解説します。

メトリフクロウ
メトリフクロウ 検証ラボ / Evaluation Lead

検証ラボの メトリフクロウ です。ベンチマーク数字は強い説得材料になります。だからこそ危険です。条件が違う数字を「実測」として扱うと、社内外の信頼を一気に失います。速い表は、正しいラベルが付いて初めて意思決定の材料になります。

この回の答え

試験台の数字と実機の数字を混ぜません。環境ラベルを先に固定し、条件が違う数字は同じ土俵に載せません。全モデルが大きく下回るときは測定条件を疑います。

この回だけの用語

用語ひとことで
ハーネス確認計測手順が通るかの試験台。本番の速さ比べではない
real-gpu比較に使う値を取る実機計測
到達性サーバが生きて応答できるか。品質以前の前提
環境ラベル「どの試合の数字か」を表す札。無い表は差し戻す
workload同時実行・出力長など負荷条件のセット

ここで言うハーネスは、計測や起動の手順が通るかを試す試験台です。たとえで言うと、CI のモック試験と本番負荷試験を同じ表に載せない、に近い感覚です。社内検証でも、開発機でその試験台自体を試す段階と、GPU付き実機でモデルを測る段階を明確に分けています。前者は「測れること」の確認、後者は「比較に使う値」の取得です。混ぜた瞬間に、物語は強くなっても再現性は消えます。

図1: 条件が違う数字は同じ土俵に載せない
図1: 条件が違う数字は同じ土俵に載せない

ポイント
条件が違う数字を「実測」として並べると、比較ではなく宣伝になります。

起きやすい混同

状況一見すると実態
開発機 + モックendpointtok/s が出るモデル推論ではない
GPU無しホストパイプラインは通るhardware snapshot にGPUが無い
到達不能endpoint評価が0点モデルが弱いのではなく未起動
ストリームchunk近似token速度に見える近似であり実トークンと一致しない場合がある(チャンク数≠実トークン数のことがある)
ウォームアップ無し遅く見える初回ロードやキャッシュ未準備の影響
CUDA graph 無効の評価サーブ本番より極端に遅いenforce-eager 等で 本番設定ではないことがある(CUDA グラフを切った評価用起動=本番より遅く出やすい)
並列度だけ違う中間の遅さに見える経路差ではなく concurrency 由来であることが多い
条件不明の公開値飛び値に見える単ストリームか集約かも不明なら並べない
ゲートウェイ欠測を低スコア置換「品質が悪い」に見えるタイムアウト等の欠測を平均に混ぜていないか
prefix cache 前提のデモ入力過大に速く見える本番の可変接頭辞では効かないことがある
GPU 同居負荷ありモデル差に見える別プロセス(例: 画像生成)の競合を疑う
全モデルが公開スコアを大きく下回る「モデルが弱い」に見える測定側の異常シグナル。sampling・生成長・thinking を先に疑う
thinking ON/OFF で差なし能力差なしに見えるフラグが評価経路に届いていないことがある
思考が終わらず無限に伸びるモデルの限界に見えるtemperature=0(greedy)など、公式が禁止する設定のことがある
モデル間の順位が公開値と逆新しい発見に見える誤設定はモデルごとに効き方が違い、順位まで入れ替わる

harness-check / real-gpu は連載での公開用環境ラベルです。実装では hardware_snapshot 等として残します。

実際、品質スモークが全失敗でも、原因がモデル劣化ではなく JSON decode できない(サーバ未応答) であることがあります。これを「モデル不合格」と誤記すると、次の改善方針がずれます。数字そのものより、失敗の種類分けが先です。

品質ベンチでも同じです。複数モデルがそろって公開スコアを大きく下回ったら、個別症状をモデルへ帰属させる前に測り方を疑うのが定石です。「思考の暴走」も、greedy decoding の産物であることがあります。

ラベルを先に固定する

run を残すとき、最低でも次のラベルを必須にします。

  • 環境種別: harness-check / real-gpu
  • endpoint 種別: mock / local-server / remote-server(内部URLは残さない)
  • GPU有無: hardware snapshot の要約(機種名の公開可否は別判断)
  • 到達性: health OK の有無
  • ワークロードID: 比較セット名

このラベルが無い表は、社内共有前に差し戻します。「速い」より「比較可能」を優先する、という原則の実装です。

公開・共有前のチェック

  1. hardware snapshot に意図したGPUがあるか
  2. endpoint は実サーバか、モックか
  3. error rate と成功件数が説明できるか
  4. 比較対象とワークロードは固定か
  5. ホスト名や内部URLが成果物に残っていないか
  6. ハーネス確認値に「実測」「DGX」などの語が混ざっていないか
  7. 失敗がモデル品質か到達不能かに分類されているか

失敗分類の最小セット

分類意味次の一手
unreachableサーバ未応答・未起動起動と health を直す
configparser / メモリ枠など設定起因1軸で再試験
measurement-invalid条件が届いていない・公式禁止設定で測っているsampling / thinking / 生成長 / リクエスト実体を直す
quality出力不正・タスク不合格モデル/用途適性を疑う
saturated高負荷で error 増上限と同時実行設計を見直す

条件が適用されたことの最終証拠は、評価ハーネスが送ったリクエスト実体です。設定ファイルの記載、手動の疎通確認、正答率の差だけではすり抜けます。モックの受信側で payload を一度撮ると、測れていない run を「差がない」と誤読しにくくなります。

ガードレール(この連載の方針)

  • ハーネス確認値を DGX 実測と書かない
  • 実機数字は再計測し、匿名化してから出す
  • 失敗 run も「失敗の種類」を分けて記録する
  • 改善提案は、数字の優劣より次に変える1軸を優先する
  • デモ用の短い数値を、常駐共有の合格証に使わない
  • 未匿名の生ログや内部エンドポイントを成果物に混ぜない

数値は意思決定の材料であって、物語の装飾ではありません。特に対外説明では、条件が揃っていない比較表は出さない方がマシです。

実務での切り分け手順

疑わしい数字に出会ったら、次の順で潰します。

  1. health と到達性を確認する
  2. 環境ラベル(harness-check / real-gpu)を確認する
  3. 成功数と error rate を見る
  4. ワークロード固定(c、n、プロンプト)を確認する
  5. それでも差があるなら、変えた1軸だけを残して再計測する

この順を飛ばしてモデル比較に入ると、設定事故を性能差として誤学習します。

共有資料で起きやすい言い回し

社内スライドや議事録で、次の言い回しが出たら一度止めてください。

言い回し危険な点言い換え例
「実測でこの tok/s」環境ラベルが無い「実機GPU・workload X の計測」
「開発機でも同傾向」モック混入の可能性「ハーネス確認ではパイプライン通過」
「品質ゼロなので不採用」未起動の可能性「到達不能のため再試験」
「公開スコアより大幅に低い」測定事故の可能性「条件を突合してからモデルを疑う」
「thinking 差なし」フラグ未到達の可能性「リクエスト実体で ON を確認した」
「前回より改善」条件差分が不明「軸Yのみ変更した run 比較」

言葉を整えるだけで、数字そのものを変えなくても意思決定の質が上がります。検証ラボの仕事は、強い表を作ることより、比較可能な表を守ることです。

つまずいたこと

いちばん苦いのは、自分たちが作った表で上司を説得した翌週に、前提条件が崩れて数字が意味を失ったことです。嘘をついたわけではないのに、伝え方が嘘に近づく感覚がありました。

苦労したのは、数字を否定することではなく、「この数字が何を固定していたか」を同じスライドに残す習慣を作ることでした。かっこいいグラフほど、条件欄が省略されます。

この回の要点

  • 数字と同じスライドに固定条件を残す
  • 条件が溶けた表は説得材料に使わない
  • 全モデル未達や順位逆転は、まず測定無効を疑う
  • 美しさより追跡可能性を優先する

ハーネス確認と実機計測を同じ表に載せない、というガードはここで固定します。実機側の数字は再計測と匿名化が済んだものだけを後続回で足し、合格ラインは用途合意のあとです。

続き(推論エンジンの地図など)はレビュー完了分から順に公開します。シナリオの先はシリーズ一覧で確認できます。

よくある質問

ハーネス確認と実機計測の違いは何ですか?

ハーネスは計測手順が通るかの試験台、実機は比較に使う値の取得です。前者の数字を後者の実測として並べると再現性が消えます。

品質スモークが全失敗したらモデル不合格ですか?

いいえ。サーバ未応答や JSON decode 失敗など、到達性の問題であることがあります。失敗の種類分けが先です。

公開してよい数字の条件は?

環境ラベルと workload が揃い、内部URLや未確定の合格ラインを混ぜていないものだけです。未計測の tok/s は捏造しません。

複数モデルがそろって公開スコアを大きく下回ったら?

まず測定条件(sampling・生成長・thinking キー・リクエスト実体)を疑います。モデル弱さより先に、測り方の異常を潰します。

Related

関連記事

Contact

検証や観光DXの進め方について、お気軽にご相談ください。