> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/llm_internals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/llm_internals/di-si-bu-fen-mo-xing-yu-qian-yan-pian/13_decoder_models/13.4_t5_bart.md).

# 13.4 编码器-解码器模型：T5 与 BART 的设计选择

编码器-解码器（Encoder-Decoder）是 Transformer 的原始架构形态。T5 和 BART 代表了这一架构在预训练时代的两种标志性使用方式。

## 13.4.1 T5：统一的文本到文本框架

Google 的 **T5**（Text-to-Text Transfer Transformer，Raffel 等人，2020 年）将所有 NLP 任务统一为**文本到文本的生成问题**：

```
输入："translate English to German: That is good."
输出："Das ist gut."

输入："sst2 sentence: This movie is terrible."
输出："negative"

输入："summarize: [长文本]"
输出："[摘要]"
```

这种统一框架的优势在于：同一个模型、同一种训练方式、同一种推理方式处理所有任务——极大简化了多任务学习和迁移学习的工程复杂度。

T5 的预训练使用**文本填充**（Span Corruption）目标：随机遮盖输入中的连续片段，用编码器处理被破坏的输入，解码器生成被遮盖的片段及其位置标识。这可以看作是 MLM 的推广——从预测单个词元到预测连续文本片段。

T5 团队在论文中系统地比较了数十种预训练策略、架构变体和训练方法，为后续研究提供了宝贵的实验基准。

## 13.4.2 BART：序列去噪的灵活性

Facebook 的 **BART**（Lewis 等人，2020 年）将预训练视为**序列去噪自编码**任务：对输入施加各种形式的噪声，训练模型恢复原始文本。

BART 支持五种噪声类型：

* 词元遮盖（类似 BERT）
* 词元删除（比遮盖更难——模型需要推断删除的位置）
* 句子排列打乱
* 文档旋转
* 片段填充（用单个 `[MASK]` 替换一个连续片段）

不同的噪声组合使模型学到不同的能力。实验发现，文本填充和句子排列的组合效果最好——前者训练局部理解和生成，后者训练文档级的结构理解。

## 13.4.3 后续发展：Flan-T5 与 UL2

值得注意的是，编码器-解码器架构在**指令微调**方向上仍有建树。Google 的 **Flan-T5**（2022 年）通过在大规模指令数据集上微调 T5，在零样本和少样本任务上大幅超越原始 T5，证明了编码器-解码器架构同样受益于指令微调。**UL2**（Unified Language Learner）则尝试统一不同的预训练目标（自回归、前缀语言模型和文本填充），探索了更灵活的预训练范式。

然而在大规模实践中，这些改进仍未改变纯解码器架构占据主导的趋势。

## 13.4.4 编码器-解码器 vs 纯解码器的权衡

编码器-解码器架构在以下方面有理论优势：

**输入-输出分离**：编码器对完整输入进行双向编码（理解），解码器负责生成输出。这种分工在翻译、摘要等有明确“输入”和“输出”的任务中很自然。

**编码器不受因果约束**：编码器使用全双向注意力处理输入，信息利用更充分。

然而在大规模实践中，编码器-解码器架构面临两个劣势：

**参数效率较低**：编码器和解码器各占约一半参数。对于主要做生成任务的场景，编码器的一半参数在推理时只处理输入而不参与生成，利用率较低。

**扩展性不如纯解码器**：大规模 Scaling 实验表明，纯解码器架构在同等参数量下的通用能力更强。这是因为自回归预训练让每个词元都贡献训练信号，且统一的架构避免了编码器和解码器之间的能力不平衡。

这些因素共同解释了为什么 2023 年以后，绝大多数新的通用大语言模型都选择了纯解码器架构。
