Files
tech/知识/CSDN博客/小徐炸酱面/2025-12-01_pd分离在vllm中用法_摘要.md
arno c0ba3fb853 文档(金鹏): 2026-08-06 章节 48 篇文章摘要归档
- 46 篇原文+摘要双文件归档(按 来源/作者 分层,复用本地归档 20 篇+新抓取 26 篇)
- 即梦生成 9 组主题配图(大图+列表缩略图)存入 知识/金鹏/20260806/
- 章节重组为 9 个主题分组并挂接摘要引用
2026-08-06 18:00:50 +08:00

4.4 KiB
Raw Permalink Blame History

📊 文章摘要:pd分离在vllm中用法

原文2025-12-01_pd分离在vllm中用法.md 原文链接https://blog.csdn.net/qq_44319972/article/details/155456852 来源CSDN 博客 作者:小徐炸酱面(qq_44319972 发布日期2025-12-012025-12-02 修改) 摘要日期2026-08-06 价值评级


核心命题

KV 流转 — vLLM 中 PD 分离工程化的核心是"prefill 生成的 KV 如何让 decode 用起来",本文给出 kv-transfer-config 的参数级配置说明。


文章概要

本文是 vLLM PD 分离的实操笔记,把部署要点收敛为一个核心问题:"prefill 生成的 KV,如何让 decode 能够用起来"。文章先定义 P 节点(Producer,看重算力/FLOPs)与 D 节点(customer,看重显存/网络带宽与 tail latency),梳理 KV 流转四步(prefill→分配 KV Block→经 KV Connector/RPC 通道传递位置信息与 metadata→decode 持续访问),再给出 1P1D 场景下 producer 与 decoder 的完整启动命令,逐项解释 kv-transfer-config 的 kv_connector/kv_role/kv_rank/kv_parallel_size/kv_buffer_size/kv_port 及 proxy 三项参数含义,并给出 xPyD 总卡数公式((P+D)×TP×DP)。价值在于参数级细节是综述类文章不具备的、可直接指导部署。局限:无性能验证,且 decoder 示例疑似复制粘贴错误,需修正后使用。


关键要点

  1. 核心即 KV 流转 — PD 分离成败在于 prefill 产出的 KV 能否高效被 decode 使用,抽象为 KV Connector/RPC 通道 + 状态约定 [分类: 共识]
  2. P/D 角色差异 — P 节点看重算力/GPU FLOPs,对长尾小请求不敏感;D 节点看重显存/网络带宽,关注 tail latencyTPOT、e2e [分类: 共识]
  3. 并行策略必须匹配 — 有 DP/TP 时 P/D 两侧并行策略须一致,否则出现 KV 维度不一致、block id 对不上等问题 [分类: 共识](实操经验)
  4. kv-transfer-config 参数详解 — kv_roleproducer/consumer)、kv_rank、kv_parallel_size(与 TP/world size 一致且 P/D 必须相同)、kv_buffer_size(流水深度,不确定先用 1)、kv_port 及 proxy_ip/proxy_port/http_port 的设置原则 [分类: 共识](实操)
  5. xPyD 规模公式 — 总 GPU 数 = (P+D)×TP×DP;每个 P/D 节点都须能独立加载完整模型,对外经 disagg_proxy 端口转发 [分类: 共识](实操)
  6. 调度器拆分 — Producer 侧与 Decoder 侧各自 scheduler,以 request id、已生成 token 数、KV block id 列表、EOS/abort 状态对齐两边约定 [分类: 共识]

批判性分析

假设前提

假设读者已熟悉 vLLMV1 引擎、scheduler 概念);假设 NCCL 网络与 KV 代理服务可用;假设 KV 通道数(kv_parallel_size)与 TP world size 对齐。

论据与逻辑

无性能数据,属经验整理而非验证性文章;Decoder 节点示例与 Producer 完全相同(vllm_PD_ROLE 与 kv_role 未改,原文已加注提示),说明示例未经实际运行验证,照抄会部署失败——这是论据链的关键缺口;但参数解释与 vLLM 官方文档一致,整体可信度尚可。

边界与局限

仅覆盖 P2pNcclConnector 的 1P1D(单机/双机)场景,未涉及 SharedStorage/LMCache/MultiConnector、多机大规模部署与 kv_buffer_size 调优;作者自述"示意/伪代码",不能替代官方文档。


可引用金句

"PD 分离的核心就是:prefill 生成的 KV,如何让 decode 能够用起来。"

"如果有 DP/TP,P/D 侧的并行策略也要匹配(否则会出现 KV 维度不一致、block id 对不上等问题)"


总体评价

亮点

  • kv-transfer-config 各参数逐项解释,实战稀缺
  • 给出可直接照做的启动命令与 xPyD 卡数公式
  • 诚实标注"示意/伪代码"并提示 DP/TP 匹配等坑点

不足

  • decoder 示例疑似复制粘贴错误,须自行修正(角色应改为 kv_consumer
  • 无性能验证数据,经验未经实测背书
  • 场景覆盖窄(仅 P2pNccl 的 1P1D

适用场景:准备在 vLLM V1 上搭建 PD 分离服务的工程师,作为起步配置参考。

关联建议:对照 vLLM 官方文档 Disaggregated Prefilling 章节与 KV Connector API V1;参考 cr7258 文中五种 KV Connector 的对比做扩展选型。


配图

-