Inference Acceleration(推論高速化)

article technology high #inference#acceleration#quantization#flashattention#speculative-decoding#kv-cache#llm-serving#mlops
Created: 2026-05-26 Updated:

LLM 推論高速化を 4 ボトルネック × 6 技術系統 (量子化 / Attention カーネル / KV キャッシュ / 投機的デコード / モデル圧縮 / コンパイル) で俯瞰、サービングエンジン・HW・5 大ピットフォールを整理。

Inference Acceleration(推論高速化)

LLM 推論高速化は単一の銀の弾丸ではなく、HBM 帯域・HBM 容量・compute・latency tail の 4 ボトルネックに対する 6 技術系統 (量子化 / Attention カーネル / KV キャッシュ / 投機的デコード / モデル圧縮 / コンパイル) の合成最適化。本稿は umbrella / taxonomy。バッチング詳細は tech-43、TTFT/TPOT/Goodput/MFU は tech-44、Prefill/Decode 非対称性と chunked prefill / PD disaggregation は tech-45

設計空間マトリクス (Bottleneck × Technique)

各技術が攻めるボトルネックを 1 枚で俯瞰。✓✓✓=主効果、✓✓=強い副次、✓=軽微、—=影響なし。

技術HBM BWHBM CapComputeDecode LatPrefill Lat
INT4 / FP8 量子化✓✓✓✓✓✓
MQA / GQA / MLA✓✓✓✓
KV 量子化 (KIVI)✓✓
FlashAttention-2/3✓✓✓✓
FlashInfer / CUDA Graphs✓✓
Speculative Decoding✓✓✓(↑微増)
MoE(↑)✓✓✓✓
torch.compile / TRT-LLM✓✓✓✓✓✓
Streaming / KV eviction✓✓
Distillation / Pruning✓✓✓✓✓✓✓✓✓✓

「全部入り」は P1〜P5 アンチパターンへ直結。ボトルネックを tech-44 の指標で同定してから技術を選ぶ。

量子化 (Quantization)

HBM 帯域 (decode 重み読出し) と HBM 容量 を直接攻撃。decode は memory-bandwidth-bound (tech-45) なので W4A16 で 4× 帯域削減 ≈ 4× TPOT 改善。prefill は compute-bound のため活性量子化 (W4A8 等) しない限り効きは限定的。

  • GPTQ (arXiv:2210.17323) — 二次近似 (OBQ Hessian) W4、Llama-2-70B で PPL 劣化 < 1。calibration ドメイン整合が精度直結。
  • AWQ (arXiv:2306.00978) — 活性絶対値 ~1 % チャネルを保護/スケール、汎用 chat に強く vLLM W4A16 既定。
  • SmoothQuant (arXiv:2211.10438) — 活性外れ値を per-channel スケールで重みへ移植、素 INT8 GEMM を引き出す W8A8。Hopper では FP8 上位互換。
  • FP8 — Hopper Transformer Engine (E4M3/E5M2)、calibration なしほぼロスレス。
  • FP4 / MXFP4 — Blackwell FP4 TensorCore + OCP MX、理論 2× Hopper FP8。2025/2026 ホット。

選定: H100/H200 → FP8、Ampere/Ada → AWQ (汎用) or GPTQ (ドメイン特化)、Blackwell → FP4。

Attention カーネル最適化

標準 softmax-attention は中間 [N, N] を HBM 経由で読み書きする IO-bound。FlashAttention 系は tiled + fused + IO-aware + online softmax で中間を SRAM に閉じ込めメモリ階層を勝つ。

  • FA-1 (arXiv:2205.14135) — exact attention、O(N) メモリ、素 PyTorch 比 2–4×。scaled_dot_product_attention backend。
  • FA-2 (arXiv:2307.08691) — Q 並列化 + 非 matmul FLOPs 削減、A100 ~72 % FLOPS。2023–2025 サービングのベースライン
  • FA-3 (arXiv:2407.08608) — Hopper SM90 の async TMA + WGMMA + FP8、H100 FP8 ~75 %。Hopper 専用、Ampere 不可 (P3)。
  • FlashInfer — 推論特化 (ragged batch / paged KV)、SGLang 採用。
  • Flash-Decoding — 長コンテキスト・小バッチ decode 向け KV 系列次元並列化、FA-2 decode 経路に統合。

