mT5:一种大规模多语言预训练文本到文本Transformer
摘要
最近提出的“文本到文本传输Transformer”(T5)利用统一的文本到文本格式和规模,在多种英语自然语言处理(NLP)任务中取得了最先进的成果。本文中,我们介绍了mT5,这是T5的多语言变体,它是在一个涵盖101种语言的新的基于Common Crawl的数据集上进行预训练的。我们详细介绍了mT5的设计和修改后的训练过程,并展示了其在多种多语言基准测试中的最先进性能。我们还描述了一种简单的技术,用于防止在零样本设置中的“意外翻译”,即生成模型选择将其预测(部分)翻译成错误的语言。本工作中使用的所有代码和模型检查点均已公开。1
1 引言
当前的自然语言处理(NLP)流程经常利用迁移学习,其中模型在数据丰富的任务上进行预训练,然后在感兴趣的下游任务上进行微调(Ruder等,2019)。这一范式的成功部分归功于预训练模型的参数检查点的发布。这些检查点允许NLP社区的成员快速在许多任务上获得强大的性能,而无需自己进行昂贵的预训练。作为一个例子,Raffel等(2020)发布的“文本到文本传输Transformer”(T5)模型的预训练检查点已被用于在许多基准测试中取得最先进的成果(Khashabi等,2020;Roberts等,2020;Kale,2020;Izacard和Grave,2020;Nogueira等,2020;Narang等,2020,等等)。不幸的是,许多这些语言模型仅在英语文本上进行预训练。
这极大地限制了它们的使用范围,因为全球大约80%的人口并不讲英语(Crystal,2008)。社区解决这种以英语为中心的问题的一种方法是发布数十种模型,每种模型都在单一的非英语语言上进行预训练(Carmo等,2020;de Vries等,2019;Le等,2020;Martin等,2020;Delobelle等,2020;Malmsten等,2020;Nguyen和Tuan Nguyen,2020;Polignano等,2019,等等)。一个更通用的解决方案是生成在多语言混合数据上进行预训练的多语言模型。这类流行的模型包括mBERT(Devlin,2018)、mBART(Liu等,2020a)和XLM-R(Conneau等,2020),它们分别是BERT(Devlin等,2019)、BART(Lewis等,2020b)和RoBERTa(Liu等,2019)的多语言变体。
在本文中,我们延续这一传统,发布了mT5,这是T5的多语言变体。我们开发mT5的目标是生成一个大规模多语言模型,尽可能少地偏离用于创建T5的配方。因此,mT5继承了T5的所有优点(如第2节所述),如其通用文本到文本格式、基于大规模实证研究的设计见解及其规模。为了训练mT5,我们引入了一个名为mC4的多语言C4数据集变体。mC4包含从公共Common Crawl网页抓取中提取的101种语言的自然文本。为了验证mT5的性能,我们在多个基准数据集上展示了结果,显示在许多情况下达到了最先进的性能。最后,我们描述了预训练生成多语言语言模型在零样本设置中的一种问题行为,即它们错误地将其预测的一部分翻译成错误的语言。为了解决这种“意外翻译”,我们描述了一个简单的过程,该过程涉及在微调期间混合未标记的预训练数据,并证明这显著缓解了这一问题。我们发布了我们的预训练模型和代码,以便社区可以利用我们的工作。
2 T5与C4背景
本节简要概述了T5及C4预训练数据集。更多细节可参见Raffel等人(2020)的研究。
T5是一种预训练语言模型,其主要特点在于其对所有基于文本的自然语言处理(NLP)问题采用统一的“文本到文本”格式。这种方法对于生成任务(如机器翻译或抽象摘要)来说非常自然,因为这些任务的格式要求模型根据某些输入生成文本。对于分类任务而言,这种方法则较为不同寻常,T5被训练为输出标签的文字文本(例如,情感分析中的“正面”或“负面”),而不是类别索引。这种方法的主要优势在于它允许对每个任务使用完全相同的训练目标(教师强制最大似然),实际上这意味着可以使用一组超参数在任何下游任务上进行有效的微调。Keskar等人(2019)和McCann等人(2018)提出了类似的统一框架。鉴于这种任务格式的序列到序列结构,T5采用了Vaswani等人(2017)最初提出的基本编码器-解码器Transformer架构。T5是在一个掩码语言建模“跨度损坏”目标上进行预训练的,其中输入标记的连续跨度被替换为掩码标记,模型被训练以重建被掩码的标记。
T5的另一个显著特点是其规模,预训练模型的参数规模从6000万到110亿不等。这些模型是在大约1万亿个数据标记上进行预训练的。未标记的数据来自C4数据集,该数据集收集了大约750GB的英语文本,这些文本来源于公共的Common Crawl网页抓取。C4包括启发式方法,以提取仅自然语言(与样板文本和其他无意义内容相对),并进行了广泛的去重处理。T5的预训练目标、模型架构、扩展策略以及许多其他设计选择都是基于Raffel等人(2020)详细描述的大规模实证研究而选定的。
3 mC4与mT5
本文的目标是创建一个尽可能紧密遵循T5配方的大规模多语言模型。为此,我们开发了一个扩展版本的C4预训练数据集,该数据集涵盖了101种语言,并对T5进行了修改以更好地适应这种多语言性。
3.1 mC4
C4数据集明确设计为仅包含英语:任何被langdetect2判定为英语概率低于99%的页面都被丢弃。相比之下,对于mC4,我们使用cld3来识别超过100种语言。由于其中一些语言在互联网上相对稀缺,我们利用了Common Crawl迄今为止发布的所有71个月的网页抓取数据。这比用于C4的源数据多得多,仅2019年4月的网页抓取就足以提供大量的英语数据。
C4中的一个重要启发式过滤步骤是移除不以英语终止标点符号结尾的行。由于许多语言不使用英语终止标点符号,我们改为应用“行长度过滤器”,要求页面至少包含三行文本,每行200个或更多字符。除此之外,我们遵循C4的过滤方法,通过跨文档去重行和移除包含不良词汇的页面。最后,我们使用cld3检测每个页面的主要语言,并移除置信度低于70%的页面。
应用这些过滤器后,我们按语言对剩余的页面进行分组,并将所有拥有10,000个或更多页面的语言包含在语料库中。这产生了cld3定义的107种“语言”的文本。然而,我们注意到其中六种只是同一口语语言的脚本变体(例如,ru是西里尔字母的俄语,ru-Latn是拉丁字母的俄语)。每种语言的页面计数直方图如图1所示。包括每种语言标记计数的详细数据集统计信息见附录。
3.2 mT5
我们用于mT5的模型架构和训练过程与T5非常相似。具体来说,mT5基于“T5.1.1”方案,该方案通过使用GeGLU非线性激活函数(Shazeer, 2020)、在更大模型中同时缩放dmodel和dff(而不仅仅是dff)以及仅使用未标记数据进行预训练且不使用dropout,对T5进行了改进。关于T5的更多细节,请参考Raffel等人(2020)的研究。
预训练多语言模型时的一个关键因素是如何从每种语言中采样数据。最终,这一选择是一个零和游戏:如果低资源语言的采样频率过高,模型可能会过拟合;如果高资源语言的训练数据不足,模型则会欠拟合。因此,我们采用了(Devlin, 2018; Conneau等, 2020; Arivazhagan等, 2019)中使用的方法,通过按照概率 p ( L ) ∝ ∣ L ∣ α p(L)\propto|L|^\alpha p(L)∝∣L∣α对低资源语言进行采样来增强其表现,其中 p ( L ) p(L) p(L)是在预训练期间从给定语言中采样文本的概率, ∣ L ∣ |L| ∣L∣是该语言中的样本数量。超参数 α \alpha α(通常 α < 1 \alpha<1 α<1)使我们能够控制对低资源语言训练的“增强”程度。先前工作中使用的值包括mBERT的 α = 0.7 \alpha=0.7 α=0.7(Devlin, 2018)、XLM-R的 α = 0.3 \alpha=0.3 α=0.3(Conneau等, 2020)以及MMNMT的 α = 0.2 \alpha=0.2 α=0.2(Arivazhagan等, 2019)。我们尝试了这三种值(消融实验结果见第4.2节),发现 α = 0.3 \alpha=0.3 α=0.3在高资源语言和低资源语言性能之间提供了一个合理的折衷。
由于我们的模型涵盖了100多种语言,因此需要更大的词汇表。借鉴XLM-R(Conneau等, 2018)的做法,我们将词汇表大小增加到250,000个词片段。与T5一样,我们使用SentencePiece(Kudo和Richardson, 2018; Kudo, 2018)模型,并根据预训练期间的语言采样率进行训练。为了适应像中文这样具有大字符集的语言,我们使用字符覆盖率为0.99999,并启用SentencePiece的“字节回退”功能,以确保任何字符串都可以被唯一编码。
3.3 与相关模型的比较
为了将我们的新模型置于上下文中,我们简要比较了现有的大规模多语言预训练语言模型。为简洁起见,我们重点讨论支持数十种以上语言的模型。表1对mT5与最相似的模型进行了高层次比较。
mBERT(Devlin, 2018)是BERT(Devlin等, 2019)的多语言版本。与我们在mT5中的方法类似,mBERT尽可能遵循BERT的配方(相同的架构、目标等)。主要区别在于训练集:mBERT不是在英语维基百科和多伦多图书语料库上训练,而是在多达104种语言的维基百科上训练。XLM(Conneau和Lample, 2019)也基于BERT,但采用了改进的多语言语言模型预训练方法,包括显式的跨语言预训练目标。XLM的许多预训练版本已经发布;其中最大规模的多语言变体是在100种语言的维基百科上训练的。XLM-R(Conneau等, 2020)是基于RoBERTa模型(Liu等, 2019)的XLM改进版本。XLM-R使用跨语言掩码语言建模目标在来自Common Crawl的100种语言数据上进行训练。
为了提高预训练数据的质量,Common Crawl的页面通过基于维基百科训练的n-gram语言模型进行了过滤(Wenzek等, 2020)。mBART(Liu等, 2020a)是一种基于BART(Lewis等, 2020b)的多语言编码器-解码器模型。mBART在XLM-R相同数据的25种语言子集上,结合了跨度掩码和句子重排目标进行训练。MARGE(Lewis等, 2020a)是一种多语言编码器-解码器模型,它通过检索其他语言的文档来重建一种语言的文档。它使用来自维基百科和CC-News(Liu等, 2019)的26种语言数据进行训练。
4 实验
为了验证mT5的性能,我们在XTREME多语言基准测试(Hu等, 2020)中的6个任务上评估了我们的模型:涵盖14种语言的XNLI(Conneau等, 2018)蕴含任务;分别包含10种、7种和11种语言的XQuAD(Artetxe等, 2020)、MLQA(Lewis等, 2019)和TyDi QA(Clark等, 2020)阅读理解基准测试;限制在XTREME(Hu等, 2020)中40种语言的WikiAnn(Pan等, 2017)命名实体识别(NER)数据集;以及包含7种语言的PAWS-X(Yang等, 2019)复述识别数据集。我们将所有任务转换为文本到文本格式,即以生成方式直接生成标签文本(XNLI和PAWS-X)、实体标签和标签(WikiAnn NER)或答案(XQuAD、MLQA和TyDi QA)。对于NER任务,如果有多个实体,则按它们出现的顺序连接;如果没有实体,则目标文本为“None”。我们考虑了这些任务的三种变体:(1)“零样本”,即模型仅在英语数据上进行微调;(2)“翻译训练”,即添加从英语到每种目标语言的机器翻译数据;(3)“多语言多任务”,即在所有目标语言的黄金数据上进行训练。为简洁起见,更多关于这些基准测试的细节请参考Hu等(2020)。
遵循原始T5的配方,我们考虑了五种模型规模:Small(约3亿参数)、Base(5.8亿)、Large(12亿)、XL(37亿)和XXL(130亿)。与相应的T5模型变体相比,参数数量的增加来自于mT5中使用的更大词汇表。需要注意的是,由于mT5是编码器-解码器模型,其参数数量大约是相应规模的仅编码器模型(如XLM-R)的两倍。例如,XLM-R的“Large”变体有5.5亿参数,而mT5-Large约有10亿参数。然而,文本分类的计算成本大致相同:在这两种情况下,模型都使用大小大致相同的编码器处理长度为T的输入序列。在仅编码器模型(如XLM-R)中,编码器处理一个额外的“CLS”标记,用于生成分类表示。在mT5中,解码器通常生成两个额外的标记:类别标签和序列结束标记。由于解码器与编码器具有相同的架构(忽略编码器-解码器注意力),使用mT5进行分类的计算成本通常相当于处理T+2个标记,而仅编码器模型则为T+1个标记。然而,编码器-解码器架构的额外优势在于适用于生成任务,如抽象摘要或对话。
我们对mT5模型变体进行了100万步的预训练,每批处理1024个长度为1024的输入序列,总共约1万亿个输入标记。这与T5的预训练量相同,大约是XLM-R的16倍。
我们在预训练期间使用了与T5相同的逆平方根学习率调度,学习率设置为 1 / max ( n , k ) 1/\sqrt{\max(n,k)} 1/max(n,k),其中 n n n是当前训练迭代次数, k = 1 0 4 k=10^4 k=104是预热步数。遵循T5.1.1的配方,我们在预训练期间不应用dropout。我们使用与T5相同的自监督目标,其中15%的标记被掩码,平均噪声跨度长度为3。我们在第4.2节中对这些实验细节进行了消融实验。
在微调阶段,我们对所有任务使用恒定的学习率0.001和dropout率0.1。对于大多数任务,我们使用批量大小 2 17 2^{17} 217,但在某些情况下根据验证集性能将其增加到 2 20 2^{20} 220。为了进行早停,我们每200步保存一次检查点,并选择验证性能最高的检查点。
4.1 结果
表2展示了我们的主要结果,每个任务的每种语言详细结果见附录。我们最大的模型mT5-XXL在所有分类和问答任务上均超过了现有技术水平,并在NER任务上接近最高水平(69.2 vs. 70.1)。需要注意的是,与我们的模型不同,InfoXLM(Chi等, 2020)和VECO(Luo等, 2020)受益于并行训练数据,而X-STILTs(Phang等, 2020)则利用了与目标任务相似的任务的标注数据。总体而言,我们的结果突显了模型容量在跨语言表示学习中的重要性,并表明扩展简单的预训练配方可以成为依赖语言模型过滤、并行数据或中间任务的更复杂技术的可行替代方案。
在“翻译训练”设置中,我们在所有XTREME分类和问答任务上均超过了现有技术水平。对于这些任务,我们在标注的英语数据及其机器翻译数据的组合上进行微调。这使得我们能够直接与FILTER(Fang等, 2020)以及Fang等(2020)的XLM-R基线进行比较。需要注意的是,此设置与XTREME的“翻译训练”(Hu等, 2020)不同,后者排除了英语数据。
图2显示,在没有“黄金”多语言数据的情况下,模型容量是提高TyDi QA GoldP任务变体性能的关键:对于最小的模型,使用黄金数据集(多语言多任务)进行训练的性能显著优于使用弱监督数据(翻译训练)或仅英语数据(零样本)的性能,而对于最大的模型,这三种设置之间的差距要小得多。对于我们的两个最大模型,零样本和翻译训练的性能几乎相同,这表明随着模型容量的增加,单语数据集的机器翻译带来的收益递减。总体而言,这些趋势表明,在使用大型模型时,有可能避免在多种语言中标注数据的高成本步骤。
大规模多语言模型在特定语言上的表现通常不如专门为该语言训练的类似规模的“专用”模型(Arivazhagan等, 2019)。为了量化这种影响,我们比较了mT5和T5在SQuAD阅读理解基准测试(Rajpurkar等, 2016)上微调后的性能。结果如表3所示,其中T5的结果来自Raffel等(2020)的研究。
虽然Small和Base的mT5模型在性能上不及相应的英语T5模型,但我们发现较大的模型缩小了这一差距。这表明可能存在一个转折点,超过该点后,模型具有足够的容量来有效学习101种语言,而不会产生显著的干扰效应。
4.2 消融实验
我们以Large模型为基线,进行了六项消融实验,修改了各种设置:(i)将dropout增加到0.1,以期缓解低资源语言的过拟合问题;(ii)将序列长度减少到512(如T5中使用的);(iii)将预训练目标中的平均噪声跨度长度增加到10,因为我们观察到每个标记的字符数比T5少;(iv)将语言采样指数 α \alpha α调整为 { 0.2 , 0.7 } \{0.2,0.7\} {0.2,0.7},分别如MMNMT(Arivazhagan等, 2019)和mBERT(Devlin, 2018)中使用的;(v)关闭mC4数据管道中的“行长度过滤器”;(vi)用来自103种语言的维基百科数据 7 ^{7} 7补充mC4。
这些消融实验对XNLI零样本准确率的影响如表4所示。在每种情况下,平均XNLI分数均低于mT5-Large基线,这证明了我们选择的设置是合理的。行长度过滤器提供了+2分的提升,验证了Conneau等(2020)和Raffel等(2020)的研究结果,即从Common Crawl中过滤低质量页面是有价值的。将语言采样指数 α \alpha α增加到0.7对高资源语言(如俄语81.5 → 82.8)的性能有预期的提升,但对低资源语言(如斯瓦希里语 75.4 → 70.6 75.4\to70.6 75.4→70.6)有负面影响,总体效果为负。相反,将 α \alpha α降低到0.2略微提升了一种尾部语言(乌尔都语 73.5 → 73.9 73.5\to73.9 73.5→73.9),但在其他地方则有害。附录中提供了XNLI的每种语言详细指标以及我们在零样本XQuAD上的消融实验结果,显示了类似的趋势。
5 零样本生成
由于mT5是一个生成模型,它可以以自由形式输出任意文本预测。这与“仅编码器”模型(如mBERT和XLM(-R))不同,后者通过从输入中提取或生成类别标签来进行预测。我们发现,由于预测过程中缺乏约束,mT5有时在生成微调期间未见语言的格式良好的预测时会遇到困难。以XQuAD零样本为例,我们发现许多错误是由于“意外翻译”成微调语言(英语)造成的。在本节中,我们描述了这种行为,并证明可以通过在微调阶段混合少量多语言预训练任务来抵消这一问题。
5.1 非法预测
在使用生成模型进行跨度选择(如抽取式问答任务)时,我们希望模型学会生成“合法”的跨度,这些跨度是所提供上下文的子字符串。然而,与基于编码器的模型(如BERT)不同,这并不是模型的硬性约束。值得注意的是,T5在SQuAD上学会了始终输出合法跨度,这表明在简单情况下,生成模型不会出现重大问题。
对于生成模型来说,更具挑战性的情况是零样本跨语言跨度选择。在这种情况下,预训练的多语言模型在英语上进行微调,但在其他语言上进行测试。我们希望模型能够生成合法的非英语预测,尽管在微调期间只看到了英语目标。
在实践中,尽管mT5在XQuAD、MLQA和TyDi QA的零样本变体上达到了SOTA水平,但非法预测仍然是一个问题。例如,在零样本XQuAD中,对于所有模型规模,mT5的错误中有相当一部分实际上是非法跨度(参见图4“基线”)。通过检查,我们发现这些非法预测主要分为三类:(i)规范化,(ii)语法调整,以及(iii)意外翻译。表5提供了每种类型的示例。
-
规范化:指预测本应是合法的,但“等效”的Unicode字符被替换了,因此可以通过Unicode NFKC规范化恢复合法跨度。这在泰语、中文和印地语中尤为常见,在这些语言中,大多数mT5-XXL的非法预测通过规范化得以解决(见图3b)。
-
语法调整:涉及对原始文本的轻微形态变化。当目标跨度本身不能作为一个格式良好的答案时,我们经常观察到这些调整。
-
例如,表5中间行的mT5-XXL阿拉伯语和俄语预测被母语者认为是正确的、语法正确的XQuAD问题答案,而黄金目标则被认为是语法不正确的答案。这种类型的非法预测在具有广泛语法格标记的语言(如俄语、土耳其语和德语)中最为常见。
-
意外翻译:涉及模型将上下文跨度的一部分或全部翻译成英语(所有微调数据的语言)。一方面,尽管从未见过并行训练数据,mT5能够进行“自发”翻译是值得注意的。另一方面,作为实践者,我们希望能够控制这种行为。
我们在所有模型规模和所有XQuAD语言中都观察到了意外翻译。这个问题在mT5-Small和mT5-Base中最为普遍,通过手动检查,每种语言中一半或更多的非法预测表现出意外翻译,其中许多非法预测来自希腊语和俄语(见图3a)。虽然我们确实观察到了完整的短语翻译,但更常见的是部分翻译,即模型在恢复到正确的目标语言之前输出一两个英语标记。这种转换甚至可能发生在单词中间,例如预测“chlorопласт”,其中目标“хлоропласт”(俄语:叶绿体)的前半部分被翻译成了英语。
5.2 防止意外翻译
避免在跨度选择任务中出现意外翻译的最直接解决方案是修改我们的推理过程。
与基于编码器的模型常见的做法类似,我们可以设计一种特定于任务的微调机制,限制模型对合法跨度进行排序,从而完全消除非法预测的可能性。虽然这可能会提高我们的零样本指标,但这种解决方案存在两个问题:首先,这意味着从通用的文本到文本接口后退了一步,因为不同的任务需要不同类型的推理。其次,这种解决方案无法扩展到更“开放式”的零样本生成任务(如摘要生成),因为合法的输出空间无法轻易界定。
出于这些原因,我们考虑一种更通用的解决方案,该方案仍保留在文本到文本框架内,并适用于所有零样本生成任务。我们的直觉是,模型在给定非英语测试输入时输出英语的原因是它在微调期间从未观察到非英语目标。随着仅英语微调的进行,模型对非英语标记的分配可能性可能会降低,最终达到英语成为任何问题的最可能答案的程度。
为了防止模型“忘记”如何生成其他语言,我们采用了一种受领域/任务自适应预训练(Howard和Ruder, 2018; Gururangan等, 2020)启发的策略:我们简单地在微调过程中混合无监督的多语言预训练任务。Liu等(2020b)也探索了类似的方法。
我们使用与预训练相同的mC4任务定义,但做了两个调整:首先,我们从目标序列中删除了所有“哨兵”标记(对应于输入文本中的非掩码跨度),否则我们会在下游预测中偶尔观察到哨兵标记。其次,我们将语言采样参数α从0.3降低到0.1。这产生了接近均匀的语言分布,鼓励模型将所有语言视为同等可能。
通过这些调整,我们将少量无监督任务(涵盖101种语言)以1:100的比例混合到XQuAD微调中。图4显示了XQuAD零样本错误率的结果。即使添加了如此少量的多语言数据,对mT5-Small和mT5-Base模型(意外翻译最为普遍)也产生了显著效果,将非法预测率降低了70%以上(相对),并有助于整体错误率的降低。
6 结论
在本文中,我们介绍了mT5和mC4:T5模型和C4数据集的大规模多语言变体。我们证明了T5的配方可以直接应用于多语言环境,并在多种基准测试中取得了强劲的性能。我们还描述了在多语言预训练生成模型的零样本评估中可能出现的非法预测,并提出了一种简单的技术来避免这一问题。我们发布了本文中使用的所有代码和预训练数据集,以促进未来在多语言语言理解方面的研究。