【NLP】Google T5速读
ALBERT凳子還沒坐熱,GLUE就又換了老大,Google T5 (Text-to-Text Transfer Transformer)大力出奇跡,威震天在角落默不作聲。
簡介
這次的T5模型雖然名字和BERT+系列不一樣,但底子里還是差不多的。給我的感覺就是大型Seq2Seq的BERT+干凈的數(shù)據(jù)+多任務(wù)+一些改動。論文的作者深入對比了不同的預(yù)訓(xùn)練目標(biāo)、模型結(jié)構(gòu)、無監(jiān)督數(shù)據(jù)集、遷移方法、NLU任務(wù),最終拼成了T5。文章除去reference一共34頁,可以說很良心地剖析了transformer的效果,建議同學(xué)們根據(jù)自己的任務(wù)和時間慢慢讀。
來感受一下T5的size:
貼一下在GLUE和SUPERGLUE的登頂照:
1. 模型
輸入和輸出
和GPT2一樣,T5把所有的NLP問題歸結(jié)為了“text-to-text”的任務(wù),下圖展示了T5在翻譯、分類、相似度、摘要任務(wù)上的輸入輸出樣例:
Relative position embeddings (PE)
T5使用了簡化的相對位置embeding,即每個位置對應(yīng)一個數(shù)值而不是向量,將(key和query)相對位置的數(shù)值加在attention softmax之前的logits上,每個head的有自己的PE,所有的層共享一套PE。個人認(rèn)為這種方式更好一點(diǎn),直接在計算attention weight的時候加入位置信息,而且每一層都加一次,讓模型對位置更加敏感。
2. 數(shù)據(jù)
Colossal Clean Crawled Corpus (C4)
作者選取了Common Crawl數(shù)據(jù)集,這個數(shù)據(jù)集每周大約爬取20TB的WEB數(shù)據(jù)。雖然數(shù)據(jù)集已經(jīng)抽取了文本,但實(shí)際上并不干凈,里面還包含了很多非自然語言的東西,比如錯誤消息、菜單、重復(fù)文本,用過臟數(shù)據(jù)的同學(xué)一定深有體會。于是本文對數(shù)據(jù)進(jìn)行了比較細(xì)致的處理:
只取結(jié)尾有標(biāo)點(diǎn)的句子
去掉包含臟話的網(wǎng)頁
有很多頁面包含"enable Javascript"的提示,去掉包含Javascript的句子
"lorem ipsum"是一個測試網(wǎng)頁排版的拉丁文,去掉包含這個占位符的網(wǎng)頁
去掉包含代碼片段的網(wǎng)頁
以三句為一個片段進(jìn)行去重
去掉非英文的網(wǎng)頁
經(jīng)過上述處理后最終生成了750GB的數(shù)據(jù)集C4,并且在TensorFlow Datasets開源了。
3. 任務(wù)及數(shù)據(jù)格式
任務(wù)
機(jī)器翻譯、問答、生成式摘要、文本分類(單句&雙句)
數(shù)據(jù)格式
輸入:參考GPT2,直接把任務(wù)名稱當(dāng)作prefix和輸入拼在一起
輸出:分類任務(wù)(如推斷),需要輸出"entailment", "neutral", "contradiction"這三種文本,否則都算錯;回歸任務(wù)輸出str類型的浮點(diǎn)數(shù)。還有其他任務(wù),請需要的同學(xué)前往附錄D參考~
4. 訓(xùn)練
預(yù)訓(xùn)練
參考SpanBERT,mask掉15%,平均長度為3的span
訓(xùn)練更長步數(shù),1百萬步*1024個樣本
使用Multi-task預(yù)訓(xùn)練,即混入在無監(jiān)督數(shù)據(jù)中混入一定比例的任務(wù)數(shù)據(jù)
精調(diào)
也是Multi-task,將所有GLUE/SuperGLUE的數(shù)據(jù)拼在一起變成精調(diào)一個task,減少過擬合,但同時也會犧牲一些精度
batch size減小到8
其實(shí)最后同時進(jìn)行了多任務(wù)精調(diào)和單獨(dú)精調(diào),根據(jù)dev集選擇最好的結(jié)果
解碼
大部分使用Greedy decoding,對于輸出句子較長的任務(wù)使用beam search
5. 結(jié)論
Architectures
原始的Transformer結(jié)構(gòu)表現(xiàn)最好
encoder-decoder結(jié)構(gòu)和BERT、GPT的計算量差不多
共享encoder和decoder的參數(shù)沒有使效果差太多
Unsupervised objectives
自編碼和自回歸的效果差不多
作者推薦選擇更短目標(biāo)序列的目標(biāo)函數(shù),提高計算效率
Datasets
在領(lǐng)域內(nèi)進(jìn)行無監(jiān)督訓(xùn)練可以提升一些任務(wù)的效果,但在一個小領(lǐng)域數(shù)據(jù)上重復(fù)訓(xùn)練會降低效果
Large、diverse的數(shù)據(jù)集最香了
Training strategies
精調(diào)時更新所有參數(shù) > 更新部分參數(shù)
在多個任務(wù)上預(yù)訓(xùn)練之后精調(diào) = 無監(jiān)督預(yù)訓(xùn)練
Scaling
在小模型上訓(xùn)練更多數(shù)據(jù) < 用少量步數(shù)訓(xùn)練更大的模型
從一個預(yù)訓(xùn)練模型上精調(diào)多個模型后集成 < 分開預(yù)訓(xùn)練+精調(diào)后集成
總體感覺T5除了position embedding之外沒什么新的東西,在GLUE以及機(jī)器翻譯上的提升都很有限,但作者本來的意圖也是做一個全面的分析,砸百萬美元替大家排憂解難,此處應(yīng)有掌聲。
從最近的研究來看,目前模型復(fù)雜度和性能真的是很難平衡,但今天也聽到了量子計算的福音,科技永遠(yuǎn)向前,希望NLP越來越好。
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯 獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開: https://t.zsxq.com/y7uvZF6 本站qq群704220115。加入微信群請掃碼:總結(jié)
以上是生活随笔為你收集整理的【NLP】Google T5速读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】双十一,就用turtle
- 下一篇: 【论文解读】KDD20 | 图神经网络在