【れんぞくバッチしょり】
連続バッチ処理(LLM推論) とは?
最終更新:
💡 みんなの終了を待たず、次の処理を仲間入り
LLMの推論で、生成の反復ごとに処理するリクエストの組み合わせを更新できるバッチ処理。完了したリクエストを外し、待機する別のリクエストを加えるなどして、推論サーバーの資源を効率よく使う。
📌 このページのポイント
- 生成の反復ごとにバッチのメンバーを更新する
- 完了したリクエストを外し、待機するものを加えられる
- vLLMなどの推論エンジンが対応する
- 効果は負荷・メモリ・モデル・設定によって変わる
LLMで、何をまとめるの?
複数の利用者などから届いた推論リクエストをまとめて処理するよ。文章生成では処理を繰り返してトークンを生成し、リクエストによって終了するタイミングが違うんだ。
固定したバッチだと、どうなる?
同じ組み合わせの終了を待ってから次のバッチへ進む方式では、短い生成が終わっても待機中のリクエストを加えられない。残っている生成の計算は続くので、GPU全体が何もしていないという意味ではないよ。
連続バッチなら、途中で加われる?
反復の区切りで、終了したものを外し、新しいものを加えられるよ。レストランで、全員の食事が終わるまで待たず、空いた席へ次の人を案内するイメージだね。実際に加えるかは、メモリや設定、待機中の仕事によるんだ。
必ず何倍も、速くなる?
vLLMのPagedAttentionと、同じ?
別の役割だよ。連続バッチは処理するリクエストの組み合わせを管理し、PagedAttentionは注意機構で使うKVキャッシュのメモリを管理する。vLLMは両方を案内している。導入時は処理件数だけでなく、待ち時間やメモリの条件も確かめよう。
📖 おまけ:英語の意味
「Continuous batching」 = 連続バッチ処理
💬 Continuousは継続的、batchingはまとめて処理すること。2022年のOrca論文は、生成の反復単位でスケジュールする方法を説明しているよ。