聊一聊“超大模型”
文 | 金雪鋒
源 | 知乎
最近經常被問,你看“萬億的模型都出來了,你們訓練的千億模型是不是落伍了?”我想說:“雖然都叫超大模型,但是類型是不一樣的,雖說每一類模型訓出來都不容易,不過澄清一下概念還是必要的”。
大概盤算了一下,一年多來,業界發布了非常多的大模型,從去年OpenAI GPT-3 1750億參數開始,到年初華為盤古大模型 1000億,鵬程盤古-α 2000億參數,Google switch transformer 1.6萬億;及近期的智源悟道2.0 1.75萬億參數 MoE,快手1.9萬億參數推薦精排模型,阿里達摩院M6 1萬億參數等;很多小伙伴看的是眼花繚亂,那究竟這些模型有沒有差異?如果有差異,差異在哪里?
首先我想說這些模型都是基于Transformer結構,但是在模型擴展上有非常大的不同。
從計算角度看,我們可以把這些大模分成3類
稠密Transformer: OpenAI GPT-3,華為盤古/鵬程盤古α(MindSpore支撐);模型規模的擴展是全結構的擴容;
稀疏MoE結構Transformer: Google Switch Transformer,智源悟道2.0,阿里M6。一般來說是選擇一個基礎的稠密模型,通過MoE稀疏結構擴展FFN部分,以此來達成模型的擴容;
高維稀疏特征推薦模型: 快手推薦精排,我理解主要是推薦的高維稀疏特征Embedding需要超大參數;
推薦類模型是一個比較獨立的計算特征網絡,這個我們最后分析。其中相似性非常大的是稠密Transformer和稀疏MoE結構Transformer,下面我們以Google Switch Transformer來對比兩者的差異。
下面兩張圖是Google Switch Transformer論文中和T5的對比,Switch Transformer是基于T5,通過MoE稀疏結構擴展。我們用Switch-Base作為這次分析對比基準。
Switch-Base是基于T5-Base的MoE稀疏擴展,模型參數規模比T5-Base大33倍,從計算角度看,內存開銷是T5的33倍,算力開銷和T5-Base一致。同時,我們拿Switch-Base和T5-Large做一個對比。Switch-Base參數規模是T5-Large的10倍,也就是說內存開銷是T5的10倍,算力開銷是T5-Large的29%;
從下面這個表格的下游任務對比來看,在同樣的算力開銷下,Switch-Base的效果比T5-Base整體上要好,這個優勢是通過33倍的內存開銷換取的;但是同時,Switch-Base在參數量比T5-Large大了10倍的情況下,效果比T5-Large要差一些。
所以我們不能單純從參數規模來衡量一個網絡的效果,需要通過參數量和計算量來綜合對比,需要我們探索一種新的指標,綜合考慮內存和算力開銷來評估一個模型。
另外,從Switch Transformer 1.6萬億模型來看,其計算量只有稠密T5 130億參數的10%,參數量是其100倍;如果從每個參數消耗的算力來計算,1.6萬億稀疏模型只是稠密的千分之一,即1.6萬億參數的Switch Transformer的計算量相當于10億參數的稠密的Transformer。
那么從訓練角度來看,MoE大模型的計算量較少,重點是做好模型參數的切分,從switch transformer的實踐看,主要使用數據并行+MoE并行的組合;而稠密的Transformer計算和通信量非常大,所以盤古-α需要在2K張卡上進行訓練,同時也需要復雜的pipeline并行/算子級模型并行/數據并行等并行切分策略來確保2k集群的算力能被充分利用,個人認為訓練挑戰更大。
從推理的角度看,MoE的模型參數量非常大,我覺得可能需要通過蒸餾/量化等手段進行壓縮才更適合使用,挑戰很大,也是MoE模型推廣面臨的障礙。
快手的1.9萬億參數網絡,是一種高維稀疏推薦網絡,拿Google Wide&Deep來對比更為恰當。快手推薦網絡的優化,應該是在后面的DNN層用了Transformer結構,而模型頭部的Embedding部分還是保持和傳統深度學習推薦網絡類似(沒有找到相關論文,不對請指正)。這類型網絡,為了表達高維稀疏特征,會有一個超級大的Embedding,參數主要是集中在頭部的特征Embedding部分。這種類型網絡的訓練方式和前面講的完全不同,核心技術是Embedding的模型并行,以及CPU/NPU的協同計算和存儲。華為諾亞實驗室在今年SIGIR 2021上發表的“ScaleFreeCTR: MixCache-based Distributed Training System for CTR Models with Huge Embedding Table”是目前一種最好的訓練方案之一,也將會在MindSpore上開源。這里就不再展開分析。
除了Transformer這種算法結構外,還是有CNN類的超大模型,也可以分成兩類,這兩類模型也是稠密的,參數量和計算量是成正比。
超大分類層:超大規模人臉識別、圖像分類網絡,其典型特征是CNN特征抽取之后的FC分類層超級大。例如千萬ID的人臉識別,FC層的參數規模就達到了50億。
超大Activation:遙感和超高分辨率圖像處理,這類網絡參數量不大,和傳統CNN的參數量類似,在百M級別。但是這種模型的輸入數據以及計算過程中的Activation非常大。以遙感為例,平均輸入樣本的分辨率就有[30000, 30000, 4],一個樣本就有3.6GB,大的圖像有10GB以上,中間層Activation也是GB級別的大小。
所以,總的來說在NLP、多模態、推薦、圖像處理領域都有大模型,目前業界比較火熱討論的主要是基于Transformer+MoE結構的NLP及多模態大模型,我們期望通過這篇文章,讓小伙伴能了解這些模型在計算上的差異。
尋求報道、約稿、文案投放:
添加微信xixiaoyao-1,備注“商務合作”
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
總結
- 上一篇: 训练大型神经网络方法总结
- 下一篇: 卖萌屋招人啦!