本文分享自華為云社區(qū)《DTSE Tech Talk | 第47期:MoE:LLM終身學(xué)習(xí)的可能性》,作者:華為云社區(qū)精選。
在DTSE Tech Talk的第47期直播《MoE:LLM終身學(xué)習(xí)的可能性》中,昇思MindSpore技術(shù)專家呂老師與各位開發(fā)者分享有關(guān)于LLM lifelong learning的概念,幫助大家了解持續(xù)學(xué)習(xí)的特性與理論知識,同時也詳細(xì)介紹了MoE的發(fā)展史,讓我們更為直觀的去理解其中技術(shù)要點。
Continual lifelong learning(終身學(xué)習(xí))
終身學(xué)習(xí)系統(tǒng)被定義為一種能夠從連續(xù)的信息中學(xué)習(xí)的自適應(yīng)算法,隨著時間的推移,這些信息逐步可用,并且所要學(xué)習(xí)的任務(wù)數(shù)量(例如,分類任務(wù)中的成員類)不是預(yù)先定義的。關(guān)鍵的是,新信息的容納應(yīng)該在沒有災(zāi)難性遺忘或干擾的情況下發(fā)生。
持續(xù)學(xué)習(xí)的目標(biāo)與特性
持續(xù)學(xué)習(xí)的目標(biāo)是在模型持續(xù)輸入學(xué)習(xí)新數(shù)據(jù)的同時避免舊知識的遺忘,以下是其性質(zhì)與定義。
參考文獻:Continual Lifelong Learning in Natural Language Processing: A Survey-2020年發(fā)表
性質(zhì) | 定義 |
---|---|
知識記憶(knowledge retention) | 模型不易產(chǎn)生遺忘災(zāi)難 |
前向遷移(forward transfer) | 利用舊知識學(xué)習(xí)新任務(wù) |
后向遷移(backward transfer) | 新任務(wù)學(xué)習(xí)后提升舊任務(wù) |
在線學(xué)習(xí)(online learning) | 連續(xù)數(shù)據(jù)流學(xué)習(xí) |
無任務(wù)邊界(no task boudaries | 不需要明確的任務(wù)或數(shù)據(jù)定義 |
固定模型容量(fixed model capacity) | 模型大小不隨任務(wù)和數(shù)據(jù)變化 |
LLM的性質(zhì):
?文章來源地址http://www.zghlxwxcb.cn/news/detail-745965.html
?
性質(zhì) | ? | 說明 |
---|---|---|
知識記憶(knowledge retention) | √ | LLM預(yù)訓(xùn)練后,具備世界知識,小規(guī)模finetune不易對LLM造成遺忘災(zāi)難。但大規(guī)模數(shù)據(jù)續(xù)訓(xùn)會造成。 |
前向遷移(forward transfer) | √ | 基于世界知識的Zero shot、few shot、finetune。 |
后向遷移(backward transfer) | - | Finetune后會可能會造成部分任務(wù)的性能下降。二次finetune會損失首次finetune性能。 |
在線學(xué)習(xí)(online learning) | × | 離線預(yù)訓(xùn)練、微調(diào)。 |
無任務(wù)邊界(No task boudaries) | √ | Unsupervised預(yù)訓(xùn)練、微調(diào),不區(qū)分任務(wù)。 |
固定模型容量(Fixed model capacity) | √ | LLM預(yù)訓(xùn)練后大小不變。 |
以上可以看出LLM實際上已經(jīng)滿足了大部分持續(xù)學(xué)習(xí)的性質(zhì),百億千億級別的大模型經(jīng)過充足的預(yù)訓(xùn)練后,具備大量世界知識以及涌現(xiàn)能力,基于此進行終身學(xué)習(xí)成為可能。
常見的LLM終身學(xué)習(xí)方法有Rehearsal(排練), Regularization(正則), Architectural(結(jié)構(gòu)改造)等方式在LLM的參數(shù)量和訓(xùn)練模式下其實都不太適用。而LLM本身為了增大參數(shù)量和減少推理成本的混合專家方法(Mixture of Experts, MoE) 似乎成了LLM終身學(xué)習(xí)的新途徑。
MoE的簡介
MoE即混合專家模型,英文叫Mixture of Experts, 發(fā)展至今已有30多年歷史。MoE是一種模型設(shè)計策略,它通過將多個模型直接結(jié)合在一起,以獲得更好的預(yù)測性能。在大模型中,MoE方案可以有效的提高模型的容量和效率。
一般來說,大模型的MoE有一個門控機制和一套門控輸出機制來合并和平衡專家的選擇,用于決定每個專家對最終預(yù)測的;有一套專家模型選擇機制,會根據(jù)門控機制的輸出選擇一部分專家模型進行預(yù)測。這樣可以較少計算量,并使模型能夠針對不同的輸入選擇最合適的專家模型。
MoE示意圖
圖中多個Export Network用于學(xué)習(xí)不同數(shù)據(jù),一個Gating Network用于分配每個個Expert的輸出權(quán)重。對于一個輸入樣本c,第i個expert的輸出為,Ground truth是
則損失函數(shù)為:
將提前,使得每個專家模型單獨計算損失函數(shù),鼓勵不同專家模型的競爭,使得每個數(shù)據(jù)樣盡可能被一個專家處理。專家模型的競爭、合作,以及Gating Network的分發(fā)方式,也成為了MoE演進過程中不斷更迭出新的方向。2017年MoE已初見成型。
Sparse MoE
Google Brain的Shazeer,Noam,等人提出使用稀疏的MoE結(jié)構(gòu)來將模型容量做大的方法,即:訓(xùn)練時使用海量的專家模型,推理時激活少數(shù)專家模型。
Sparse MoE示例圖
如上圖所示,模型共有n個Expert,Gating Network選擇少數(shù)Expert進行計算。此外,在訓(xùn)練過程中前期編號的expert會更容易被gating network選擇,導(dǎo)致只有少數(shù)幾個expert有用,這被稱為Expert Balancing問題。這時的Sparse MoE目標(biāo)方向是將模型做大,以及經(jīng)濟高效地進行訓(xùn)練推理。同年,能夠并行訓(xùn)練的Transformer的出現(xiàn)將所有人的目光都匯聚了過去。
Transformer MoE
當(dāng)模型參數(shù)量到了千億這個級別以后,再想向上擴展變得愈發(fā)困難,經(jīng)濟實用的MoE又被重啟。還是Google,提出了GShard[4],首個將MoE思想拓展到Transformer的工作,而后Siwtch Transformer[5]、GLaM[6]等工作持續(xù)改進著Transformer MoE的結(jié)構(gòu),也將LLM的參數(shù)量從千億推向了萬億級別。
Gshard:首個MoE+Transformer模型
Gshard的論文最早于2020.6.30發(fā)表(Gshard Scaling Giant Models with Conditional),Transformer的encoder和decoder中,每隔一個(every other)FFN層,替換成position-wise MoE層。
Switch Transformer號稱擁有萬億級別的Transformer類模型
2021年1月,Google大腦團隊發(fā)布文章“Switch Transformer:scaling to trillion parameter models with simple and efficient sparsity”,其簡化了MoE的routing算法,并且gating network 每次只 route 到 1 個 expert。
GlaM:降本增效,精度更為精確
同年,Google的GlaM模型表明,Transformer和MoE風(fēng)格的層可以組合在一起生成一個模型,在29個基準(zhǔn)測試中平均超過GPT-3模型的精度,而使用3倍少的能耗進行訓(xùn)練和2倍少的計算進行推理。
PanGu-Sigma
Pangu-sigma[8]是今年3月華為諾亞方舟實驗室基于Pangu-alpha模型進行MoE擴充實現(xiàn)的Lifelong-MoE模型。其提出了隨機路由專家(RRE)方法,使得Gating Network也可以隨著Expert進行裁剪。下圖是PanGu-Sigma的示意圖:
這里著重講一下RRE的設(shè)計。前面提到既然可學(xué)習(xí)的Gating Network很難裁剪,那么可以簡單粗暴地使用手動Gating地方式。RRE就是這樣地思路,只是為了緩解過于粗暴的領(lǐng)域區(qū)分(持續(xù)學(xué)習(xí)的性質(zhì)之一就是無任務(wù)邊界,手動Gating一定程度上違背了這一點),RRE做了雙層的設(shè)計:
- 第一層,根據(jù)任務(wù)分配給不同的專家組(多個expert構(gòu)成一個專家組,供一個task/domain使用)。
- 第二層,使用組內(nèi)隨機Gating,讓專家組的expert可以負(fù)載均衡。
這樣帶來的好處是顯而易見的,只要對專家組進行裁切,可以完全剝離出某個領(lǐng)域的子模型進行推理部署,同時也可以不斷地更新迭代新的專家組,實現(xiàn)Lifelong-learning。下圖是預(yù)訓(xùn)練好的MoE模型進行子模型抽取的示意圖。
以上兩個工作,是Lifelong-MoE的兩個典型工作,也分別延續(xù)了兩家公司LLM的能力。但值得額外一提的是,MoE LLM實際上從訓(xùn)練起點分為了兩派,分別是from scratch和from pretrained,而GPT4據(jù)稱是from scratch的8個Expert集合,某種意義上可能更像是回到了ensemble階段,更多是為了業(yè)務(wù)效果而非LLM的持續(xù)演進。
MoE存在問題
Lifelong-MoE看起來很好用,但是萬事皆無完美,但MoE方法本身還是有一些問題,下面進行簡單的介紹,也算是后續(xù)演進方向的探討。
- MoE結(jié)構(gòu)復(fù)雜度
Transformer的MoE會對FFN層進行MoE擴展,但是Transformer結(jié)構(gòu)本身還有Multihead Attention結(jié)構(gòu),這使得MoE擴展會變成Transformer結(jié)構(gòu)的侵入式改造,而不管是訓(xùn)練前并行化的侵入式改造,還是訓(xùn)練完成后進行子模型的抽取,都會因為復(fù)雜的結(jié)構(gòu)而需要投入大量人力。
- Expert balancing
總會有一部分任務(wù)或領(lǐng)域占據(jù)所有數(shù)據(jù)的大部分,也一定會有長尾數(shù)據(jù),使用等參數(shù)量、隨機Gating的方式進行強制的均衡分配,實際上也是在傷害模型對現(xiàn)實世界的擬合。神經(jīng)網(wǎng)絡(luò)特點決定的嬴者通吃。Gating Network可學(xué)習(xí)會很自然的朝著幾個擬合較好的Expert進行數(shù)據(jù)分配,這一點仍需要大量的嘗試和研究,也許可以緩解,也許可以解決。
- 分布式通信問題
當(dāng)下的LLM預(yù)訓(xùn)練必然是要使用分布式并行切分的,而MoE結(jié)構(gòu)和普通的Dense模型的差異在于,其需要額外的AllToAll通信,來實現(xiàn)數(shù)據(jù)的路由(Gating)和結(jié)果的回收。而AllToAll通信會跨Node(服務(wù)器)、跨pod(路由),進而造成大量的通信阻塞問題。
點擊關(guān)注,第一時間了解華為云新鮮技術(shù)~文章來源:http://www.zghlxwxcb.cn/news/detail-745965.html
?
到了這里,關(guān)于MoE:LLM終身學(xué)習(xí)的可能性的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!