预填充阶段(Prefill)是使用KV Cache技术进行推理时的初始阶段,其核心目标是为整个输入序列预先计算并缓存所有键(Key)和值(Value)向量,为后续解码阶段的高效生成奠定基础。以下从多个维度详细解析这一阶段:
1. 预填充阶段的作用
-
建立初始缓存:在生成第一个输出token前,模型需处理完整的输入序列(如用户输入的提示词),计算每个Transformer层中所有输入位置的Key和Value向量,并将其存入KV Cache。
-
避免重复计算:解码阶段生成后续token时,可直接复用预填充阶段缓存的Key/Value,无需重新计算历史token的中间结果,显著降低计算量。
2. 预填充阶段的触发时机
-
首次生成时启动:当模型开始生成第一个输出token时,预填充阶段立即启动。
-
仅执行一次:对于单次推理请求(如生成一段文本),预填充阶段仅在处理输入序列时运行一次