在大型语言模型(LLM)推理系统中,效率与延迟的优化一直是工程团队面临的核心挑战。当你的AI服务需要同时满足"快速响应"和"稳定吞吐"这两个看似矛盾的需求时,传统的部署方式往往显得力不从心。今天,我们要介绍一种正在被越来越多AI平台采用的架构革新------PD分离(Prefill-Decode Disaggregation) ,它正在重新定义大模型推理的性能边界。
一、PD分离概念介绍
1、大模型推理的两个阶段
理解PD分离的第一步,是认清大模型推理过程的两个本质阶段:Prefill(预填充) 和Decode(解码) 。
当你向大模型发送一个请求时,系统需要完成两件事:首先,理解你输入的内容(Prompt),这涉及对输入Token的并行计算,生成中间状态(KV Cache)并输出第一个Token------这就是Prefill阶段 ;然后,模型开始自回归生成,一个Token一个Token地输出------这就是Decode阶段。
这两个阶段的计算特征截然不同。Prefill是计算密集型(Compute-Bound) 的,因为它需要并行处理整个输入序列,涉及大量的矩阵运算。以一个2000 Token的Prompt为例,Prefill阶段需要执行数千亿次浮点运算。而Decode阶段则是内存带宽密集型(Memory-Bound) 的,每次只处理一个Token,大部分时间花在读取模型权重和KV Cache上,数据传输的带宽成为瓶颈。
2、传统混合部署的痛点
在传统的部署模式中,Prefill和Decode被混合部署在同一组GPU资源上。这种"二合一"的架构带来了一个根本性的问题:两个阶段会互相干扰,导致资源错配。
想象一下:Prefill任务正在执行大量并行计算,GPU的计算单元被占满,此时一个简单的单Token Decode请求来了,却发现计算资源被锁定,只能等待。这种"一锅端"的模式会导致:
- 尾部延迟不可预测:长Prompt的Prefill会阻塞短请求的Decode,造成用户体验的剧烈波动
- 资源利用率低下:Prefill需要大算力但对显存带宽要求不高,Decode则相反,强行共用资源只能做折中妥协
- 扩缩容困难:无法针对不同阶段的特点独立优化,要么浪费算力,要么带宽不足
3、PD分离的定义
PD分离(Prefill-Decode Disaggregation) 正是为解决这一痛点而生的架构理念:它将Prefill和Decode两个阶段物理分离到不同的硬件资源池,让专业设备做专业的事。
用一个生活化的类比:传统的混合部署就像让一个人同时当厨师和服务员------他做菜的时候无法接待客人,接待客人的时候厨房只能闲置。而PD分离就是让专职厨师专注做菜,专职服务员专注上菜,各司其职,效率倍增。
二、PD分离能力介绍
1、消除性能干扰(Interference Elimination)
在传统架构中,一个计算密集的Prefill任务可能阻塞数百个等待Decode的请求,PD分离后,Prefill集群和Decode集群各自独立运行,互不干扰。Prefill任务可以全力冲刺算力,Decode任务则稳定地从内存读取数据流式输出。实测数据显示,在PD分离架构下:
• Decode阶段的P99 ITL(字间延迟)降低52%-85%;
**•**尾部延迟波动从"不可接受"变为"可精确预测";
**•**用户感知的响应时间标准差大幅收窄;
2、独立扩缩容(Independent Scaling)
Prefill和Decode的资源需求曲线完全不同。Prefill的负载与输入Token数量 强相关,Decode的负载与输出Token数量和并发请求数强相关。在实际业务中,输入和输出的比例可能在1:10到100:1之间剧烈波动。
传统架构下,你只能整体扩容------要么浪费算力,要么带宽不足。PD分离允许你独立调整两个阶段的容量:
**•**业务高峰时,针对性扩容Decode集群应对暴增的并发
**•**长文本任务激增时,专项扩容Prefill集群
**•**成本敏感时,在非高峰期缩减资源,按需分配
3、异构硬件适配(Hardware Specialization)
不同的GPU架构适合不同的计算任务。NVIDIA H100拥有巨大的显存带宽,是Decode阶段的理想选择;而A100/L40S在矩阵运算上的算力效率可能更适合Prefill。
PD分离让你能够为每个阶段选择最合适的硬件:
• Prefill集群:选择算力型GPU(如多GPU并行、高算力密度的配置),最大化并行计算效率
• Decode集群:选择大显存、高带宽型GPU(如H100),确保自回归生成不被内存带宽卡脖子
三、PD分离功能架构
1、路由/调度器(Router/Scheduler)
这是PD分离系统的"中枢神经"。所有请求首先到达Router,由它决定如何分配:
**•**分析请求特征(Prompt长度、预计输出长度等)
**•**将请求分发到合适的Prefill或Decode节点
**•**管理请求队列,实现负载均衡
**•**处理失败重试和超时逻辑
2、Prefill集群
Prefill集群是"计算引擎",专门处理新请求的Prefill阶段。每个Prefill节点装备高算力GPU,执行以下任务:
**•**接收用户Prompt
**•**执行自注意力计算,生成KV Cache
**•**输出第一个Token
**•**将KV Cache和首个Token打包,准备传输
Prefill集群的设计重点是算力密度和并行效率。由于Prefill可以高度并行,大模型(Batch Size>1)的Prefill效率远高于Decode。
3、Decode集群
Decode集群是"生成引擎",负责自回归生成。每个Decode节点执行:
**•**接收来自Prefill节点的KV Cache
**•**接收首个Token(或之前的Token)
**•**执行单步推理,生成下一个Token
**•**流式输出Token直到生成结束
Decode集群的设计重点是显存带宽和KV Cache访问效率。H100的3.35TB/s显存带宽使其成为Decode阶段的理想选择。
4、KV Cache传输层
这是连接两个集群的"高速公路"。当Prefill完成时,生成的KV Cache需要高效传输到Decode节点。传输层面临的核心挑战是:
• 数据量大:一个2000 Token的请求可能产生数百MB的KV Cache
• 延迟敏感:传输时间直接影响首字到首个输出Token的间隔
• 带宽成本:频繁传输可能成为新的瓶颈
业界主要采用以下技术方案:
• RDMA(远程直接内存访问) :零拷贝、高带宽、低延迟,是大厂首选
• NVLink/NVSwitch:同一服务器内GPU间的高速互联
• NIXL/Mooncake:为LLM传输优化的专用中间件
四、在AI平台使用PD分离
第一步:打开AI开发TAI平台,找到在线部署菜单,点击创建按钮创建部署任务,部署方式选择PD模式。

第二步:使用PD模式后,平台提供了vllm和sglang的推理引擎,可直接选择使用,使用系统提供的推理引擎后,镜像和数据卷会默认配置好。

第三步:部署配置,分别对Prefill、Decode、proxy角色进行配置。Prefill和Decode主要配置GPU资源规则、实例数量、启动命令、环境变量等,proxy主要配置启动命令、环境变量等信息。

第四步:信息填好后,点击部署按钮,即可完成PD分离部署。
五、PD分离适用场景
PD分离并非万能药方,但在特定场景下它的价值尤为突出。以下是3个最具代表性的应用场景。
场景一:高并发在线对话
聊天机器人和智能客服是对延迟最敏感的在线服务。用户期望"秒回",任何卡顿都会直接损害用户体验。
场景二:长文本推理(RAG/文档摘要)
检索增强生成(RAG)和文档摘要是当前LLM的热门应用。但这些场景的输入Prompt往往非常长------可能包含数千Token的检索结果或整篇文档。
场景三:多轮对话/Agent场景
以AutoGPT、Agent工作流为代表的新一代AI应用,通常需要维护很长的上下文历史,多轮对话的输入长度持续增长。