在预填充(Prefill)阶段,模型并行处理用户输入的完整提示词,为其中每一个 token 计算键、值投影,并将全部结果按层写入 KV 缓存。该阶段完成之后,缓存中已经包含了整段提示词的注意力状态,供后续生成直接复用。
在解码(Decode)阶段,模型一次只生成一个新 token。每步先计算新 token 的查询、键、值,将键、值追加进缓存,再让新查询与缓存中全部历史键、值做注意力运算得到输出。生成结束后该步的键、值留在缓存中,供下一步继续使用。
Prefill 负责"批量建缓存",Decode 负责"增量用缓存",二者共享同一套缓存结构。正是这种分工,使得提示词越长,Prefill 越重,而 Decode 每步保持轻量,整体推理效率得以保证。