AI・機械学習
上級

Continuous Batching (2022)(コンティニュアスバッチング2022)

Yu ら ORCA 2022年 LLM 推論バッチング革新。生成途中のリクエストを動的にバッチ再配置→スループット 5-10倍向上

0 回閲覧
0 いいね
2026/5/23 更新
関連タグ
LLM
推論最適化
Continuous Batching
ORCA
2022
Seoul National
OSDI
バッチング

概要

Continuous Batching(連続バッチング、In-Flight Batching とも呼ばれる)は 2022年7月に韓国 Seoul National University の Gyeong-In Yu・Joo Seong Jeong ら 5名が OSDI 2022(USENIX Symposium on Operating Systems Design and Implementation)で発表した LLM 推論バッチング革新手法(論文「ORCA: A Distributed Serving System for Transformer-Based Generative Models」)。

従来 Static Batching(静的バッチング)は同じバッチ内のリクエスト全てが生成完了するまで待つため、短文応答(10 tokens)と長文応答(500 tokens)が同じバッチに入ると短文も長文完了まで GPU 浪費する問題があった。Continuous Batching は生成完了したリクエストを即座にバッチから除去し、新しいリクエストを動的に追加することで GPU 使用率を最大化、スループット 5-10倍 向上。

vLLM (UC Berkeley 2023)・HuggingFace TGI (2023)・NVIDIA TensorRT-LLM (2023)・SGLang (LMSYS 2024) 等の全ての主要 LLM 推論サーバが採用し、現代 LLM サービング基盤の事実上標準アルゴリズム。

主な特徴・仕組み

  • 動的バッチ管理: 生成完了 → 即除去、新リクエスト → 即追加、GPU アイドル時間ゼロ化
  • Iteration-level Scheduling: 各 step(トークン生成 1回)毎にバッチ再構成
  • Selective Batching: prefill (プロンプト処理) と decoding (生成) を別バッチで実行
  • KV キャッシュ管理: 各リクエストの KV キャッシュをメモリプールで動的割当
  • スループット向上: 静的バッチ比 5-10倍(短文と長文混在シナリオで顕著)
  • レイテンシ低下: P99 レイテンシ 30-60% 削減
  • GPU 使用率: 静的バッチ 30-50% → Continuous 80-95%
  • 対応モデル: GPT・Llama・Mistral・Mixtral・Falcon 全 Transformer 系列
  • OS バージョン: ORCA 論文 v1 (2022-07 OSDI)・各サーバ独自実装で進化

スペック比較表

項目Continuous Batching (2022)Static BatchingDynamic BatchingPagedAttention 連携
バッチ動的更新各 iterationバッチ完了までバッチ作成時各 iteration
GPU 使用率80-95%30-50%50-70%90-95%
スループット向上5-10x (vs Static)baseline2-3x7-15x
P99 レイテンシ30-60% 削減baseline20-30% 削減40-70% 削減
採用サーバvLLM, TGI, TRT-LLM旧 PyTorch ServeNVIDIA TritonvLLM 標準

具体例・対応製品

  • vLLM (UC Berkeley 2023-06): Continuous Batching + PagedAttention、業界標準
  • HuggingFace TGI (2023-04): Text Generation Inference、Rust 実装
  • NVIDIA TensorRT-LLM (2023-10): In-Flight Batching として実装
  • SGLang (LMSYS 2024-01): RadixAttention + Continuous Batching
  • NVIDIA Triton Inference Server: Dynamic Batching を拡張して Continuous 対応

選び方・注意点

  • 現代 LLM サーバでは標準: 新規構築ならContinuous Batching 対応必須、Static は時代遅れ
  • スループット重視シナリオ: バッチ 8 以上で効果大、低負荷 (バッチ 1-2) では差小
  • KV キャッシュ管理重要: PagedAttention (vLLM) や RadixAttention (SGLang) 等と組合せで最大効果
  • prefill vs decoding 分離: 高度実装は両者を別バッチで並列実行 (chunked prefill)
  • 公平性問題: 長文リクエストが短文を圧迫しないよう scheduling policy 重要
  • monitoring 困難: バッチ構成が動的に変わるため per-request latency 追跡が複雑
  • memory fragmentation: KV キャッシュの動的割当でフラグメント化、PagedAttention で解決

関連用語との違い

用語違い
Continuous Batching (2022)動的バッチ再配置・iteration 単位
FlashAttention-2 (2023)attention 計算ライブラリ
TensorRT-LLM (2023)NVIDIA 専用推論スタック (Continuous 含む)
GGUF Quantization (2023)llama.cpp 量子化フォーマット
BitNet (2024)1.58-bit 学習量子化

よくある質問(FAQ)

Q1: 静的バッチングとの違いは? A: 静的は同じバッチ全リクエスト完了まで待つ(短文も長文完了まで GPU 浪費)、Continuous は完了即除去 + 新規即追加。短文/長文混在シナリオで GPU 使用率 30-50% → 80-95% に劇的改善。

Q2: PagedAttention とどう違う? A: 別レイヤーの最適化。Continuous Batching は「バッチをいつ更新するか」、PagedAttention は「KV キャッシュをどう管理するか」。両者を組合せると vLLM の標準構成 (バッチ動的更新 + KV ページング) になる。

Q3: 低負荷時のメリットは? A: バッチ 1-2 では効果小、バッチ 8-32 で 5-10倍、バッチ 64+ で 10-15倍。本番サービス(同時 100+ リクエスト)では必須技術、開発/テスト環境では差を感じにくい。

まとめ

  • Seoul National University 2022年7月 OSDI 発表・ORCA システム
  • 動的バッチ再配置で GPU 使用率 30-50% → 80-95%
  • スループット 5-10倍向上・P99 レイテンシ 30-60% 削減
  • vLLM・TGI・TensorRT-LLM・SGLang 全主要サーバ採用
  • 現代 LLM サービング基盤の事実上標準アルゴリズム
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/5/23