11.3 分离式 Prefill-Decode 架构
随着大模型在生产环境的大规模应用,2024-2025 年推理引擎领域最重要的架构创新是分离式推理架构(Disaggregated Prefill-Decode)。这一架构直击了单体推理引擎的核心痛点。
11.3.1 单实例架构的资源错配
在传统的单实例架构(如 11.1 节所述)中,同一个请求的 Prefill(预填充,处理 Prompt)和 Decode(解码,生成回答)都在同一个 GPU 实例上执行。这导致了严重的资源错配:
计算特征冲突:Prefill 是计算密集型(Compute-Bound)操作,能高效利用 Tensor Core;而 Decode 是访存密集型(Memory-Bound)操作,受限于显存带宽。将两者混合在同一 GPU 上调度,会导致计算单元和内存带宽轮流闲置。
延迟相互干扰:当批次中加入一个新的长 Prompt 请求进行 Prefill 时,整个批次的计算时间会被拉长,导致正在进行 Decode 的请求出现明显卡顿(TPOT 飙升),严重影响流式输出的平滑度。
资源配置僵化:有些应用场景(如代码补全)的特点是“长输入短输出”,显存压力大;有些(如故事生成)则是“短输入长输出”,计算压力小。单实例架构无法为不同阶段独立扩容。
11.3.2 架构设计与 KV Cache 传输挑战
分离式架构将推理集群在物理上划分为两个独立的池化资源:
Prefill 集群:专门处理长文本理解。通常配置具有强算力的 GPU(如 H100),并采用大 batch size 运行。
Decode 集群:专注于逐词权重的快速读取。可以采用高显存带宽但算力相对较低的 GPU,或者专门的推理芯片。
请求首先到达 Prefill 集群处理完 Prompt。真正的工程挑战在于状态的交接:Prefill 阶段计算出的所有 KV 缓存必须传输给 Decode 集群才能继续生成。
对于长上下文请求,转移的 KV 缓存可能高达数十 GB。如果在以太网上传输,网络延迟会完全抵消架构带来的收益。因此,生产环境通常采用以下优化手段:
基于 RDMA/InfiniBand 的高速传输:利用 GPU Direct RDMA 直接在计算节点的显存之间传输,绕过 CPU 和操作系统栈。
重叠计算与通信:当 Prefill 生成前几个块的 KV 缓存时就开始异步传输,隐藏网络延迟。
KV 缓存压缩:在传输前进行量化(如 FP8),进一步减少带宽需求。
Mooncake、DistServe 和 DeepSeek 的内部基础设施均采用了这一架构设计,在复杂生产负载下,可将整体集群吞吐量提升 1.5-2 倍,并严格保证了 Decode 的低延迟(TPOT)。这一创新标志着 LLM 推理系统正逐步演进为类似微服务架构的分布式系统。
最后更新于
