Continuous Batching(連続バッチング)CB
Continuous Batching は、LLM サービングでリクエストごとに完了したスロットを即座に新リクエストで埋めるバッチ手法です。静的バッチに比べてスループットが10倍以上向上し、レイテンシも安定します。
詳細解説
Continuous Batching(連続バッチング、コンティニュアスバッチング、Iteration-level Scheduling や In-flight Batching とも呼ばれる)は、Yu ら(Seoul National University)が2022年の OSDI で発表した Orca システムで提案された LLM サービング手法で、生成長がバラバラなリクエスト群を効率的にバッチ処理する仕組みです。従来の静的バッチング(static batching)では、バッチ内で最も長いリクエストが完了するまで次のバッチを開始できず、短いリクエストの分の GPU が遊んでしまいパディングコストも生じました。Continuous Batching では、デコードの各イテレーション(1トークン生成)ごとにスケジューラがバッチ構成を再評価し、完了したリクエストのスロットを待機キューの新リクエストで即座に埋めることで、GPU の利用率を常に高く保ちます。これにより、vLLM が公開した実測ではスループットが Hugging Face Transformers 比で最大23倍、TGI 比でも数倍向上し、p99 レイテンシも短縮されます。実装には、可変長バッチに対応した Attention カーネル、Prefill(プロンプト処理)と Decode(生成)の分離スケジューリング、KV Cache の動的確保(PagedAttention 等)が必要です。vLLM・Hugging Face TGI・NVIDIA TensorRT-LLM・SGLang など、現在の主要 LLM サービング基盤すべてが採用する事実上の標準技術です。
実装例 / 使い方
- 01vLLM の標準機能でスループットが従来比23倍になった事例があります
- 02Hugging Face TGI・SGLang・TensorRT-LLM が標準採用しています
- 03PagedAttention と組み合わせてGPU使用率を最大化します
関連する用語
KV Cache(KVキャッシュ)
KV CacheKV Cache は、自己回帰生成中に過去トークンの Key・Value を保存して再利用する仕組みです。1トークン生成あたりの計算量が O(N^2) から O...
Speculative Decoding(投機的デコーディング)
SpecDecSpeculative Decoding は、小型のドラフトモデルで複数トークンを先読み生成し、本体モデルで一括検証することで推論を高速化する手法です。出力分布...
Self-Attention(自己注意機構)
SASelf-Attention は、入力系列の各トークンが同じ系列内の他のトークンとの関連度を計算する仕組みです。Query・Key・Value の3行列に射影し...
Flash Attention(高速アテンション)
FAFlash Attention は、GPU の SRAM とタイリングを活用してアテンション行列をメモリに具体化せず計算する I/O 最適化アルゴリズムです。メ...
Transformer
Transformer (トランスフォーマー) は 2017 年 Google 論文で発表された深層学習アーキテクチャで、Self-Attention 機構を核...
Continuous Batching(連続バッチング)を、実際に活用する
用語の意味は分かった。次は実装。EXBANK の無料診断で、貴社で具体的にどう活用できるかをご提案します。
営業時間 平日10-18時 / 通常24時間以内に返信
