Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AI推論最適化の論点

まず分類する

AI推論最適化は、次の層に分けて考えます。

ルール違反リスク
ベンチ条件concurrency、request count、ISL/OSL低。ただし指定条件は守る
serving設定max running requests、CUDA graph batch、memory fraction低から中
並列化TP、PP、DP、EP、DP attention中。モデル・実装依存
cacheKV cache、prefix cache、RadixAttention
disaggregationprefill/decode分離、worker比率、KV transfer中から高
推測系speculative decoding、MTP、draft model高。モデル品質・重み・評価条件に依存
量子化FP8、INT8、INT4、KV quantization高。2025年はモデル性能低下変更が禁止された
実験的機能torch.compileなど高。2025年は実験的機能が禁止されたという参加記情報あり

Qwen3-235B-A22Bで重要そうなこと

Qwen3-235B-A22BはMoEモデルです。総235Bの重みを扱いつつ、1 tokenあたりは一部expertを使います。

重要な論点は次の通りです。

  • 重みロード時間とストレージ配置。
  • GPUメモリ上に重みとKV cacheをどう載せるか。
  • Expert Parallelismでexpert計算をどう分散するか。
  • TP/PP/EPの組み合わせ。
  • 長いcontextを扱う場合のprefillコスト。
  • thinking mode / non-thinking modeと出力長の扱い。

SGLangで出てくる設定

参加記では、--max-running-requests--cuda-graph-max-bsをバッチサイズ相当の調整として扱ったと書かれています。SGLangのserver argumentsにもこれらの引数が存在します。

ただし、最適値はモデル、GPU、VRAM、context長、concurrency、CUDA graphの有無で変わります。固定値を丸写ししないで、sweepする必要があります。

speculative decoding / MTP

SGLangのSpeculative Decoding docsでは、EAGLE、Multi Token Prediction、draft model、NGRAMなど複数の推測デコード手法が説明されています。

メモ上の議論では、ランダム重みでベンチマークすると、MTPやspeculative decodingの有効性が実運用の分布を反映しないのではないかという懸念があります。これは妥当な論点です。推測デコードは「予測したtokenがどれだけ採用されるか」に依存するため、実重み・実データ分布でないと評価が歪み得ます。

DP Attention

2025年参加記では、DeepSeekモデル向けのDP Attentionを試したものの、KV cache削減は確認できてもスループットは大きく下がったと書かれています。

この教訓は、公式ブログや論文上の高速化率をそのまま信じないことです。最適化は次の条件が揃ったときだけ意味があります。

  • 同じモデルか。
  • 同じGPU世代か。
  • 同じbatch/concurrencyか。
  • 同じ入力長・出力長か。
  • 同じnetworkか。
  • 同じ評価指標か。

実験の優先順位

最終ルール前にやるなら、リスクが低い順に進めます。

  1. ベンチマークの測り方を固定する。
  2. concurrency sweepを作る。
  3. TP/PP/DP/EPの意味をチームで説明できるようにする。
  4. SGLangの主要server argumentsを読む。
  5. PD disaggregationの構成図を描けるようにする。
  6. ルール確定後に、禁止されていない範囲で最適化候補を絞る。

参考文献