テクニカルガイド

連続バッチ処理

連続バッチ処理は、固定バッチ全体が終了するのを待つのではなく、実行中のバッチに対してトークンごとにリクエストを追加および削除する処理手法です。

2分の読書最終更新日

概要

It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.

ディープダイブ

GPU は、多くのリクエストをバッチでまとめて処理するときに最も高速になります。単純なアプローチである静的バッチ処理では、固定のリクエストのセットをグループ化し、それらをすべて完了まで実行してから、次のバッチを開始します。問題: 言語モデルの出力の長さは大幅に異なるため、短いリクエストは早く終了し、バッチが最も長いリクエストを待機している間スロットはアイドル状態になり、GPU サイクルが無駄になり、新しい到着が遅れます。連続バッチ処理 (インフライトまたは反復レベルのバッチ処理とも呼ばれ、Orca 論文によって普及し、vLLM、TensorRT-LLM、および TGI で使用されます) は、単一のデコード ステップの粒度で動作します。各トークンが生成されると、完了したシーケンスがバッチから出て、新しく到着したリクエストがすぐにスロットに入れられます。これにより、バッチがいっぱいになり、GPU が飽和した状態が維持され、多くの場合、待機中のユーザーの待ち時間が短縮され、スループットが数倍向上します。

技術的な洞察

重要な変化は、リクエスト全体のバッチ処理から個々の反復のバッチ処理へです。すべてのデコード ステップで、スケジューラはアクティブ セットを構築します。スケジューラは、すべての実行中のシーケンスに対して 1 回の順方向パスを実行し、それぞれ 1 つのトークンを発行し、シーケンスの終わりのトークンまたは長さの制限に達したものを排除し、キューに入れられたリクエストが空きスロットを埋めることを許可します。これを PagedAttendance の柔軟な KV メモリと組み合わせると、各シーケンスのキャッシュが独立したブロックに存在するため、飛行中のシーケンスの挿入と削除が安価になります。

戦略的影響

費用と予算

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

より明確な判決

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

品質管理

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

継続的バッチ処理の将来

連続バッチ処理は、実稼働 LLM サービスの標準となっています。今後の作業では、スケジューラを改良します。計算量の多いプリフィル フェーズと軽量のデコード フェーズの分離 (分解)、デコードの停止を避けるためのチャンク化されたプリフィル、混合ワークロードの優先順位と公平性ポリシー、およびステップごとに複数のドラフト トークンが検証されるように投機的デコードとの緊密な結合が行われます。目標は、個々の応答レイテンシーを低く予測可能に保ちながら、GPU あたりの 1 秒あたりの最大トークン数を絞り出すことです。

現実世界の実装

新しく到着したユーザー メッセージを次のバッチのキューに入れるのではなく、すぐに実行中のバッチに入れるチャット API

バッチの途中で短い完了した回答をエビクトし、そのスロットを埋め戻すことで、GPU が長い世代を待ってアイドル状態になることがなくなります。

連続バッチ処理と vLLM の PagedAttending を組み合わせて、各デコード ステップでシーケンスを安価に挿入および削除する

バッチをフル状態に保つことで、バースト的な可変長トラフィック下でも高い 1 秒あたりのトークン数を維持するコード補完サービス

リスクとガードレール

1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

インフラストラクチャとメンテナンスのコストは過小評価されがちです。

システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

1

実装前にレイテンシ、品質、コストの目標を定義します。

2

現実的な負荷とデータ条件でのベンチマーク。

3

エラー、ドリフト、ユーザーへの影響を計測器で監視します。

4

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Continuous Batching quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

クイズを開始する

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

次のガイド

ML ワークロードのための Kubernetes

よくある質問

What is Continuous Batching?

連続バッチ処理は、固定バッチ全体が終了するのを待つのではなく、実行中のバッチに対してトークンごとにリクエストを追加および削除する処理手法です。これにより、GPU が常にビジー状態になり、AI モデルが一度にサービスできるユーザーの数が大幅に増加します。

LLM サービスの静的 (固定) バッチ処理の主な弱点は何ですか?

出力の長さが異なるため、完了したシーケンスは最も遅いシーケンスが完了するまでアイドル状態になり、GPU サイクルが無駄になり、新しいリクエストが遅延します。

連続バッチ処理ではリクエストの追加と削除はどの程度の粒度で行われますか?

継続的 (反復レベル) バッチ処理では、単一のデコード ステップごとにアクティブ セットが更新されるため、リクエスト全体ごとではなくトークンごとに動作します。

連続バッチ処理でシーケンスがバッチの途中で終了すると、そのスロットはどうなりますか?

終了したシーケンスは排除され、待機中のリクエストはすぐにスロットに入れられるため、バッチはフルになり、GPU はビジー状態に保たれます。

シーケンスの挿入/削除を安価にするために、連続バッチ処理と自然に組み合わせられる手法はどれですか?

PagedAttendance は、各シーケンスの KV キャッシュを独立したブロックに保存するため、途中でシーケンスを追加または削除しても、他のユーザーのメモリを妨げることはありません。

一般に、反復レベル (連続) バッチ処理の普及に貢献したと考えられている研究論文は何ですか?

Orca の論文では反復レベルのスケジューリングが紹介されており、このアイデアは vLLM、TGI、TensorRT-LLM などのサービス システムに採用されました。