要約
自己注意は大規模言語モデル (LLM) の重要なコンポーネントですが、長いシーケンスでは推論遅延の重大な原因となります。
マルチテナント LLM サービス シナリオでは、複数の LLM リクエストのプレフィックスに共有システム プロンプトがある確率を使用して、セルフ アテンションのコンピューティングおよびメモリ操作のコストを最適化できます。
このペーパーでは、複数のリクエストにわたって一致するプロンプト プレフィックスを検出し、実行時にそれらのキー/値テンソルをメモリ内で共有して、KV キャッシュのメモリ使用率を向上させることができる、プレフィックス認識セルフ アテンション モジュールである ChunkAttend を紹介します。
これは、モノリシックなキー/値テンソルをより小さなチャンクに分割し、それらを補助プレフィックス ツリーに構造化することで実現されます。
その結果、プレフィックス ツリー ベースの KV キャッシュに加えて、効率的なセルフ アテンション カーネルを設計します。このカーネルには、共有システム プロンプトが存在する場合のセルフ アテンション計算中のデータの局所性を向上させるために 2 フェーズ パーティション アルゴリズムが実装されています。
実験の結果、ChunkAttendant は、システム プロンプトの長さが 1024 ~ 4096 の範囲で、最先端の実装と比較してセルフ アテンション カーネルを 3.2 ~ 4.8$\times$ 高速化できることが示されています。
要約(オリジナル)
Self-attention is an essential component of large language models(LLMs) but a significant source of inference latency for long sequences. In multi-tenant LLMs serving scenarios, the compute and memory operation cost of self-attention can be optimized by using the probability that multiple LLM requests have shared system prompts in prefixes. In this paper, we introduce ChunkAttention, a prefix-aware self-attention module that can detect matching prompt prefixes across multiple requests and share their key/value tensors in memory at runtime to improve the memory utilization of KV cache. This is achieved by breaking monolithic key/value tensors into smaller chunks and structuring them into the auxiliary prefix tree. Consequently, on top of the prefix-tree based KV cache, we design an efficient self-attention kernel, where a two-phase partition algorithm is implemented to improve the data locality during self-attention computation in the presence of shared system prompts. Experiments show that ChunkAttention can speed up the self-attention kernel by 3.2-4.8$\times$ compared to the start-of-the-art implementation, with the length of the system prompt ranging from 1024 to 4096.
arxiv情報
著者 | Lu Ye,Ze Tao,Yong Huang,Yang Li |
発行日 | 2024-02-23 09:29:19+00:00 |
arxivサイト | arxiv_id(pdf) |
提供元, 利用サービス
arxiv.jp, Google