Encoder-only、Decoder-only、Encoder-Decoder 到底长什么样
总图
1. Encoder-only (BERT 类)
输入 tokens
|
[Encoder]
|
[Encoder]
|
[Encoder]
|
输出表示 vectors
2. Decoder-only (GPT / LLaMA 类)
输入 tokens
|
[Decoder]
|
[Decoder]
|
[Decoder]
|
逐个预测下一个 token
3. Encoder-Decoder (T5 类)
输入 tokens 已生成 tokens
| |
[Encoder] [Decoder]
| |
[Encoder] <---- cross-attn ---- [Decoder]
| |
编码结果 逐个生成输出
它们真正的区别
Encoder-only
- 只负责“把输入读懂”。
- 每个词都能同时看到左边和右边。
- 输出通常是整句或每个 token 的表示,不是天然拿来一直往下写。
- 典型:BERT
我 爱 北 京 天 安 门
^ 每个词都能看见整句其他词
适合:
- 分类
- 匹配
- 实体识别
- 检索/排序
Decoder-only
- 负责“按顺序往下写”。
- 当前 token 只能看左边,不能看右边,这叫 causal mask。
- 所以它天然适合生成。
我 爱 北 京
^
只能看左边,预测下一个词
适合:
- 对话
- 写作
- 代码生成
- 通用生成式任务
典型:
- GPT
- LLaMA
Encoder-Decoder
- 左边先把输入读懂,右边再根据读懂的结果生成输出。
- Decoder 一边看自己已经生成的内容,一边看 Encoder 给的编码结果。
- 这里比前两种多了一个关键部件:cross-attention。
输入: "Translate: I love Beijing"
Encoder 先编码整句
Decoder 再一步步生成: "我 爱 北京"
适合:
- 翻译
- 摘要
- 改写
- 明确的“输入文本 -> 输出文本”任务
典型:
- T5
再看一张对比表
| 结构 | 看输入方式 | 会不会自然生成 | 代表模型 |
|---|---|---|---|
| Encoder-only | 左右都看 | 不擅长长生成 | BERT |
| Decoder-only | 只看左边 | 最擅长 | GPT、LLaMA |
| Encoder-Decoder | Encoder 全看,Decoder 生成 | 很适合 | T5 |
一句最容易记住的话
- Encoder-only:先理解
- Decoder-only:边看边写
- Encoder-Decoder:先读懂,再翻译/改写/生成
更多推荐


所有评论(0)