§ 7.4 · Sub-chapter

Encoder / Decoder · 三大派系篇

BERT vs GPT vs T5

2017 年原版 Transformer 是一个"左脑 + 右脑"的结构——左边 Encoder(编码器)负责读懂,右边 Decoder(解码器)负责生成。它是为翻译任务量身打造的。但后来的研究者们发现:这两半脑其实可以拆开单独用——于是分化出三大派系:BERT(只用左脑)、GPT(只用右脑)、T5(左右并用)。今天你用的所有 LLM,都属于其中一派。

生活场景
🎬 翻译一部电影字幕的两个角色

想象你正在做一部英文电影的中文字幕:
有一个人负责看英文原文——从头到尾读完、反复看,把每句话的意思、语气、隐含意图都吃透。他是"阅读理解型选手",可以自由地前后翻阅,不必按顺序。
另一个人负责写中文译文——他一边参考理解者的笔记,一边一个字一个字地把中文写出来。写下一个字的时候,只能看已经写过的字,不能"偷看"后面还没写的。他是"顺序输出型选手"。
这两个角色,分别对应 Transformer 里的 Encoder(编码器)Decoder(解码器)

先辨清一个关键区别 · 双向 vs 单向

Encoder 和 Decoder 都由多层 Multi-Head Attention 堆成,但它们的 Attention 能看的范围不一样——这一点差异,决定了两种架构的不同用途。

那个"不能偷看"的机制有个专业名字叫 Causal Mask(因果掩码)——在 Attention 打分矩阵里,把"未来位置"的分数强行设成负无穷,softmax 之后就变成 0,模型就"看不见未来"了。这个简单的技巧,让 Transformer 能干"逐字生成"的活儿。

Analogy · 阅卷 vs 答题

Encoder = 阅卷老师——他手里已经是一份写完的答卷,可以自由地前后翻阅、对照检查、综合理解。
Decoder = 考生答题——他在写第 100 字时,只能回头看已经写的 99 个字,不能偷看第 101 字(因为还没写呢)。
这就是为什么"理解型任务"要 Encoder、"生成型任务"要 Decoder。

派系一 · Encoder-only · BERT 家族

2018 年,Google 发布 BERT(Bidirectional Encoder Representations from Transformers)——名字里就写着两个关键词:Bidirectional(双向)+ Encoder。它做的选择是:砍掉 Decoder,只保留 Encoder,堆很多层,做"理解型 AI"

BERT 的训练方法叫 Masked Language Model(MLM)——随机遮住句子里 15% 的词,让模型根据前后文猜出被遮的词是什么。因为它可以看到前后所有词(双向),这个任务对它来说就是"完形填空"。做几千亿次完形填空之后,它对语言的理解力惊人。

能力典型应用
文本分类情感分析、垃圾邮件判定、意图识别
命名实体识别从文本里抽取人名、地名、公司名
问答(抽取式)从一段文字里找出答案所在的位置
相似度判断两句话意思相不相近
语义搜索把文档变成向量,做向量检索(RAG 的核心)

但 BERT 不会"写"——它没有 Decoder,无法生成连贯的一段话。你不能让它给你写一篇作文,它只能理解你写的作文。这个短板决定了它在 ChatGPT 时代之后逐渐让位。
代表:BERT、RoBERTa、DeBERTa、ALBERT、ELECTRA、中文的 ERNIE / MacBERT。今天它们仍在搜索引擎、语义检索、RAG 系统里大量使用——因为这些场景不需要生成、只需要理解。

派系二 · Decoder-only · GPT 家族

OpenAI 走了另一条路:砍掉 Encoder,只保留 Decoder,堆很多层,做"生成型 AI"。这就是 GPT(Generative Pre-trained Transformer)系列——从 GPT-1 到 GPT-4、再到 ChatGPT。

GPT 的训练方法叫 Causal Language Model(CLM)——给它一段话的前半截,让它预测下一个词。这么简单的任务,就是它的全部训练目标。奇迹在于——当参数规模够大、数据够多,光靠"预测下一个词"这个任务,模型就涌现出对话、翻译、编程、推理、写代码等一大批能力。

能力典型应用
对话ChatGPT、Claude、豆包、DeepSeek Chat
代码生成Copilot、Cursor、Trae
创意写作写小说、写文案、写邮件
推理 / 数学o1、DeepSeek-R1、Claude Sonnet Thinking
指令跟随翻译、总结、改写、格式转换

Decoder-only 的最大优势——极其通用。任何任务只要能表达成"输入一段文字、输出一段文字",就能用同一个模型做。翻译?"把下面这句英文翻成中文:..."总结?"把下面这段总结成三句话:..."写代码?"用 Python 写一个快速排序:..."——统统是"续写"。这种"一个模型打天下"的通用性,让 Decoder-only 成了 2023 年后所有大模型的默认选择
代表:GPT-3、GPT-4、Claude、LLaMA、Qwen、DeepSeek、Kimi、豆包 全部都是 Decoder-only。

