一文帶你了解MindSpore支持的萬億級參數(shù)超大模型關(guān)鍵技術(shù)!
前言
前言
最近項目組分析了類Switch Transformer的動態(tài)路由條件計算的模型,特分享出來,供大家參考。
動態(tài)路由條件計算-技術(shù)介紹
動態(tài)路由條件計算-算法實現(xiàn)
動態(tài)路由條件計算-技術(shù)介紹
前言
近來,增大模型規(guī)模成為了提升模型性能的主要手段。特別是NLP領域的自監(jiān)督預訓練語言模型,規(guī)模越來越大,從GPT3的1750億參數(shù),到Switch Transformer的16000億參數(shù),又是一個數(shù)量級的增加。
1. 傳統(tǒng)的神經(jīng)網(wǎng)絡模型,前饋的時候,輸入的batch中,每一個樣本的處理,都將激活網(wǎng)絡中的每一個參數(shù)參與計算。
2. 條件計算最寬松的定義,指僅激活網(wǎng)絡中某些部分的一類算法。Conditional Computation refers to a class of algorithms that activate only some of the different parts in a network. 在具體某類條件計算實現(xiàn)中,條件選擇模式,可能按照輸入的batch中每sample獨立激活網(wǎng)絡不同部分,可能按照輸入數(shù)據(jù)空間上不同的部分(比如image不同區(qū)域或者channel),可能按照輸入數(shù)據(jù)時間上不同的部分(比如time series的不同slide window或者video的不同的frame。),可能按照目標任務的不同每task獨立的,可能按照非可學習的固定的隨機分配不同的子網(wǎng)獨立計算。
3. 對不同的輸入(原始或者前層),按照一定條件,選擇性的執(zhí)行后續(xù)部分網(wǎng)絡的計算,這個技術(shù)下,有一些近似或相關(guān)的技術(shù),如:dynamic neural network(s), conditional computing, conditional activation, sparse activating, selective execution, mixture of experts (MoE), dynamic routing, …;強相關(guān)的一些模型比如 Switch Transformer等。
條件計算的分類(廣義)
1. 按照routing是否可學習可以分為:learnable routing conditional computation和 unlearnable routing conditional computation.
條件計算的主要優(yōu)勢
條件計算的主要優(yōu)勢
2. 更大網(wǎng)絡,表達更強:由于一處到多處的Route,各處(層)的Input被路由到不同的子網(wǎng)獨立計算,不同的輸入的相互在各層的表達相對獨立沒有影響,表達能力更強,網(wǎng)絡可以更大,但表達效率降低了。
條件計算的網(wǎng)絡和計算形式
條件計算的網(wǎng)絡和計算形式
條件計算的網(wǎng)絡和計算形式比較靈活,部分構(gòu)建形式如:(此處省略具體模型和論文引用,參見:?intellabs.github.io/dis)
1. 按照CV等task的特點,用多個獨立的CNN作為expert網(wǎng)絡,按照task來獨立路由,尾部組合后給一個大網(wǎng)絡。
2. 使用更復雜的cascading等形式組合不同層級的不同的expert網(wǎng)絡。
3. 通過決策樹等方法做數(shù)據(jù)變換實現(xiàn)路由。
4. 通過可學習的網(wǎng)絡來選擇路由。其中策略學習的損失有多種構(gòu)建形式:直接使用分類等任務的主損失,對不同專家的重要性和負載構(gòu)建損失作為輔助損失等等。
條件計算的路
條件計算的路由策略
由策略
1. non-learnable/hard-mode,通過某種確定性策略,如LSH等方式計算路由。
條件計
條件計算的冗余策略
算的冗余策略
條件計算的冗余策略,可分為無冗余條件計算和冗余條件計算:
1. 無冗余條件計算可通過P(.)函數(shù)的實現(xiàn)如topk(k=1,…)來實現(xiàn);
2. 冗余條件計算,可以多種實現(xiàn)形式,可以通過P(.)函數(shù)的實現(xiàn)如topk(k=n,…),n>=2來實現(xiàn),也可以通過硬冗余模式,整個網(wǎng)絡中支持輸入的復制和多路計算實現(xiàn)。
條件計算的
條件計算的挑戰(zhàn)
挑戰(zhàn)
訓練階段,每專家和樣本批次中樣本的關(guān)聯(lián)度重要性,和每批次中樣本被均衡分派到不同專家的負載平衡性,這兩個指標既相關(guān)又沖突。需要分別構(gòu)建損失函數(shù)作為輔助損失,來優(yōu)化這兩個指標。在arxiv:1701.06538《Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer》做了相關(guān)討論。
關(guān)于條件計
關(guān)于條件計算/動態(tài)神經(jīng)網(wǎng)絡
算/動態(tài)神經(jīng)網(wǎng)絡
上述為該綜述論文對Dynamic NN的總體分類。
從超大規(guī)模網(wǎng)絡動態(tài)網(wǎng)絡技術(shù)支撐角度,高表達能力,低計算代價為主的來考慮分類,從兩個維度對動態(tài)網(wǎng)絡技術(shù)分類:
1. 按照在前饋計算時是否部分激活:
Hard-Dynamic:在前饋的時候,部分網(wǎng)絡絕對不激活參與計算
2. 按照動態(tài)激活判定算法的輸入:
逐樣本級:(在輸入層)按照每樣本的實例來決定動態(tài)網(wǎng)絡的后續(xù)激活。
亞樣本級:(在輸入層)樣本內(nèi)時間/空間級激活不同的后續(xù)網(wǎng)絡單元。一般深度網(wǎng)絡,不僅在輸入層會被選擇性激活執(zhí)行,在中間層也類似。
動態(tài)神經(jīng)網(wǎng)絡相比與靜態(tài)結(jié)構(gòu)的神經(jīng)網(wǎng)絡,在相關(guān)研究中,從效能,表達,泛化、魯棒,可解釋等方面做了大量對比研究。從智能平臺通過計算成本盡量低的支持超大規(guī)模網(wǎng)絡來提升模型性能的角度看,Efficiency和Representation最為重要:
2、Representation: 參數(shù)量更大,表達容量更大;但MoE等結(jié)構(gòu)在深度網(wǎng)絡的各層特征的表達上,復用降低,每參數(shù)的表達效率更低。
了解完MindSpore的關(guān)鍵技術(shù)是不是很心動呢!趕緊【點擊鏈接】并【立即報名】,即可在 ModelArts 平臺學習到一個經(jīng)典案例掌握基于MindSpore的深度學習!
想要了解更多關(guān)于大模型的知識,請點擊:專家解惑 | 關(guān)于華為云盤古大模型,你想問的都在這里~
MindSpore 機器學習
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。