? 大模型最初叫Large languagemodel,LLM,即大規模語言模型,其沒有準確的定義,在2018年一般定義為參數達到數十億以上的模型。如今這個定義應該是1000億參數以上的模型,它是與預訓練(Pre-Training Model, PTM)同時出現的,彼此相輔相成,大模型自2018年Bert和GPT的問世而宣告正式出現。
? 大模型的海量參數意味著其瘋狂消耗存儲成本,基本上能夠對應大模型的芯片單單存儲成本都在2000美元以上,這意味著真正的大模型不可能上車。不過汽車行業,超過10億參數的模型或許也能叫大模型,這與真正的大模型有著天壤之別,它又會有什么影響呢?
首先是運算芯片領域,需要更高帶寬的存儲器,非常昂貴的HBM有可能出現在汽車芯片上,這意味著汽車運算芯片價格會超過1000美元;
其次是老舊的針對CNN網絡設計的加速器完全無法使用或效率極低,GPU或基于CPU+GPU的系統更合適,也更能應對未來模型的變化;
最后是PTM讓數據訓練的成本大大降低,數據集的含金量縮水了。
? 要分析大模型或者說Transformer對運算硬件的影響,可以看這篇論文:英偉達與巴克利大學的《Full Stack Optimization of Transformer Inference: a Survey》。論文做了非常詳細的描述,長達45頁,有興趣的可以去看全文。
? 該論文指出Transformer加速器運算中瓶頸主要在CPU,非矩陣運算部分消耗的時間占了總時間的96%。換句話說,CPU遠比加速器重要,Transformer時代,加速器沒有存在的必要,CPU+GPU是最好的選擇。如果非要用加速器的話,也得訂做一個高性能的CPU。
? 另外還得指出,目前大模型都可算是Transformer的一種。 ?
? 大模型進化樹,其根基就是Transformer。Transformer是2017年提出的一個語言模型,最初被用于解決機器翻譯的問題,但隨著研究的深入,Transformer在不同問題,甚至不同領域上大放異彩,在自然語言領域的文本表征、分類、生成、問答等問題上都成為了強勁的解決方案,在視覺領域也很出色。
? 與傳統的CNN聚焦設計相比,Transformer主要由矩陣乘法(矩陣模數)和內存密集型的非線性操作組成。Transformer模型的計算圖和數據流比CNN更復雜,有更多的操作節點,更多的數據流分割和連接。而上一代傳統的汽車領域AI加速器基本都是針對CNN的,無法應對數據流分割,傳統AI加速器都是最大可能地讓數據在運算單元之間流動,減少存儲和讀取,面對數據流分割就無能為力。 ?
上面是Transformer示意圖,編碼器由相同的層堆疊,每層的結構有兩部分,多頭注意力和前饋。解碼器亦由相同的層堆疊,每層的結構為多頭注意力、編碼器-解碼器注意力和前饋。編碼器中的每個元素對整個序列來說都是可見的。解碼器的每一層中有兩個多頭注意力,一個是解碼器的輸入部分作為qkv的自注意力,一個是上一個解碼器層的輸出作為q,最后一個編碼器層的輸出作為kv的編碼-解碼注意力。
? 編碼器層和解碼器層的每一個部分都是殘差塊的形式而且包括了一個layer norm。在編碼器和解碼器的輸入處都有位置編碼,位置編碼和token嵌入相加。Transformer采用的是三角式位置編碼,這就意味著三角函數運算,三角函數運算屬于標量運算,CPU最擅長,AI加速器對此無能為力,AI加速器只能計算矩陣的乘積和累加。即使GPU也需要CPU的大力配合,這也是英偉達一心要自研CPU的原因之一。 ?
? 現在LLM模型的架構都是以Transformer為主,進一步分成Encoder-Only、Decoder-Only、Encoder-Decoder三種,選取了Bert (Encoder),GPT2 (Decoder)這兩個代表模型進行分析。
? 由于大模型參數巨大,即便是H100這樣每片3萬美元的芯片也放不下1750億參數,因此英偉達提出了張量并行的計算方法,這也再次說明真正的大模型上不了車。英偉達論文題目為《Megatron-LM: Training Multi-Billion Parameter Language Models UsingModel Parallelism》。 ?
簡單來說就是給參數模型(即權重模型)豎著切一刀,橫著切一刀,然后插入一個AllReduce。
Attention的多頭計算簡直是為張量模型并行量身定做的,因為每個頭上都可以獨立計算,最后再將結果concat起來。也就是說,可以把每個頭的參數放到一塊GPU上。對三個參數矩陣Q,K,V,按照“列切割”,每個頭放到一塊GPU上,做并行計算。對線性層B,按照“行切割”。切割的方式和MLP層基本一致,其forward與backward原理也一致,這里不再贅述。
? 關于模型切割在此不做深入解析,大家只需要知道目前大模型都是基于多張GPU運算就行。通常是8張GPU加2個CPU作為一個節點node,8張GPU之間用NVLink連接,節點與節點之間用NVIDIAConnect TX-7智能網卡連接,這個網卡可不一般,臺積電7nm工藝,800億個晶體管,400G GPUDirect吞吐量,400G加密加速,4.05億/秒信息率,成本估計也在500美元以上。 ?
典型的AI加速器框架圖,沒有CPU調度任務,加速器就是無頭蒼蠅,沒法工作。
? 模型數據的切割與任務調度的安排都是由CPU來做更合適,GPU不適合這種有中斷分支的計算,但GPU至少可以對應矢量。AI加速器更差,AI加速器基本只能對應張量或者說矩陣,要求數據與數據之間沒有任何關聯。而Transformer有前反饋,也有時序關聯,同時AI加速器需要CPU全力配合,排除那些低效率運算的任務,只做適合自己的任務,CPU的話語權遠高于AI加速器。CPU也需要很高的算力,如特斯拉的HW4.0中的二代FSD,用了多達24核的Cortex-A72,英偉達的Thor至少是32核心的ARM V1。 ?
MOPs就是每秒存取次數,模型越大,MOPs就越高。對于低于1億參數的模型,GDDR6這樣的內存還勉強可以接受,特斯拉和Mobileye EyeQ6H已經采用昂貴的GDDR6。不過大部分廠家還是用廉價的LPDDR5,只能對應1千萬參數的模型,未來必須使用昂貴的HBM。HBM本身不算太昂貴,比GDDR6貴幾倍而已,但一旦用HBM就必須配合臺積電的CoWoS工藝。這個CoWoS工藝產能異常緊張,價格極高,一般只有服務器芯片才會使用。
接下來我們說說預訓練,理解PTM要從人類的學習機制談起,利用深度學習自動學習特征已經逐步取代了人工構建特征和統計方法。但其中一個關鍵問題是需要大量的數據,否則會因為參數過多過擬合。但是這個成本非常高昂,以圖像描述任務為例,MSCOCO數據集只標記了12萬張圖片,每張圖片給出5個標記,總共花費了10.8W美金。而自動駕駛領域每張圖片最少10個標記,數據集是百萬級起跳。
眾所周知,Transformer最初是自然語言處理(NLP)領域的產物,NLP領域采用了自監督學習進行預訓練,其動機是利用文本內在關聯作為監督信號取代人工標注。最初的探索聚焦在淺層預訓練模型獲取詞的語義,比如Word2Vec和Glove,但它們的局限是無法很好地表征一詞多義。自然而然地,就想到了利用 RNN 來提供上下文表征,但彼時的模型表現仍受限于模型大小和深度。
2018 年 GPT 和 BERT 橫空出世,將 NLP 的 PTM 帶入了新時代。這些新模型都很大,大量的參數可以從文本中捕捉到一詞多義、詞法、句法結構、現實知識等信息,通過對模型微調,只要很少的樣例就可以在下游任務上取得驚人的表現。
這種預訓練實際專業的說法是遷移學習(TransferLearning),遷移學習的初衷是節省人工標注樣本的時間,讓模型可以通過已有的標記數據(source domain data)向未標記數據(target domain data)遷移。從而訓練出適用于target domain目標域的模型。需要指出Transfer Learning是機器學習的分支,不需要神經網絡也可以實現的,但現在神經網絡基本與遷移學習合二為一。通俗來講,就是運用已有的知識來學習新的知識,核心是找到已有知識和新知識之間的相似性,用成語來說就是舉一反三。由于直接對目標域從頭開始學習成本太高,我們故而轉向運用已有的相關知識來輔助盡快地學習新知識。
? 遷移學習在深度學習上的應用有兩種策略,但目前這兩種策略的命名還沒有統一。一種策略是微調(finetuning)——其中包括使用基礎數據集上的預訓練網絡以及在目標數據集中訓練所有層;另一種則是凍結與訓練(freeze and train)——其中包括凍結除最后一層的所有層(權重不更新)并訓練最后一層。當然遷移學習并不僅僅局限于深度學習,但目前在深度學習上的應用確實很多。
? 最典型的做法可以參考論文《Image as a Foreign Language: BEIT Pretraining for All Vision andVision-Language Tasks》,微軟亞洲研究院出品。 ?
思路很精簡的,就是把圖片看成語言,與文本一樣,采用生成式自監督方式的預訓練,BEiT-3 利用一個共享的 Multiway Transformer 結構,通過在單模態和多模態數據上進行掩碼數據建模完成預訓練,并可遷移到各種視覺、視覺-語言的下游任務中。通俗地說就是只需要很少的精細標注視頻,用這個精細標注過的數據集訓練一個模型,再用這個模型訓練大量的無標注視頻,最終得到一個更好的權重模型。其原理類似我們學習外語時,遇到不認識的單詞(掩碼數據),我們不需要知道這個單詞的準確意思,我們可以通過以前的經驗來猜測這個詞的意思,把這個猜測的意思作為一個準確的標注。
? 盡管已經取得了很大的成功,但還有一些基本的問題無法解決,我們仍然不清楚隱藏在大量模型參數中的本質,訓練這些龐然大物的巨大計算成本也阻礙了進一步探索大模型的本質,而這一切可能很快就將大模型推到天花板級別,無力再進一步。
審核編輯:劉清
評論