Text-To-Text Transfer Transformer (T5)
在过去的几年中,迁移学习在自然语言处理(NLP)领域引发了新的浪潮,取得了一系列最先进的成果。迁移学习的有效性源于在大量可用的无标签文本数据上使用诸如语言建模或填充缺失单词等自监督任务对模型进行预训练。之后,模型可以在较小的有标签数据集上进行微调,通常会比仅在有标签数据上进行训练产生更好的性能。
2018 年,GPT、ULMFiT、ELMo 和 BERT 推动了迁移学习的近期成功,而 2019 年则出现了 XLNet、RoBERTa、ALBERT、Reformer 和 MT-DNN 等多种新方法。该领域的快速发展使得评估哪些改进最有意义以及它们在组合时的有效性变得困难。在“Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer”中,我们进行了大规模的实证调查,以确定哪些迁移学习技术效果最佳,并将这些见解大规模应用于创建一个我们称为 Text-To-Text Transfer Transformer(T5)的新模型。我们还引入了一个新的开源预训练数据集,称为 Colossal Clean Crawled Corpus(C4)。
T5 模型在 C4 上进行预训练,在许多 NLP 基准测试中取得了最先进的结果,同时足够灵活,可以针对各种重要的下游任务进行微调。为了使我们的结果能够得到扩展和重现,我们提供了代码和预训练模型,以及一个易于使用的 Colab Notebook 以帮助您入门。
共享的文本到文本框架
通过 T5,我们建议将所有 NLP 任务重新构建为统一的文本到文本格式,其中输入和输出始终是文本字符串,这与只能输出类标签或输入的跨度的 BERT 风格模型形成对比。我们的文本到文本框架允许我们在任何 NLP 任务上使用相同的模型、损失函数和超参数,包括机器翻译、文档摘要、问答和分类任务(例如情感分析)。我们甚至可以通过训练 T5 来预测数字的字符串表示而不是数字本身,将其应用于回归任务。
大型预训练数据集(C4)
迁移学习的一个重要组成部分是用于预训练的无标签数据集。为了准确测量扩大预训练数据量的效果,我们需要一个不仅高质量、多样化,而且规模巨大的数据集。现有的预训练数据集并不能同时满足这三个标准——例如,维基百科的文本质量高,但风格统一且对于我们的目的来说相对较小,而 Common Crawl 的网络爬虫数据量巨大且高度多样化,但质量相当低。为了满足这些要求,我们开发了 Colossal Clean Crawled Corpus(C4),这是 Common Crawl 的清洁版本,比维基百科大两个数量级。我们的清理过程包括重复数据删除、丢弃不完整的句子以及删除冒犯性或嘈杂的内容。这种过滤导致在下游任务上取得了更好的结果,而额外的规模允许模型在预训练期间增加大小而不会过度拟合。C4 可通过 TensorFlow Datasets 获得。
迁移学习方法的系统研究
借助 T5 文本到文本框架和新的预训练数据集(C4),我们对过去几年为 NLP 迁移学习引入的大量想法和方法进行了调查。调查的全部细节可以在我们的论文中找到,包括对以下方面的实验:模型架构,我们发现编码器 - 解码器模型通常优于“仅解码器”语言模型;预训练目标,我们确认填空式去噪目标(模型被训练以恢复输入中缺失的单词)效果最佳,并且最重要的因素是计算成本;无标签数据集,我们表明在域内数据上进行训练可能是有益的,但在较小的数据集上进行预训练可能导致有害的过拟合;训练策略,我们发现多任务学习可以接近与预训练然后微调的方法竞争,但需要仔细选择模型在每个任务上的训练频率;以及规模,我们比较了扩大模型大小、训练时间和集成模型的数量,以确定如何最好地利用固定的计算能力。
见解 + 规模 = 最先进水平
为了探索 NLP 迁移学习的当前极限,我们进行了最后一组实验,在其中我们将系统研究中的所有最佳方法结合起来,并使用 Google Cloud TPU 加速器扩大我们的方法。我们最大的模型具有 110 亿个参数,并在 GLUE、SuperGLUE、SQuAD 和 CNN / Daily Mail 基准测试中取得了最先进的成果。一个特别令人兴奋的结果是,我们在专门设计为对机器学习模型具有挑战性但对人类容易的 SuperGLUE 自然语言理解基准测试中取得了接近人类的分数。
扩展
T5 足够灵活,可以轻松修改以应用于我们论文中未考虑的许多任务,并且通常取得了巨大的成功。下面,我们将 T5 应用于两个新任务:闭卷问答和具有可变大小空白的填空文本生成。
闭卷问答
使用文本到文本框架的一种方法是解决阅读理解问题,其中模型接收一些上下文以及一个问题,并被训练从上下文中找到问题的答案。例如,我们可以向模型提供有关飓风康妮的维基百科文章的文本以及问题“飓风康妮发生在什么日期?”,然后模型将被训练从文章中找到“1955 年 8 月 3 日”这个日期。事实上,我们通过这种方法在斯坦福问答数据集(SQuAD)上取得了最先进的结果。在我们的 Colab 演示和后续论文中,我们训练 T5 在更困难的“闭卷”设置中回答琐事问题,无需访问任何外部知识。换句话说,为了回答问题,T5 只能使用在无监督预训练期间获取并存储在其参数中的知识。这可以被视为一种受限形式的开放域问答。在预训练期间,T5 学习从 C4 中的文档中填充掉落的文本跨度(用<M>表示)。为了将 T5 应用于闭卷问答,我们对其进行微调,以在不输入任何其他信息或上下文的情况下回答问题。这迫使 T5 根据其在预训练期间内化的“知识”来回答问题。T5 在这个任务上表现得非常好。完整的 110 亿参数模型在 TriviaQA、WebQuestions 和 Natural Questions 上分别有 50.1%、37.4%和 34.5%的时间产生确切的答案文本。
填空文本生成
像 GPT - 2 这样的大型语言模型擅长生成非常逼真的文本,因为它们被训练来预测在输入提示后接下来会出现哪些单词。这导致了许多创造性的应用,如 Talk To Transformer 和基于文本的游戏 AI Dungeon。T5 使用的预训练目标与填空任务更紧密地结合,其中模型预测损坏文本中的缺失单词。这个目标是延续任务的推广,因为“空白”也可以出现在文本的末尾。为了利用这个目标,我们创建了一个新的下游任务,称为大小填空,其中模型被要求用指定数量的单词替换空白。例如,如果我们给模型输入“I like to eat peanut butter and 4 sandwiches”,我们将训练它用大约 4 个单词填充空白。我们使用 C4 对 T5 进行了此任务的微调,发现所得的输出非常逼真。特别有趣的是,看到模型如何根据缺失文本的请求大小调整其预测。例如,对于输入“I love peanut butter and N sandwiches”,输出如下: N = 1 I love peanut butter and jelly sandwiches. N = 2 N = 4 N = 8 N = 16 N = 32 N = 64 N = 512
结论
我们很高兴看到人们如何使用我们的发现、代码和预训练模型来帮助启动他们的项目。查看 Colab Notebook 以开始使用,并在 Twitter 上与我们分享您的使用方式!
致谢
这项工作是一个协作努力,涉及 Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、Peter J. Liu、Karishma Malkan、Noah Fiedel 和 Monica Dinculescu。