从BERT到T5:迁移学习如何重塑Transformer的进化之路

如果你在2018年之前从事自然语言处理工作,可能会对那个时代记忆犹新:每个任务都需要从头开始训练一个专门的模型,从数据收集、清洗、标注到漫长的模型训练,整个过程不仅耗时耗力,而且效果往往不尽如人意。那时的NLP领域就像一个个孤岛,每个任务都在重复造轮子。然而,这一切在BERT出现后发生了根本性的转变。如今,我们不再需要为每个新任务从头训练模型,而是可以像搭积木一样,在一个强大的预训练模型基础上进行微调,就能在几天甚至几小时内获得出色的效果。这种范式转变的核心驱动力,正是迁移学习与Transformer架构的完美结合。

这篇文章将带你走过从BERT到T5的演进历程,但我们的视角并非简单罗列模型的技术细节,而是聚焦于一个更本质的问题:迁移学习的思想是如何一步步推动Transformer模型的设计哲学发生变化的? 我们将看到,模型架构的每一次重大调整——从BERT的双向编码器,到GPT的自回归解码器,再到T5统一的文本到文本框架——背后都反映了研究者对“如何更高效地进行知识迁移”这一问题的不同思考。对于NLP研究人员和技术爱好者而言,理解这条演进路径,远比掌握某个单一模型的实现细节更为重要,因为它揭示了当前大模型时代的技术底层逻辑。

1. 奠基:Transformer为何成为迁移学习的理想载体

在深入探讨BERT之前,我们必须先理解为什么Transformer架构如此适合迁移学习。2017年,Google在《Attention Is All You Need》中提出的Transformer,最初是为了解决机器翻译中的序列到序列问题。但它很快展现出超越翻译任务的潜力,这主要归功于其核心机制——自注意力(Self-Attention)。

与RNN的顺序处理和CNN的局部感知不同,自注意力机制允许模型在处理序列中的每个元素时,直接关注到序列中所有其他元素,无论它们之间的距离有多远。这种全局的、动态的依赖关系建模能力,让Transformer能够捕捉到语言中复杂的上下文信息。更重要的是,Transformer的架构天生支持高效的并行计算,这使得在大规模语料上进行预训练成为可能。

注意:这里说的“并行”指的是训练时序列内部计算的并行性,与模型参数并行或数据并行是不同概念。正是这种序列级别的并行,大幅缩短了训练时间,为后续的预训练-微调范式奠定了基础。

从迁移学习的角度看,Transformer就像一个功能强大的通用特征提取器。我们可以将其训练过程分为两个阶段:

  1. 预训练阶段:在海量无标注文本上,通过自监督任务(如遮盖词语预测)训练模型,使其学习到语言的通用表示和语法、语义知识。
  2. 微调阶段:在特定任务的少量标注数据上,对预训练好的模型进行小幅调整,使其适应新任务。

这种两阶段模式带来了几个革命性优势:

  • 降低数据需求:微调所需的数据量远小于从头训练。
  • 缩短开发周期:几天甚至几小时就能得到一个可用的任务模型。
  • 提升性能上限:预训练模型从海量数据中学到的知识,为下游任务提供了强大的先验。

下面的表格对比了传统机器学习、深度学习与基于Transformer的迁移学习在NLP任务上的关键差异:

特性维度传统机器学习(如SVM)深度学习(如LSTM)基于Transformer的迁移学习
数据需求需要精心设计的特征工程,对标注数据量要求中等。需要大量标注数据,特征学习自动化。微调阶段仅需少量标注数据,依赖预训练获得通用知识。
计算成本训练成本低,推理成本低。训练成本高,推理成本中等。预训练成本极高,但微调成本低,可复用预训练模型。
任务泛化模型高度特化,跨任务迁移困难。有一定特征迁移能力,但架构常需调整。同一套模型架构和权重可适应多种不同任务。
核心瓶颈特征工程的质量决定天花板。梯度消失/爆炸,长程依赖建模难。预训练数据质量、计算资源、模型缩放规律。

正是Transformer的这些特性,为后续BERT、GPT等模型的爆发铺平了道路。它提供了一个足够强大且灵活的骨架,让研究者可以专注于设计更好的“预训练任务”,以引导模型学习我们期望它掌握的知识。

2. BERT时代:双向编码与知识注入的革命

2018年,BERT的横空出世,正式拉开了NLP迁移学习大时代的序幕。它的成功并非偶然,而是建立在两个关键设计之上:双向编码架构和精心设计的预训练任务。

2.1 架构选择:为何是纯编码器?

BERT选择了Transformer的纯编码器(Encoder-Only) 部分。这意味着在预训练和微调时,模型都能看到完整的输入序列。这种双向性对于理解类任务(如文本分类、问答)至关重要,因为一个词的含义往往由其前后文共同决定。

