大语言模型推理基于自回归生成范式,严格分为 Prefill(预填充) 与 Decode(解码) 两个阶段。二者在计算形态、访存特征、硬件瓶颈上存在本质差异。KV Cache(键值缓存) 是实现两阶段衔接、消除重复计算的核心机制。而 PD 分离(Prefill-Decode Separation) 则是针对两阶段异构特性提出的推理调度与架构优化方案。
一、大模型推理的Prefill与Decode阶段
LLM基于Transformer架构的自回归生成特性,决定了其推理过程需分阶段完成。Prefill阶段完成对输入提示词的并行处理与缓存构建,Decode阶段则基于缓存进行串行的token生成,两个阶段衔接构成完整的推理流程,且各自具备鲜明的技术特征。

Prefill阶段的理论计算量比较大,但在整个推理过程中的耗时占比并不多。
ecode阶段的理论计算量比较小,但因为是串行计算(按顺序生成token),整个推理过程中的耗时占比较大。
1.1 Prefill(预填充)阶段
Prefill阶段是模型对用户输入的完整Prompt进行一次性编码、计算并生成首个token的批量并行计算阶段,也是推理的前置核心步骤。
-
核心流程:首先对用户输入的自然语言进行Tokenization(分词),转换为模型可理解的token序列;随后模型对所有输入token进行并行计算,逐层完成Transformer的注意力机制与前馈网络(FFN)计算,为每个token生成对应的Key(键)和Value(值)向量;最后基于这些向量生成推理的首个输出token,并将所有输入token的KV向量填充至KV Cache中,为Decode阶段做准备。

-
关键特征:一次性处理整个Prompt序列,所有计算并行完成,GPU利用率接近100%,属于计算密集型阶段;耗时仅由原始Prompt的长度决定,与后续生成的token数量无关;该阶段指标为TTFT(Time To First Token,首Token生成时间),是用户感知推理延迟的首要指标。
-
计算瓶颈:核心计算量集中在注意力机制的O(n2⋅d)O(n^2·d)O(n2⋅d)运算(nnn为Prompt长度,ddd为特征维度),当Prompt序列较长时,注意力矩阵的计算会成为主要瓶颈,同时带来临时的高显存占用。
1.2 Decode(解码)阶段
Decode阶段是模型以Prefill阶段的输出为基础,逐一生成后续每一个token的串行迭代计算阶段,是自回归生成的核心过程。每一步只生成一个新 token

330

被折叠的 条评论
为什么被折叠?



