AI・機械学習
上級
動的バッチング(LLM)(ドウテキバッチング)
LLM推論サーバーが複数リクエストを動的にまとめてGPUで並列処理する最適化。Continuous Batchingとも呼ばれ、スループット大幅向上。
0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
LLM
推論最適化
vLLM
バッチ処理
スループット
GPU効率化
動的バッチング(LLM)とは
動的バッチング(Dynamic Batching)はLLM推論サーバーが複数のユーザーリクエストを動的にまとめてGPUで並列処理する最適化手法。Continuous Batching(継続的バッチング)とも呼ばれ、aryusz 2022年のorca論文で提案された概念が現代のLLM推論フレームワークの基盤となっている。
静的バッチングとの違い
静的バッチング(従来):
- バッチ内の全リクエストが完了するまで待機
- 短いレスポンスが完了してもGPUが空きスロットを使えない
- GPU使用率: 30〜60%程度
動的バッチング(現代):
- イテレーション(トークン生成)レベルでスケジューリング
- 完了したリクエストの枠に新規リクエストを即座に追加
- GPU使用率: 80〜95%程度
主要実装フレームワーク
| フレームワーク | 実装名 | 特徴 |
|---|---|---|
| vLLM | Continuous Batching | PagedAttentionと組み合わせ |
| TensorRT-LLM | In-flight Batching | NVIDIA GPU最適化 |
| SGLang | RadixAttentionと統合 | プレフィックス共有も同時実現 |
| Hugging Face TGI | Continuous Batching | 幅広いモデル対応 |
パフォーマンス向上効果
スループット: 静的バッチングに対して3〜10倍のスループット向上(モデル・ハードウェアにより変動) レイテンシ: First Token To Time (TTFT) の短縮。長いキューを回避。 GPU利用率: アイドル時間を最小化してGPUリソースを最大活用。
実装上の課題
KVキャッシュ管理: 動的に変化するバッチサイズに対してGPUメモリを効率的に割り当てる必要がある。vLLMのPagedAttentionはOSのページングに着想を得た解決策。
プリエンプション: メモリ不足時に実行中リクエストを一時停止する機構が必要。
優先度制御: SLO(Service Level Objective)対応のリクエスト優先度キューイング。
関連最適化技術
- Speculative Decoding: ドラフトモデルで先読み生成し動的バッチングと組み合わせ
- プレフィックス共有: 共通プレフィックスのKVキャッシュを複数バッチで再利用
- KVキャッシュオフロード: メモリ不足時にCPU DRAMに退避してバッチサイズを維持