# 一个简化的BERT类结构示意(非实际代码)
class SimplifiedBERT:
    def __init__(self):
        self.encoder_layers = TransformerEncoderLayers() # 多层Transformer编码器堆叠
        self.pooler = PoolingLayer() # 用于获取句子级表示

    def forward(self, input_ids, attention_mask):
        # 所有token同时输入,编码器能访问整个序列
        sequence_output = self.encoder_layers(input_ids, attention_mask)
        # [CLS] token的输出常用于分类任务
        pooled_output = self.pooler(sequence_output[:, 0])
        return sequence_output, pooled_output

与之前基于LSTM等单向或浅层双向的模型相比,BERT的深层双向Transformer编码器能够构建更丰富、更深层次的上下文表示。

2.2 预训练任务:知识迁移的“教案”

BERT的成功,一半归功于架构,另一半则归功于其创新的预训练任务设计。这些任务本质上是在教模型如何从无标注文本中学习有用的知识。

  • 掩码语言模型(Masked Language Model, MLM):随机遮盖输入序列中15%的词语,让模型预测被遮盖的原始词语。这个任务迫使模型必须基于双向上下文进行推理,从而学习到词语和上下文之间的深层关系。
  • 下一句预测(Next Sentence Prediction, NSP):给定两个句子A和B,判断B是否是A的下一句。这个任务旨在让模型理解句子间的关系,这对问答、自然语言推理等需要理解多个句子逻辑的任务至关重要。

这两个任务共同作用,相当于为模型设计了一套“通用语言理解课程”。MLM教它词汇和语法,NSP教它篇章逻辑。当模型在数百GB文本上完成这门“课程”后,它就具备了强大的语言先验知识,可以轻松“迁移”到具体的下游任务中。

BERT的迁移学习流程:

  1. 预训练:在海量通用语料(如Wikipedia、BookCorpus)上执行MLM和NSP任务。
  2. 微调:
    • 根据下游任务(如情感分析),在模型顶部添加一个简单的任务层(如分类头)。
    • 使用任务特定的标注数据,同时更新所有模型参数(包括预训练的BERT权重和新增的任务层)。
    • 通常只需几个epoch就能收敛。

提示:虽然NSP任务后来被证明其收益有限(在RoBERTa等后续模型中被移除),但它在BERT的初期成功中扮演了重要的概念验证角色,即通过设计合适的预训练任务可以显式地教会模型某些高级能力。

BERT的出现,确立了一个清晰的范式:一个在大规模数据上通过自监督任务预训练的通用模型,可以通过微调迅速适配到几乎所有NLP任务,并取得当时最好的性能。 这个范式是如此成功,以至于催生了一个庞大的“BERT家族”,包括更高效的DistilBERT、更强大的RoBERTa、跨语言的XLM-R等,它们都在不同方向上优化了这套迁移学习流程。

3. GPT的路径:自回归生成与另一种迁移哲学

当BERT在理解类任务上高歌猛进时,另一条由OpenAI引领的技术路径也在快速发展,这就是基于Transformer纯解码器(Decoder-Only) 的GPT系列模型。GPT选择了与BERT截然不同的迁移学习哲学。

3.1 核心差异:自回归生成 vs 双向理解

GPT的核心预训练任务是自回归语言建模:给定一段文本,模型总是根据前面已经出现的词语,预测下一个最可能出现的词语。这本质上是一个生成任务。

# 自回归生成的简化示意
def autoregressive_generation(model, prompt, max_length):
    generated = prompt
    for _ in range(max_length):
        # 模型只能看到当前已生成的所有token
        next_token_logits = model(generated)[-1]
        next_token = sample(next_token_logits) # 通过某种策略采样下一个token
        generated.append(next_token)
    return generated

这种设计带来了几个关键特性:

  • 单向注意力:在生成每个新词时,模型只能关注它左侧的上下文(过去的信息)。这与BERT的双向全景视角形成对比。
  • 天然适合生成任务:文本续写、对话、创作等任务与它的预训练方式高度一致。
  • 零样本/少样本学习潜力:通过巧妙的提示(Prompt),如“将英文翻译成法语:...”,GPT可以在不进行显式微调的情况下,直接完成翻译任务。这展示了其从预训练中学习到的强大任务泛化能力。

3.2 迁移学习的“提示”范式

GPT系列(尤其是GPT-3及之后)的演进,逐渐弱化了传统的“预训练-微调”范式,转而推崇一种更灵活的“预训练-提示(Prompting)”范式。在这种范式下,迁移学习不再意味着更新模型权重,而是通过设计输入文本的格式(即提示),来“激发”模型在预训练阶段已经具备的能力。

