5分钟NLP(Text-To-Text|5分钟NLP:Text-To-Text Transfer Transformer (T5)统一的文本到文本任务模型)
本文将解释如下术语:T5,C4,Unified Text-to-Text Tasks
迁移学习在NLP中的有效性来自对具有自监督任务的丰富无标记的文本数据进行预训练的模型,例如语言建模或填写缺失的单词。通过预先训练后,可以在较小的标记数据集上微调模型,通常比单独使用标记的数据训练更好的性能。迁移学习被诸如GPT,Bert,XLNet,Roberta,Albert和Reformer等模型所证明。
Text-To-Text Transfer Transformer (T5)
该论文“Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer”(2019年出版)提出了一项大规模的经验调查,展示了哪种迁移学习技术最有效,并应用这些见解创建新的被称为Text-To-Text Transfer Transformer (T5)模型。
迁移学习的重要部分是用于预训练的未标记数据集,这不仅应该是高质量和多样化的,而且还应该是大量。以前的预训练数据集并不符合所有这三个标准,因为:
- Wikipedia的文字高质量,但风格均匀,适合我们的目的相对较小
- 来自Common Crawl Web抓取的文字是巨大的,高度多样,但质量相对较低。
在C4上预先训练的T5模型可在许多NLP基准上获得最先进的结果,同时足够灵活,可以对几个下游任务进行微调。
对文本到文本格式进行统一 使用T5,所有NLP任务都可以被转换为统一的文本到文本格式,任务的输入和输出始终是文本字符串。
该框架提供了一致的训练目标,用于预训练和微调。无论任务如何,该模型都具有最大似然目标。如果要指定模型应该哪一类的任务,需要在将其送到模型之前将任务的目标标识.作为特定的文本前缀添加到原始输入序列中。
这个框架允许在任何NLP任务上使用相同的模型、损失函数和超参数,例如机器翻译、文档摘要、问答和分类任务。
文章图片
比较不同的模型和训练策略 T5的论文提供了多种模型架构,预训练目标,数据集,训练策略和规模水平的比较。对比的基线模型是标准编码器解码器Transformer。
- 模型架构:虽然一些关于NLP的迁移学习的工作已经考虑了Transformer的架构变体,但原始的编码器 - 解码器形式在具有文本到文本框架的实验中可以完美的工作。
- 预训练目标:大多数去噪目标训练模型会重建随机损坏的文本,在T5的设置中也是执行类似的操作。因此,建议使用无监督的预训练来增加计算效率,例如填补空白的剥夺目标。
- 未标记的数据集:域内数据的训练可能是有益的,但小型数据集的预训练可能导致有害的过拟合,特别是当数据集足够小时,在预训练过程中重复多次。这促使人们使用像C4这样的大型和多样化的数据集来完成通用语言理解任务。
- 训练策略:在训练任务后进行微调,可以为无监督的预训练产生了很好的性能提升。
- 规模水平缩放:比较了利用额外计算的各种策略,包括更多数据,更大的模型,并使用模型的整合。每种方法都可以得到性能的提升,但是用更多的数据训练一个较小的模型,往往比用更少的步骤训练一个较大的模型更好。
最终的T5模型 结合实验的见解,作者用不同的维度(多达110亿个参数)训练模型,并在许多基准测试中实现最先进的结果。这些模型是在C4数据集上预先训练的,然后在对单个任务进行微调之前,在多任务混合上进行预训练。
最大的模型在GLUE, SuperGLUE, SQuAD, and CNN/Daily Mail 等测试中达到了最先进的结果。
总结 在本文中,介绍了Text-To-Text Transfer Transformer (T5)模型和 Colossal Clean Crawled Corpus (C4)数据集。同时介绍了不同任务的例子,这被被称为统一的文本到文本任务,并看到具有不同模型架构和训练策略的性能定性实验结果。
如果你对这个感兴趣,可以自己尝试下下面的工作:
- 了解T5模型的后续改进,如T5v1.1(具有一些架构调整的T5的改进版),MT5(多语言T5模型)和BYT5(在字节序列上预先培训的T5模型而不是 令牌 序列)
- 可以看看Hugging Face的T5实现并且进行微调
【5分钟NLP(Text-To-Text|5分钟NLP:Text-To-Text Transfer Transformer (T5)统一的文本到文本任务模型)】作者:Fabio Chiusano
推荐阅读
- 全能模拟器0元?5分钟搞定!
- NLP|NLP训练营学习记录(一)
- NLP|torch中permute()函数用法补充内容(矩阵维度变化详细过程)
- 用于训练自然语言处理 (NLP) 和文本模型的7个顶级开源数据集
- [没接触过kubevirt(]15分钟快速入门kubevirt)
- NLP教程(Python NLTK用法示例和完整指南)
- NLP|NLP-transformer-预备知识(self-Attention)
- NLP教程 – 机器学习