稀疏大模型简述:从MoE、Sparse Attention到GLaM
文 | 唐工
源 | 知乎
Sparsity, ..., is another important algorithmic advance that can greatly improve efficiency. ?
稀疏性,是(神經(jīng)架構(gòu)搜索)之外另一個(gè)重要的算法進(jìn)步,可以大大提高效率。
The use of sparsity in models is ... very high potential payoff in terms of computational efficiency, and we are only scratching the surface ... ?
在模型中使用稀疏性在計(jì)算效率方面具有非常高的潛在回報(bào),我們僅僅觸及皮毛。
稀疏性(Sparsity),指的是模型具有非常大的容量,但只有模型的用于給定的任務(wù)、樣本或標(biāo)記的某些部分被激活。這樣,能夠顯著增加模型容量和能力,而不必成比例增加計(jì)算量。
2017年,谷歌引入了稀疏門控的專家混合層(Sparsely-Gated Mixture-of-Experts Layer,MoE),該層在各種轉(zhuǎn)換基準(zhǔn)測(cè)試中顯示出更好的結(jié)果,同時(shí)使用的計(jì)算比以前最先進(jìn)的密集 LSTM 模型少10倍。
2021年,谷歌的 Switch Transformers 將 MoE 風(fēng)格的架構(gòu)與 Transformer 模型架構(gòu)相結(jié)合,與密集的 T5-Base Transformer 模型相比,訓(xùn)練時(shí)間和效率提高了7倍。
2021年,谷歌的 GLaM 模型表明,Transformer 和 MoE 風(fēng)格的層可以組合在一起生成一個(gè)模型,在29個(gè)基準(zhǔn)測(cè)試中平均超過GPT-3模型的精度,而使用3倍少的能耗進(jìn)行訓(xùn)練和2倍少的計(jì)算進(jìn)行推理。
另外,稀疏性的概念,也可以應(yīng)用于降低核心 Transformer 架構(gòu)中注意力機(jī)制的成本(ETC 模型、BigBird 模型等)。
稀疏模型簡(jiǎn)介:部分激活的超大模型
稀疏門控 MoE:超大型神經(jīng)網(wǎng)絡(luò)的條件計(jì)算
The capacity of a neural network to absorb information is limited by its number of parameters. ?
神經(jīng)網(wǎng)絡(luò)吸收信息的能力,受限于其參數(shù)的數(shù)量。
專家混合模型(Mixture-of-Experts layer,MoE),這種模型可以被認(rèn)為是具有不同的子模型(或?qū)<?#xff09;,每個(gè)子模型專門用于不同的輸入。每一層中的專家由門控網(wǎng)絡(luò)控制,該網(wǎng)絡(luò)根據(jù)輸入數(shù)據(jù)激活專家。對(duì)于每個(gè)標(biāo)記(通常是一個(gè)單詞或單詞的一部分),門控網(wǎng)絡(luò)選擇最合適的專家來處理數(shù)據(jù)。
稀疏門控專家混合模型(Sparsely-Gated MoE),旨在實(shí)現(xiàn)條件計(jì)算(Conditional computation)在理論上的承諾,即神經(jīng)網(wǎng)絡(luò)的某些部分以每個(gè)樣本為基礎(chǔ)進(jìn)行激活,作為一種顯著增加模型容量和能力而不必成比例增加計(jì)算量的方法。
稀疏門控 MoE,由多達(dá)數(shù)千個(gè)專家組成,每個(gè)專家都是一個(gè)簡(jiǎn)單的前饋(feed-forward)神經(jīng)網(wǎng)絡(luò),以及一個(gè)可訓(xùn)練的門控網(wǎng)絡(luò),該網(wǎng)絡(luò)選擇專家的稀疏組合(sparse combination)來處理每個(gè)輸入樣本。網(wǎng)絡(luò)的所有部分都通過反向傳播聯(lián)合訓(xùn)練。
嵌入在循環(huán)(recurrent)語言模型中的專家混合 (Mixture of Experts,MoE) 層。在這種情況下,稀疏門控函數(shù)選擇兩個(gè)專家來執(zhí)行計(jì)算。它們的輸出由門控網(wǎng)絡(luò)的輸出調(diào)制。
稀疏門控 MoE,實(shí)現(xiàn)了模型容量超過1000倍的改進(jìn),并且在現(xiàn)代 GPU 集群的計(jì)算效率損失很小。
Switch Transformer:通過簡(jiǎn)單高效的稀疏性擴(kuò)展到萬億參數(shù)模型
Mixture of Experts (MoE) ... a sparsely-activated model -- with outrageous numbers of parameters -- but a constant computational cost. ?
專家混合模型(MoE),...,一個(gè)稀疏激活的模型 - 具有驚人的參數(shù)數(shù)量 - 但計(jì)算成本恒定。
Switch Transformer,旨在解決 MoE 的復(fù)雜性、通信成本和訓(xùn)練不穩(wěn)定性而導(dǎo)致的難以被廣泛采用的問題。
Switch Transformer,簡(jiǎn)化了 MoE 路由算法,設(shè)計(jì)了直觀的改進(jìn)模型,同時(shí)降低了通信和計(jì)算成本。
Switch Transformer 編碼器塊的示意圖。將 Transformer 中的密集前饋網(wǎng)絡(luò) (FFN) 層替換為稀疏 Switch FFN 層(淺藍(lán)色)。該層獨(dú)立地對(duì)序列中的標(biāo)記進(jìn)行操作。兩個(gè)標(biāo)記在四個(gè) FFN 專家之間路由(實(shí)線),其中 Router 獨(dú)立路由每個(gè)標(biāo)記。Switch FFN 層返回所選 FFN 的輸出乘以 Router 門控值(虛線)。
Switch 層的好處有三方面:
減少了路由器計(jì)算,因?yàn)橹粚?biāo)記路由給單個(gè)專家。
每個(gè)專家的批量大小(專家容量)至少可以減半,因?yàn)槊總€(gè)標(biāo)記只被路由到單個(gè)專家。
簡(jiǎn)化路由實(shí)現(xiàn),降低通信成本。
每個(gè)專家處理由容量因子調(diào)制的固定批量大小的標(biāo)記。每個(gè)標(biāo)記被路由到具有最高路由概率的專家,但每個(gè)專家都有一個(gè)固定的批量大小 (total tokens / num experts) × capacity factor。
具有不同專家容量因子(capacity factor)的標(biāo)記路由示例。如果標(biāo)記分配不均,則某些專家將溢出(由紅色虛線表示),導(dǎo)致這些標(biāo)記不被該層處理。更大的容量因子緩解了這種溢出問題,但也增加了計(jì)算和通信成本(由填充的白色/空槽描述)。
GLaM 模型:更有效的上下文學(xué)習(xí)
Is it possible to train and use large language models more efficiently? ?
是否有可能更有效地訓(xùn)練和使用大型語言模型?
大型語言模型(例如,GPT-3)具有許多重要的能力,例如在一系列廣泛的任務(wù)中執(zhí)行少樣本學(xué)習(xí)few-shot learning,包括只有很少或根本沒有訓(xùn)練樣本的閱讀理解和問答。僅僅使用更多的參數(shù)就可以使其執(zhí)行得更好,但訓(xùn)練這些大型模型卻是極其計(jì)算密集的。
GLaM (Generalist Language Model)模型,旨在解決訓(xùn)練大型密集模型(比如 GPT-3需要大量的計(jì)算資源的問題。GLaM 模型是一簇通用語言模型,由于其稀疏性,可以 (在計(jì)算和能耗方面) 有效地進(jìn)行訓(xùn)練和提供服務(wù),并且在多個(gè)少樣本學(xué)習(xí)任務(wù)上取得了更好的表現(xiàn)。
GLaM 模型使用稀疏激活的 MoE 架構(gòu)來擴(kuò)展模型容量,完整版總共有 32 個(gè) MoE 層,在每個(gè) MoE 層有 64 個(gè)專家,每個(gè)專家都是具有相同架構(gòu)但權(quán)重參數(shù)不同的前饋網(wǎng)絡(luò)。與密集的變體相比,訓(xùn)練成本大大減少。在推理期間,GLaM 對(duì)于每個(gè)標(biāo)記預(yù)測(cè)僅激活 97B( 1.2T 的 8% )參數(shù)的子網(wǎng)絡(luò)。
GLaM 將每隔一個(gè) Transformer 層的單個(gè)前饋網(wǎng)絡(luò)(人工神經(jīng)網(wǎng)絡(luò)的最簡(jiǎn)單層,藍(lán)框中的"Feedforward 或 FFN")替換為 MoE 層。其中每個(gè)輸入標(biāo)記都被動(dòng)態(tài)地路由到64個(gè)專家網(wǎng)絡(luò)中的選定的兩個(gè),以進(jìn)行預(yù)測(cè)。標(biāo)記的最終學(xué)習(xí)表示形式將是兩位專家輸出的加權(quán)組合。
盡管此 MoE 層相比 Transformer 層的單個(gè)前饋網(wǎng)絡(luò)具有更多參數(shù),但專家被稀疏激活,這意味著對(duì)于給定的輸入標(biāo)記,僅使用兩個(gè)專家,從而在限制計(jì)算的同時(shí)為模型提供更多容量。在訓(xùn)練期間,每個(gè) MoE 層的_門控網(wǎng)絡(luò)_都經(jīng)過訓(xùn)練,以使用其輸入為每個(gè)標(biāo)記激活最佳兩個(gè)專家,然后將其用于推理。對(duì)于 E 個(gè)專家的 MoE 層,這實(shí)質(zhì)上提供了_E_×(E-1) 個(gè)不同前饋網(wǎng)絡(luò)組合的集合(而不是像經(jīng)典 Transformer 架構(gòu)中那樣的一個(gè)),從而提高了計(jì)算靈活性。
標(biāo)記的最終學(xué)習(xí)表示形式將是兩位專家輸出的加權(quán)組合。這允許不同的專家在不同類型的輸入上激活。為了能夠擴(kuò)展到更大的模型,GLaM 架構(gòu)中的每個(gè)專家都可以(使用GSPMD編譯器后端擴(kuò)展)跨多個(gè)計(jì)算設(shè)備。
...It consumes only 1/3 of the energy used to train GPT-3 and requires half of the computation flops for inference... ?
...它只消耗 GPT-3訓(xùn)練所需能耗的1/3,并且只需要一半的浮點(diǎn)運(yùn)算進(jìn)行推理...
計(jì)算成本對(duì)比,1.2T 參數(shù)的稀疏激活模型 GLaM 和 175B 參數(shù)的稠密模型 GPT-3 模型,包括每個(gè)標(biāo)記的推理(左)和訓(xùn)練(右)。
GLaM 在訓(xùn)練期間使用更多的計(jì)算,因?yàn)樗诟嗟臉?biāo)記上進(jìn)行訓(xùn)練,但在推理過程中使用的計(jì)算要少得多。雖然 GLaM 在訓(xùn)練期間使用更多的計(jì)算,但由于 GSPMD 驅(qū)動(dòng)的更有效的軟件實(shí)現(xiàn)和 TPUv4 的優(yōu)勢(shì),它比其他模型使用更少的功率進(jìn)行訓(xùn)練。
▲訓(xùn)練過程中能耗的對(duì)比稀疏注意力機(jī)制:構(gòu)建用于更長(zhǎng)序列的 Transformer
Transformer 的問題
Transformer 的關(guān)鍵創(chuàng)新之處在于引入了自注意力機(jī)制,該機(jī)制計(jì)算輸入序列中所有位置對(duì)的相似性得分,并且可以對(duì)輸入序列的每個(gè)標(biāo)記并行計(jì)算,避免了 RNN 的順序依賴性。
然而,現(xiàn)有的 Transformer 模型及其衍生模型的一個(gè)局限性是,完全自注意力機(jī)制的計(jì)算和內(nèi)存需求與輸入序列長(zhǎng)度成二次(quadratic)關(guān)系,這限制了輸入序列的長(zhǎng)度。
兩個(gè)自然的問題出現(xiàn)了:
能否使用稀疏模型實(shí)現(xiàn)二次全 Transformer 的實(shí)證優(yōu)勢(shì),同時(shí)讓計(jì)算和內(nèi)存需求的擴(kuò)展與輸入序列長(zhǎng)度成線性關(guān)系(ETC 模型)?
有沒有可能從理論上證明,這些線性 Transformer(BigBird 模型)保持了二次全 Transformer 的表現(xiàn)力和靈活性?
注意力作為圖
把注意力機(jī)制想象成一個(gè)有向圖(標(biāo)記由節(jié)點(diǎn)表示,相似度評(píng)分由邊表示)是很有用的。在這個(gè)觀點(diǎn)中,完全注意力模型就是一個(gè)完全圖(complete graph)。
這個(gè)方法背后的核心思想是仔細(xì)地設(shè)計(jì)稀疏圖,這樣只需要計(jì)算線性數(shù)量的相似性得分。
▲完全注意力模型可以看作是一個(gè)完全圖ETC:在 Transformer 中編碼長(zhǎng)的結(jié)構(gòu)化輸入
ETC(Extended Transformer Construction),是一種擴(kuò)展 Transformer 結(jié)構(gòu)的稀疏注意力(sparse attention)的新方法,它利用結(jié)構(gòu)信息(structural information)限制計(jì)算出的相似性得分對(duì)的數(shù)目。這就將對(duì)輸入長(zhǎng)度的二次依賴降低為線性。
ETC 實(shí)現(xiàn)了注意力的線性縮放,使其可以顯著縮放輸入長(zhǎng)度,主要源自全局-局部注意力(global-local attention)機(jī)制。其中,對(duì) Transformer 的輸入分為兩部分:
全局輸入(global input),其中標(biāo)記具有無限制的注意力;
長(zhǎng)輸入(long input),其中標(biāo)記只能注意全局輸入或局部相鄰輸入。
上圖是ETC 模型對(duì)長(zhǎng)輸入的擴(kuò)展注意力機(jī)制的說明。
Big Bird: 用于更長(zhǎng)序列的 Transformer
BigBird,是將 ETC 擴(kuò)展到更一般的場(chǎng)景的另一種稀疏注意力機(jī)制,在這些場(chǎng)景中,源數(shù)據(jù)中存在的關(guān)于結(jié)構(gòu)的必備領(lǐng)域知識(shí)可能無法獲得。此外,還從理論上證明了稀疏注意力機(jī)制保持了二次型全 Transformer 的表達(dá)能力和靈活性。
BigBird 模型中的稀疏注意力包括三個(gè)主要部分:
一組注意輸入序列的所有部分的全局標(biāo)記
所有標(biāo)記注意一組相鄰的局部標(biāo)記
所有標(biāo)記注意一組隨機(jī)標(biāo)記
BigBird 稀疏注意力模型由(注意輸入序列的所有部分的)全局標(biāo)記、局部標(biāo)記和一組隨機(jī)標(biāo)記組成。從理論上講,這可以解釋為在 Watts-Strogatz 圖上增加了很少的全局標(biāo)記
為什么稀疏注意力足以接近二次注意力:
A crucial observation is that there is an inherent tension between how few similarity scores one computes and the flow of information between different nodes (i.e., the ability of one token to influence each other).
一個(gè)重要的觀察結(jié)果是,在計(jì)算的相似性得分如何的少,和不同節(jié)點(diǎn)間的信息流(即,一個(gè)標(biāo)記相互影響的能力)之間存在一種內(nèi)在的張力關(guān)系。
全局標(biāo)記作為信息流的管道,證明了使用全局標(biāo)記的稀疏注意力機(jī)制可以和全注意模型一樣強(qiáng)大。
稀疏注意力模型的高效實(shí)現(xiàn)
大規(guī)模采用稀疏注意力的一個(gè)主要障礙,是稀疏操作在現(xiàn)代硬件中效率相當(dāng)?shù)?/strong>。
由于現(xiàn)代硬件加速器(如 GPU 和 TPU)擅長(zhǎng)使用合并內(nèi)存操作(一次加載連續(xù)字節(jié)塊) ,因此由滑動(dòng)窗口(用于局部注意力)或隨機(jī)元素查詢(隨機(jī)注意力)引起的小型零星查找是不高效的。
相反,將稀疏的局部注意力和隨機(jī)注意力轉(zhuǎn)換成密集的張量運(yùn)算,以充分利用現(xiàn)代單指令、多數(shù)據(jù)(single instruction, multiple data),SIMD)硬件。
首先“阻塞(blockify)”注意力機(jī)制,以更好地利用 GPU/TPU,它們被設(shè)計(jì)為在塊上運(yùn)行。
然后,通過一系列簡(jiǎn)單的矩陣運(yùn)算,如重塑、滾動(dòng)和聚集,將稀疏注意機(jī)制計(jì)算轉(zhuǎn)化為密集的張量積。
稀疏注意力機(jī)制的高效實(shí)現(xiàn)示意圖。稀疏窗口的注意力是如何有效地計(jì)算使用滾動(dòng)和重塑,而沒有小的零星查找。
結(jié)論
... carefully designed sparse attention can be as expressive and flexible as the original full attention model. Along with theoretical guarantees, ... a very efficient implementation allows us to scale to much longer inputs. ?完全注意力模型可以看作是一個(gè)完全圖 ... 精心設(shè)計(jì)的稀疏注意力和原始的全注意模型一樣具有表達(dá)性和靈活性。除了理論上的保證之外,非常高效的實(shí)現(xiàn)使我們能夠擴(kuò)展到更長(zhǎng)的輸入。
因此我們將看到更大容量和更強(qiáng)能力的模型,但不必?fù)?dān)心計(jì)算量的顯著增長(zhǎng)。
后臺(tái)回復(fù)關(guān)鍵詞【入群】
加入賣萌屋NLP、CV與搜推廣求職討論群
后臺(tái)回復(fù)關(guān)鍵詞【頂會(huì)】
獲取ACL、CIKM等各大頂會(huì)論文集!
總結(jié)
以上是生活随笔為你收集整理的稀疏大模型简述:从MoE、Sparse Attention到GLaM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从论文到PPT,一键生成!从此报告不用愁
- 下一篇: 12种NumpyPandas高效技巧