详细解释
预填充阶段(Prefill Phase) 就是模型”读完你问题”的那一步。用户把一段 Prompt(系统消息+历史+当前问题)一次性送进模型,模型对所有输入 Token 并行 做 QKV 投影 + 注意力 + FFN 计算,输出两样东西:
- 完整的初始 KV Cache(为后续 Decode 阶段复用)
- 下一个(第一个)输出 Token 的概率分布
Prefill 是计算密集型:矩阵乘法是并行的,GPU 算力利用率能冲到很高,输入 20 万 Token 时 Prefill 可能花 1–3 秒,直接决定了你 TTFT(首Token延迟) 有多长。
Prefill 的关键特征
| 维度 | Prefill 阶段 |
|---|---|
| 输入 | 完整 Prompt(N 个 Token,一次全部进入) |
| 计算方式 | 高度并行(一次矩阵乘法算完所有输入) |
| 主要瓶颈 | GPU 算力(FLOPS) |
| 时间占比 | 长上下文场景占总延迟大头 |
| 可优化点 | 提示词缓存(Prompt Caching) |
为什么 Prompt Caching 只加速 Prefill
提示词缓存本质就是”缓存 Prefill 阶段算好的 KV 结果”:上一次请求用了相同的前缀,这次 Prefill 跳过前缀部分,直接从缓存里取 KV——节省了 80%+ 的 Prefill 时间,等价于 TTFT 大幅下降。
唯元智创(Weimeta)在聚合路由中默认启用”前缀哈希定向调度”,把使用相同 System Prompt + 相同知识库的请求优先路由到同一个上游推理节点,最大化 Prefill 缓存命中率,实测 TTFT 可降低 60%。
常见问题
为什么图片输入 Prefill 时间特别长?
视觉模型会把图片按 patch 切块、编码成几百到几千个视觉 Token,再和文本一起做 Prefill。一张 4K 大图可能等效几万文本 Token,Prefill 时间自然翻数倍。建议缩图后再调用多模态 API。