1. Transformer 架构基础回顾
在深入探讨 Prefill 和 Decode 机制之前,我们需要先理解 Transformer 架构的核心组件。Transformer 模型由编码器和解码器堆叠而成,但在当前主流的大语言模型(如 GPT、LLaMA 系列)中,通常只采用解码器结构。这种架构的核心在于自注意力机制(Self-Attention),它允许模型在处理每个 token 时动态关注输入序列中的相关部分。
自注意力机制通过三个关键矩阵实现:
- Q(Query):表示当前 token 的"询问"向量
- K(Key):表示其他 token 的"关键"向量
- V(Value):包含实际信息内容的向量
计算过程可以简化为:Attention(Q,K,V) = softmax(QK^T/√d)V,其中 d 是向量的维度。这种机制使模型能够建立长距离依赖关系,捕捉输入序列中的复杂模式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Prefill 阶段深度解析
2.1 Prefill 的核心任务
Prefill 阶段是模型处理用户初始输入的关键环节。当用户输入一个包含 8 个 token 的提示(如["告","诉","我","如","何","学","习","?"])时,模型需要完成以下核心任务:
- 并行处理所有输入 token
- 计算并存储每个 token 的 K、V 矩阵(形成 KV Cache)
- 基于最后一个 token 的输出状态生成第一个响应 token
这个阶段的耗时直接影响用户体验感知的首字延迟(TTFT,Time To First Token)。在实际应用中,TTFT 是衡量大模型响应速度的重要指标之一。
2.2 Prefill 的并行计算流程
让我们通过一个具体示例来剖析 Prefill 的计算过程:
-
输入嵌入:
- 原始输入:8 个 token
- 经过嵌入层后:形状为 [8, 4096] 的矩阵(假设隐藏维度为 4096)
-
QKV 投影:
- 通过三个独立的线性层(Wq, Wk, Wv)将输入投影为 Q、K、V 矩阵
- 每个矩阵的形状均为 [8, 4096]
- 计算复杂度:O(8×4096×4096) × 3 ≈ 800M FLOPs
-
**注意
