大模型三大架构详解:Encoder-only、Decoder-only 与 Encoder-Decoder
从 BERT 到 GPT,从 T5 到 LLaMA,几乎所有主流大模型都基于 Transformer 的三种架构变体。理解它们的区别,是选型、微调、应用开发的第一步。
一、为什么需要区分这三种架构?
在深度学习领域,Transformer 自 2017 年诞生以来,衍生出了三种主要的架构形态:
-
Encoder-only(仅编码器)
-
Decoder-only(仅解码器)
-
Encoder-Decoder(编码器-解码器)
这三者虽然都基于自注意力机制,但在注意力方向、预训练任务、适用场景上有着本质区别。选择正确的架构,往往比盲目堆叠参数更有效。
二、三种架构核心对比
| 架构类型 | 结构 | 注意力掩码 | 代表模型 | 典型任务 |
|---|---|---|---|---|
| Encoder-only | 仅编码器 | 双向(无掩码) | BERT, RoBERTa, ALBERT, DistilBERT | 文本分类、实体识别、情感分析 |
| Decoder-only | 仅解码器 | 因果掩码(单向) | GPT 系列, LLaMA, Qwen, DeepSeek | 文本生成、对话、代码生成 |
| Encoder-Decoder | 编码器 + 解码器 | 编码器双向,解码器因果+交叉 | T5, BART, mT5, Pegasus | 翻译、摘要、文本转换 |
三、Encoder-only 架构(以 BERT 为例)
3.1 结构特点
-
只有编码器:通常堆叠多层 Transformer 编码器块(如 BERT-base 有 12 层)。
-
双向注意力:每个词在计算自注意力时,可以同时看到句子中所有词(包括前后)。这使得模型能够充分融合上下文信息。
-
输入格式:通常为
[CLS]+ tokens +[SEP],其中[CLS]位置的输出常被用作句子级表示。
3.2 预训练任务
-
MLM(掩码语言模型):随机遮盖 15% 的 token,让模型预测被遮盖的词。这迫使模型学习真正的双向上下文。
-
NSP(下一句预测)(部分模型):判断两句话是否连续,帮助学习句子间关系(后续研究发现 NSP 并非必要,如 RoBERTa 去掉了它)。
3.3 优点与局限
| 优点 | 局限 |
|---|---|
| 双向理解,语义丰富 | 不适合生成任务(无法自回归) |
| 在分类、序列标注等任务上效果优异 | 预训练成本较高 |
| 模型结构相对简单,易于微调 | 上下文长度通常有限(512) |
3.4 适用场景
-
文本分类、情感分析、实体识别、关系抽取
-
作为编码器用于信息检索、向量嵌入
-
任何需要“理解”而非“生成”的任务
四、Decoder-only 架构(以 GPT 为例)
4.1 结构特点
-
只有解码器:堆叠多层 Transformer 解码器块(如 GPT-3 有 96 层)。
-
因果掩码(Causal Mask):在自注意力中,每个 token 只能看到它之前的 token,不能看到未来的 token。这保证了自回归生成时的因果性。
-
生成方式:每次预测下一个 token,并将新 token 加入输入,继续预测(自回归)。
4.2 预训练任务
-
自回归语言建模:给定前面的 token,预测下一个 token。目标函数是最大化序列的似然。
4.3 优点与局限
| 优点 | 局限 |
|---|---|
| 强大的生成能力,适合开放域生成 | 无法直接使用双向上下文,理解能力弱于 Encoder-only |
| 可通过 prompt 进行零样本/少样本学习 | 生成时存在累积误差,可能重复或偏离 |
| 模型规模可无限扩大(如 GPT-4) | 长文本生成容易失去连贯性 |
4.4 适用场景
-
文本生成、对话系统、代码生成、故事续写
-
推理任务(通过思维链)
-
任何需要“生成”的任务
五、Encoder-Decoder 架构(以 T5 为例)
5.1 结构特点
-
编码器 + 解码器:编码器堆叠多层(双向注意力),解码器堆叠多层(因果掩码 + 交叉注意力)。
-
交叉注意力:解码器的每一层都会通过交叉注意力关注编码器的全部输出,从而将输入信息融入生成过程。
5.2 预训练任务
-
去噪自编码(如 T5 的“Span Corruption”):将输入文本中的连续片段替换为哨兵标记,模型需要恢复被遮蔽的片段。这结合了理解和生成。
5.3 优点与局限
| 优点 | 局限 |
|---|---|
| 统一了理解和生成,适合输入-输出转换任务 | 参数多(编码器+解码器),推理速度慢 |
| 在结构化输出(如摘要、翻译)上表现优异 | 预训练和微调需要更多资源 |
| 可以处理输入和输出长度不同的场景 | 架构复杂,不易于压缩 |
5.4 适用场景
-
机器翻译、文本摘要、文本改写
-
生成式问答、结构化数据到文本
-
任何输入与输出形式不同但结构相关的任务
六、如何选择适合的架构?
| 任务类型 | 推荐架构 | 理由 |
|---|---|---|
| 文本分类、情感分析、实体识别 | Encoder-only | 双向理解能捕捉全部上下文,且效率高 |
| 对话系统、文章生成、代码生成 | Decoder-only | 自回归生成能力最强,适合开放域生成 |
| 机器翻译、摘要、文本改写 | Encoder-Decoder | 严格区分输入与输出,转换效果更好 |
| 信息检索(如 RAG 中的嵌入) | Encoder-only | 高效获得固定维度的向量表示 |
| 复杂推理(如数学题) | Decoder-only | 可通过思维链逐步推理,生成能力是关键 |
在实际应用中,Decoder-only 模型(如 GPT、LLaMA)通过精心设计的 prompt 也能完成分类、翻译等任务,因此成为大模型时代的主流。但 Encoder-only 在特定场景下仍具有效率优势,Encoder-Decoder 则在需要严格遵循输入结构的任务中不可替代。
七、总结
-
Encoder-only:双向理解,擅长分类、提取、检索。
-
Decoder-only:单向生成,擅长对话、写作、代码。
-
Encoder-Decoder:理解+生成,擅长翻译、摘要、转换。
理解这三种架构,你就能更精准地选择预训练模型,设计更合理的微调策略,构建更高效的大模型应用。
如果你正在学习大模型应用开发,建议先从 Encoder-only(如 BERT)入手掌握迁移学习,再深入 Decoder-only(如 Qwen、LLaMA)学习生成和推理,最后根据需求探索 Encoder-Decoder(如 T5)的转换能力。
参考资料:
-
Vaswani et al. (2017). Attention Is All You Need.
-
Devlin et al. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
-
Radford et al. (2018). Improving Language Understanding by Generative Pre-Training.
-
Raffel et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer.
本文为原创,转载请注明出处。如果你觉得有帮助,欢迎点赞、收藏、分享!
更多推荐



所有评论(0)