谷歌T5模型刷新GLUE榜单,110亿参数量,17项NLP任务新SOTA

2019 年 10 月 25 日 机器之心
谷歌T5模型刷新GLUE榜单,110亿参数量,17项NLP任务新SOTA

机器之心报道

机器之心编辑部

2018 年,谷歌发布基于双向 Transformer 的大规模预训练语言模型 BERT,为 NLP 领域带来了极大的惊喜。而后一系列基于 BERT 的研究工作如春笋般涌现,用于解决多类 NLP 任务。预训练模型也成为了业内解决 NLP 问题的标配。今日,谷歌又为大家带来了新的惊喜,新模型在 17 个 NLP 任务中都达到了 SOTA 性能。

在最新发布的论文《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》中,谷歌提出预训练模型 T5,参数量达到了 110 亿,再次刷新 Glue 榜单,成为全新的 NLP SOTA 预训练模型。

在 GLUE 基准排行榜上,T5 超越 ALBERT,位列榜首。

榜单地址:https://gluebenchmark.com/leaderboard


此外,在难度更大的 Glue 升级版基准 SuperGlue 上,T5 也超越了 Facebook 的 RoBERTa,成为仅次于人类基准的 SOTA 模型。

在 SuperGLUE 基准排行榜上,T5 得分 88.9,超越 Facebook 的 RoBERTa,成为新的 SOTA 模型。

榜单地址:https://super.gluebenchmark.com/leaderboard


这篇 53 页的 T5 论文发布之后,引起了 NLP 社区极大的关注与讨论。论文从实际验证出发,包含了大量的实验报告。而除了提出的 T5 模型之外,作者还开源了 750GB 的数据集 C4,内含从网上爬取的数百个千兆字节干净英文文本。


相关模型代码,作者也已开放到在 Github 上了。


  • 论文链接:https://arxiv.org/abs/1910.10683

  • Github 链接:https://github.com/google-research/text-to-text-transfer-transformer


核心亮点


谷歌的这项研究在摘要生成、问答、文本分类等诸多基准测试中都取得了 SOTA 性能。他们的基本思想是将每个 NLP 问题视为文本到文本问题,即以文本作为输入并产生新的文本作为输出。至关重要的是,谷歌提出的文本到文本框架可以将同一模型、目标、训练流程和解码过程直接应用于他们实验中的每一项任务。基于这个统一框架,研究者既可以比较不同迁移学习目标、未标注数据集和其他因素的有效性,也可以通过扩展模型和数据集来发现 NLP 领域迁移学习的局限。


另外,谷歌强调这项研究的主要目的不是提出一种新的方法,而是从全面的视角来概述当前 NLP 领域迁移学习的发展现状。所以研究的大部分内容是对现有技术的调查研究和实证比较。本研究的另外一项重要贡献是,研究者将每个语言问题都作为文本到文本任务来解决。这个统一的框架与当前的方法不同,在简单的同时还拥有强大的性能。


最后,研究者还通过训练比以前更大的模型(最多 110 亿个参数)来推动该领域的发展。为了进行如此大规模的实验,他们引入了「Colossal Clean Crawled Corpus」(即 C4 语料库),该数据集从 Common Crawl 网站上抓取数百个千兆字节干净的英文文本。最后,他们意识到迁移学习的最要作用是在数据缺乏的环境中可以利用预训练模型,因而开源了相关代码、数据集和预训练模型。


T5 模型


谷歌提出的 T5 模型具体是何构造呢?


他们的编码器-解码器 Transformer 实现大致遵循 Vaswani 等人提出的原版 Transformer 架构。首先,token 的一个输入序列被映射到嵌入序列,然后又传递至解码器。解码器包含一堆「块」,每个「块」又包含两个子部件:自注意力层和小的前馈网络。


层正则化(layer normalization)用于每个子部件的输入,并且一个残差跳跃连接(residual skip connection)将每个子部件的输入添加至它的输出中。此外,前馈网络中、跳跃连接和注意力权重上以及整个堆栈的输入和输出中都应用到了 dropout。解码器在结构上与编码器类似,但解码器在每个自注意力层(注意的是编码器的输出)之后包含一个标准的注意力机制。解码器中的自注意力机制也利用了一种自回归或因果自注意力,这导致该模型只注意过去的输出。最终解码器块的输出被馈入一个具有 softmax 输出的密集层,该密集层的权重与输入嵌入矩阵共享。Transformer 中所有的注意力机制被分解为独立的「头」(head),这些头的输出在得到进一步处理之前被连接了起来。


