LLM推論最適化(エルエルエムスイロンサイテキカ)
LLM(大規模言語モデル)の推論処理を高速化・省メモリ化するための総合的な技術体系。量子化・KVキャッシュ最適化・バッチング戦略・アテンション高速化などを組み合わせ、レイテンシ削減とスループット向上を実現する。
LLM推論最適化とは
LLM推論最適化とは、大規模言語モデルの推論(inference)時に発生する計算コスト・メモリ消費・レイテンシを削減し、同一ハードウェアでより多くのリクエストを処理可能にする技術群の総称である。GPT-4oやClaude 4、Llama 3.1 405Bなど数百億〜数兆パラメータ規模のモデルでは、1トークン生成あたりの計算量がGFLOPS単位に達するため、推論最適化なしでは商用サービスとしての運用が現実的でない。
推論最適化が必要な背景
LLMの推論コストはモデルサイズに比例して増大する。Llama 3.1 405Bを FP16 で推論する場合、810GBのVRAMが必要となり、NVIDIA H100 80GB SXMでも最低11台が必要になる。1リクエストあたりのレイテンシはprefill(プロンプト処理)で数百ms、decode(トークン生成)で数十ms/tokenとなり、同時100ユーザーを捌くには秒間数千トークンの生成スループットが求められる。
| モデル | パラメータ数 | FP16 VRAM | INT4 VRAM | 推定TPS (H100) |
|---|---|---|---|---|
| Llama 3.1 8B | 80億 | 16GB | 4.5GB | 180 tok/s |
| Llama 3.1 70B | 700億 | 140GB | 38GB | 45 tok/s |
| Llama 3.1 405B | 4050億 | 810GB | 210GB | 12 tok/s |
| Mixtral 8x22B | 1410億(active 39B) | 282GB | 75GB | 65 tok/s |
| GPT-4o (推定) | 1.8T MoE | - | - | 非公開 |
主要な最適化技術の分類
LLM推論最適化は大きく5つのカテゴリに分類される。
1. モデル圧縮
- 量子化(Quantization): FP16→INT8/INT4に精度を落としてメモリ・計算量を削減。GPTQ、AWQ、GGUF形式が主流。Llama 3.1 70BをINT4量子化すると140GB→38GBに圧縮可能
- 蒸留(Distillation): 大型モデルの知識を小型モデルに転写。Phi-3 miniやGemma 2 2Bが代表例
- プルーニング(Pruning): 重要度の低い重みを除去。SparseGPTで50%スパース化しても精度劣化は2%以内
2. アテンション高速化
- FlashAttention-2/3: メモリアクセスパターンを最適化し、標準アテンションの2〜4倍高速化
- Multi-Query Attention (MQA): Key/Valueヘッドを共有して KVキャッシュサイズを1/8〜1/32に削減
- Grouped-Query Attention (GQA): MQAとMHAの中間。Llama 3系列で採用、8グループで品質維持
3. KVキャッシュ最適化
- PagedAttention: vLLMが実装。OSの仮想メモリ管理を模倣し、KVキャッシュの断片化を解消。メモリ利用効率を最大4倍改善
- Prefix Caching: 共通プレフィックス(システムプロンプト等)のKVキャッシュを再利用
- KVキャッシュ量子化: FP16のKVキャッシュをINT8/FP8に量子化して容量を半減
4. バッチング戦略
- Continuous Batching: リクエスト単位ではなくイテレーション単位でバッチを動的に構成。待ち時間を最小化
- Dynamic Batching: 到着リクエストを一定時間バッファしてまとめて処理
- Chunked Prefill: 長いプロンプトを分割してprefillし、decode中のリクエストとインターリーブ
5. 投機的デコーディング
- Speculative Decoding: 小型ドラフトモデルで複数トークンを先読み生成し、大型モデルで一括検証。リジェクション率が低ければ2〜3倍の高速化
- Medusa: ドラフトモデル不要。追加ヘッドで複数候補を同時予測
- EAGLE-2: コンテキスト対応の動的ドラフトツリーで投機精度を向上
推論フレームワーク比較
| フレームワーク | 開発元 | 主要機能 | 対応GPU | ライセンス |
|---|---|---|---|---|
| vLLM | UC Berkeley | PagedAttention, Continuous Batching | NVIDIA/AMD/TPU | Apache 2.0 |
| TensorRT-LLM | NVIDIA | カーネル融合, FP8量子化 | NVIDIA専用 | Apache 2.0 |
| SGLang | UC Berkeley | RadixAttention, 構造化出力高速化 | NVIDIA/AMD | Apache 2.0 |
| llama.cpp | ggerganov | GGUF量子化, CPU/Metal推論 | CPU/Apple Silicon/CUDA | MIT |
| Ollama | Ollama Inc. | llama.cppラッパー, ローカル実行 | CPU/CUDA/Metal | MIT |
| LMDeploy | InternLM | TurboMind, INT4推論 | NVIDIA | Apache 2.0 |
実運用での最適化戦略
ユースケース別推奨構成
- チャットボット(低レイテンシ重視): vLLM + FlashAttention-3 + INT4量子化。目標: TTFT 200ms以下、TPS 80以上
- バッチ処理(スループット重視): TensorRT-LLM + FP8 + large batch size。目標: 秒間500トークン以上
- エッジ/ローカル: llama.cpp + Q4_K_M量子化 + Apple Silicon Metal。MacBook Pro M4で Llama 3.1 8B が40 tok/s
コスト試算例
NVIDIA H100 1台(クラウド $3.5/h)で Llama 3.1 70B INT4を運用した場合:
- Continuous Batching有効: 同時32リクエスト処理可能
- 月間コスト: $2,520(720h稼働)
- 1Mトークンあたり: 約$0.18(GPT-4o $2.50/1MTの約1/14)
よくある質問(FAQ)
Q1: 量子化するとどのくらい精度が落ちますか? A: INT4量子化(GPTQ/AWQ)で一般的なベンチマーク(MMLU等)のスコア低下は1〜3%程度。ただしコーディングや数学推論など精密なタスクでは5%以上低下する場合がある。INT8量子化ならほぼ無劣化(0.5%以内)。
Q2: vLLMとTensorRT-LLMはどちらが速いですか? A: NVIDIA GPU専用環境ではTensorRT-LLMがカーネル融合最適化で10〜20%高速。ただしvLLMはAMD GPU/TPU対応・デプロイ容易性で優位。2026年時点ではvLLMが業界標準。
Q3: FlashAttention-3とFlashAttention-2の違いは何ですか? A: FlashAttention-3はH100のTMA(Tensor Memory Accelerator)とFP8をネイティブ活用し、FA-2比で最大1.5〜2倍高速。Hopper世代以降のGPU専用で、Ampere世代(A100)ではFA-2が最速。
Q4: ローカルPCで70Bモデルは動きますか? A: INT4量子化で約38GB VRAM必要。RTX 4090 24GBでは単体不可だが、2枚NVLink構成(48GB)またはCPUオフロード併用で動作可能。Apple M4 Max 128GB統合メモリなら余裕で動作(約15 tok/s)。
まとめ
- LLM推論最適化は量子化・アテンション高速化・KVキャッシュ最適化・バッチング・投機的デコーディングの5軸
- vLLMが2026年時点のデファクト推論エンジン。PagedAttentionとContinuous Batchingが核心技術
- INT4量子化で精度1〜3%低下と引き換えにVRAM使用量を75%削減可能
- 適切な最適化の組み合わせにより、商用APIの1/10以下のコストで同等品質のサービスを構築可能