解码阶段

Decode Phase

Decode(解码)是大模型推理的第二阶段:基于 Prefill 产出的 KV Cache,逐 Token 自回归生成输出,每步只新增 1 个 Token,主要瓶颈是显存带宽而非算力。

详细解释

解码阶段(Decode Phase) 就是模型”一个字一个字蹦出回答”的那个阶段。Prefill 完成后,Decode 会进入一个自回归循环:

  1. 输入上一个位置的 Token(只有 1 个 Token)
  2. 结合缓存里全部历史 Token 的 K、VKV Cache)做注意力计算
  3. 预测下一个 Token 的概率分布,采样/贪心选一个
  4. 把这个新 Token 的 KV 追加到 Cache 末尾
  5. 重复直到遇到停止符或达到 max_tokens

Decode 的关键特征

维度Decode 阶段
每步输入仅 1 个 Token(或小步长若干个)
计算方式强串行——必须等第 N 个出来才能生成第 N+1 个
主要瓶颈GPU 显存带宽(每次要读整段 KV Cache,KV 越长越慢)
时间占比短 Prompt + 长回答时占总延迟大头
平均速度就是常说的 TPS(每秒Token数)

Decode 速度为什么越来越慢

你会感觉生成回答后半段比开头”卡”:因为每 Decode 一步,KV Cache 都在变长一点点 → 每步要读的显存字节数线性增长 → 单步时间越来越长。生成 8000 Token 的结尾部分,单步时间是第 1 步的 3–5 倍很正常。

唯元智创(Weimeta)在选品聚合时对每个模型都实测了 2K/32K 上下文的 Decode 稳定 TPS,并在模型详情页展示;如果你是长文生成业务,可以直接按长 Decode TPS 选型,避免踩”短 Prompt 跑分好看长文就拉胯”的坑。

常见问题

为什么 Decode 阶段不能并行像 Prefill 那样快?
因为第 N+1 个输出依赖第 N 个 Token 作为输入(因果语言模型的因果掩码),天然串行。加速 Decode 只能靠投机采样(Speculative Decoding)、连续批处理(Continuous Batching)、架构压缩 KV(GQA/MLA),不能靠一次性并行多个。