论文笔记--Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

1. 文章简介

  • 标题:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
  • 作者:Raffel C, Shazeer N, Roberts A, et al.
  • 日期:2020
  • 期刊:JMLR

2. 文章概括

  文章提出了一种基于Encoder-Decoder架构的模型T5(Text-to-Text Transfer Transformer)和数据集C4(Colossal Clean Crawled Corpus)。为了验证大模型性能的影响因素,文章进行了一系列的系统研究(相当多了),并在系统研究结论的基础上对T5模型进行提升。最终得到的T5-11在18/24个下游任务中达到了SOTA。
  整体示意如下图
整体架构

3 文章重点技术

3.1 Text-to-Text Transfer Transformer(T5)模型

  由于Transformer突出的表现能力,文章选用Transformer作为模型的基本架构。原始的Transformer采用Encoder-Decoder架构,现在比较成功的模型采用Transformer的一些变体,如GPT[1]系列模型(语言模型)采用Transformer的解码层配合语言模型目标进行训练,BERT[2]模型采用Transformer的编码层配合MLM(Masked Language Modeling)目标进行训练。
  文章选择沿用原始的Encoder-Decoder架构:输入的句子先转化为嵌入向量,然后输入Encoder。这里文章将原始的Layer Normalization(LN)层进行了简化,只保留其放缩部分,即将原始的 W x + b Wx+b Wx+b变为 W x Wx Wx,移除了其中的bias。然后经过Encoder得到的向量再传入Decoder层并尝试还原原始序列。
  原始的Transformer采用sin-cos位置编码,这里文章选择采用如下相对位置编码方法:每个位置嵌入为一个标量,且在不同层之间共享。共计32个位置编码:针对间隔超过128个token的,我们采用相同的位置编码(位置相差1000和2000区别并不多);间隔小于128个token的共计31个位置编码,具体可参加T5的code。

3.2 Colossal Clean Crawled Corpus(C4)数据集

  为了训练模型,文章首先从Common Crawl获取了2019年4月之后的大量HTML文本,并对这些网页进行了如下预处理

  • 只保留以终结符(句号、感叹号、引号、问号)结束的文本行
  • 删除少于5个句子的页面,删除少于3个单词的句子
  • 移除所有包含”List of Dirty, Naughty, Obscene or Otherwise Bad Words”中任意单词的页面
  • 移除包含单词”Javascript”的句子
  • 移除包含”lorem ipsum”占位符的段落 - 移除包含”{”的页面(可能包含代码)
  • 去重:移除任意包含三句话以上重复内容的页面  emsp;在进行预处理之后,文章用”langdetect”工具对每个页面进行语言分类,只保留其中概率为0.99以上被分类为英语的页面。得到的最终数据集为”C4”数据集。

3.3 下游任务

  文章选择了大量多样的NLP任务作为下游任务进行测试:Glue文本分类任务, SuperGLUE文本分类任务, CNN/Daily Mail文本摘要任务, SQuAD问答任务, WMT翻译任务。

3.4 Text-to-Text训练

  为了更方便进行不同的下游任务推理,文章将所有上述任务重写为”text-to-text”格式,即通过增加不同的prompt将分类、翻译、摘要、问答任务均改编成文本生成任务,这样我们可以保持预训练和Fine-Tuning(FT)保持一致的格式。

  • 文本翻译任务可改写成”translate English to German: That is good.”
  • 文本分类任务可改写成”mnli premise: I hate pigeons. Hypothesis: My feelings towards pigeons are filled with animosity. Entailement: ”
  • 文本摘要任务可改写为”TL;DR:”+文本,其中”TL;DR”代表”too long, didn’t read
  • 针对文本相似度任务STS-B,我们需要预测一个介于1到5之间分值表示相似度。为此,我们将 [ 1 , 5 ] [1,5] [1,5]划分为间隔 0.2 0.2 0.2的区间 1 , 1.2 , 1.4 , 1.6 , 1.8 , 2 , 2.2 , … , 4.8 , 5 1, 1.2, 1.4, 1.6, 1.8, 2, 2.2,…, 4.8, 5 1,1.2,1.4,1.6,1.8,2,2.2,,4.8,5,共计21类。然后将训练集的分数近似为最近的分值,再转化为字符。比如2.57转化为"2.6"
  • 针对NLI任务:WNLI和DPR,目的是要让模型去预测指代的名词,为此,我们将原文的代词进行高亮,如输入"The city councilmen refused the demonstrators a permit because they feared violence",模型需要输出"The city councilmen"
  • 针对WSC分类任务,样本包含原文、模糊代词、候选名词和一个True/False的标签表示候选名词是否为模糊代词所指示的名词。文章只利用标签为True的部分进行训练,训练方式同上面的NLI任务
  • 针对WNLI推理任务,由于训练集和WSC的训练集有重复,我们不在WNLI上进行训练

4. 系统的分析

  为了探索影响大模型表现的因子,文章做了大量的数值实验并进行系统的阐述,这里只是归纳性地列出几点重要结论,具体实验结果可见原文第三章。

4.1 架构层面

  文章对比了Encoder-decoder、LM(只有decoder)和prefix-LM。如下图所示,左边表示我们的encoder-decoder架构,中间为LM,右面为prefix(即每个时刻可以看到固定的prefix)。实验结果表明,在全部任务中,Encoder-decoder架构表现最好
mask

4.2 训练目标

  文章对比了三种常用的训练目标:1)prefix language modeling将文本分成两部分,一个用来作为encoder的输入,另一个用来作为target序列;2)BERT中的MLM(Masked Language Modeling) ; 3)deshuffling 目标,即输入打乱后的文本,目标是输出原始文本。几种目标的示例可参加下表前3行。实验表明,BERT的训练目标表现最好。
