一、概要
谷歌公司的研究人员提出的 T5(Text-to-Text Transfer Transformer,有5个T开头的单词,所以叫做T5)模型采用了一种与前述模型截然不同的策略:将不同形式的任务统一转化为条件式生成任务。这样一来,只需要一个统一的“文本到文本”生成模型,就可以使用同样的训练方法与解码过程完成不同的自然语言处理任务,而无须针对不同任务设计不同的模型结构与训练方法。与此同时,这种“大一统”模型还能够极大地降低不同任务之间迁移学习与多任务学习的难度。
二、深入扩展
2.1 两个要素
使用同一套模型参数完成多项不同的条件式生成任务有两个很关键的要素。首先,需要给模型注入任务信息,使其能够按照特定任务生成目标文本。为模型注入任务信息是迁移学习中常用的技术,尤其是多任务学习以及元学习(Meta-learning)。任务信息的表示也有很多种方法,比如向量表示、自然语言描述和少量代表性样本等。T5模型使用的是自然语言描述或简短提示(Prompt)作为输入文本的前缀表示目标任务。例如,对于由英语到德语的机器翻译,可以在输入文本的头部加
上“translate English to German: ”的前缀;对于文本摘要任务, 则在输入文本前加上“summarize: ” ;除此之外,对于语言理解类任务,如情感分类,可以加上“ sentiment: ” ,并输出单词“ positive ”或者“ negative ”。下表列举了不同任务下的输入输出定义方式。
另一个要素是模型的容量。为了使模型具备完成不同任务的能力,模型需要比单任务学习大得多的容量。影响模型容量的因素有很多,如Transformer层数、自注意力头的数目和隐含层向量的维度等。文献对比分析了不同容量的模型在不同任务上的表现,发现模型的性能随着模型容量的增加而稳定提升,表现最好的模型达到了约110亿个参数的规模。
由于不同的任务已经被统一成文本生成的形式,所以T5模型可以使用任意序列到序列的生成模型结构。例如,BART模型使用的编码器--解码器结构、单向语言模型和UniLM中的序列到序列模型。实验表明,编码器--解码器结构表现相对更好。
2.2 预训练方法
(1)自监督预训练。通过对预训练任务的细致搜索,最终T5模型采用了类似于BART模型的文本填充任务进行预训练,如下表所示。与 BART模型稍有不同,这里对不同位置的文本片段使用不同的掩码标记;同时,在目标端不对原始句子进行完全重构,而是重构丢弃的文本片段,并通过掩码标记指示恢复片段的位置信息。
(2)多任务预训练。除了使用大规模数据进行无监督预训练,T5模型还可以利用不同任务的标注数据进行有监督的多任务预训练,例如GLUE基准中的语言理解、SQuAD问答和机器翻译等任务。与通常的多任务训练不同之处在于,这里可以在训练过程中为每个任务保存一个独立的检查点(Checkpoint),分别对应该任务开发集上的最好性能。预训练完成后,可以分别对各个任务进行少量迭代的模型精调。实验表明,在各个任务混合比例合适的条件下,多任务预训练与无监督预训练表现相近。
关于T5模型,原文献提供了大量的实验细节,感兴趣的读者请自行参考。T5模型带来的主要启发是:一方面,对自然语言处理任务的形式化可以不拘泥于传统的分类、序列标注和生成等,通过统一任务的定义方式,可以获得更加通用化的模型;另一方面,参数规模和数据集质量对预训练模型具有显著的影响。
附录:
作者的其他文章:
UniLM模型简单介绍_云隐雾匿的博客-CSDN博客
BART模型简单介绍_云隐雾匿的博客-CSDN博客
多层感知器介绍_云隐雾匿的博客-CSDN博客
自训练和协同训练简述_云隐雾匿的博客-CSDN博客
版权归原作者 云隐雾匿 所有, 如有侵权,请联系我们删除。