用户输入的自然语言文本首先经过分词器(Tokenizer)转换为模型词表中的整数编号序列(Token IDs)。随后,每个 Token ID 通过嵌入矩阵(Embedding Matrix)映射为高维向量表示(通常为 4096 维或更高),同时注入位置编码信息(Positional Encoding),使模型能够区分词元在序列中的位置。这一阶段是推理的数据准备步骤,输出将作为 Transformer 网络的首层输入。
Prefill 阶段将整个输入 Token 序列并行送入 Transformer 网络的每一层,逐层计算 Query(Q)、Key(K)、Value(V)向量。所有词元的 K 和 V 向量被写入 KV Cache,存储在 GPU 显存中。Prefill 阶段结束时,模型基于最后一个词元的隐藏状态,通过语言模型头(LM Head)输出第一个生成词元的概率分布,完成首次采样。由于输入序列的所有词元同时可用,Prefill 阶段可以充分并行计算,GPU 利用率通常在 70%–90%,属于计算密集型(Compute-bound)操作。
从第二个词元开始,模型进入 Decode 阶段。每一轮 Decode 步骤中,模型将最新生成的词元作为输入,仅计算该词元对应的 KV 向量并追加到 KV Cache,然后基于完整的 KV Cache 计算注意力,输出下一个词元的概率分布并完成采样。Decode 阶段是逐词串行执行的,无法像 Prefill 那样并行处理,且每一步都需要从显存中读取完整的 KV Cache,属于显存带宽密集型(Memory-bound)操作,GPU 利用率通常仅为 10%–30%。整个推理过程中约 90% 的耗时集中在 Decode 阶段。
每次 Decode 步骤完成后,模型检查最新生成的词元是否为序列结束标记(EOS)或是否达到预设的最大生成长度。若满足停止条件,则推理流程终止,将生成的词元序列通过反分词器(Detokenizer)还原为自然语言文本。后置处理步骤可能包括:格式解析(如提取 JSON、XML 结构)、工具调用指令识别、安全过滤(检测有害内容)、以及结果返回给调用方。在支持约束解码(Constrained Decoding)的推理引擎中,这一阶段还会验证输出格式是否符合预设的语法约束。