超大规模智能模型相关工作总结:编程实现框架、算法模型、微调技术和应用...
?PaperWeekly 原創(chuàng) ·?作者?|?金金
單位?|?阿里巴巴研究實(shí)習(xí)生
研究方向?|?推薦系統(tǒng)
簡(jiǎn)介
近日,超大規(guī)模的智能模型越來(lái)越受到大家的關(guān)注,但是僅僅依賴(lài)于超大的計(jì)算資源并不足以完成這件事,技術(shù)上的精巧設(shè)計(jì)對(duì)模型性能和訓(xùn)練速度同樣有著巨大的影響,本文包含最近的一些相關(guān)工作,包括編程實(shí)現(xiàn)框架、算法模型、微調(diào)技術(shù)以及具體的應(yīng)用。
GLM:更通用的預(yù)訓(xùn)練模型
現(xiàn)有各種類(lèi)型的預(yù)訓(xùn)練架構(gòu),主要存在如下的三種:
自回歸模型如 GPT,從左往右學(xué)習(xí)的模型,在長(zhǎng)文本的生成以及少樣本學(xué)習(xí)能力很強(qiáng)(參數(shù)量大);缺點(diǎn)就是單向的注意力機(jī)制不能完全捕捉 token 的內(nèi)在聯(lián)系。
自編碼模型如 BERT,雙向的 transformer 作為編碼器+去噪目標(biāo),在語(yǔ)言理解相關(guān)的文本表示效果很好。缺點(diǎn)是不能直接用于文本生成。
編碼解碼模型如 T5,編碼器使用雙向注意力,解碼器使用單向注意力,并且有交叉注意力連接兩者,在有條件生成任務(wù)中表現(xiàn)良好(文本摘要,回答生成)。
然而,沒(méi)有一個(gè)預(yù)訓(xùn)練框架對(duì)所有任務(wù)都執(zhí)行得最好,這給模型開(kāi)發(fā)和選擇帶來(lái)了不便。本文 [1] 提出了一個(gè)新的預(yù)訓(xùn)練框架 GLM(通用語(yǔ)言模型)來(lái)解決這個(gè)問(wèn)題。
與之前的工作相比,本文體系結(jié)構(gòu)有三個(gè)主要的優(yōu)點(diǎn):1)它在分類(lèi)、無(wú)條件生成和條件生成任務(wù)上表現(xiàn)良好;2)它優(yōu)于改進(jìn)預(yù)訓(xùn)練-精調(diào)一致性的 BERT-like 分類(lèi)模型;3)能很好地處理變長(zhǎng)問(wèn)題,其模型圖如下:
整體來(lái)說(shuō)與 BERT 相似,但是包含兩個(gè)修改--重新安排了歸一化和殘差的順序,在 largeBERT 模型中有效;替換前饋網(wǎng)絡(luò)為線(xiàn)性網(wǎng)絡(luò)。另外,GLM 采用了自回歸空白填充,具體來(lái)說(shuō)它清空輸入中的多個(gè)跨度,為了捕捉跨度之間的內(nèi)在聯(lián)系,隨機(jī)交換跨度的順序。這里與 spanBERT 的區(qū)別是跨度的個(gè)數(shù)是不知道的;跨度的預(yù)測(cè)是自回歸的。
而 mask 注意力矩陣如上圖所示,從矩陣可以很明顯看到,在 Part A 部分,采用的是自編碼注意力,而在 Part B 部分,采用的是自回歸注意力。GLM 的注意力就是這樣將 2 部分矩陣進(jìn)行拼接,形成了即有單向,又有雙向的注意力的模型。
在下游任務(wù)微調(diào)上,將 NLU 中的分類(lèi)任務(wù)定義為空白填充的生成任務(wù)。先將某些標(biāo)簽映射為某個(gè)詞,然后將映射后的詞進(jìn)行 Blank 預(yù)測(cè)。這種方法不同于之前的預(yù)訓(xùn)練方法,預(yù)訓(xùn)練與微調(diào)的目標(biāo)的不一致。如此一來(lái),分類(lèi)和生成都可以變成生成的任務(wù),從而打破了 bert 不知道 mask 數(shù)量和位置的問(wèn)題,并且假設(shè) mask 之間是相關(guān)的,這樣可以捕捉更多的依賴(lài)關(guān)系。
和其他模型比較來(lái)看,GLM 取得了更好的效果。
具體來(lái)說(shuō),和已有模型比較如下:
BERT:Bert 屬于自編碼模型。目標(biāo)任務(wù)是預(yù)測(cè) mask,而且 mask 之間是相互獨(dú)立的,因此,Bert 不能捕捉到 mask 之間的相關(guān)性;Bert 只能處理單 token 的 mask,不能處理多個(gè)連續(xù)的 mask token,即只能預(yù)測(cè)單個(gè) token。
XLNet:XLNet 屬于自回歸的模型。需要知道預(yù)測(cè) token 的長(zhǎng)度;使用雙流注意力機(jī)制解決了信息泄漏的問(wèn)題,改變了 transfomer 的結(jié)構(gòu),增加了耗時(shí);XLNet 決定一個(gè) token 是否被獨(dú)立預(yù)測(cè)。
T5:T5 也是處理的 Blank 填充的任務(wù)目標(biāo),但是 GLM 使用了單個(gè)的 transformer 編碼器學(xué)習(xí)單向和雙向的注意力。T5 在編碼和解碼階段使用不同的位置編碼,使用哨兵標(biāo)記來(lái)識(shí)別不同的 mask 跨度,哨兵標(biāo)記造成了模型能力的浪費(fèi)和預(yù)訓(xùn)練微調(diào)的不一致性。而 GLM 通過(guò)共享參數(shù)使參數(shù)比編碼解碼模型更有效。
UniLM:UniLM 是通過(guò)在自編碼框架下改變?cè)陔p向,單向,互相之間的 attention mask 來(lái)統(tǒng)一預(yù)訓(xùn)練目標(biāo);但還是不能完全捕捉當(dāng)前 token 對(duì)于前面 token的依賴(lài)。微調(diào) GLM,為了保持和預(yù)訓(xùn)練的一致性,其采用 mask 的方式做生成任務(wù)會(huì)比自回歸更加低效。比如長(zhǎng)度上就多了幾個(gè) token。
P-tuning算法:釋放語(yǔ)言模型潛能
新興的 GPT-3 在小樣本和零樣本學(xué)習(xí)方面取得了巨大成功。它的成功表明,巨大的單向語(yǔ)言模型與適當(dāng)?shù)氖謩?dòng)提示一起可能有助于自然語(yǔ)言理解。然而,手工制作一個(gè)最佳的提示很困難,這通常需要不切實(shí)際的大驗(yàn)證集。在許多情況下會(huì)過(guò)擬合測(cè)試集。
此外,很容易創(chuàng)建導(dǎo)致性能大幅下降的對(duì)抗性提示。鑒于這些問(wèn)題,很多的工作集中在自動(dòng)搜索離散提示上并證明了它們的有效性。然而,由于神經(jīng)網(wǎng)絡(luò)本質(zhì)上是連續(xù)的,離散提示可能不是最優(yōu)的方案。
在這項(xiàng)工作 [2] 中,作者提出了一種新方法:P-tuning,連續(xù)空間中自動(dòng)搜索提示,以彌合 GPT 和 NLU 應(yīng)用程序之間的差距。P-tuning 利用很少的連續(xù)自由參數(shù)作為提示,作為預(yù)訓(xùn)練語(yǔ)言模型的輸入。然后作者使用梯度下降作為離散提示搜索的替代方法來(lái)優(yōu)化連續(xù)提示,其模型框架圖如下:
我們可以看到,對(duì)比原來(lái)的模型直接搜索一些提示的方法,本文通過(guò)一個(gè)小型的 LSTM 模型把這幾個(gè) Embedding 算出來(lái),并且將這個(gè) LSTM 模型設(shè)為可學(xué)習(xí)的。
實(shí)驗(yàn)結(jié)果顯示出如果配合 P-tuning,那么:1)GPT、BERT 的效果相比直接 finetune 都有所提升;2)GPT 的效果還能超過(guò)了 BERT。這表明 GPT 不僅有 NLG 的能力,也有 NLU 能力。而 BERT 配合 P-tuning 也有提升,說(shuō)明 P-tuning 對(duì)語(yǔ)言模型潛能的釋放是較為通用的。
CogView:文本生成圖像的新框架
通用領(lǐng)域中的文本到圖像生成長(zhǎng)期以來(lái)一直是一個(gè)未解決的問(wèn)題,它需要生成模型和跨模態(tài)的理解。本文 [3] 提出使用帶有 VQ-VAE tokenizer 的 40 億參數(shù) Transformer:CogView 來(lái)解決此問(wèn)題。對(duì)比已有的模型,CogView 有如下特點(diǎn):
根據(jù) MS COCO 上的 FID 指標(biāo)來(lái)看,CogView 大大優(yōu)于 DALL-E 和以前的基于 GAN 的方法,并且是第一個(gè)開(kāi)源大型文本到圖像轉(zhuǎn)換器。
除了零樣本生成之外,本文還進(jìn)一步研究了對(duì)預(yù)訓(xùn)練 CogView 進(jìn)行微調(diào)的潛力。CogView 可以適應(yīng)不同的下游任務(wù),例如風(fēng)格學(xué)習(xí)(特定領(lǐng)域的文本到圖像)、超分辨率(圖像到圖像)、圖像字幕(圖像到文本),甚至文本-圖像重新排序。
由于本文簡(jiǎn)單有效的 PB-relaxation 和 Sandwich-LN,CogView 是第一個(gè)幾乎用 FP16 訓(xùn)練的大型文本到圖像轉(zhuǎn)換器。這些技術(shù)可以消除轉(zhuǎn)發(fā)中的溢出,穩(wěn)定訓(xùn)練,并且可以推廣到其他 transformers 的訓(xùn)練。
具體來(lái)說(shuō),該模型實(shí)際上是在優(yōu)化圖像和文本聯(lián)合分布的 ELBO:
固定隱變量,通過(guò)優(yōu)化鮮艷的 KL term:
整體模型框架如下:
以下是該模型生成的圖像,可以看到的確可以有效的理解文本并輸出相應(yīng)的圖像。
FastMoE:首個(gè)支持PyTorch框架的MoE系統(tǒng)
近年來(lái),Google 研究者提出了 MoE(Mixture of Experts)層。該層包含一個(gè)門(mén)網(wǎng)絡(luò)(Gating Network)和 n 個(gè)專(zhuān)家網(wǎng)絡(luò)(Expert Network)。對(duì)于每一個(gè)輸入,動(dòng)態(tài)地由門(mén)網(wǎng)絡(luò)選擇 k 個(gè)專(zhuān)家網(wǎng)絡(luò)進(jìn)行激活。該方法可以在計(jì)算量不增加的情況下,大大增加參數(shù)量從而增加模型的性能。
而后進(jìn)一步將 MoE 應(yīng)用到了基于 Transformer 的神經(jīng)機(jī)器翻譯的任務(wù)上。GShard 將 Transformer 中的 Feedforward Network 層替換成了 MoE 層,并且將 MoE 層和數(shù)據(jù)并行巧妙地結(jié)合起來(lái)。在數(shù)據(jù)并行訓(xùn)練時(shí),模型在訓(xùn)練集群中已經(jīng)被復(fù)制了若干份。GShard 通過(guò)將每路數(shù)據(jù)并行的 FFN 看成 MoE 中的一個(gè)專(zhuān)家來(lái)實(shí)現(xiàn) MoE 層,這樣的設(shè)計(jì)通過(guò)在多路數(shù)據(jù)并行中引入 All-to-All 通信來(lái)實(shí)現(xiàn) MoE 的功能。
然而,訓(xùn)練萬(wàn)億規(guī)模的 MoE 需要算法和系統(tǒng)協(xié)同設(shè)計(jì)一個(gè)經(jīng)過(guò)良好調(diào)整的高性能分布式訓(xùn)練系統(tǒng)。遺憾的是,現(xiàn)有的唯一滿(mǎn)足要求的平臺(tái)強(qiáng)烈依賴(lài)于谷歌的硬件(TPU)和軟件(Mesh Tensorflow)堆棧,并沒(méi)有向公眾開(kāi)放,尤其是 GPU 和 PyTorch 社區(qū)。
FastMoE 是一個(gè)基于 PyTorch 的分布式 MoE 訓(xùn)練系統(tǒng),具有通用加速器。該系統(tǒng)為靈活的模型設(shè)計(jì)和輕松適應(yīng)不同的應(yīng)用程序(例如 Transformer-XL 和 Megatron-LM)提供了分層接口。與使用 PyTorch 直接實(shí)現(xiàn) MoE 模型不同,FastMoE 中通過(guò)復(fù)雜的高性能加速技能高度優(yōu)化了訓(xùn)練速度。該系統(tǒng)的最大特點(diǎn)是支持在多個(gè)節(jié)點(diǎn)的多個(gè) GPU 上放置不同的專(zhuān)家,從而可以相對(duì)于 GPU 的數(shù)量線(xiàn)性增加專(zhuān)家的數(shù)量。
總結(jié)
可以看到,超大規(guī)模智能模型相關(guān)工作目前已經(jīng)呈現(xiàn)百花齊放的局面,在編程實(shí)現(xiàn)框架、算法模型、微調(diào)技術(shù)以及具體的應(yīng)用等方面都有了很大的進(jìn)展,目前智源所發(fā)布的悟道模型,也說(shuō)明了我們國(guó)家在這方面的重視和投入。
當(dāng)然,大規(guī)模預(yù)訓(xùn)練模型的參數(shù)規(guī)模通常遠(yuǎn)超傳統(tǒng)的專(zhuān)用人工智能模型,在算力資源、訓(xùn)練時(shí)間等方面消耗巨大,未來(lái)在在高效編碼、高效模型、高效訓(xùn)練、高效微調(diào)和高效推理等方面還有很多值得研究的點(diǎn), 等待著研究者們?nèi)ネ诰颉?/p>
參考文獻(xiàn)
[1] All NLP Tasks Are Generation Tasks: A General Pre-training Framework
[2] GPT Understands, Too
[3] CogView: Mastering Text-to-Image Generation via Transformers
[4] FASTMOE: A FAST MIXTURE-OF-EXPERT TRAINING SYSTEM
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類(lèi)優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點(diǎn)剖析、科研心得或競(jìng)賽經(jīng)驗(yàn)講解等。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來(lái)。
?????稿件基本要求:
? 文章確系個(gè)人原創(chuàng)作品,未曾在公開(kāi)渠道發(fā)表,如為其他平臺(tái)已發(fā)表或待發(fā)表的文章,請(qǐng)明確標(biāo)注?
? 稿件建議以?markdown?格式撰寫(xiě),文中配圖以附件形式發(fā)送,要求圖片清晰,無(wú)版權(quán)問(wèn)題
? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競(jìng)爭(zhēng)力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
?????投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來(lái)稿請(qǐng)備注即時(shí)聯(lián)系方式(微信),以便我們?cè)诟寮x用的第一時(shí)間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長(zhǎng)按添加PaperWeekly小編
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專(zhuān)欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的超大规模智能模型相关工作总结:编程实现框架、算法模型、微调技术和应用...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电脑怎么手动还原系统教程图解 电脑手动还
- 下一篇: 岗位内推 | 美团语音交互部招聘NLP/