> [!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 スタックへの一般化は検証が必要である。