> [!abstract] 概要(arXiv abstract の日本語訳)
> 数万台の xPU デバイス(GPU または NPU)上で分離型大規模言語モデル(LLM)を信頼できる性能でサービングするには複数の課題がある。
> 第一に、多様性(さまざまな prefix と潮汐的リクエスト)を無視し、すべての prompt を混合 pool で扱うのは不十分である。
> シナリオごとの類似性を利用し、Prefill/Decode 処理の内部ミスマッチを最小化するには、細粒度の組織化と P/D 比率の動的調整が必要である。
> 第二に、ワークロード推定(キュー状態や維持接続)が不正確なため、グローバルスケジューラは Prefill で不要なタイムアウトを起こしやすい。
> 第三に、クラスタレベル RDMA 上のブロック固定 D2D KVCache 転送は期待される D2D 利用率に達しない。
> これらを解決するため、P/D-Serve は E2E P/D 性能をモデル化し、細粒度 P/D organization、rejection に基づく on-demand forwarding、最適化された D2D access による効率的な KVCache 転送を可能にする。
> Ascend と MindSpore 上に実装され、数万 NPU 上で 8 か月超商用展開され、E2E throughput、TTFT SLO、D2D transfer time をそれぞれ 60%、42%、46% 改善し、集約型 LLM 比で 6.7 倍の throughput を達成する。
## 論文情報
- タイトル: P/D-Serve: Serving Disaggregated Large Language Model at Scale
- 著者: [[Yibo Jin]]、Tao Wang、Huimin Lin、Mingyang Song、Peiyang Li、Yipeng Ma、Yicheng Shan、Zhengfan Yuan、Cailong Li、Yajing Sun、Tiandeng Wu、Xing Chu、Ruizhi Huan、Li Ma、Xiao You、Wenting Zhou、Yunpeng Ye、Wen Liu、Xiangkun Xu、Yongsheng Zhang、Tiantian Dong、Jiawei Zhu、Zhe Wang、Xijian Ju、Jianxun Song、Haoliang Cheng、Xiaojing Li、Jiandong Ding、Hefei Guo、Zhengyong Zhang。
- 所属: Huawei Technologies Co., Ltd.
- 媒体: arXiv:2408.08147v1、2024-08-15。
## 概要
P/D-Serve は、[[Prefill-Decode分離]]を商用の大規模 NPU クラスタで運用する際の問題に焦点を当てる。単に Prefill pool と Decode pool を作るだけでは、prompt prefix の多様性、P/D 比率のミスマッチ、不正確なキュー状態、ページ化 KV キャッシュの小粒度 RDMA 転送が性能を崩す。これに対し、シナリオごとの P/D group、RoCE 対応、gateway retries、block-free transfer を組み合わせる。
## 問題設定
サービスやシナリオごとに system prompt、candidate pool、背景情報が異なり、prefix 長と内容が変化する。HBM は限られているため、全 prefix の KV キャッシュを全 Prefill instance に持たせることはできない。さらに、Prefill の実際の TTFT は batch size と prefix hit ratio に依存し、pending tokens や SSE connection 数だけでは予測できない。PagedAttention による固定ブロック管理は HBM 効率を高めるが、RDMA でブロックを 1 個ずつ転送すると制御オーバーヘッドで帯域を使い切れない。
## 提案手法
- **P/D organization upon RoCE**: サービス/シナリオと Prefill/Decode instance、RoCE IP の対応を Zookeeper で管理し、細粒度 P/D group を構成する。
- **Dynamic P/D adjustment**: E2E latency と TTFT 比率を監視し、Prefill/Decode 比率を動的に変える。
- **On-demand forwarding**: Prefill queue へ直接押し込まず、Prefill が busy なら reject し、gateway が他の idle Prefill へ再試行する。
- **Block-free D2D KVCache transfer**: sender 側で離散ブロックを連続バッファにまとめ、receiver 側で RecvScatter により離散ブロックへ復元する。これにより RDMA 転送を大きな byte stream として扱う。
## 新規性
DistServe が Goodput 最適化を研究システムとして定式化したのに対し、P/D-Serve は数万 xPU と商用 MLOps の制約下で、シナリオ分離、RoCE 構成、障害検知、モデルロード、gateway forwarding、D2D 転送まで含めた end-to-end システムとして扱う。
## 実験設定
Huawei の Ascend と MindSpore 上で実装され、商用環境に 8 か月超展開された。評価は P/D mismatch、P/D organization、on-demand forwarding、block-free transfer、安定転送を含む。ベースラインは集約型 LLM と、初期の商用分離型実装である。
## 実験結果
- E2E throughput は 60%、TTFT SLO は 42%、D2D transfer time は 46% 改善される。
- 集約型 LLM と比べて throughput は 6.7 倍になる。
- on-demand forwarding により、負荷増加時の success rate が従来の最悪 57% から少なくとも 99% に維持される。差は最大 42.3% とされる。
- block-free transfer は discrete block transfer に比べ、平均 transfer time を 46% 減らす。
## 考察
P/D-Serve は、ページ化 KV キャッシュが GPU 内では有利でも、ネットワーク転送では小粒度 I/O 問題を生むことを明確にする。これは [[LMCache]] の chunked transfer と同じ方向の観察であり、[[KVキャッシュ管理]]の設計では「GPU 内 page」と「ネットワーク/ストレージ上 chunk」を分ける必要がある。
## 強み / 弱点・課題
- 強み: 商用の大規模 NPU 展開に基づき、MLOps と LLM Serving の接続を具体化している。
- 強み: Prefix 多様性と P/D ratio mismatch を、単一 scheduler ではなく group organization と forwarding で扱う。
- 弱点・課題: Huawei/Ascend/MindSpore/RoCE 前提が強く、GPU/NVIDIA スタックへの一般化は検証が必要である。