AI推論ベンチマーク指標
なぜ指標が重要か
LLM推論の最適化では、「速い」の意味が複数あります。大会のスコアが総throughputだけなら高concurrencyに寄せる戦略が強くなります。一方で、実サービスの会話体験ではTTFTやTPOTが重要になります。
メモ上の議論でも、「高concurrencyで総throughputは上がるが、1リクエストあたりのtoken生成速度が落ちる」という懸念が出ています。
基本指標
| 指標 | 読み方 | 意味 |
|---|---|---|
| Throughput | スループット | 単位時間あたりの処理量。tokens/sやrequests/sで表す |
| TTFT | Time To First Token | request開始から最初のtokenが返るまでの時間 |
| TPOT | Time Per Output Token | 出力token 1個あたりにかかる時間 |
| ITL | Inter-Token Latency | token間の待ち時間。TPOTと近い意味で使われることがある |
| Latency | レイテンシ | request全体の応答時間 |
| p50/p95/p99 | percentile | 中央値、遅い5%、遅い1%を見る指標 |
| ISL | Input Sequence Length | 入力token数 |
| OSL | Output Sequence Length | 出力token数 |
| Concurrency | 並行数 | 同時に処理するrequest数 |
ベンチマークで固定すべき条件
| 条件 | 理由 |
|---|---|
| ISL/OSL分布 | prefill/decodeの負荷比が変わる |
| concurrency | throughputとlatencyのtrade-offが変わる |
| request count | 少なすぎると揺らぎが大きい |
| warmup | CUDA graph、cache、JITなどの初回コストを分離する |
| streaming有無 | TTFTやITLの測り方が変わる |
| sampling設定 | 出力長やEOSで結果が変わる |
| ignore_eos | 固定長出力ベンチでは便利だが、現実の出力分布から外れる可能性がある |
Dynamo/AIPerf
Dynamoのbenchmarks/README.mdでは、Dynamo deploymentの測定にAIPerfを使う例が示されています。例では、--concurrency、--request-count、--streamingなどを指定してprofileし、concurrency sweepでPareto分析を行う流れです。
大会でDynamo/AIPerfがそのまま使われるかは未確定ですが、指標の考え方としては有用です。
最小の比較表
実験結果は最低限この形で残します。
| experiment | change | concurrency | ISL | OSL | TTFT p50 | TPOT p50 | output tok/s | req/s | error rate | notes |
|---|---|---|---|---|---|---|---|---|---|---|
| baseline | none |