到目前为止,在我们的图像分类和机器翻译实验中,模型是在具有输入输出示例的数据集上从头开始训练的,以执行特定任务。例如,Transformer 使用英法对(第 11.7 节)进行训练,因此该模型可以将输入的英文文本翻译成法文。因此,每个模型都成为一个特定的专家,即使是数据分布的微小变化也很敏感(第 4.7 节)。对于更好的泛化模型,或者更胜任的通才,可以在有或没有适应的情况下执行多项任务,大数据的预训练模型越来越普遍。
给定更大的预训练数据,Transformer 架构在模型大小和训练计算增加的情况下表现更好,展示了卓越的缩放行为。具体而言,基于 Transformer 的语言模型的性能与模型参数、训练标记和训练计算的数量成幂律关系 (Kaplan等人,2020 年)。Transformers 的可扩展性还可以通过在更大数据上训练的更大视觉 Transformers 的显着提升性能得到证明(在第 11.8 节中讨论 )。最近的成功案例包括 Gato,这是一个可以玩 Atari、字幕图像、聊天并充当机器人的多面手模型(Reed等。, 2022 )。Gato 是一个单一的 Transformer,在对不同模式(包括文本、图像、关节力矩和按钮按下)进行预训练时可以很好地扩展。值得注意的是,所有此类多模态数据都被序列化为一个扁平的标记序列, Transformers可以将其处理为类似于文本标记(第11.7 节)或图像补丁(第 11.8 节)。
在为多模态数据预训练 Transformers 取得令人瞩目的成功之前,Transformers 使用大量文本进行了广泛的预训练。最初提出用于机器翻译,图 11.7.1中的 Transformer 架构由一个用于表示输入序列的编码器和一个用于生成目标序列的解码器组成。基本上,Transformer 可以用于三种不同的模式: encoder-only、encoder-decoder和decoder-only。作为本章的总结,我们将回顾这三种模式并解释预训练 Transformers 的可扩展性。
11.9.1。仅编码器
当仅使用 Transformer 编码器时,一系列输入标记被转换为相同数量的表示,这些表示可以进一步投影到输出(例如,分类)。Transformer 编码器由自注意力层组成,其中所有输入标记相互关注。例如,图 11.8.1中描述的视觉 Transformers 仅是编码器,将一系列输入图像块转换为特殊“”标记的表示。由于这种表示依赖于所有输入标记,因此它被进一步投射到分类标签中。这种设计的灵感来自早期在文本上预训练的仅编码器 Transformer:BERT(Bidirectional Encoder Representations from Transformers)(Devlin等人,2018 年)。
11.9.1.1。预训练 BERT
BERT 使用掩码语言建模在文本序列上进行预训练:带有随机掩码标记的输入文本被送入 Transformer 编码器以预测掩码标记。如图11.9.1所示 ,原始文本序列“I”、“love”、“this”、“red”、“car”前面加上“”标记,“” token随机替换“love”;那么在预训练期间,掩码标记“love”与其预测之间的交叉熵损失将被最小化。请注意,Transformer 编码器的注意力模式没有约束( 图 11.9.1右侧)) 所以所有的代币都可以互相关注。因此,“爱”的预测取决于序列中它前后的输入标记。这就是 BERT 是“双向编码器”的原因。无需人工标注,可以使用书籍和维基百科中的大规模文本数据来预训练 BERT。
11.9.1.2。微调 BERT
预训练的 BERT 可以针对涉及单个文本或文本对的下游编码任务进行微调。在微调期间,可以使用随机参数向 BERT 添加额外的层:这些参数和那些预训练的 BERT 参数将被更新以适应下游任务的训练数据。
图 11.9.2说明了用于情绪分析的 BERT 微调。Transformer 编码器是一个预训练的 BERT,它将文本序列作为输入并将“”表示(输入的全局表示)馈送到额外的全连接层以预测情绪。在微调期间,通过基于梯度的算法最小化预测和情感分析数据标签之间的交叉熵损失,其中从头开始训练附加层,同时更新 BERT 的预训练参数。BERT 做的不仅仅是情绪分析。3.5 亿参数 BERT 从 2500 亿个训练标记中学习到的通用语言表征提升了自然语言任务的最新水平,例如单一文本分类、文本对分类或回归、文本标记和问答。
您可能会注意到这些下游任务包括文本对理解。BERT 预训练还有另一个损失,用于预测一个句子是否紧跟另一个句子。然而,后来发现在对 20000 亿个令牌预训练相同大小的 BERT 变体 RoBERTa 时,这种损失没有用(Liu等人,2019 年)。BERT 的其他衍生产品改进了模型架构或预训练目标,例如 ALBERT(强制参数共享)(Lan等人,2019 年)、SpanBERT(表示和预测文本跨度)(Joshi等人,2020 年)、DistilBERT(轻量级通过知识蒸馏) (桑等人。, 2019 )和 ELECTRA(替代令牌检测) (Clark等人,2020)。此外,BERT 启发了计算机视觉中的 Transformer 预训练,例如视觉 Transformers ( Dosovitskiy et al. , 2021 )、Swin Transformers ( Liu et al. , 2021 )和 MAE (masked autoencoders) ( He et al. , 2022 )。
11.9.2。编码器-解码器
由于 Transformer 编码器将一系列输入标记转换为相同数量的输出表示,因此仅编码器模式无法像机器翻译那样生成任意长度的序列。正如最初为机器翻译提出的那样,Transformer 架构可以配备一个解码器,该解码器可以自动回归预测任意长度的目标序列,逐个标记,以编码器输出和解码器输出为条件:(i)对于编码器输出的条件,编码器-解码器交叉注意力(图 11.7.1中解码器的多头注意力)允许目标标记关注所有输入标记;(ii) 对解码器输出的调节是通过所谓的因果关系实现的注意(这个名称在文献中很常见,但具有误导性,因为它与正确的因果关系研究几乎没有联系)模式(图 11.7.1中解码器的屏蔽多头注意),其中任何目标标记只能关注过去并在目标序列中呈现标记。
为了在人工标记的机器翻译数据之外预训练编码器-解码器 Transformer,BART (Lewis等人,2019 年)和 T5 (Raffel等人,2020 年)是两个同时提出的在大规模文本语料库上预训练的编码器-解码器 Transformer。两者都试图在其预训练目标中重建原始文本,而前者强调噪声输入(例如,掩蔽、删除、排列和旋转),后者则强调通过综合消融研究实现多任务统一。
11.9.2.1。预训练T5
作为预训练的 Transformer 编码器-解码器的示例,T5(文本到文本传输转换器)将许多任务统一为相同的文本到文本问题:对于任何任务,编码器的输入都是任务描述(例如, “总结”、“:”)之后是任务输入(例如,文章中的一系列标记),解码器预测任务输出(例如,一系列标记对输入文章的总结)。为了执行文本到文本,T5 被训练为根据输入文本生成一些目标文本。
为了从任何原始文本中获取输入和输出,T5 被预训练以预测连续的跨度。具体来说,来自文本的标记被随机替换为特殊标记,其中每个连续的跨度被相同的特殊标记替换。考虑图 11.9.3中的示例 ,其中原始文本是“I”、“love”、“this”、“red”、“car”。标记“love”、“red”、“car”随机替换为特殊标记。由于“red”和“car”是连续的跨度,因此它们被相同的特殊标记替换。结果,输入序列为“I”、“”、“this”、“”,目标序列为“”、“love”、“”、“ red”,“car”,“”,其中“”是另一个标记结束的特殊标记。如图 11.9.3,解码器有一个因果注意模式,以防止自己在序列预测期间关注未来的标记。
在 T5 中,预测连续跨度也称为重建损坏的文本。为了实现这一目标,T5 使用来自 C4(Colossal Clean Crawled Corpus)数据的 10000 亿个标记进行了预训练,该数据由来自 Web 的干净英文文本组成(Raffel等人,2020 年)。
11.9.2.2。微调T5
与 BERT 类似,T5 需要在任务特定的训练数据上进行微调(更新 T5 参数)以执行此任务。与 BERT 微调的主要区别包括:(i)T5 输入包括任务描述;(ii) T5 可以通过其 Transformer 解码器生成任意长度的序列;(iii) 不需要额外的层。
图 11.9.4以文本摘要为例解释了微调 T5。在这个下游任务中,任务描述标记“Summarize”、“:”和文章标记被输入到编码器。
经过微调后,110 亿参数的 T5 (T5-11B) 在多个编码(例如分类)和生成(例如摘要)基准测试中取得了最先进的结果。自发布以来,T5在后期研究中得到了广泛的应用。例如,开关 Transformer 的设计基于 T5 以激活参数子集以提高计算效率(Fedus等人,2022 年)。在名为 Imagen 的文本到图像模型中,文本被输入到具有 46 亿个参数的冻结 T5 编码器 (T5-XXL) (Saharia等人,2022 年)。图 11.9.5中逼真的文本到图像示例建议即使没有微调,单独的 T5 编码器也可以有效地表示文本。
11.9.3。仅解码器
我们已经回顾了仅编码器和编码器-解码器 Transformers。或者,仅解码器的 Transformer 从图 11.7.1中描绘的原始编码器-解码器架构中移除了整个编码器和具有编码器-解码器交叉注意力的解码器子层 。如今,只有解码器的 Transformer 已经成为大规模语言建模(第 9.3 节)中的实际架构,它通过自监督学习利用世界上丰富的未标记文本语料库。
11.9.3.1。GPT 和 GPT-2
GPT(生成预训练)模型以语言建模为训练目标,选择 Transformer 解码器作为其主干 (Radford等人,2018 年)。
按照第 9.3.3 节中描述的自回归语言模型训练 ,图 11.9.6 说明了使用 Transformer 编码器进行 GPT 预训练,其中目标序列是输入序列移位一个标记。请注意,Transformer 解码器中的注意力模式强制每个标记只能关注其过去的标记(无法关注未来的标记,因为它们尚未被选择)。
GPT 有 1 亿个参数,需要针对个别下游任务进行微调。一年后推出了更大的 Transformer-decoder 语言模型 GPT-2 (