【れんぞくバッチしょり】

連続バッチ処理(LLM推論) とは?

公開:
💡 先着順ではなく「席が空いたら即座に次の客を案内する」GPU活用術
📌 このページのポイント
連続バッチ処理(Continuous Batching) 静的バッチ(旧方式) リクエストA 処理中 リクエストB 処理中 C 処理 空き… A 続き B 完了→待機 C 完了→待機 GPUが待機時間だらけ 時間 → 連続バッチ(新方式) A 処理中 B 処理中 C 処理中 A 続き D 即投入 C 続き E 即投入 F 即投入 G 即投入 GPU をフル活用! 時間 → ポイント:完了したスロットに即座に次のリクエストを割り当てる 処理中 GPU空き(旧) 新規即投入(新) → 同じGPUで数倍〜数十倍のスループットを実現
連続バッチ処理のイメージ:GPUのアイドル時間をゼロに近づける
ひよこ ひよこ
ペンギン先生、連続バッチ処理って何?バッチ処理の一種なの?
ペンギン先生 ペンギン先生
そうだよ。LLMを使った推論サーバーで、複数のリクエストをまとめて(バッチで)GPUに処理させる技術なんだ。「連続」のポイントが重要でね。
ひよこ ひよこ
「連続」じゃないバッチ処理とどう違うの?
ペンギン先生 ペンギン先生
普通の静的バッチは「8件リクエストが来たら一緒に処理して、全部終わったら次の8件」という流れなんだ。でもLLMは人によって返答の長さが全然違うから、短い返答のリクエストが終わってもGPUが長いリクエストに引っ張られて待ちになってしまうんだよ。
ひよこ ひよこ
GPUが暇になっちゃうのは確かにもったいないね!
ペンギン先生 ペンギン先生
連続バッチは「あるリクエストが完了したら、即座に待機中の新しいリクエストをそのスロットに入れる」方式なんだ。レストランの席案内に例えると、全テーブルが同時に空くのを待つのではなく、1テーブルでも空いたら次のお客さんを通すイメージだね。
ひよこ ひよこ
それで何倍くらい速くなるの?
ペンギン先生 ペンギン先生
ワークロードの種類にもよるけど、同じGPUで数倍〜数十倍のスループットになることが多いよ。vLLMというフレームワークPagedAttentionと組み合わせてこれを実装したことで、LLM推論の効率が劇的に改善されたんだ。
ひよこ ひよこ
仕組みは難しそうだけど、使う側には関係ないよね?
ペンギン先生 ペンギン先生
API利用者には透明だけど、推論コストや応答速度に直結するから、AIサービスを運営・選定する立場では知っておくと大事だよ。OpenAIやAnthropicのAPIサーバーでも使われている技術なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「連続バッチ処理」って出てきたら「LLM推論でGPUを常にフル稼働させるリクエスト管理手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Continuous Batching」 = 連続バッチ処理
💬 「Batch(まとめ処理)」をリクエストごとに区切らず「Continuous(継続的)」に流し続けることから名付けられた手法で、Orca論文(2022年)で提案されたんだよ
← 用語集にもどる