例如,要做一个情感分析分类器,传统微调需要准备标注数据并训练一个分类头。而在提示范式中,我们可以这样构造输入:

文本:这部电影的视觉效果令人惊叹,但剧情乏善可陈。
情感:__

然后让模型根据上下文,生成“正面”、“负面”或“中性”等词。模型能否做对,完全取决于它在预训练时是否“见过”类似的文本模式并理解了其中的关联。

这种范式的优势在于其极大的灵活性,但同时也对提示工程和模型的规模提出了极高要求。GPT-3用1750亿参数和海量数据证明,当模型足够大时,这种基于提示的迁移可以非常有效。

BERT与GPT迁移哲学对比表:

方面BERT(编码器派)GPT(解码器派)
预训练目标理解:还原被破坏的输入(MLM)。生成:预测序列的下一个词。
注意力模式双向,全序列可见。单向,仅可见历史信息。
核心优势对文本的深层语义理解,在分类、抽取任务上表现优异。强大的开放域生成能力,零样本/少样本学习潜力大。
迁移方式微调主导:为下游任务添加轻量级头部,更新全部或部分参数。提示主导:通过设计输入文本来激发模型能力,通常不更新或少量更新参数。
典型代表BERT, RoBERTa, DeBERTa。GPT-2, GPT-3, GPT-Neo。

这两条路径并非泾渭分明,而是互相影响、互相借鉴。它们共同丰富了迁移学习在NLP中的应用图景,也让研究者们开始思考:有没有一种架构,能同时吸收两者的优点?

4. T5的统一野心:万物皆可文本到文本

Google在2019年提出的T5模型,是对前述两条路径的一次大胆整合与超越。它的全称是“Text-To-Text Transfer Transformer”,其核心思想极具统一美感:将所有NLP任务都重新定义为“文本到文本”的格式。

4.1 统一的框架:架构与任务的解耦

T5回归了原始的编码器-解码器(Encoder-Decoder) 架构。在这个框架下,无论输入任务是什么(分类、翻译、摘要、问答),都被构造成一段文本输入给编码器;而模型的输出,则是另一段文本(类别标签、翻译结果、摘要文字、答案)。

# T5处理不同任务的输入输出格式示例
任务: 情感分析
输入: "情感分析:这部电影太棒了!"
输出: "正面"

任务: 英译德
输入: "将英文翻译成德语:The house is wonderful."
输出: "Das Haus ist wunderbar."

任务: 摘要
输入: "总结:长篇文章内容..."
输出: "文章摘要..."

这种统一带来了巨大的工程和概念简化。你只需要一个模型、一套训练代码,就能处理五花八门的任务。迁移学习的过程变得极其一致:在大型混合任务数据集上进行多任务预训练,然后在特定任务的标注数据上微调。

4.2 迁移学习的系统化探索

T5论文的副标题是“Exploring the Limits of Transfer Learning”。研究者们不仅提出了新模型,更进行了一场空前规模的迁移学习消融实验。他们系统地比较了不同因素对迁移效果的影响:

  • 模型架构:编码器-解码器 vs 仅编码器 vs 仅解码器。
  • 预训练目标:各种不同的无监督目标(如BERT的MLM、去噪自编码等)。
  • 数据集:规模、领域、清洁度的影响。
  • 训练策略:多任务学习、课程学习等。

这些实验得出的许多结论成为了后续研究的共识。例如,他们发现“去噪”式的预训练目标(类似于BERT的MLM,但扩展为遮盖连续的文本片段)对编码器-解码器架构非常有效。T5模型本身就是在巨大清洁语料(C4数据集)上,使用这种去噪目标训练出来的。

4.3 从T5看迁移学习的未来

T5的成功标志着NLP迁移学习进入了一个新的阶段:系统化与规模化。它不再仅仅是找到一个巧妙的预训练任务,而是通过严谨的实验,去理解迁移学习各个组件的作用,并在此基础上进行规模化扩展。

T5的“文本到文本”思想影响深远。它启发了后续如mT5(多语言T5)、FLAN-T5(指令微调T5)等模型。更重要的是,它为如今大语言模型(LLM)的“指令遵循”能力奠定了基础。当我们将各种任务都转化为一段文本指令和输入时,模型学习的就是如何根据指令生成符合要求的文本,这正是当前ChatGPT等模型的核心能力之一。

从BERT到T5,我们看到了一条清晰的演进线索:迁移学习的重心,从设计更好的模型架构和预训练任务以“注入”知识,逐渐转向设计更统一的任务框架和交互方式以“激发”和“引导”模型已学到的海量知识。这条路径的终点,就是我们今天所见的,通过简单对话就能完成复杂任务的大语言模型时代。理解这段历史,能让我们在面对层出不穷的新模型时,抓住其背后不变的演化逻辑。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