table3
  在此基础上,我们考虑BERT目标的简单变化进行对比。1) MASS:BERT中首先从词表选择15%的token进行掩码,我们移除这一步,接下来的随机掩码策略和BERT相同。 2)Replace corrupted spans: 每次掩码是我们将多个连续的token合并为一个[MASK] 3)将掩码的tokens直接删除。具体示例可见上表中的后三行。三种掩码的实验结果比较相近。
  此外,文章设计了实验地比基于不同掩码比例的BERT掩码方式差异,比较了随机掩码10%、15%、25%和50%的情况下模型的表现。结果表明掩码的比例对结果的影响较小,但太大的掩码比例(50%)会造成性能降低。
  文章还比较了掩码的token span长度对结果的影响,结果表明掩码的token平均长度为2、3、5的情况下差异不大,平均长度为10时会造成结果轻微地下降

4.3 数据集

  文章对比了在以下数据集上进行与训练时模型的表现:

  • C4:上文创建的Colossal Clean Crawled Corpus数据集
  • Unfiltered C4:在创建C4时不采用过滤、去重等预处理,只通过langdetect筛选其中的英文文本。
  • RealNews-like:只保留C4中包含RealNews中文本类型的文本
  • WebText-like:移除C4中不属于OpenWebText中url的页面。考虑到只剩下大概2GB的数据集,文章又从Common Crawl下载了2018.08~2019.07之间的数据进行过滤、筛选,最后得到17GB的WebText-like数据集。
  • Wikipedia:文章采用Tensorflow Datasets上面的英文维基百科数据
  • Wikipedia + Toronto Books Corpus:上述维基百科数据+TBC电子书数据,以弥补Wiki文本的单调性。
      实验结果表明,在未进行过滤的C4数据集上训练会使模型性能下降。此外,在部分数据集上,更有针对性的数据会对相似的下游任务有帮助,即"pretraining on in-domain unlabeled data cna improve performance on downstream tasks",比如在Mutil-RC上,Wiki+TBC数据上训练的模型效果好于C4模型,这是因为Multi-RC数据集包含很多科幻小说,和TBC的领域相同。
      文章接下来对比了不同大小的数据集对模型性能的影响,发现数据集大小(token数)越大,模型表现越好。此外,预训练数据集中的重复数据可能会影响模型性能

4.4 训练策略

  文章对比了两种微调策略:“adapter layers”,在Transformer架构的FFN层前增加一个新的FFN,微调时只调节这一层的参数,文章对比了该FFN的不同维度d对结果的影响,发现当可用于微调的数据集比较小的时候,采用过大的d会导致性能降低,数据集较大时,增加d会增加模型表现。;“gradual unfreezing”,在训练时,首先更新最后一层的参数,然后训练一定步骤之后更新倒数第二层…结果表明,gradual unfreezing效果不佳
  文章接下来考虑了多任务学习的影响,分别对比了Examples-proportional mixing、Temperature-scaled mixing和Equal mixing的表现。结果表明,多任务学习效果不如pretraining的效果
  文章又对比了多任务学习+微调对模型性能的影响,为此文章比较了1) Multitask+FT:先进行多任务学习再在所有下游任务上进行微调 2) Leave-one-out:先进行多任务学习再在除了单个下游任务上进行微调 3)在下游监督数据上直接进行pretrain。结果表明,Multitask+FT效果和我们的baseline相近,说明多任务学习之后可通过FT缓解多任务学习中由mixing rate造成的部分数据集的overfit/underfit。

4.5 规模

  文章对比了不同训练规模(数据集大小、训练步骤、batch size)下的模型表现,发现增加训练次数/模型大小可提升模型的性能,且多个模型的集成方法也可以帮助提升性能

4.6 总结

  最后,文章针对上述系统分析整合得到了模型T5的训练细节

  • Objective: 采用MLM span-corruption训练目标,选择span长度为3,掩码大小为15%
  • 训练规模:训练1百万步,batchsize= 2 1 1 2^11 211,句子长度为 512 512 512。训练集采用C4
  • 模型大小:文章训练五个模型
    • Small:60M参数
    • Base:220M(百万)参数
    • Large:770M参数
    • 3B:3B(十亿)参数
    • 11B:11B参数
  • 多任务预训练:采用监督+无监督多任务预训练作为最后的训练策略
  • FT:我们将每个benchmark上的数据集结合进行微调,采用小的batch-size防止低资源的数据过拟合。
  • Beam Seach:推理阶段采用Beam search(beam width=4)进行生成
      不出意外地,T5-11B在所有下游任务上几乎表现最好,且在18/24个任务上达到了SOTA。

5.文章亮点

  文章提出了Text-to-Text大模型T5-11B,在多个NLP任务中达到SOTA水平。文章的一个重要贡献在于对于基本上可以想到的模型细节进行了对比实验,系统的论证了影响大模型性能的不同因素,包括模型的训练目标、数据集的规模、模型的大小、模型的架构和不同的训练策略等,数值试验可支撑大模型领域的学者更有方向性地进行下一步研究。

6. 原文传送门

Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

7. References

[1] 论文笔记–Improving Language Understanding by Generative Pre-Training
[2] 论文笔记–BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值