カスタム mask/bias は PyTorch 2.5+ FlexAttention で Python lambda から Triton に落とせる。

KV キャッシュ最適化

KV は 2 × layers × heads × head_dim × seq_len × dtype_bytes で長文ほど線形肥大、HBM 容量とバッチサイズの両方を制約。decode-heavy では throughput 支配要因。

  • MQA (arXiv:1911.02150) — 全 Q ヘッドで K/V 1 組共有、KV ~1/num_heads。複雑推論で劣化。
  • GQA (arXiv:2305.13245) — G グループ (G=1→MQA、G=H→MHA)、Llama-2/3 / Mistral 標準、G=8 で 4× 削減、劣化 < 0.5 %。新規モデル既定
  • MLA (arXiv:2405.04434, DeepSeek-V2/V3) — 低ランク joint 射影 latent でキャッシュ、MHA 比 ~5 %。2025/2026 ホット
  • KIVI (arXiv:2402.02750) — 2-bit KV 量子化 (K per-channel / V per-token)、~2× 削減、PPL 劣化ほぼなし。
  • StreamingLLM (arXiv:2309.17453) — 初頭 “attention sink” + 直近窓のみ保持、固定メモリで無限長生成可。長距離依存 (RAG / 長文 QA) は禁止

既存 MHA → MLA upcycling は重量級、KIVI / StreamingLLM はランタイム適用可。

投機的デコーディング (Speculative Decoding)

decode の latency tail を直接攻める唯一の系統。compute・帯域・容量のどれにも乗らない「並列化次元の追加」が本質。

  • オリジナル (arXiv:2211.17192, arXiv:2302.01318) — 軽量 draft が K トークン提案、target が 1 forward で並列検証、rejection sampling で target 分布を厳密保持。期待 K·α + correction、α=0.8, K=5 で ~4×。
  • Medusa (arXiv:2401.10774) — target 最終隠れ状態上の並列予測ヘッド + tree 検証、fine-tuning 必要、1.5–2.5×。
  • EAGLE / EAGLE-2 (arXiv:2401.15077, arXiv:2406.16858) — 隠れ状態上の単層自己回帰 feature predictor、EAGLE-2 は動的 draft tree、~3× / ~3.5×。
  • Lookahead — Jacobi iteration、訓練ゼロ、acceptance は EAGLE 系より低め。

落とし穴: target 量子化で分布が微シフトし α が下落、量子化変更後は本番分布で α 再計測 (P1)。

モデルレベル圧縮

訓練時に推論フレンドリーなアーチファクトを生成、後段の量子化・カーネルと直交し合成可能。

  • Knowledge Distillation — soft label + KL 損失。Llama-3.2-1B/3B は 8B/70B の部分蒸留。post-hoc 不可、GQA + 量子化 + spec decoding と組合せやすい。
  • Structured Pruning (Sheared LLaMA, arXiv:2310.06694) — 構造的マスクをヘッド/MLP/層に学習、標準カーネルで走る dense 縮小モデル。
  • MoE — Mixtral-8x7B: 総 46.7B、token あたり実効 12.9B (top-2/8)。HBM 容量を全 expert 分使うが per-token compute は大幅減。詳細は tech-37

コンパイルとカーネル融合

eager の dispatch + Python オーバーヘッドを潰し op 間融合を引き出す、他の最適化を「漏らさず取り切る」インフラ層。

  • torch.compile / Inductor — PyTorch 2.0+ JIT、10–30 % 向上。動的制御フローで graph capture 破綻。
  • TensorRT-LLM — NVIDIA 最高スループット。in-flight batching + paged KV + FP8/INT8。rebuild 遅い。
  • Triton — FA-2/3 / FlashInfer の大半は Triton 実装、CUDA 直書きより保守容易。
  • CUDA Graphs — launch 録画+replay、dispatch 0.5–2 ms → < 0.1 ms/step。主要エンジン全採用。
  • FlexAttention (PyTorch 2.5+) — Python lambda マスク/バイアスを Triton に落とす。

サービングエンジン概観

各エンジンは上記スタックの組合せパッケージ、ワークロード特性で選ぶ。

