---
title: 为什么要做PD分离
description: "从实现上来看，整个LLM推理过程由Prefill和多轮迭代的Decode组成，想要在Decode阶段实现Continuous batching的前提是，每个被调度的request需要有空闲算力完成Prefill计算。按现有的部署模式，Prefill和Decode部署在一起，当有新的Prefill请求时，会被优先处理，从而导致Decode的执行流程由于增量token时延（TBT）而无法得到有效保障。例如下图，当request5或request6到来时，系统可能会优先执行request5或request6的Prefill，此时request2/3/4的响应时延会受到一定影响，从而导致TBT不稳定。"
url: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/others/llmdatadistdev/llmcdv1_42_22.html
sourcePath: /source/zh/CANNCommunityEdition/920beta1/others/llmdatadistdev/llmcdv1_42_22.html
indexId: 889488c09a186f7328c6e8f65f966b4bd86731e40b62292ff452cd0967e5d8a181
---
# 为什么要做PD分离

从实现上来看，整个LLM推理过程由Prefill和多轮迭代的Decode组成，想要在Decode阶段实现Continuous batching的前提是，每个被调度的request需要有空闲算力完成Prefill计算。按现有的部署模式，Prefill和Decode部署在一起，当有新的Prefill请求时，会被优先处理，从而导致Decode的执行流程由于增量token时延（TBT）而无法得到有效保障。例如下图，当request5或request6到来时，系统可能会优先执行request5或request6的Prefill，此时request2/3/4的响应时延会受到一定影响，从而导致TBT不稳定。


在实际的深度学习模型部署中，由于Prefill和Decode两阶段的计算/通信特征的差异特点，为了提升性能和资源利用效率，通过PD分离部署方案将Prefill和Decode分别部署在不同规格和架构的集群中，并且配合服务层的任务调度，在满足TTFT和TBT指标的前提下，结合Continuous batching机制尽可能提高Decode阶段的batch并发数，提升算力利用率。

基于该方案，结合下图可以看到Prefill和Decode的执行互不影响，系统能够提供给用户一个稳定的TBT。
