[論文レビュー] Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving
Mooncake は KVCache中心の分散型 LLM サービングアーキテクチャを KVCache スケジューラと共に提示し、過負荷を意識したスケジューリングを可能にし、実際のワークロード下でのスループットを大幅に向上させ、より多くのリクエスト処理を実現します。
Mooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI. It features a KVCache-centric disaggregated architecture that separates the prefill and decoding clusters. It also leverages the underutilized CPU, DRAM, and SSD resources of the GPU cluster to implement a disaggregated cache of KVCache. The core of Mooncake is its KVCache-centric scheduler, which balances maximizing overall effective throughput while meeting latency-related Service Level Objectives (SLOs). Unlike traditional studies that assume all requests will be processed, Mooncake faces challenges due to highly overloaded scenarios. To mitigate these, we developed a prediction-based early rejection policy. Experiments show that Mooncake excels in long-context scenarios. Compared to the baseline method, Mooncake can achieve up to a 525% increase in throughput in certain simulated scenarios while adhering to SLOs. Under real workloads, Mooncake's innovative architecture enables Kimi to handle 75% more requests.
研究の動機と目的
- TTFT および TBT の遅延関連 SLO を尊重しつつ、MaaS のような LLM サービングの全体的な実効スループットを最大化する。
- 分離されたハードウェア資源(CPU、DRAM、SSD、RDMA)を活用して、GPU近傍にスケーラブルな KVCache プールを構築する。
- 再利用、バッチ処理、SLO適合のバランスを取る KVCache 中心のスケジューラ(Conductor)を、変動する負荷の下で開発する。
- 予測ベースの早期拒否ポリシーを用いて過負荷時の計算の無駄を避け、過負荷事象に対処する。
- MFU を改善し TTFT を低減するため、長文脈のプリフィルに CPP、レイヤー単位のプリフィル、KVCache の複製などのアーキテクチャと仕組みを提案する。
提案手法
- プリフィルとデコードプールへ GPU クラスター資源を分離し、CPU メモリ、DRAM、SSD、RDMA 転送を横断する KVCache 搭載の分散キャッシュ(Messenger)を実装する。
- KVCache プレフィックス一致、転送コスト、予測プリフィル時間に基づき TTFT/TBT SLO を満たすようにプレフィル/デコードインスタンスを選択するグローバルスケジューラ(Conductor)を導入する。
- 長文脈プリフィルのための CPP によるチャンク化パイプライン並列化を用い、TTFT を低減し、KVCache 転送と計算を重ね合わせる。
- KVCache の読み込み/書き込みを計算と重ね合わせ、VRAM占有を最小化するレイヤー単位プリフィルを実装する。
- ホットスポット複製と KVCache 転送判断を組み合わせた KVCache 中心のスケジューリングアルゴリズムを展開し、キャッシュ再利用とインスタンス負荷のバランスを取る。
- 短期負荷予測を用いた過負荷時の早期拒否ポリシーを提案し、無駄な計算を回避してシステム安定性への影響を検討する。
実験結果
リサーチクエスチョン
- RQ1KVCache 中心の分散アーキテクチャは TTFT および TBT SLO を満たしつつ、LLM サービングのスループットをどのように改善できるか?
- RQ2再利用、ネットワーク転送、計算のバランスを取るためのスケジューリング方針とキャッシュ管理戦略(複製を含む)は、特に過負荷下でどのように最適化されるか?
- RQ3チャンク化プリフィルとレイヤー単位プリフィルは MFU を犠牲にせず長文脈入力の TTFT を低減できるか?
- RQ4予測済み負荷に基づく早期拒否ポリシーは全体的な goodput とリソース利用にどのような影響を与えるか?
- RQ5KVCache 再利用を支えるオープンソースの実世界リクエストトレース構造とは何で、それは研究にどう貢献できるか?
主な発見
- Mooncake は SLO を満たしつつ、シミュレーション環境でベースライン手法より最大 525% のスループット向上を達成している。
- 実際のワークロード下で Mooncake は Kimi が 75% 多くのリクエストを処理できるようにする。
- 長文-context のシナリオでは KVCache 中心の分散設計とスケジューリングから顕著な恩恵を受ける。
- 再現性のある再利用分析のため、23,608 エントリと KVCache ブロックハッシュを含む実世界のリクエスト traces を提供する。
- レイヤー単位プリフィルと CPP は長文-context の入力に対する TTFT を低減し、KVCache 転送を計算と重ね合わせることで MFU を改善する。
- 短期負荷予測に導かれた早期拒否ポリシーは、過負荷条件下での無駄な計算を抑制する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。