Prefill 不是 Encoder。主流 LLM 是 Decoder-only 架构,Prefill 是解码器的一次性前向传播,构建 KV Cache。
核心结论
Prefill ≠ Encoder
- 主流 LLM(GPT、Llama、Qwen)没有 Encoder
- Prefill 是 Decoder-only 模型的"前向填充阶段"
Transformer 论文 vs 现代 LLM
| 架构 | 组成 |
|---|---|
| 原始 Transformer | Encoder + Decoder |
| 现代 LLM(GPT 系) | 只有 Decoder |
Encoder 特点
- 双向注意力:第 5 个 token 能看到第 1~10 个 token
- 理解任务:分类、抽取、翻译原文编码
- 无自回归生成
Prefill 特点
- 单向掩码注意力(causal mask):从左往右看
- 构建 KV Cache:为自回归生成做准备
- 一次性跑完整个 prompt
对比表
| Encoder | Prefill | Decode | |
|---|---|---|---|
| 注意力 | 双向 | 单向掩码 | 单向掩码 |
| 能否看未来 | 能 | 不能 | 不能 |
| 输入 | 原文 | 整段 prompt | 每次 1 个 token |
| 输出 | 上下文表示 | KV Cache + 首词 logit | 下一个 token |
| 模型 | BERT、T5 编码器 | GPT/Llama 全系 | GPT/Llama 全系 |
| 任务 | 理解、抽取 | 推理初始化 | 文本生成 |
总结
- 原始 Transformer:Encoder + Decoder
- 现代大模型:只有 Decoder
- Prefill = Decoder 一次性跑整个 prompt,构建 KV Cache
- Prefill ≠ Encoder
张芷铭的个人博客
Comments