T5(Text-to-Text Transfer Transformer) 是继BERT之后Google的又外力作,它是一个文本到文本迁移的基于Transformer的NLP模型,通过将 所有任务统一视为一个输入文本并输出到文本(Text-to-Text)中,即将任务嵌入在输入文本中,用文本的方式解决各种NLP的任务。T5是由google的Raffel等人于2019年提出了新的预训练模型,其参数量高达110亿,完爆BertLarge模型,且在多项NLP任务中达到SOTA性能,在NLP兴起了"迁移学习技术"热潮,带来了一系列方法、模型和实距的创新。
本文从 基本信息、模型架构、几套官方模型参考以及其T5主要贡献与应用场景对T5做一个简要的介绍。
基本信息
论文 : Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
地址 : arxiv.org/pdf/1910.10...
全称 : Text-to-Text Transfer Transformer (单词首字母组成)
源码 :github.com/google-rese...
模型架构
T5(Text-to-Text Transfer Transformer) 是基于Transformer结构的序列到序列(Seq2Seq)模型,其主要特点是将多种NLP任务(如翻译、摘要、问答等)转化为一个统一的框架下进行训练。即在不同的具体任务上有不同的prefix指导模型,对预训练目标进行大范围探索,最后得到一个很强的baseline。而我们之后做这方面实验就能参考它的一套参数。
三种模型对比
为了解决Text-to-Text问题,作者分别使用了三种结构作为实验Encoder-Decoder
、Language model
和Prefix LM
。Language model和Prefix LM比较适用于NLU类问题,但对于NLG,实验结果表明Encoder-Decoder效果更好。所以T5选择了Encoder-Decoder结构。如下图所示:
Encoder-Decoder: T5使用的就是Transformer标准的基本结构,分成 Encoder 和 Decoder 两部分,但有所区别:对于Encoder部分,是双向注意力,词与词之间互相可见,之后结果输给Decoder, Decoder部分当前时间步的词汇只能看到之前时间步的词汇。
Decoder-only: 在T5的自回归模型中当前时间步词汇只能看到之前时间步词汇。
GPT全系列及目前主流大模型均为 Decoder-only 结构。
Prefix LM: 通过巧妙的 Attention 设计实现双向注意力与单向注意力的结合,一部分如 Encoder 一样能看到全体信息,一部分如Decoder一样只能看到过去信息。
三种注意力机制对比
在同一种模型结构下,这三种架构依旧是通过注意力机制的 Mask 控制,下图表示不同注意掩码模式的矩阵。
上图中注意掩码模式的矩阵符号
- 自我注意力机制的输入和输出分别表示为x和y。
- 第i行和第j列的深色单元格表示允许自我注意机制在输出时间步i关注输入元素j。
- 浅色单元格表示不允许自我注意机制关注相应的i和j组合。
上图中左中右的三个图示说明说明
- 左图:一个完全可见的掩码允许自我注意力机制在每个输出时间步关注完整的输入。
- 中间:因果掩码防止第i个输出元素依赖"未来"的任何输入元素。
- 右图:带有前缀的因果掩码允许自我注意力机制对输入序列的一部分使用完全可见的掩蔽
- 不同架构的一个主要区别因素是模型中不同注意力机制使用的"掩码"。
- 同样运算复杂度的情况下,Encoder-decoder结构的参数量是其他结构的两倍左右。
实验路径
明确的基础结构之后,就开始考虑自监督的组织方式、掩码(方式、比例等)如何设计,下图是一个实验路径,最终探索最优结果:
High-level approaches
高层次方法对比(左图)
- Prefix LM: 即有条件文本生成,输入完整文本,输出从左到右预测
- BERT-style: 就是像 BERT 一样将一部分给破坏掉,然后还原出来
- Deshuffling: 就是将文本打乱,然后还原出来
Corrupted strategies
对文本一部分进行破坏时的策略(第二图)
- Mask: 如现在大多模型的做法,将被破坏 token 换成特殊符如 [M];
- Replace spans: 可以把它当作是把上面 Mask 法中相邻[M] 都合成了一个特殊符,每小段替换一个特殊符,提高计算效率;
- Drop: 没有替换操作,直接随机丢弃一些字符;
Corrupted Rate
(第三图)文本的 Mask 比例,论文中挑了 4 个值,10%,15%,25%,50%,最后明确BERT 的 15% 是最最优选择
Corrupted Span length
(第四图) Replace spans 对多长的 span 进行破坏,选定了4个探索值: 2,3,5,10 这四个值,最后发现span平均长为3结果最好。
模型配置
模型参数
为了适应不同使用场景,T5有五个不同size。Small、Base、Large、3B 和 11B, 模型参数量分别为 6000 万、2.2 亿、7.7 亿、30 亿和 110 亿。
执行效果
最优总结
综上所述,作者发现,一个最优的预训练T5模型应该是这样的:
目标函数 :Span-corruption,span的平均长度为3,corruption的概率为15%
更长的训练步数 :采用C4数据集继续训练1M步(bs=2^11),总计约训练了1 万亿个 token
模型大小
- base版本:24层,隐层768维,12个注意力头,参数量为220M
- small版本:12层,隐层 512维,8个注意力头,参数量约为60M
- Large版本:48层,隐层1024维,16个注意力头,参数量约为770M
- 3B和11B版本:48层,隐层1024维,分别为32/128个注意力头,参数量达到了 2.8B和11B
- 多任务预训练:在非监督预训练时,混合有监督任务可以涨点。
- 微调:在每个任务上微调
- Beam Search:Beam size为4,长度惩罚为0.6
来自(zhuanlan.zhihu.com/p/580554368)
T5主要贡献
Text-to-Text Transfer
F5最大的创新在于给整个NLP预训练模型领域提供了一个通用框架,把所有任务都转化成一种文本。即将每个NLP任务,包括NLU和NLG,统一成了"text-to-text"的问题。如下图在翻译、问答、分类等四个不同任务上,添加不同的prefix在输入上,即可通过生成模型得到输出结果。
允许在不同的任务集合中使用相同的模型、损失函数、超参数等。
C4(Colossal Clean Crawled Corpus)
作者从Common Crawl里清出了750GB的训练数据,并取名为"Colossal Clean Crawled Corpus (超大型干净爬取数据)",简称 C4。
Common Crawl是一种公开可用的web存档,它通过从已删除的HTML文件删除标记和其他非文本内容来提供"web提取文本", 该存档大约每月会新产生约20TB的抓取文本数据。但数据主要由诸如菜单、错误消息或重复文本之类的胡言乱语或锅炉板文本组成,且有大量删减的文本或冒犯性语言、占位符文本、源代码等等。
应用场景
在过去的几年中,随着深度学习技术的发展,NLP领域取得了突破性进展。在众多的NLP模型中,T5模型作为一种强大的语言生成模型,在自然摘要 、机器翻译 、智能问答 和文本分类等任务中表现出色,成为了该领域的研究热点之一。
附-文本中涉及的相关深度学习的基本概念
SOTA(State of the art) 是指在某一领域做的Performance里最好的modal, 一般是指在一些benchmark的数据集上跑分非常高的那些模型。
迁移学习 通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。
涌现 模型规模达到一定阈值以上后,会在多步算术、大学考试、单词释义等场景的准确性显著提升,称为涌现。
思维链(Chain-of-Thought,CoT) 是指通过让大语言模型(LLM)将一个问题拆解为多个步骤,一步一步分析,逐步得出正确答案。需指出,针对复杂问题,LLM直接给出错误答案的概率比较高。思维链可以看成是一种指令微调。
NLU和NLG:是指NLP(自然语言处理)的两个主要核心任务。NLU是所有支持机器理解文本内容的方法模型或任务的总称,即能够进行常见的文本分类、序列标注、信息抽取等任务。NLG(自然语言生成) 将非语言格式的数据转换成人类可以理解的语言格式。
[参考]