派系三 · Encoder-Decoder · T5/BART 家族

还有一批模型保留了原版 Transformer 的"完整双脑"结构,代表是 Google 的 T5(Text-to-Text Transfer Transformer)和 Facebook 的 BART。它们的思路是:Encoder 先读懂输入,Decoder 再基于理解生成输出——两阶段清晰分工。

这种结构天然适合"输入 → 输出"是两段不同文本的任务:

Encoder 和 Decoder 之间通过一种叫 Cross-Attention 的机制沟通——Decoder 在生成每一个词时,不仅看自己已经生成的部分(Self-Attention),还额外看一眼 Encoder 输出的全部内容(Cross-Attention)。像考生答题时不断翻回原文找依据。

Analogy · 同声传译现场

Encoder-Decoder 就像同声传译——
Encoder:戴耳机专注听源语言(英文),构建对整句意思的完整理解;
Cross-Attention:翻译时随时"闪回"看一眼刚才听懂的原文点,确认没漏;
Decoder:用目标语言(中文)一个词一个词流畅地讲出来。
这个流水线在专门做"翻译/摘要"这类任务时非常自然,但通用对话反而不是它的强项——多了一层结构,反而不如 Decoder-only 灵活。

三派对比总表

Encoder-onlyDecoder-onlyEncoder-Decoder
Attention 方向双向单向(掩码)Encoder 双向 + Decoder 单向
核心训练目标完形填空 (MLM)预测下一个词 (CLM)掩码片段填空 / 去噪
擅长理解 / 分类 / 抽取生成 / 对话 / 创作翻译 / 摘要 / 转写
不擅长写连贯长文纯理解任务(大材小用)灵活性略差
代表BERT / RoBERTa / DeBERTaGPT / Claude / LLaMA / Qwen / DeepSeekT5 / BART / Whisper / mT5
参数规模1 亿 ~ 10 亿10 亿 ~ 万亿1 亿 ~ 百亿

为什么现代 LLM 全是 Decoder-only

你可能会好奇——既然 Encoder-Decoder 结构"更全面",为什么反而是精简版的 Decoder-only 一统天下?答案有三个层面:

所以从 2020 年 GPT-3 之后,几乎所有主流大模型都是 Decoder-only——OpenAI、Anthropic、Meta(LLaMA)、Google(Gemini 后期)、阿里(Qwen)、深度求索(DeepSeek)、字节(豆包/Doubao)、月之暗面(Kimi)……清一色 Decoder-only
Encoder-only 退居"语义搜索、向量库"的幕后战场;Encoder-Decoder 主要用在专门的翻译、语音识别、摘要任务上,规模也不大。Decoder-only 就是当代 AI 的"事实标准"

一个有趣的问题 · Decoder-only 能理解吗

有人会问:既然 BERT 用双向 Attention 才能好好理解,那 GPT 这种只能看前不能看后的架构,为什么理解能力也这么强?
答案藏在规模里——参数一大,Decoder-only 内部就能"迂回"完成理解。它虽然每个位置只能看前面,但它预测每个下一个词时,都在综合前面所有信息做判断——训练久了,每个词的内部表示就已经承载了对整句话的深度理解。
更妙的是:Decoder-only 生成到某个位置时,可以先生成一段"思考文本"(Chain-of-Thought),再生成最终答案——相当于把"理解"这一步也变成了"生成"的一部分。这就是 2024 年 o1、DeepSeek-R1 这批推理模型的秘密。用生成模拟理解——一个模型解决所有问题。

Encoder-only 会消失吗?· 不会,但退居幕后

虽然大模型潮流是 Decoder-only,但 Encoder-only 并没有消失——它退居到了一个非常关键的位置:向量嵌入
今天 RAG(Retrieval-Augmented Generation)系统、向量数据库、搜索引擎、推荐系统里,都需要把一段文本变成一个高质量的向量——这个活儿 Encoder 最擅长。因为它双向、专注理解、模型小、推理快,正好符合"高频、低延迟、只做理解"的场景。
代表:OpenAI 的 text-embedding-3、BAAI 的 bge 系列、Qwen 的 gte 系列——底层都是 BERT-style 的 Encoder-only。所以别以为 Encoder 死了——它只是从台前走到了幕后,成了向量检索基础设施的隐形冠军

三派系一句话总结

Recap · 收束

Transformer 的"左右脑"可以拆开单独用,于是有了三大派系:Encoder-only 懂、Decoder-only 写、Encoder-Decoder 翻。今天的 LLM 战场,Decoder-only 一家独大——因为它足够通用、足够易扩展、还能涌现出上下文学习能力。
但当模型规模冲上万亿,另一个问题来了——参数越大,训练和推理成本越贵。有没有办法让"参数很多、但每次只用一小部分"?下一篇,我们看看 2024 年最火的架构——MoE 专家混合

☰ 主页
Xue Hai Wu Ya · § 7.4 · Variants