Skip to content

GPT 与 Claude 的纯解码器架构

核心认知

输入的提示词和输出的词,对解码器来说没有本质区别,都是"上下文"。

Encoder-Decoder vs 纯 Decoder

Encoder-Decoder(翻译模型):
  输入 和 输出 是两件独立的事

  [我爱吃饭] ──Encoder──▶ 语义向量 ──Decoder──▶ [I love eating]
   双向注意力                                      单向注意力


纯 Decoder(GPT/Claude):
  输入 和 输出 拼在一起,是一条连续的序列

  [我爱吃饭  |  I love eating]
  ──────────────────────────▶
        全部用单向注意力处理

具体怎么跑

你输入:"法国的首都是"

模型看到的序列:
  法  国  的  首  都  是
  t1  t2  t3  t4  t5  t6

单向注意力(只看左边):
  "法" → 只看自己
  "国" → 看 法、国
  "是" → 看 法、国、的、首、都、是  ← 整合了完整上下文


  预测下一个词 ──▶ "巴"

然后把 "巴" 加入序列,继续:
  法国的首都是巴 ──▶ "黎"
  法国的首都是巴黎 ──▶ "<结束>"

单向注意力为什么够用

看起来"我"看不到"饭"是个缺陷,但:

  1. 最后一个词能看到前面所有词,已经整合了完整上下文,用它预测下一个词足够了
  2. 模型足够大时,单向注意力也能学到很强的语言理解能力
  3. 真正需要双向理解的任务(完形填空)用 BERT(纯 Encoder)更合适,GPT/Claude 更擅长生成

一张图看清本质

BERT(纯 Encoder):              GPT/Claude(纯 Decoder):
适合理解、分类                     适合生成、对话

  ┌──────────┐                  ┌──────────────────────┐
  │ 法国首都是│                  │ 法国首都是  │  巴黎    │
  │          │                  │            │          │
  │ 双向注意力│                  │ 单向注意力  │ 单向注意力│
  └──────────┘                  └──────────────────────┘
        │                                    │
        ▼                                    ▼
    输出向量                           下一个词的概率
   (用于分类)                        (用于生成)

总结

GPT/Claude 没有专门的编码器,而是把输入直接当成"已生成的历史",用同一套单向注意力机制既理解输入、又生成输出,两件事在同一条流水线里完成。

Built with VitePress