由于自注意力不受顺序的影响,所以通常的做法是将明确的位置信号提供给 Transformer。尽管最初的 Transformer 利用正弦位置信号或学习到的位置嵌入,但近来更普遍的做法是使用相对位置嵌入。相对位置嵌入并没有使用各个位置的固定嵌入,而是根据自注意力机制中进行比较的「key」和「query」之间的偏置生成一个不同的学习到的嵌入。


研究者还使用了一种简化的位置嵌入,其中每个「嵌入」仅是添加到用于计算注意力权重的相应 logit 的一个标量。为了提升效率,他们在 T5 模型的所有层上都分享了位置嵌入参数,尽管在给定的层中,每个注意力头使用了一个不同的学习到的位置嵌入。通常来说,模型学习到了固定数量的嵌入,并且每个嵌入对应一系列可能的 key-query 偏置。


在本文中,所有的模型都使用了 32 个嵌入,其中范围的大小可以对数方式最高增加到 128 偏置,如果超出,则将所有的相对位置指定给同一嵌入。值得注意的是,如果超出 128 token,给定的层对相对位置不敏感,但后续层可以通过结合之前层的本地信息来建立对更大偏置的敏感性。


C4 语料库


以前 NLP 领域的许多迁移学习研究工作利用大量的未标注数据集来进行无监督学习。在本文中,研究者对测量这种未标注数据的质量效应、特性和大小更感兴趣。为了使得生成的数据集满足研究需求,他们在 Common Crawl 网站上爬取源文本。


