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 请求生命周期
- 网关接收:SGLang Model Gateway(或负载均衡器)接收推理请求。
- 动态配对:网关从 Prefill Worker 池与 Decode Worker 池中动态选择一对 Worker。
- 连接建立:针对该请求建立临时高速连接(包括 RDMA 连接信息注册)。
- 执行与传输:Prefill Worker 计算完成后,通过 RDMA 将 KV Cache 传输到 Decode Worker 的预分配 GPU 内存。
- 继续解码: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 300113.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 解耦模式 |
--prefill | Prefill Worker 的 HTTP 端点列表 |
--decode | Decode Worker 的 HTTP 端点列表 |
--prefill-policy | Prefill 阶段的负载均衡策略,如 cache_aware |
--decode-policy | Decode 阶段的负载均衡策略,如 power_of_two |
总结
SGLang 的 Prefill / Decode 解耦架构是面向大规模生产部署的重要优化。它通过分离计算与内存密集型负载,实现硬件资源的精细匹配与推理流程的无缝衔接。在追求极低延迟与极高有效吞吐量的生产环境中,PD Disaggregation 是实现高效能、可控成本 LLM 服务的关键利器。