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%程度

主要実装フレームワーク

フレームワーク実装名特徴
vLLMContinuous BatchingPagedAttentionと組み合わせ
TensorRT-LLMIn-flight BatchingNVIDIA GPU最適化
SGLangRadixAttentionと統合プレフィックス共有も同時実現
Hugging Face TGIContinuous 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に退避してバッチサイズを維持
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/6