「論文」: Scaling Instruction-Finetuned Language Models
「地址」: https://arxiv.org/abs/2210.11416
「模型」: https://huggingface.co/google/flan-t5-xxl
1. Flan-T5是什么
「Flan-T5」是Google最新的一篇工作,通過在超大規(guī)模的任務(wù)上進(jìn)行微調(diào),讓語言模型具備了極強(qiáng)的泛化性能,做到單個(gè)模型就可以在1800多個(gè)NLP任務(wù)上都能有很好的表現(xiàn)。這意味著模型一旦訓(xùn)練完畢,可以直接在幾乎全部的NLP任務(wù)上直接使用,實(shí)現(xiàn)「One model for ALL tasks」,這就非常有誘惑力!
這里的Flan指的是(Instruction finetuning),即"基于指令的微調(diào)";T5是2019年Google發(fā)布的一個(gè)語言模型了。注意這里的語言模型可以進(jìn)行任意的替換(需要有Decoder部分,所以「不包括BERT這類純Encoder語言模型」),論文的核心貢獻(xiàn)是提出一套多任務(wù)的微調(diào)方案(Flan),來極大提升語言模型的泛化性。
例如下面文章中的例子,模型訓(xùn)練好之后,可直接讓模型做問答:
「模型輸入」是:"Geoffrey Hinton和George Washington這兩個(gè)人有沒有交談過?在回答之前想一想原因。“
「模型返回」是:Geoffrey Hinton是一個(gè)計(jì)算機(jī)科學(xué)家,出生在1947年;而George Washington在1799年去世。所以這兩個(gè)不可能有過交談。所以答案時(shí)“沒有”。
2. 怎么做的
(1) 「任務(wù)收集」:工作的第一步是收集一系列監(jiān)督的數(shù)據(jù),這里一個(gè)任務(wù)可以被定義成<數(shù)據(jù)集,任務(wù)類型的形式>,比如“基于SQuAD數(shù)據(jù)集的問題生成任務(wù)”。需要注意的是這里有9個(gè)任務(wù)是需要進(jìn)行推理的任務(wù),即Chain-of-thought (CoT)任務(wù)。
(2) 「形式改寫」:因?yàn)樾枰脝蝹€(gè)語言模型來完成超過1800+種不同的任務(wù),所以需要將任務(wù)都轉(zhuǎn)換成相同的“輸入格式”喂給模型訓(xùn)練,同時(shí)這些任務(wù)的輸出也需要是統(tǒng)一的“輸出格式”。
如上圖所示,根據(jù) “是否需要進(jìn)行推理 (CoT)” 以及 “是否需要提供示例(Few-shot)” 可將輸入輸出劃分成四種類型:
-
chain-of-thought : and few-shot: (圖中左上)
- 輸入:指令 + 問題
- 輸出:答案
-
chain-of-thought : and few-shot: (圖中右上)
- 輸入:指令 + CoT引導(dǎo)(by reasoning step by step) + 問題
- 輸出:理由 + 答案
-
chain-of-thought: and few-shot: (圖中左下)
- 輸入:指令 + 示例問題 + 示例問題回答 + 指令 + 問題
- 輸出:答案
-
chain-of-thought: and few-shot: (圖中右下)
- 輸入:指令 + CoT引導(dǎo) + 示例問題 + 示例問題理由 + 示例問題回答 + 指令 + CoT引導(dǎo) + 問題
- 輸出:理由 + 答案
(3) 「訓(xùn)練過程」:采用恒定的學(xué)習(xí)率以及Adafactor優(yōu)化器進(jìn)行訓(xùn)練;同時(shí)會將多個(gè)訓(xùn)練樣本“打包”成一個(gè)訓(xùn)練樣本,這些訓(xùn)練樣本直接會通過一個(gè)特殊的“結(jié)束token”進(jìn)行分割。訓(xùn)練時(shí)候在每個(gè)指定的步數(shù)會在“保留任務(wù)”上進(jìn)行模型評估,保存最佳的checkpoint。
盡管微調(diào)的任務(wù)數(shù)量很多,但是相比于語言模型本身的預(yù)訓(xùn)練過程,計(jì)算量小了非常多,只有0.2%。所以通過這個(gè)方案,大公司訓(xùn)練好的語言模型可以被再次有效的利用,我們只需要做好“微調(diào)”即可,不用重復(fù)耗費(fèi)大量計(jì)算資源再去訓(xùn)一個(gè)語言模型。
3. 一些結(jié)論
(1) 微調(diào)很重要
與不微調(diào)相比,通過基于指令的微調(diào)(flan)可以大幅度提高語言模型的效果。
(2) 模型越大效果越好
伴隨模型體積的增加(上圖左), 尤其是指數(shù)級的增加,比如從8B->62B,再從62B->540B,不論是否微調(diào),效果都有非常顯著的提升,而且還沒有看到收斂的信號,可能如果有了 “萬億”參數(shù)的模型,效果還能繼續(xù)提升。
(3) 任務(wù)越多效果越好
伴隨任務(wù)數(shù)量的增加(上圖右),模型的性能也會跟著增加,但是當(dāng)任務(wù)數(shù)量超過282個(gè)之后,提升就不是很明顯了。因?yàn)槔^續(xù)增加新的任務(wù),尤其任務(wù)形式跟之前一樣,不會給模型帶來新的知識;多任務(wù)微調(diào)的本質(zhì)是模型能夠更好的把從預(yù)訓(xùn)練學(xué)到的知識進(jìn)行表達(dá),超過一定任務(wù)之后,繼續(xù)新增相似的任務(wù),知識的表達(dá)能力不會繼續(xù)有很大的收益。進(jìn)一步統(tǒng)計(jì)全部微調(diào)數(shù)據(jù)集的token數(shù),發(fā)現(xiàn)只占到了預(yù)訓(xùn)練數(shù)據(jù)token數(shù)的0.2%,這表明還是有很多的知識沒有在微調(diào)階段重新被激發(fā)。
(4) 混雜CoT相關(guān)的任務(wù)很重要
盡管在1800多個(gè)任務(wù)中只有9個(gè)需要推理再給出回答的任務(wù)(CoT任務(wù)),但是混雜了這9個(gè)任務(wù)之后對整個(gè)模型的提升很大。在針對CoT相關(guān)任務(wù)的預(yù)測上,如果在微調(diào)中混淆CoT任務(wù)能帶來明顯的提升(左圖中藍(lán)色和綠色線);在針對非CoT相關(guān)任務(wù)的預(yù)測上,如果在微調(diào)中混淆了CoT任務(wù)也不會對模型帶來傷害(右圖中藍(lán)色和綠色線)。
(5) 整合起來
最終在多個(gè)不同尺寸的模型上進(jìn)行實(shí)驗(yàn),都可以獲得一致性的結(jié)論:引入Flan微調(diào)方案,可以很好提高語言模型在超大規(guī)模任務(wù)上的整體效果。
總結(jié)一下,這篇工作提出了Flan的微調(diào)框架,核心有四點(diǎn):統(tǒng)一的輸入輸出格式(4種類型),引入chain-of-thought,大幅提高任務(wù)數(shù)量,大幅提高模型體積;實(shí)現(xiàn)了用一個(gè)模型來解決超過1800種幾乎全部的NLP任務(wù),通過較低的成本,極大發(fā)掘了現(xiàn)有語言模型的泛化性能,讓大家看到了通用模型的希望,即「One Model for ALL Tasks」。
審核編輯 :李倩
-
Google
+關(guān)注
關(guān)注
5文章
1766瀏覽量
57594 -
模型
+關(guān)注
關(guān)注
1文章
3255瀏覽量
48901 -
nlp
+關(guān)注
關(guān)注
1文章
489瀏覽量
22052
原文標(biāo)題:谷歌提出Flan-T5,一個(gè)模型解決所有NLP任務(wù)
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論