Encoder / Decoder · 三大派系篇
2017 年原版 Transformer 是一个"左脑 + 右脑"的结构——左边 Encoder(编码器)负责读懂,右边 Decoder(解码器)负责生成。它是为翻译任务量身打造的。但后来的研究者们发现:这两半脑其实可以拆开单独用——于是分化出三大派系:BERT(只用左脑)、GPT(只用右脑)、T5(左右并用)。今天你用的所有 LLM,都属于其中一派。
想象你正在做一部英文电影的中文字幕:
有一个人负责看英文原文——从头到尾读完、反复看,把每句话的意思、语气、隐含意图都吃透。他是"阅读理解型选手",可以自由地前后翻阅,不必按顺序。
另一个人负责写中文译文——他一边参考理解者的笔记,一边一个字一个字地把中文写出来。写下一个字的时候,只能看已经写过的字,不能"偷看"后面还没写的。他是"顺序输出型选手"。
这两个角色,分别对应 Transformer 里的 Encoder(编码器) 和 Decoder(解码器)。
先辨清一个关键区别 · 双向 vs 单向
Encoder 和 Decoder 都由多层 Multi-Head Attention 堆成,但它们的 Attention 能看的范围不一样——这一点差异,决定了两种架构的不同用途。
- Encoder · 双向 Attention每个词可以同时看到句子里所有位置的其他词——包括自己前面的和后面的。适合"理解",因为理解一个词经常需要看它后面的上下文。
- Decoder · 掩码单向 Attention每个词只能看自己和前面的词,不能偷看后面还没生成的词。适合"生成",因为写字的时候你还不知道后面要写什么。
那个"不能偷看"的机制有个专业名字叫 Causal Mask(因果掩码)——在 Attention 打分矩阵里,把"未来位置"的分数强行设成负无穷,softmax 之后就变成 0,模型就"看不见未来"了。这个简单的技巧,让 Transformer 能干"逐字生成"的活儿。
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 写中文——原版 Transformer 就是干这个的。
- 文本摘要Encoder 读长文,Decoder 写短摘要。
- 问答生成Encoder 读文档 + 问题,Decoder 写答案。
- 语音识别Encoder 读音频特征,Decoder 写文本(Whisper 就是这种)。
Encoder 和 Decoder 之间通过一种叫 Cross-Attention 的机制沟通——Decoder 在生成每一个词时,不仅看自己已经生成的部分(Self-Attention),还额外看一眼 Encoder 输出的全部内容(Cross-Attention)。像考生答题时不断翻回原文找依据。
Encoder-Decoder 就像同声传译——
Encoder:戴耳机专注听源语言(英文),构建对整句意思的完整理解;
Cross-Attention:翻译时随时"闪回"看一眼刚才听懂的原文点,确认没漏;
Decoder:用目标语言(中文)一个词一个词流畅地讲出来。
这个流水线在专门做"翻译/摘要"这类任务时非常自然,但通用对话反而不是它的强项——多了一层结构,反而不如 Decoder-only 灵活。
三派对比总表
| Encoder-only | Decoder-only | Encoder-Decoder | |
|---|---|---|---|
| Attention 方向 | 双向 | 单向(掩码) | Encoder 双向 + Decoder 单向 |
| 核心训练目标 | 完形填空 (MLM) | 预测下一个词 (CLM) | 掩码片段填空 / 去噪 |
| 擅长 | 理解 / 分类 / 抽取 | 生成 / 对话 / 创作 | 翻译 / 摘要 / 转写 |
| 不擅长 | 写连贯长文 | 纯理解任务(大材小用) | 灵活性略差 |
| 代表 | BERT / RoBERTa / DeBERTa | GPT / Claude / LLaMA / Qwen / DeepSeek | T5 / BART / Whisper / mT5 |
| 参数规模 | 1 亿 ~ 10 亿 | 10 亿 ~ 万亿 | 1 亿 ~ 百亿 |
为什么现代 LLM 全是 Decoder-only
你可能会好奇——既然 Encoder-Decoder 结构"更全面",为什么反而是精简版的 Decoder-only 一统天下?答案有三个层面:
- 通用性最强任何任务都能用"一段文本进、一段文本出"表达——Prompt 就是万能接口。分类可以问它"这是正面还是负面",翻译可以问它"翻成中文"——一个模型什么都能干。
- 规模化最容易结构简单(只有一半的模块),意味着扩到万亿参数时工程复杂度低。BERT 那种双向结构在超大规模下反而不稳定。
- In-Context Learning 涌现GPT-3 论文最惊人的发现——大到一定程度后,Decoder-only 模型不需要重新训练,只要在 prompt 里给几个例子,它就能学会新任务。这是"少样本学习"能力,Encoder-only 和 Encoder-Decoder 都没这么强。
所以从 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 死了——它只是从台前走到了幕后,成了向量检索基础设施的隐形冠军。
三派系一句话总结
- Encoder-only(BERT)看得清楚、说不出来——用在"分类、抽取、搜索、嵌入"。
- Decoder-only(GPT)边看边说、能说会道——用在"对话、生成、推理、编程"。
- Encoder-Decoder(T5)先看再说、专业转写——用在"翻译、摘要、语音识别"。
Transformer 的"左右脑"可以拆开单独用,于是有了三大派系:Encoder-only 懂、Decoder-only 写、Encoder-Decoder 翻。今天的 LLM 战场,Decoder-only 一家独大——因为它足够通用、足够易扩展、还能涌现出上下文学习能力。
但当模型规模冲上万亿,另一个问题来了——参数越大,训练和推理成本越贵。有没有办法让"参数很多、但每次只用一小部分"?下一篇,我们看看 2024 年最火的架构——MoE 专家混合。