Skip to content

SGLang PD 解耦架构

大型语言模型的推理分为两个差异显著的阶段:Prefill(预填充)Decode(解码)。Prefill 是计算密集型任务,需要高 FLOPS;Decode 是内存密集型任务,受限于内存带宽与 KV Cache 存储。SGLang 的 PD Disaggregation 架构通过将两个阶段解耦,实现资源的精益化管理和极致性能。

1. 为什么要分离 Prefill 与 Decode

在单体式架构中,两个阶段共享同一 Worker:

  • 执行 Prefill 时,内存带宽可能闲置。
  • 执行 Decode 时,高性能计算单元(如 Tensor Core)利用率不足。

PD 解耦的核心价值

阶段资源需求特性解耦后的优化策略效益
Prefill计算密集型在高算力 Worker 上聚合批处理,加速前缀计算提高计算资源利用率与吞吐量
Decode内存密集型在高内存带宽、低延迟 Worker 上并行扩展确保低延迟与高并发的 Token 生成

通过独立、异构地扩展资源,SGLang 能够显著提升整体效率与成本效益。

2. 关键技术机制

PD 解耦的性能关键在于如何高效、无阻塞地将 Prefill 结果(KV Cache)传输给 Decode Worker。

2.1 高速 KV Cache 传输

  • RDMA:SGLang 利用 RDMA 技术(如 NIXL 或 Mooncake 后端),允许 Prefill Worker 直接将 KV Cache 写入 Decode Worker 的 GPU 内存,绕过 CPU 与操作系统内核,实现极低延迟与高带宽。
  • 非阻塞传输:传输操作在后台线程运行,不阻塞核心调度器的主事件循环。

2.2 请求生命周期

  1. 网关接收:SGLang Model Gateway(或负载均衡器)接收推理请求。
  2. 动态配对:网关从 Prefill Worker 池与 Decode Worker 池中动态选择一对 Worker。
  3. 连接建立:针对该请求建立临时高速连接(包括 RDMA 连接信息注册)。
  4. 执行与传输:Prefill Worker 计算完成后,通过 RDMA 将 KV Cache 传输到 Decode Worker 的预分配 GPU 内存。
  5. 继续解码:Decode Worker 确认 KV Cache 到达后接管请求,开始逐 Token 生成。

这种动态连接与非阻塞传输设计,是 SGLang PD 解耦在大规模异构集群中保持高性能的关键。

3. 部署实践

PD 解耦通常通过 SGLang Model Gateway 统一调度管理。需要独立启动 Prefill Worker 与 Decode Worker,再配置 Router 识别并调度它们。

3.1 启动 Worker 实例

bash
# 启动 Prefill Worker
python3 -m sglang.launch_server \
  --model-path /path/to/model \
  --disaggregation-mode prefill \
  --port 30001

# 启动 Decode Worker
python3 -m sglang.launch_server \
  --model-path /path/to/model \
  --disaggregation-mode decode \
  --port 30011

3.2 通过 Router 启用 PD 解耦

bash
python -m sglang_router.launch_router \
  --pd-disaggregation \
  --prefill http://prefill1:30001 http://prefill2:30002 \
  --decode http://decode1:30011 http://decode2:30012 \
  --policy cache_aware \
  --prefill-policy cache_aware \
  --decode-policy power_of_two

关键参数说明:

参数说明
--pd-disaggregation启用 PD 解耦模式
--prefillPrefill Worker 的 HTTP 端点列表
--decodeDecode Worker 的 HTTP 端点列表
--prefill-policyPrefill 阶段的负载均衡策略,如 cache_aware
--decode-policyDecode 阶段的负载均衡策略,如 power_of_two

总结

SGLang 的 Prefill / Decode 解耦架构是面向大规模生产部署的重要优化。它通过分离计算与内存密集型负载,实现硬件资源的精细匹配与推理流程的无缝衔接。在追求极低延迟与极高有效吞吐量的生产环境中,PD Disaggregation 是实现高效能、可控成本 LLM 服务的关键利器。

Maintained by Robin