ALBERT凳子还没坐热,GLUE就又换了老大,Google T5 (Text-to-Text Transfer Transformer)大力出奇迹,威震天在角落默不做声。
此次的T5模型虽然名字和BERT+系列不同,但底子里仍是差很少的。给个人感受就是大型Seq2Seq的BERT+干净的数据+多任务+一些改动。论文的做者深刻对比了不一样的预训练目标、模型结构、无监督数据集、迁移方法、NLU任务,最终拼成了T5。文章除去reference一共34页,能够说很良心地剖析了transformer的效果,本文尽可能把细节和结论都清晰地整理出来。git
来感觉一下T5的size:svg
贴一下在GLUE和SUPERGLUE的登顶照:函数
输入和输出性能
和GPT2同样,T5把全部的NLP问题归结为了“text-to-text”的任务,下图展现了T5在翻译、分类、类似度、摘要任务上的输入输出样例:学习
Relative position embeddings (PE)测试
T5使用了简化的相对位置embeding,即每一个位置对应一个数值而不是向量,将相对位置的数值加在attention softmax以前的logits上,每一个head的有本身的PE,全部的层共享一套PE。我的认为这种方式更好一点,直接在计算attention weight的时候加入位置信息,并且每一层都加一次,让模型对位置更加敏感。this
原文中有句话很难懂,以后懂了解读一下:编码
In this work, we use 32 embeddings for all of our models with ranges that increase in size logarithmically up to an offset of 128 beyond which we assign all relative positions to the same embedding.
Colossal Clean Crawled Corpus (C4)spa
做者选取了Common Crawl数据集,这个数据集每周大约爬取20TB的WEB数据。虽然数据集已经抽取了文本,但实际上并不干净,里面还包含了不少非天然语言的东西,好比错误消息、菜单、重复文本,用过脏数据的同窗必定深有体会。因而本文对数据进行了比较细致的处理:翻译
通过上述处理后最终生成了750GB的数据集C4,而且在TensorFlow Datasets开源了。
任务
机器翻译、问答、生成式摘要、文本分类(单句&双句)
数据格式
预训练
精调
解码
大部分使用Greedy decoding,对于输出句子较长的任务使用beam search
Architectures
Unsupervised objectives
Datasets
Training strategies
Scaling
原本想把实验部分也写出来,最后败给了页数,以后细读发现有用的东西还会放上来。整体感受T5除了position embedding以外没什么新的东西,在GLUE以及机器翻译上的提高都颇有限,但做者原本的意图也是作一个全面的分析,砸百万美圆替你们排忧解难,此处应有掌声。
从最近的研究来看,目前模型复杂度和性能真的是很难平衡,但今天也听到了量子计算的福音,科技永远向前,但愿NLP愈来愈好。
(我会继续补充的)
hi all!最近终于有了本身的公众号,叫NLPCAB,原本想叫LAB,但以为和一我的能撑起实验室我就上天了,因此取了谐音CAB,有些可爱而且意味深长?以后会努力和Andy发干货,也但愿各位同窗投稿学习笔记~