在Scaling Transformers用稀疏性就足夠了!我們以后或許能在筆記本電腦上托管 GPT-3
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請至雷鋒網(wǎng)官網(wǎng)申請授權(quán)。
1.Scaling Transformers:讓大型語言模型更易于管理
近年來,基于Transformer架構(gòu)的大型神經(jīng)網(wǎng)絡(luò),自然語言處理領(lǐng)域取得了巨大的進(jìn)步。前幾年在Reddit上發(fā)布大量灌水貼的thegentlemetre賬號(hào)一周后才被人類發(fā)覺:這竟然是一個(gè)應(yīng)用程序在“作怪”!它正是以被稱為地表最強(qiáng)的語言模型GPT-3為基礎(chǔ)開發(fā)的程序。
GPT-3作為一個(gè)大型語言模型,可以創(chuàng)作出整篇文章,即使把這些文章和人類寫的文章相比較的話,都很難被區(qū)分出來。
但是這種“聰明”的模型卻有一個(gè)弊端。
因?yàn)樗挠?xùn)練成本極高,不是每個(gè)人都有資源來訓(xùn)練這種大型模型。
那么如何讓大型語言模型更易于管理以適用日常需要呢?
華沙大學(xué),谷歌研究和OpenAI的學(xué)者們提出一個(gè)新的模型族-Scaling Transformers。
論文地址:https://arxiv.org/abs/2111.12763
文章提出了一種通過稀疏化網(wǎng)絡(luò)中線性層的激活(前饋和 Q、K、V 投影)來訓(xùn)練大規(guī)模稀疏模型的方法。該方法特別吸引人,因?yàn)樗坪醪恍枰魏翁囟ㄓ谟布虻图?jí)別的優(yōu)化即可有效??刂破骶W(wǎng)絡(luò)在激活時(shí)生成一個(gè)塊式 one-hot 掩碼,并根據(jù)此掩碼動(dòng)態(tài)選擇后續(xù)層的權(quán)重。當(dāng)擴(kuò)大模型大小時(shí),用稀疏層來有效擴(kuò)展并執(zhí)行非批次解碼的速度比標(biāo)準(zhǔn)Transformer模型快的多。在參數(shù)數(shù)量相同的情況下,稀疏層足以獲得與標(biāo)準(zhǔn)Transformer相同的困惑度。
2.文章解讀
Fabio Chiusano在NLP上發(fā)表了對(duì)這篇論文的正面評(píng)價(jià)。Fabio Chiusano是Digitiamo 數(shù)據(jù)科學(xué)主管,也是人工智能領(lǐng)域的頂級(jí)媒體作家。AI科技評(píng)論對(duì)Chiusano的點(diǎn)評(píng)做了不改原意的整理:
Scaling Transformer 真的很有趣,因?yàn)楫?dāng)我們擴(kuò)大模型大小時(shí),它們允許有效地縮放語言模型并且比標(biāo)準(zhǔn) Transformer 更快地執(zhí)行非批處理解碼。嚴(yán)謹(jǐn)?shù)卣f:
- 我們稱其?
?d?
? 為 Transformer 模型的參數(shù)個(gè)數(shù)。 - 然后,一個(gè)標(biāo)準(zhǔn)的密集 Transformer 將需要近似?
?d^2?
?計(jì)算來進(jìn)行預(yù)測。 - 相反,稀疏的 Scaling Transformer 將需要近似?
?d^1.5?
?計(jì)算。
如果說這樣的改進(jìn)看起來不明顯,請考慮一下這??d?
?通常是一個(gè)非常高的數(shù)字,大約數(shù)十億,實(shí)際上實(shí)驗(yàn)表明,Scaling Transformer 為單個(gè)令牌帶來了近 20 倍的預(yù)測加速(從 3.690s 到 0.183 s) 關(guān)于具有 17B 個(gè)參數(shù)的密集 Transformer。注意:這些加速是針對(duì)未批量預(yù)測的。
在具有建議的稀疏機(jī)制(FF、QKV、FF+QKV)的 C4 數(shù)據(jù)集上,Scaling Transformers(相當(dāng)于 T5 大小,具有大約 800M 參數(shù))的對(duì)數(shù)困惑度類似于基線密集模型。
具有 17B 參數(shù)的 Terraformer 的單個(gè)令牌的解碼速度比密集基線模型快 37 倍,推理所需的時(shí)間少于 100 毫秒/令牌。這里注意力稀疏 = 64,ff-稀疏 = 256,損失稀疏 = 4
稀疏化的收益非常好。然而,當(dāng)解碼較長的序列時(shí),它們會(huì)更糟,因?yàn)榻獯a時(shí)間將由注意力操作控制。
幸運(yùn)的是,已經(jīng)提出了許多方法來解決 Transformer 的這個(gè)問題,例如LSH(Locality-Sensitive Hashing)注意處理長序列和可逆層以提高內(nèi)存效率。我會(huì)說這不是個(gè)微不足道的結(jié)果!
這篇論文還對(duì)用于提高 Transformer 效率的其他技術(shù)進(jìn)行了有趣的概述。我在這里報(bào)告了它的一些摘錄,我認(rèn)為它可以作為那些不熟悉 Transformer 技術(shù)效率的人的參考。
- 模型壓縮。模型修剪通過在訓(xùn)練之后或訓(xùn)練期間移除不需要的權(quán)重來使矩陣更小。
- 模型蒸餾。模型蒸餾包括在先前訓(xùn)練的大模型(即教師)的輸出上訓(xùn)練一個(gè)小模型(即學(xué)生)。用于移動(dòng)推理的幾種自然語言模型依靠蒸餾來加速從預(yù)先訓(xùn)練的大型模型中進(jìn)行推理。
- 稀疏注意力。基于稀疏注意力的方法通過合并額外的組合機(jī)制或選擇該層所關(guān)注的標(biāo)記子集,使注意力層更加高效,尤其是對(duì)于長序列。
- 稀疏前饋。關(guān)鍵思想是將前饋層劃分為多個(gè)部分(稱為專家),每個(gè)令牌只檢索一個(gè)部分,這降低了前饋塊的復(fù)雜性。這些加速主要以訓(xùn)練速度來衡量,并且該方法側(cè)重于前饋塊。專家方法的混合已被證明可以在訓(xùn)練中實(shí)現(xiàn)計(jì)算效率,擴(kuò)展到一萬億個(gè)參數(shù)。
雖然目前的結(jié)果有許多局限性。盡管如此,這篇論文可以被認(rèn)為是通往可持續(xù)大型模型的第一步。
大家怎么看?