总图

  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:先读懂,再翻译/改写/生成

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