1700 字
9 分钟
GPT、BART 与 T5:三种预训练范式

三种建模范式#

BERT 用双向编码器和掩码语言模型,擅长理解类任务,但不能直接做自回归生成。围绕“如何预训练一个通用语言模型”,逐渐形成三种典型结构:

  • 自回归(decoder-only):只用解码器,从左到右预测下一个 token,代表是 GPT;
  • 去噪编码器-解码器(denoising seq2seq):双向编码器读入被破坏的文本,自回归解码器还原原文,代表是 BART;
  • 统一 text-to-text:所有任务都写成“输入文本 → 输出文本”,用编码器-解码器生成目标,代表是 T5。

三者都不是单纯的“模型大小”差异,而是预训练目标决定了它们更适合理解还是生成。

GPT:自回归预训练#

GPT(Generative Pre-Training)由 OpenAI 在 2018 年提出,使用 Transformer 解码器堆叠。每个位置只能看到自己和左侧的 token,训练目标是标准的因果语言模型:

LLM=−∑t=1nlog⁡P(wt∣w1,…,wt−1)\mathcal{L}_{\text{LM}} = -\sum_{t=1}^{n} \log P(w_t \mid w_1,\dots,w_{t-1})

由于严格遵循从左到右的因果顺序,GPT 可以直接用于生成:给定前缀,逐 token 采样或贪心解码。这一点与 ELMo 的双向 LSTM 和 BERT 的掩码训练不同。

预训练与微调#

GPT 的训练分为两个阶段:

  1. 生成式预训练:在大规模无标注文本上做自监督的下一词预测,学习语言结构和世界知识;
  2. 下游微调:把任务输入送入 GPT,取最后一个位置的隐藏状态 hnL\mathbf{h}_n^L,接一个线性层做分类:
P(y∣x1,…,xn)=softmax⁡(WyhnL+by)P(y \mid x_1,\dots,x_n) = \operatorname{softmax}(\mathbf{W}_y \mathbf{h}_n^L + \mathbf{b}_y)

微调目标是在标注数据上最小化任务损失。由于微调数据通常远小于预训练语料,模型可能灾难性遗忘预训练学到的通用知识。GPT 的做法是把两个损失混合:

Lfinetune=Ltask+λLLM\mathcal{L}_{\text{finetune}} = \mathcal{L}_{\text{task}} + \lambda \mathcal{L}_{\text{LM}}

λ∈[0,1]\lambda \in [0,1] 控制预训练语言模型损失的占比。辅助的语言模型损失相当于让模型在微调时继续接触语言建模,缓解遗忘。

GPT 的单向结构适合生成,但每个位置看不到右侧上下文,在需要整体语义的理解任务上不如 BERT。GPT-2、GPT-3 沿用了这一结构,并通过增大规模、上下文学习和提示学习,把“预训练 + 微调”推进到“预训练 + 提示”。

BART:去噪自编码器#

BART(Bidirectional and Auto-Regressive Transformers)采用完整的编码器-解码器结构:

  • 编码器是双向 Transformer,可以同时利用左右上下文;
  • 解码器是自回归 Transformer,从左到右生成输出;
  • 预训练目标是去噪:对原文加噪,让模型还原原文。

BART 可以看作“BERT 的双向编码器 + GPT 的自回归解码器”的组合,但它的预训练任务不是预测单个被遮蔽词,而是重建整段文本。

五种加噪方式#

方式操作模型需要学到什么
Token Masking随机把 token 替换为 [MASK]根据上下文填补单词
Token Deletion随机删除 token预测缺失词及其位置
Text Infilling把连续片段替换为单个 [MASK],片段长度服从 Poisson(λ=3\lambda=3)判断片段长度并重建内容
Sentence Permutation打乱句子顺序理解句间关系并还原顺序
Document Rotation随机选一个 token 作为文档开头并旋转找出原文真正的起始位置

这些噪声覆盖 token、句子和文档三个层次,迫使模型学习语法、语义和篇章结构。实验表明,Text Infilling 对下游任务尤其有效。

微调#

BART 同时支持理解和生成:

  • 理解任务(如序列分类):输入同时送入编码器和解码器,用解码器最后一个位置的隐藏状态作为整段文本的表示,再接分类器;
  • 生成任务(如摘要、生成式问答):输入是任务文本,解码器自回归生成目标文本,用生成结果与参考文本的差异作为损失。

BART 的编码器提供双向理解,解码器提供生成能力,因此在摘要、翻译、对话等任务上表现很强。

T5:把一切变成 text-to-text#

T5(Text-to-Text Transfer Transformer)的核心主张是:所有 NLP 任务都统一为“输入一段文本,输出一段文本”。分类任务把标签当作目标文本,翻译、问答、摘要也都写成生成任务:

输入:translate English to German: The house is wonderful.
输出:Das Haus ist wunderbar.
输入:cola sentence: The course is jumping well.
输出:not acceptable

模型统一使用 Transformer 编码器-解码器。训练数据 C4 包含约 750G 高质量英文文本。T5 论文系统比较了三种架构:

架构注意力方式特点
Encoder-Decoder编码器双向,解码器因果理解与生成分离,适合 seq2seq
Decoder-only全部因果结构简单,适合纯生成
Prefix LM前缀双向,后缀因果介于两者之间

在相同计算预算下,编码器-解码器结构表现最好,因此 T5 采用这一结构。

Span Corruption#

T5 的预训练任务是 span corruption:随机选择若干连续片段,把每个片段替换为一个哨兵 token(如 <extra_id_0>),解码器输出这些哨兵对应的原始片段:

输入:The <extra_id_0> is <extra_id_1>.
输出:<extra_id_0> quick brown fox <extra_id_1> lazy dog

与 BERT 逐 token 预测相比,span corruption 一次预测一个片段,解码器需要生成连续文本,更接近 seq2seq 的生成形式;与 BART 的整句去噪相比,它的目标更短、训练更高效。

统一框架的意义#

T5 证明了:只要把任务形式统一,同一个模型、同一套参数、同一个解码过程就可以处理分类、翻译、问答和摘要。这种“text-to-text”思想影响了后续的指令微调和大模型任务格式;大语言模型中的 SFT 也延续了“把任务写成输入输出文本”的做法。

对比#

模型结构预训练目标擅长
GPTDecoder-only,因果注意力下一词预测生成、续写、对话
BERTEncoder-only,双向注意力MLM + NSP分类、抽取式问答、序列标注
BARTEncoder-Decoder多种去噪任务摘要、翻译、生成式理解
T5Encoder-DecoderSpan corruption统一的 text-to-text 任务

从表示能力看,编码器-解码器同时具备双向理解和自回归生成;从训练效率看,decoder-only 结构简单、易于扩展到超大模型,最终成为现代大语言模型的主流架构,具体结构见 Decoder-only Transformer。

相关阅读#

GPT、BART 与 T5:三种预训练范式
https://biscuit0613.github.io/posts/nlp/06-08-gpt-bart-t5/
作者
Biscuit
发布于
2026-10-20
许可协议
CC BY-NC-SA 4.0
BERT:预训练 + 微调范式
大模型预训练:整体框架与模型架构