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發乾貨,也但願各位同窗投稿學習筆記~