分类目录:《深入理解深度学习》总目录
T5的全称为Text to Text Transfer Transformer,是谷歌提出的预训练语言模型领域的通用模型,该模型将所有自然语言问题都转化成文本到文本的形式,并用一个统一的模型解决。为了得到大一统的高质量预训练语言模型,T5不可避免地走上了“大力出奇迹”的道路,使用了更大的模型和更多的数据,但是模型和数据规模只是T5通往最强模型的手段之一,T5最核心的理念是:使用前缀任务声明及文本答案生成,统一所有自然语言处理任务的输入和输出。在此之前的几乎所有预训练语言模型,在下游任务微调过程中都需要添加非线性层,将模型的输出转化为任务指定的输出格式。T5不需要对模型做任何改动,只需要提供下游任务的微调数据;不需要添加任何非线性层,唯一需要做的就是在输入数据前加上任务声明前缀,下图所示为T5的输入格式和输出格式。绿色部分表示翻译任务,红色和黄色部分分别表示CoLA任务和STS-B任务,蓝色部分表示摘要生成任务,左侧的框表示T5的输入样例,右侧的框则是对应的输出结果。
T5将自然语言处理任务都转化成几乎一致的格式,即输入是带有任务前缀声明的文本序列,输出的文本序列是相应任务的结果。其输入格式和输出格式类似于GPT-3在Few-shot Learning设置下的格式,与GPT-3不同的是,T5适用于所有自然语言处理任务,而GPT-3受限于模型结构,只在文本生成任务上有独特的优势。由于T5的论文细节和对比实验很丰富,本文挑选关键算法和模型细节进行介绍。
算法细节
模型结构
T5在结构选型时考虑了3种模型结构,如下图所示,分别是Encoder-Decoder结构(传统的Transformer结构)、Decoder结构(GPT的结构)和Prefix LM结构(UniLM的结构)。
T5对这3种模型结构均做了测试,发现Transformer Encoder-Decoder结构效果最佳,于是遵循实践出真知的法则,T5的模型结构采用了传统的Transformer结构。
训练数据
T5训练的文本均来自Common Crawl数据集,该数据集中的数据是从互联网上爬取的(大约每个月抓取20TB的文本数据)。T5选取了2019年4月的数据,经过清洗,得到750GB的满足训练要求的数据,将其作为训练数据,并取名为C4数据集(Colossal Clean Crawled Corpus),具体的清洗要求如下:
- 只保留结尾是正常符号的句子,如句号、感叹号、问号和引号。
- 删除所有内容少于5句且句子长度小于3个词的页面数据。
- 删除所有包含黄暴词的页面数据。
- 删除包含“.JavaScript”的词(针对网页数据)。
- 删除包含占位符“lorem ipsum”(排版测试中经常出现)的页面数据。
- 删除编程语言中经常出现的大括号对“{}”所在的页面数据。
- 删除连续重复3次以上的句子,只保留一句。
- 利用语种检测工具langdetect,只保留语种检测为英语,且置信度超过0.99的数据(训练针对英语任务的模型)。
输入和输出的格式化
T5与其他模型最大的区别在于,对下游任务微调训练更友好。不需要做任何模型侧的改动,只需要对下游任务的训练数据做简单改写,就可以用T5完成相应的任务。具体而言,在输入数据之前,添加任务的前缀声明,并将输出数据转化为文本表示,分类任务使用类别名即可。尤其针对输出结果是连续值的任务,根据训练数据的标签分布,采用模糊化的方式,将数值格式转化为文本格式,如1~5分的连续分值,以0.2为间隔将其分桶量化,则可得到一系列字符串标签类别,如“1”“1.2”“4.8”“5”等。下面介绍两个经典任务的改写方法。
- CoLA(The Corpus of Linguistic Acceptability,判断句子的语法是否可接受,属于二分类任务,输出0表示不可接受,输出1表示可接受):
原始输入:John made Bill master of himself
原始标签:1
T5输入:cola sentence:John made Bill master of himself.
T5标签:acceptable
- STS-B(Semantic Textual Similarity Benchmark)为语义相似度检测任务,输出1~5分内的连续值:
原始输入1:Representatives for Puretunes could not immediately be reached for comment Wednesday.
原始输入2:Puretunes representatives could not be located Thursday to comment on the suit.
原始标签(数值类型):3.25
T5输入:
- stsb sentence1:Representatives for Puretunes could not immediately be reached for comment Wednesday.
- sentence2: Puretunes represen-tatives could not be located Thursday to comment on the suit.
T5标签(字符串类型):3.2
训练过程
T5进行了很多对比实验,来挑选最合适的训练方法,具体而言,有如下3种(用“|”分割T5的输入和输出):
- 标准语言模型式:已知上半句,预测下半句。例如:Thank you for inviting|me to your party last week.
- BERT式:掩盖一部分词,还原被掩盖的词。例如:Thank you
<MASK>``<MASK>
me to your party<MASK>
week|Thank you for inviting me to your party last week. - 乱序还原式:将文本顺序打乱,还原正确的语序。例如:party me for your to.last you inviting week Thank|Thank you for inviting me to your party last week.
实验表明,采用BERT式的训练方法效果最好,其实这也是BART所用的训练方法之一(BART还使用了其他噪声方法)。BERT式的训练方法依然有不少细节需要推敲,如掩码范围和替换词挑选策略等,因此T5又做了3组实验,挑选最佳的替换词方式,具体而言,有如下3种(用“|”分割T5的输入和输出):
- 单个词用
<MASK>
替换,与BERT一样。例如:Thank you<MASK>``<MASK>
me to your party<MASK>
week|Thank you for inviting me to your party last week. - 若干个连续词一起替换,只预测被替换的词。例如:Thank you
<X>
me to your party<Y>
week.|<X>
for inviting<Y>
last<Z>
- 随机丢弃若干词,只预测被丢弃的词。例如:Thank you me to your party week.|for inviting last
实验表明,采用若干个连续词一起替换的方式效果最好,虽然其思想与BART的Text Infilling噪声训练方法一致,但形式上更简洁,BART以原文作为Decoder的标签,而T5只需要预测被掩盖的部分词即可。与此同时,T5还做了更为细致的实验,测试在不同掩码范围下模型的表现,以找出最合适的掩码长度。实验结果表明,长度为3是最合适的,而替换概率遵循BERT的15%是最佳的原则。
综上所述,T5利用了近年来在预训练语言模型上使用的技巧,做了大量的对比实验。虽然T5并没有提出新的模型结构或新的训练模式,但它通过巧妙地改写输入和输出,让T5不需要改动模型结构,就能在下游任务数据集上进行微调训练,本身就算一个跨越式进步。借助超大的模型规模和训练数据,具有110亿参数规模的T5在几乎所有任务上都达到了SOTA效果,再一次证明了预训练语言模型领域“大力出奇迹”的法则。从Transformer被提出到T5的出现,历史的车轮向前滚动,基于Transformer的预训练语言模型还是回归了最初的样子,也奠定了Transformer作为特征提取器在自然语言处理领域不可撼动的地位。
参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[4] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[6] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.