disaggregated推理
Disaggregated Serving
将prefill和decode阶段分离到不同节点,实现异构资源调度
子问题
1.KV Cache跨节点传输
2.prefill/decode节点调度
3.网络带宽优化
4.一致性保障
5.P/D 节点间 schema 兼容性校验与版本协商
6.KV 加载失败后的 recompute 降级策略
7.多 connector 组合使用时的元数据聚合与统计合并
8.异构 TP 并行度下的 KV block 映射与重排
各项目的解法1 solutions
Signals
横向对比
| 维度 | vLLM |
|---|---|
| 传输协议 | NIXL(RDMA/UCX) + P2P-NCCL + LMCache + Mooncake 等 10 种可插拔后端 |
| 角色分离 | Scheduler/Worker 双角色枚举,同一 connector 类构造时分裂为两个独立实例 |
| 异步流水线 | start_load_kv 在 forward 前异步启动,wait_for_layer_load 逐层等待,传输与计算重叠 |
| 兼容性校验 | SHA-256 兼容性哈希(模型架构+dtype+backend),两阶段握手解码防 schema 不兼容 |
| 失败策略 | kv_load_failure_policy 支持 recompute(重算失败 block)和 fail(直接失败) |
| 内存布局优化 | NixlConnector 强制 HND 布局提升 RDMA 传输效率,MLA 模型自动回退 |
| 组合模式 | MultiConnector 支持同时使用多个 connector(如 NIXL + Offloading) |
最佳实践
1.高带宽互联场景下使用disagg提升资源利用率
2.通过KV Connector抽象传输协议
3.用 SHA-256 兼容性哈希做两阶段握手,避免 schema 不兼容时的解码崩溃
4.Scheduler/Worker 角色在构造时分裂为独立实例,强制隔离调度逻辑与 GPU 操作
5.KV 传输与模型 forward 异步流水线化,start_load 在 forward 前启动,逐层 wait 隐藏延迟