エンジン差別化要因第一選択
vLLMPagedAttention + 継続バッチング + 最広モデル対応汎用本番
TensorRT-LLMNVIDIA 最高スループット、FP8/INT8NVIDIA で throughput
SGLangRadixAttention prefix cache、structured genRAG / エージェント
TGI (HF)最小構成、HF 直結プロトタイピング
LMDeployTurboMind、AWQ ネイティブINT4/INT8、APAC
DeepSpeed-MIIZeRO-Inference TP、4-bit ZeroQuantマルチ GPU 超大規模
llama.cppCPU first、GGUF、Apple Siliconエッジ / CPU-only

SGLang RadixAttention (KV ブロックの radix tree) が RAG / エージェントで 5–10× KV 再利用。

ハードウェアレベルの加速

ソフトの最適化は HW 上限に貼り付く。階層は tech-45 と併読。

  • Hopper (H100/H200) — FP8 Transformer Engine、HBM3 ~900 GB/s、WGMMA+TMA で FA-3 可。
  • Blackwell (B100/B200/GB200) — FP4 TensorCore (理論 2× Hopper FP8)、HBM3e ~8 TB/s、NVL72。
  • AMD MI300X — 192 GB HBM3/GPU、70B が TP なしで載る。ROCm+vLLM パリティ急速縮小。
  • カスタム — Groq LPU (SRAM、7B TTFT ~10 ms)、Cerebras WSE-3、SambaNova SN40L。decode HBM 律速を SRAM で打ち抜く。

5 大ピットフォール

tech-43 バッチング / tech-44 指標 / tech-45 フェーズ観点に対し、本稿は技術スタック合成観点。

P1: 量子化 × 投機的デコードを α 再測定なしで積む — target を AWQ/FP8 化で分布が微シフト、draft の α 下落で K·α 利得消失。量子化変更時は本番分布で α 再ベンチを義務化。

P2: AWQ vs GPTQ を calibration fit で見ずに選ぶ — AWQ は汎用、GPTQ は任意 calibration の二次近似。リーガル/メディカル/コード等ドメイン特化では GPTQ 優位。本番 prompt 分布で両方ベンチ。

P3: Ampere で FA-3 を期待する — FA-3 は Hopper SM90 (WGMMA, TMA) 依存。Ampere は FA-2、Hopper のみ FA-3。

P4: GQA で足りる場面で MQA を採る — MQA は複雑推論で目に見える劣化。GQA G=4–8 で 80–95 % の KV BW 利得 + 劣化 < 0.5 %。新規は GQA 一択。

P5: 投機的デコードを「タダ」扱いする — draft prefill + 検証コストは無視できず、短出力や高負荷時はオーバーヘッドが利得を上回る。出力長/負荷で gating する adaptive 制御を入れる。

2025/2026 のホットトレンド

  1. MLA 拡散 — DeepSeek-V3 後、低ランク KV を採る新モデル続出、GQA → MLA がデフォルト候補に。
  2. FP4 / MXFP4 立ち上がり — Blackwell 本番展開と TRT-LLM / vLLM の FP4 経路成熟が同時進行。
  3. EAGLE-3 — feature predictor 高度化で α 更に押し上げ、4–5× 視野。
  4. chunked prefill が vLLM デフォルト化 — 0.4 以降進行 (tech-45)。
  5. SGLang RadixAttention 普及 — prefix-heavy で 5–10× KV 再利用。
  6. AMD MI300X 本格採用 — HBM 容量律速で NVIDIA 分散需要。
  7. Goodput 中心の SLO 設計 — DistServe 由来の goodput が KPI 定着 (tech-44)。

関連リソース

arXiv: FlashAttention arXiv:2205.14135 / arXiv:2307.08691 / arXiv:2407.08608、量子化 arXiv:2210.17323 / arXiv:2306.00978 / arXiv:2211.10438、KV arXiv:1911.02150 / arXiv:2305.13245 / arXiv:2405.04434 / arXiv:2402.02750 / arXiv:2309.17453、投機 arXiv:2211.17192 / arXiv:2302.01318 / arXiv:2401.10774 / arXiv:2401.15077 / arXiv:2406.16858、圧縮 arXiv:2310.06694、フェーズ干渉緩和 arXiv:2403.02310 / arXiv:2311.18677 / arXiv:2401.09670。

ベンダー: vLLM https://docs.vllm.ai/、TensorRT-LLM https://github.com/NVIDIA/TensorRT-LLM、SGLang https://sgl-project.github.io/、TGI https://huggingface.co/docs/text-generation-inference、llama.cpp https://github.com/ggerganov/llama.cpp

Local graph