BatchLLM: Optimizing Large Batched LLM Inference with Global Prefix Sharing and Throughput-oriented Token Batching

要約

大規模言語モデル (LLM) は、幅広い情報処理および管理タスクにおいてますます重要な役割を果たしています。
これらのタスクの多くは大規模なバッチで実行されるか、オフラインでも実行され、そのパフォーマンス指標はスループットです。
これらのタスクは通常、プレフィックス共有の特性を示し、異なるプロンプト入力が部分的に共通のプレフィックスを示す可能性があります。
ただし、既存の LLM 推論エンジンはストリーミング リクエストを最適化する傾向があり、プレフィックス共有特性を備えた大規模なバッチ タスクのサポートには限界があります。
既存のソリューションは、LRU ベースのキャッシュを使用して、リクエスト間で共通のプレフィックスの KV コンテキストを再利用します。
再利用されようとしている KV コンテキストは、暗黙的なキャッシュ管理によって早期に削除される可能性があります。
さらに、ストリーミング指向のシステムはリクエスト バッチ情報を活用せず、バッチ シナリオに最適になるようにデコード トークンとプレフィル チャンクを混合できないため、GPU を飽和させることができません。
上記の問題に対処するために、BatchLLM を提案します。
BatchLLM は、共通プレフィックスをグローバルに明示的に識別します。
同じプレフィックスを共有するリクエストは、KV コンテキストを最適に再利用するためにまとめてスケジュールされます。
BatchLLM は、リクエストを並べ替えて、デコード トークンと後者のプレフィル チャンクを適切に混合するために、最初にデコードの比率が大きくなるようにリクエストをスケジュールし、メモリ中心のトークン バッチ処理を適用してトークン バッチ サイズを拡大します。これは、GPU 使用率の向上に役立ちます。
最後に、BatchLLM は、水平融合を使用してプレフィックス共有のアテンション カーネルを最適化し、テール エフェクトとカーネル起動のオーバーヘッドを削減します。
広範な評価により、BatchLLM は、さまざまなハードウェア環境下での一連のマイクロベンチマークと一般的な業界のワークロードにおいて、vLLM および SGLang よりも 1.3$\times$ から 10.8$\times$ 優れていることがわかりました。

要約(オリジナル)

Large language models (LLMs) increasingly play an important role in a wide range of information processing and management tasks. Many of these tasks are performed in large batches or even offline, and the performance indictor for which is throughput. These tasks usually show the characteristic of prefix sharing, where different prompt input can partially show the common prefix. However, the existing LLM inference engines tend to optimize the streaming requests and show limitations of supporting the large batched tasks with the prefix sharing characteristic. The existing solutions use the LRU-based cache to reuse the KV context of common prefix between requests. The KV context that are about to be reused may prematurely evicted with the implicit cache management. Besides, the streaming oriented systems do not leverage the request-batch information and can not mix the decoding tokens with the prefill chunks to the best for the batched scenarios, and thus fails to saturate the GPU. We propose BatchLLM to address the above problems. BatchLLM explicitly identifies the common prefixes globally. The requests sharing the same prefix will be scheduled together to reuse the KV context the best. BatchLLM reorders the requests and schedules the requests with larger ratio of decoding first to better mix the decoding tokens with the latter prefill chunks, and applies memory-centric token batching to enlarge the token-batch sizes, which helps to increase the GPU utilization. Finally, BatchLLM optimizes the prefix-shared Attention kernel with horizontal fusion to reduce tail effect and kernel launch overhead. Extensive evaluation shows that BatchLLM outperforms vLLM and SGLang by 1.3$\times$ to 10.8$\times$ on a set of microbenchmarks and a typical industry workload under different hardware environments.

arxiv情報

著者 Zhen Zheng,Xin Ji,Taosong Fang,Fanghao Zhou,Chuanjie Liu,Gang Peng
発行日 2025-01-17 09:37:36+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.CL, cs.DC, cs.LG パーマリンク