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