FluidPD:让LLM推理服务实现SLO感知的原地弹性伸缩
背景:预填充-解码分离架构的调度难题
在大语言模型(LLM)推理服务中,预填充-解码分离(Prefill-Decode Disaggregation) 已成为主流架构。它将计算模式截然不同的两个阶段拆开:预填充阶段负责处理用户输入、生成 KV Cache,属于计算密集型;解码阶段则逐 token 生成输出,属于访存密集型。两者对延迟 SLO(服务等级目标)的要求也各不相同。
然而,现有系统大多采用固定的预填充/解码 Worker 配比,再配合请求路由来分配负载。问题在于,真实工作负载的预填充-解码需求比例并非一成不变——既有短时突发,也有持续偏移。一个在某个时刻配置得当的集群,可能很快就会失衡,导致即便别处存在空闲算力,延迟 SLO 依然被违反。
传统的自动扩缩容机制虽然能增加容量,但反应慢、需要备用 GPU,且无法直接应对短时间尺度的阶段失衡。
FluidPD 的两大核心机制
针对上述痛点,来自 Azure 等机构的研究者提出了 FluidPD,一个提供 SLO 感知原地弹性 的 P/D 分离服务系统。它包含两个互补机制:
- FluidToken:应对瞬时失衡。当解码侧出现空闲算力时,将一部分有界的预填充计算卸载到解码 Worker 上执行,从而在不新增资源的情况下缓解预填充压力。
- FluidRole:应对持续失衡。通过原地重新分配正在运行的 Worker 角色,在预填充与解码之间切换,无需重新加载模型或重启引擎。
两个机制都由轻量级的压力指标驱动,能够在资源压力演变为 SLO 违规之前就将其暴露出来。
实测效果
在生产级 Azure 追踪负载上,FluidPD 相比静态配置的 SGLang,整体 SLO 达成率最高提升 94.6 个百分点。这意味着,通过 SLO 感知的原地 P/D 弹性调度,无需额外配置 Worker,就能显著提升服务质量。
为什么值得关注
随着 LLM 服务规模化,推理成本与延迟 SLO 的平衡成为核心挑战。FluidPD 的思路——不靠加机器,而是靠更聪明的原地调度——为降低推理服务总拥有成本(TCO)提供了新方向。尤其在云厂商按 GPU 时长计费的背景下,这种弹性能力直接关系到服务的经济性。
该论文共 13 页、11 张图,已提交至 arXiv(编号 2610.06917)。