作为公开可用的网络归档库,Common Crawl 网站可以去除所爬取 HTML 文档的标签和其他非文本内容,每个月可以爬取 20TB 大小的文本数据。但是,爬取到的大部分文本不是自然语言,而是包含大量菜单栏、错误信息或复制文本等无用数据或格式化文本。此外,爬取到的很多文本包含有对任何任务都没有帮助的内容(攻击性的语言、占位符文本以及源代码等)。为了解决这些问题,研究者利用以下启发式方法来清洗从 Common Crawl 网站上爬取到的文本:


  • 仅保留以终端标点符号(即句号、感叹号、问号或结束引号)结尾的文本行;

  • 删除任何包含「污秽、下流或其他脏话字眼」的页面;

  • 由于爬取到的很多页面包含「应启用 Javascript」的警告信息,所以删除含有 Javascript 一词的所有文本行;

  • 有些页面包含占位符「乱数假文」(lorem ipsum),所以删除出现「乱数假文」短语的所有页面;

  • 有些页面会无意中含有代码。由于花括号「{」出现在很多编程语言中(如网上广泛使用的 Javascript),但不会出现在自然文本中,所以删除所有含有花括号的页面;

  • 为了删除数据集中的重复数据,删除数据集中多次出现的任何三个句子中的两个。


此外,由于大多数下游任务都集中在英文文本上,因此研究者使用 langdetect 来过滤掉所有未归类为英文的页面(概率至少为 0.99)。为了汇编基础数据集,他们下载了自 2019 年 4 月开始网络爬取的文本并进行了过滤。这样产生的文本集合不仅比用于预训练的大多数数据集大几个数量级(大约 750GB),而且还包含非常干净自然的英文文本。研究者将此数据集称为「Colossal Clean Crawled Corpus」(或简称 C4 语料库),并将其作为 TensorFlow 数据集的一部分发布。


输入 & 输出格式


为了训练一个在不同任务中都能表现良好的模型,我们需要在所有任务中都使用统一的输入和输出格式。McCann、Radford 等人在之前的研究中提到,可以用「文本到文本」的格式来表示大多数 NLP 任务,即在模型中输入一些语境文本,然后要求模型的输出也是文本。这一框架可以为预训练和微调提供一个统一的训练目标。具体来说,无论任务是什么,我们都用一个最大似然目标来训练模型(利用「teacher forcing」)。若要指定模型需要执行的任务,我们只需在原始输入馈入模型之前为其添加一个特定于某个任务的(文本)前缀。比如说,如果需要模型将「That is good」从英语翻译到德语,则输入为「translate English to German: That is good.」输出则为「Das ist gut.」


该框架及其输入、输出示例如下图 1 所示:


图 1: 谷歌提出的文本到文本框架图解。 研究者考虑的每个任务(包括翻译、问答、分类)都被转换为输入模型的文本,然后训练模型生成目标文本。 这样就能保证在不同的任务中使用相同的模型、损失函数、超参数等。


按照该框架提供的方法,模型就能在每个任务中应用文本到文本的格式(STS-B 任务除外,因为这是一个回归任务,目标是预测一个 1-5 的相似度得分)。在论文中,研究者通过一些变通方法将 STS-B 问题转换为了 21-class 分类问题。


此外,研究者还将 Winograd 任务转化为了一个更简单的格式,使其更加适合文本到文本的框架。


实验


在论文的「实验」部分,谷歌的研究者进行了一系列实验来测试 T5 模型的迁移学习性能。结果如下表 14 所示:


表 14: T5 模型众多变体在各个任务上的性能。 Small、Base、Large、3B 和 11B 表示模型参数量分别为 6000 万、2.2 亿、7.7 亿、30 亿和 110 亿。 每个表的第一行列出了该任务之前的 SOTA 得分。


总体而言,在实验的 24 项任务中,T5 模型在其中的 17 个任务上都取得了 SOTA 性能。它在 GLUE 基准中的平均得分为 89.7;在 SuperGLUE 上的平均得分为 88.9,远高于之前的 SOTA 得分 84.6。


不出所料,参数量为 110 亿的最大 T5 模型在所有任务中性能最佳。30 亿参数量的 T5 模型也在几项任务中击败了之前的 SOTA 模型,但将模型增大至 110 亿参数量才是实现 SOTA 性能最重要的因素。


但遗憾的是,T5 模型在翻译等语言任务中表现不尽如人意,谷歌将此归咎于特定任务数据的相对缺乏和训练规模的不足。因此,他们提倡对利用较小模型实现更强性能的方法展开研究,以便将迁移学习应用到其发挥最大影响的地方。


论文中写道:「我们的研究得出了一个虽不足为奇但非常重要的结论,即越大的模型往往表现越好。运行这些模型的硬件成本越来越低,功能越来越强大,这一事实表明,扩大规模可能仍然是实现更好性能的有前途方法。但是,在某些应用和场景下,总是存在使用较小或成本较低模型反而更有帮助的情况,例如在执行客户端推理或联邦学习时。」


参考链接:https://venturebeat.com/2019/10/24/google-achieves-state-of-the-art-nlp-performance-with-an-enormous-language-model-and-data-set/



机器之心「SOTA模型」22大领域、127个任务,机器学习 SOTA 研究一网打尽。


www.jiqizhixin.com/sota

登录查看更多
0

相关内容

NLP:自然语言处理

过去几年间,迁移学习给 NLP 领域带来了丰硕的成果,掀起了新一波的发展浪潮。 而迁移学习之所以如此有效,得益于其利用自监督任务(如语言建模或填充缺失词)在大量可用的无标注的文本数据上对模型进行预训练;接着,又在更小的标注数据集上对模型进行微调,从而让模型实现比单单在标注数据上训练更好得多的性能。 迁移学习在2018年出现的GPT、ULMFiT、ELMo以及 BERT等成果上初露锋芒,之后又在2019年大显身手,推动了领域内多种新方法的发展,其中就包括XLNet、RoBERTa、ALBERT、Reformer 和 MT-DNN 等等。 随着 NLP 领域的发展迅猛,评估其中的哪些发展成果最具有意义以及这些成果结合起来会发挥出怎样的效果,已不是易事。

论文地址:https://arxiv.org/abs/1910.10683

谷歌研究者在论文《使用统一的文本到文本的Transformer 来探索迁移学习的局限性》中,提出了一个大规模的实证评估,以确定哪些迁移学习技术效果最好,并大规模应用这些迁移学习技术来创建一个新模型,作者将这个新模型称之为文本到文本的迁移Transformer (Text-To-Text Transfer Transformer,T5)。与此同时,他们还引入了一个新的开源预训练数据集——Colossal Clean Crawled Corpus(C4)。 作者在C4数据集上对T5 模型进行预训练,让模型在许多 NLP 基准上都实现了最佳结果,与此同时还拥有足够的灵活性,进行微调后可应用到多个重要的下游任务上。

一、共享的文本到文本框架

创建了T5模型后,作者将所有的 NLP 任务都重新构建为统一的文本到文本格式,输入和输出都始终是文本字符串,与只能输出类标签或者输入范围的 BERT 式的模型截然不同。 该文本到文本的框架让他们可以在任何 NLP 任务上都使用相同的模型、损失函数以及超参数,包括机器翻译、文档摘要、问答和分类任务(如情感分析)等等。 T5 模型甚至可以被应用到回归任务上,具体方式是训练 T5 模型来预测一个数字的字符串表示,而不是这个数字本身。

文本到文本框架图。对于每个任务,作者都考虑使用文本作为模型的输入,并训练模型生成一些目标文本。这让他们能够在多个任务上使用相同的模型、损失函数和超参数,包括翻译(绿色框)、语言可接受性(红色框)、句子相似性(黄色框)和文档摘要(蓝色框)。它也为实证评估中所包含的方法提供了一个标准的试验台。

二、大型预训练数据集(C4)

迁移学习的一个重要部分,便是用于模型预训练的未标注的数据集。为了准确地评估扩大预训练规模的效果,我们需要一个不仅高质量、多样化而且规模庞大的数据集。 现有的预训练数据集无法满足上述三点要求,例如来自维基百科的文本是高质量的,并且格式统一,但是规模相对而言较小,而从Common Crawl 网站上爬取的文本虽然规模较大并且多样化程度高,但是质量相当低。 为了满足这三点要求,作者开发了一个Colossal Clean Crawled Corpus数据集 (C4),该数据集是比维基百科大两个数量级的 Common Crawl 的清洁版本。他们的清洁处理过程涉及到删除重复数据、去除不完整的句子以及消除冒犯性或有噪音的内容。 这一过滤可以让模型在下游任务上获得更好的表现,与此同时额外规模的数据集也让模型在预训练期间不过拟合的情况下,增加其大小。 C4数据集地址: https://www.tensorflow.org/datasets/catalog/c4

三、迁移学习方法的系统研究

作者使用T5 文本到文本框架和新的预训练数据集C4,评估了在过去几年间为NLP 迁移学习引入的大量思想和方法。详尽的评估细节可前往论文查看,其中包括以下实验:

模型架构的实验中,他们发现编码—解码模型通常比“仅解码”的语言模型,性能更优; 预训练目标的实验中,他们证实了填空式的去噪目标(即训练模型来复原输入中缺失的词)的效果更好,并且其中最重要的因素是计算成本。 未标注数据集的实验中,他们展示了在域内数据集上训练模型是有益的,而在更小的数据集上对模型进行预训练则会导致不利的过拟合; 训练策略的实验中,他们发现多任务学习可以与“先预训练再微调”的方法相媲美,但是要求更细致地选择模型在每个任务上训练的频率。 模型规模的实验中,他们对比了不同大小的模型、训练时间以及集成模型的数量,以确定如何才能最好地利用固定的计算能力。

四、迁移方法+数据规模=性能最佳

为了探索NLP目前迁移学习的局限性,作者进行了最后一组实验,结合系统研究中的所有最佳方法,并利用Google Cloud TPU加速器进行了优化。 其中最大规模的模型有110亿个参数,在GLUE、Superglue、Team和CNN/Daily Mail基准测试中都能够达到SOTA。另外,在SuperGLUE 自然语言理解的基准测试中获得了接近人类水平的分数。

五、扩展到其他任务,表现也同样可喜

T5非常灵活,可以非常容易的进行修改,除了作者论文中的一些任务,在其他任务中也能取得了巨大的成功。例如在下面两个新任务中,模型表现也不错。

1、封闭数据问答

在阅读理解问题中往往可以使用文本到文本的框架。给模型提供上下文信息以及一个问题,训练其在上下文信息中找到问题的答案,例如可以向模型提供维基百科文章中关于康尼飓风的文本,并提问“康妮飓风在哪天发生?”然后训练模型,让其找到文章中的日期。事实上,作者使用这种方法在斯坦福问答数据集(SQuAD)中取得了最先进的结果。 在作者的Colab demo和后续论文中,其训练了T5在一个更加困难的封闭的环境中回答琐碎的问题,而且不需要接触任何外部知识。 换句话说,T在回答问题时只能用其在无监督预训练期间训练出的参数和知识。

在预训练期间,T5学习如何从C4文档中填充文本的丢失跨度。对模型进行了微调,在无需输入任何信息或者上下文的情况下,将其应用于已经封闭式问答。 T5非常擅长这项任务,其110亿参数模型分别在TriviaQA、Web问题(WebQuestions)和自然问题(Natural Questions)对50.1%、37.4%和34.5%的答案进行了精确生成。 为了客观看待此类问题,T5团队在酒吧琐事挑战(pub trivia challenge)与训练好的模型并肩作战,但不幸的是惨败而归。如下动图所示

2、完形填空 第二个任务是完形填空。像GPT-2这种大型语言模型在文本生产方面非常擅长。模型在经过训练之后,能够根据输入预测出下一个单词,如此将模型集成,便会产生非常创新性的应用程序,例如基于文本的游戏“AI地下城”。

T5使用的预训练目标与填空任务非常相似,在填空任务中,模型预测文本中缺少的单词,但是此目标是对“继续任务”(continuation task)的概括,因为填空任务中的空白有可能出现在文本的末尾。 为了完成目标,创建了一个名为“填充空白”的新任务,并要求模型用指定数量的单词替换空白。例如给模型输入:我喜欢吃花生酱和—4—三明治。大概会训练模型用4个单词进行填空。 用C4对模型进行了微调,效果良好,尤其是模型对缺失文本的预测非常棒!例如下列对于输入:“我喜欢花生酱和—N—三明治”,输出结果如下所示:

预训练模型: https://github.com/google-research/text-to-text-transfer-transformer#released-model-checkpoints

代码: https://github.com/google-research/text-to-text-transfer-transformer Colab Notebook https://colab.research.google.com/github/google-research/text-to-text-transfer-transformer/blob/master/notebooks/t5-trivia.ipynb

成为VIP会员查看完整内容
0
18
小贴士
相关资讯
多项NLP任务新SOTA,Facebook提出预训练模型BART
机器之心
13+阅读 · 2019年11月4日
谷歌 | 最新110亿参数的T5模型17项NLP任务霸榜SuperGLUE!
机器学习算法与Python学习
6+阅读 · 2019年10月27日
20项任务全面碾压BERT,全新XLNet预训练模型
机器学习算法与Python学习
13+阅读 · 2019年6月20日
迄今最大模型?OpenAI发布参数量高达15亿的通用语言模型GPT-2
中国人工智能学会
6+阅读 · 2019年2月15日
博客 | 谷歌最强 NLP 模型 BERT 解读
AI研习社
4+阅读 · 2018年10月28日
谷歌最强 NLP 模型 BERT 解读
雷锋网
5+阅读 · 2018年10月23日
相关论文
Qi Liu,Matt J. Kusner,Phil Blunsom
21+阅读 · 3月16日
Varun Kumar,Ashutosh Choudhary,Eunah Cho
4+阅读 · 3月4日
Knowledge Distillation from Internal Representations
Gustavo Aguilar,Yuan Ling,Yu Zhang,Benjamin Yao,Xing Fan,Edward Guo
4+阅读 · 2019年10月8日
Saurabh Verma,Zhi-Li Zhang
3+阅读 · 2019年9月25日
Ashutosh Adhikari,Achyudh Ram,Raphael Tang,Jimmy Lin
3+阅读 · 2019年8月22日
Tianyi Zhang,Varsha Kishore,Felix Wu,Kilian Q. Weinberger,Yoav Artzi
4+阅读 · 2019年4月21日
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
Zihang Dai,Zhilin Yang,Yiming Yang,William W. Cohen,Jaime Carbonell,Quoc V. Le,Ruslan Salakhutdinov
3+阅读 · 2019年1月9日
Antoine J. -P. Tixier
8+阅读 · 2018年8月30日
Jeremy Howard,Sebastian Ruder
3+阅读 · 2018年5月23日
Jinbae Im,Sungzoon Cho
10+阅读 · 2017年12月6日
Top