【T5模型】Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
论文信息
名称 | 内容 |
---|---|
论文标题 | Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer |
论文地址 | https://dl.acm.org/doi/10.5555/3455716.3455856 |
发表时间 | 2019年10月 |
研究领域 | NLP, NLU, LLM |
提出模型 | T5 |
阅读评价
T5模型与本篇67页的论文是由Google在2019年提出,并且在arxiv上可以看到这篇论文已经更新了4个版本。
论文的牛点在于:内容超多、(由于特别有钱)做了几十项消融对比实验把能想到的调参技术全跑了一遍并且给出了一些trick的结论、尝试对NLP任务进行“大一统”。
从2024年各家对话大模型涌出的节点往前看,T5模型的工作确实属于承上启下了,既整合了19年之前比较杂乱的Prompt训练的状况(虽然只统一了分类、问答、翻译这几个常见的NLP任务),又为后续研究人员的工作做了铺垫。大厂还是非常有前瞻性的,并且像对话大模型这样的成果也只有企业(资金、商业目的)才能创新出来。
以下是对论文每个部分的简单介绍。
Abstract
文章通过引入一个把所有NLP任务转化为 文本到文本(Text to Text) 格式的统一框架来探索NLP领域的迁移学习能力。并且在数十个NLP任务上进行了各种各样的调参实验。当前T5模型的效果也达到了最先进的效果。
Introduction
文章首先介绍文本的向量表示,随后引入了在数据丰富的任务上预训练整个模型来学习文本表示的现状。并且介绍在大规模数据上进行无监督训练,再在小数据集上迁移学习(微调)比较有效。随着对数据集规模需求的增加,现在大家都开始用在互联网上爬取的文字信息了。
大模型的发展衍生出了各种各样的方法、结构等等,作者期望利用统一的文本转化方法把不同的NLP任务都整合在T5模型中,使作者能够系统地研究并比对不同的方法。
作者还强调,论文的目标不是提出新方法,而是对该领域的现状提供一个全面的视角(即做满你能想象到的所有的调参实验 😮)。并且引入了“庞大的干净爬行语料库”(C4),这是一个由从网上搜集的数百千兆字节的干净英语文本组成的数据集。
Setup
这部分主要回顾了模型的Transformer架构、C4数据集、下游任务、输入输出的形式。
Model
论文中这部分回顾了Transformer的结构,并说了一下T5模型的各项结构设置。我个人感觉读起来比较乏味,于是读了一下transformers库里面的T5模型源码,大致画了一下草图,如图一。
基本结构没变,但是细节改动非常多:
1、取消了外部的位置编码,而是在计算注意力的时候使用了位置偏置position_bias
;
2、归一化层使用没有偏置项的LayerNorm;
3、解码器部分,一个block(块),含有一个注意力层、一个交叉注意力层和一个前馈网络。
【注】推荐去看一下源码,写得很清楚,对理解T5模型有很大的帮助。包括解码时的数据流动,KV缓存问题是如何实现的等等。
The Colossal Clean Crawled Corpus
这一小节介绍的是C4数据集的构建。
C4数据源是2019年4月Common Crawl爬取的互联网数据。由于这些数据大多数是html源码,所以进行了数据清洗,最终产生了750GB的优质数据集:
· 只保留了以标点符号结尾的行(如句号、感叹号、问号或引号)。
· 丢弃了少于3句话的页面,只保留了至少包含5个单词的行。
· 删除了包含“肮脏、顽皮、淫秽或其他不良词汇列表”中任何词汇的任何页面。
· 许多抓取的页面包含Javascript的警告,因此删除了包含Javascript的任何行。
· 一些页面有占位符“lorem ipsum”文本,删除了所有出现“lorem ipsum”字样的页面。
· 一些页面无意中包含代码。由于花括号“{”出现在许多编程语言中,但不出现在自然文本中,因此删除了所有包含花括号的页面。
· 因为一些抓取的页面来自维基百科,并带有引用标记(例如【1】、【需要引用】等)。),移除了任何此类标记。
· 许多页面都有样板政策声明,因此删除了任何包含字符串“使用条款”、“隐私政策”、“cookie政策”、“使用cookie”、“使用cookie”或“使用cookie”的行。
· 为了对数据集进行重复数据删除,丢弃了数据集中出现超过一次的任何三句话跨度,只有一句除外。
· 过滤掉任何不属于英语且概率至少为0.99的页面。
【注】这些数据清洗技巧很值得学习。
Downstream Tasks
下游任务包括机器翻译、问答、摘要和文本分类。
在GLUE和SuperGLUE测试文本分类性能;
在CNN/Daily Mail测试摘要性能;
在SQuAD上测试问答;
在WMT上测试英语到德语、法语和罗马尼亚语的翻译。
然后论文介绍了下这几个公开任务。
Input and Output Format
为了在上述不同的任务集上训练单个模型,将所有考虑的任务转换为“文本到文本”的格式,也就是说,在一个任务中,模型以一定的格式输入,然后以一定的格式输出。具体格式如下图二所示。
如图二所示,对于翻译任务,T5模型在输入前加上前缀“traslate English to German: ”,输出就是德语文本。对于摘要任务,T5模型在输入前加上前缀“summarize: ”,输出就是对输入的摘要。对于文本分类,假设有5个标签,那么T5模型的输入就期望是字符串类型的0-4。
在本小节,论文详细介绍了每个任务的输入输出格式,然后还介绍了一些意外情况。比如分类的时候,模型要是输出一个不相干的数字或者其他那么就判定模型分类失败。
Experiments
在实验部分,论文探究了各种各样的模型架构与调参技术,具体如下:
无监督训练目标与模型架构
T5模型的无监督训练目标如下图图三所示:
具体来说,随机采样然后MASK输入序列中15%的标记,然后进行预测。
和BERT的MLM建模不同的是,所有连续范围的被丢弃的令牌都被单个标记令牌替换。在图三中,T5模型会把"for inviting"替换成一个标记,而BERT模型会替换成两个。
论文还测试了三种模型架构:
如图四所示,三种架构分别为Enc-Dec架构、传统的LM架构和Prefix LM架构。
【注】在Transformer模型的解码器部分,有
Masked Multi-Head Attention
,目的是“让靠前位置的序列看不到后续的序列语义”。对应着图四中三种架构的部分思想。
实验结果如图五所示:
实验结果表明Enc-Dec架构的结果更好,T5模型提出的无监督训练目标的结果更好。
无监督训练目标的不同掩码策略
论文对比了7种无监督训练的掩码策略,实验结果如图7所示:
实验结果表明BERT风格的掩码方式更好,且对连续span掩码性能最优。
掩码采样率
于是论文接着做实验探究掩码百分之多少的文本能得到最好的性能:
实验结果表明掩码采样率为15%表现最佳。
span长度
探究掩码时的跨度长度对模型性能的影响。论文在这里控制了一下变量,给定文本长度、掩码率15% 不变的情况下,通过修改span的个数可以改变span的平均长度。实验结果如图9所示:
实验结果表明span长度的改变并不能明显造成模型性能的提升,但是由于iid方法在训练的时候更快,所以T5模型选择iid方法。
无监督语料
探究不同的无监督语料对模型性能的影响:
实验结果表明在C4数据集上,模型的性能最优。
无监督语料的token数和微调方法
探究不同的无监督语料的token数目对模型性能的影响:
实验结果表明大力出奇迹!
训练策略
探究不同的训练策略对模型性能的影响:
实验结果表明先无监督训练,然后微调不同的下游任务效果最好。
Reflection⭐⭐
Text-to-text: 文本到文本框架提供了一种简单的方法来使用相同的损失函数和解码过程在各种文本任务上训练单个模型。
Architectures: 虽然一些关于NLP迁移学习的工作已经考虑了Transformer的架构变体,但发现原始的编码器-解码器形式在我们的文本到文本框架中工作得最好。还表明,共享编码器和解码器中的参数不会导致性能大幅下降,同时将总参数数量减半。
Unsupervised objectives: 大多数无监督训练目标在text-totext设置中的表现相似。因此建议使用产生短目标序列的目标,以便无监督预训练在计算上更有效。
Data sets: 引入了“庞大的清理爬行语料库”(C4)。当将C4与使用额外过滤的数据集进行比较时,发现对未标记数据的训练可以提高一些下游任务的性能。当一个未标记的数据集足够小,以至于在预训练过程中重复多次时,性能会下降。这促使人们使用像C4这样的大型多样化数据集来完成通用语言理解任务。
Training strategies: 在微调期间更新所有预训练模型参数的基本方法优于设计为更新较少参数的方法,尽管更新所有参数是最昂贵的。
Scaling: 比较了利用额外计算的各种策略,包括根据更多数据训练模型、训练更大的模型以及使用模型集合。发现每种方法都显著提高了性能,尽管在更多数据上训练较小的模型通常优于在更少步骤上训练较大的模型。从同一基础预训练模型微调的集成模型的性能比完全单独预训练和微调所有模型的性能差,尽管仅微调的集成仍然大大优于单个模型。