馬斯克燒60億美元難題,國內(nèi)大廠有解?開源MoE模算效率黑馬登場,3.7B參數(shù)單挑Llama 3-70B
如今,想訓(xùn)個SOTA的大模型,不僅缺數(shù)據(jù)和算力,甚至連電都不夠用了。
最近馬斯克就公開表示,因為苦于買不到足夠的芯片,xAI只能推遲Gork 2的訓(xùn)練和發(fā)布。
Grok 3及更高版本,甚至需要10萬個H100,按每臺H100售價3萬美元來算,僅芯片就要花掉28億美元。
而且在未來幾年,xAI在云服務(wù)器上可能就要花費100億美元,直接逼得馬斯克自謀生路,開建起自己的「超級計算工廠」。
那么問題來了,有沒有一種可能,只用更少的算力,就讓大模型實現(xiàn)更高的性能?
就在5月28日,浪潮信息給業(yè)界打了個樣——全面開源MoE模型「源2.0-M32」!
簡單來說,源2.0-M32是一個包含了32個專家(Expert)的混合專家模型,總參數(shù)量達到了400億,但激活參數(shù)僅37億。
開源項目地址:https://github.com/IEIT-Yuan/Yuan2.0-M32
基于算法、數(shù)據(jù)和算力方面的全面創(chuàng)新,源2.0-M32的模型性能得到了大幅提升,一句話總結(jié)就是:模更強,算更優(yōu)!
在業(yè)界主流的基準評測中,它的性能也能直接全面對標Llama 3-70B!
32個小模型,挑戰(zhàn)700億Llama3巨獸
話不多說,先看跑分:
直觀可見,在MATH和ARC-Challenge基準測試中,源2.0-M32的準確率分別為55.89和95.8,超過了Llama 3-70B。
甚至在編碼、MMLU中,M32實現(xiàn)了與Llama 3-70B相當?shù)男阅堋?/span>
在代碼生成任務(wù)中,源2.0-M32的性能僅次于DeepseekV2和Llama 3-70B,并遠遠超過其他模型。
與DeepseekV2相比,M32模型每個token使用的激活參數(shù)不到其1/4,計算量不足其1/5,而準確率達到其90%以上的水平。
而與Llama 3-70B相比,模型激活參數(shù)和計算量的差距更大,但M32仍達到了其91%的水平。
在代碼能力上,源2.0-M32不僅通過了近3/4的HumananEval測試題,而且在經(jīng)過14個樣本的學(xué)習(xí)之后,準確率更是提升到了78%。
就數(shù)學(xué)任務(wù)結(jié)果來看,源2.0-M32在MATH基準測試中得分最高。
與Mixtral-8×7B相比,M32的激活參數(shù)只有它的約0.29倍,但性能卻高出了近一倍。
在GSM8K基準上,M32的性能與Llama 3-70B非常接近,并且超過了其他模型。
比如在回答「100-200之間,所有7的倍數(shù)的和是多少」的問題中,M32和Llama 3-70B的PK結(jié)果如下。
因為對中文理解上的優(yōu)勢,M32成功給出了正確答案,而Llama 3-70B就不幸翻車了。
當然,面對英文的數(shù)學(xué)題,M32也沒在怕的。
注意,這道題的題干中提出了一個要求——分母應(yīng)該是有理數(shù),M32非常準確地獲知了這一點,因而把1/√3變成了√3/3。
這就有點意思了。
下面這道題,要求計算997的的逆元,也即使997乘以某個數(shù),讓它對100的求余為1。
源2.0-M32非常準確地理解了這個過程,而且通過一步步的迭代,準確地求解出了一個具體數(shù)值。
而看這邊的Llama 3-70B,很明顯就沒有理解題干,也沒有構(gòu)建出準確的求解關(guān)系,結(jié)果也是錯的。
在多語言測試MMLU中,源2.0-M32的表現(xiàn)雖然不及規(guī)模更大的模型,但優(yōu)于Mixtral-8×7B、Phi-3-mini和Llama 3-8B。
最后,在推理挑戰(zhàn)中,源2.0-M32在解決復(fù)雜科學(xué)問題方面表現(xiàn)出色,同樣超越了Llama 3-70B。
創(chuàng)新的架構(gòu)和算法
源2.0-M32研發(fā)的初衷,就是為了大幅提升基礎(chǔ)模型的模算效率。
為了提升模型能力,很多人都會沿用當前的路徑,但在浪潮信息看來,要讓模型能力真正快速提升,就一定要從算法層面、從模型架構(gòu)層面做探索和創(chuàng)新。
從模型名字中便可以看出,源2.0-M32是基于「源2.0」模型構(gòu)建的,是包含32個專家的MoE模型。
它沿用并融合局部過濾增強的注意力機制(Localized Filtering-based Attention),通過先學(xué)習(xí)相鄰詞之間的關(guān)聯(lián)性,然后再計算全局關(guān)聯(lián)性的方法,更好地學(xué)習(xí)到了自然語言的局部和全局的語言特征。
因此,它對于自然語言的關(guān)聯(lián)語義理解更準確,模型精度就得到了提升。
論文地址:https://arxiv.org/pdf/2405.17976
圖1左展示了「源2.0」架構(gòu)通過引入MoE層實現(xiàn)模型Scaling,其中MoE層取代了源2.0中的前饋層。
圖1右放大顯示了M32的MoE層的結(jié)構(gòu),每個MoE層由一組單獨的密集前饋網(wǎng)絡(luò)(FFN)作為專家組成。
專家之前的門控網(wǎng)絡(luò)將輸入的token,分配給總共32個相關(guān)的專家中的2個(圖中以4個專家做為示例)。
源2.0-M32結(jié)構(gòu)示意圖,其中MoE層取代了源2.0中的前饋層
其中,選擇32個專家的原因是,比起8個、16個專家,32個專家的訓(xùn)練損失最低,效果最好。
最終,雖然在推理過程中,32個專家每次只激活2個,激活參數(shù)只有37億,但是M32在處理邏輯、代碼方面,精度可以對標Llama 3-70B。
全新門控網(wǎng)絡(luò)Attention Router
在LFA之后,針對MoE結(jié)構(gòu)中核心的門控網(wǎng)絡(luò),團隊做了另外一個算法創(chuàng)新。
需要明確的是,混合專家模型由兩個核心部分組成:一是門控網(wǎng)絡(luò)(Gate),二是若干數(shù)量的專家(Expert)。
這當中,「門控機制」起著最關(guān)鍵的作用。
它通常會采用神經(jīng)網(wǎng)絡(luò),根據(jù)輸入的數(shù)據(jù)特征,為每個專家模型分配一個權(quán)重,從而決定哪些專家模型對當前任務(wù)更為重要。
簡言之,通過計算token分配給各個專家的概率,來選擇候選專家參與計算。
顯然,門控網(wǎng)絡(luò)的選擇機制,對于模型的推理能力、運行效率起著關(guān)鍵的作用。
當前,流行的MoE結(jié)構(gòu)大都采用簡單的調(diào)度策略——將token與代表每個專家的特征向量進行點積,隨后挑選點積結(jié)果最大的專家。
然而,這一方法的弊端是,只將各個專家特征向量視為獨立的,進而忽略了它們之間的相關(guān)性,無疑會降低模型的精度。
為了攻克這一難題,源2.0-M32創(chuàng)新性提出了新型的算法結(jié)構(gòu):基于注意力機制的門控網(wǎng)絡(luò)(Attention Router),創(chuàng)造了一種專家間協(xié)同性的度量方法。
新策略可以在計算過程中,將輸入樣本中任意兩個token,通過一個計算步驟直接聯(lián)系起來。
這樣一來,就可以解決傳統(tǒng)的門控機制中,選擇兩個或多個專家參與計算時關(guān)聯(lián)性缺失的問題。
最終選擇的時候,這種策略選擇的專家不僅絕對數(shù)值會比較高,兩個專家協(xié)同的時候,自身的屬性也會更相似。
舉個通俗易懂的栗子:
就好比在一個醫(yī)院中,主任要去做手術(shù),一定是選擇自己最這個領(lǐng)域最專業(yè)、且自己最熟悉的組員,這樣大家的配合程度才會更好。
果然,與經(jīng)典路由結(jié)構(gòu)的模型相比,Attention Router讓LLM準確率提升了3.8%。
總之,Attention Router算法可以讓使得專家之間協(xié)同處理數(shù)據(jù)的水平和效能大為提升,從而實現(xiàn)以更少的激活參數(shù),達到更高的智能水平。
算力消耗只需700億Llama3的1/19
算力層面,源2.0-M32綜合運用了流水線并行+數(shù)據(jù)并行的策略,顯著降低了大模型對芯片間P2P帶寬的需求,為硬件差異較大訓(xùn)練環(huán)境提供了一種高性能的訓(xùn)練方法。
正是基于算法和算力上創(chuàng)新優(yōu)化,源2.0-M32實現(xiàn)了在三個階段——預(yù)訓(xùn)練、推理和微調(diào)過程中,超高的模算效率。
這一突破,讓MoE模型性能媲美Llama 3-70B,也顯著降低了單token訓(xùn)練和推理所需的算力資源。
訓(xùn)練
在智能水平相當?shù)那闆r下,源2.0-M32微調(diào)/訓(xùn)練時每token所需的算力資源最低——僅為22.2 Gflops/token。
相比起Llama 3-70B的420Gflops/token,源2.0-M32的需求只有其1/19。
推理
在相同條件下進行測試后可以發(fā)現(xiàn),M32處理每token所需算力為7.4Gflops,而Llama 3-70B所需算力為140Gflops。
也就是說,源2.0-M32的推理算力消耗也僅是Llama 3-70B的1/19。
微調(diào)
在微調(diào)階段,M32只需消耗約0.0026PD(PetaFlops-Day),就可以完成對1萬條平均長度為1024 token的樣本進行全量微調(diào),而Llama3則需消耗約0.05PD的算力。
更直觀來講,源2.0-M32在支持BF16精度的2顆CPU服務(wù)器上,約20小時即可完成這1萬條樣本的全量微調(diào)。
而同樣條件之下的Llama 3-70B,完成全量微調(diào)約為16天。
近50%訓(xùn)練數(shù)據(jù)都是代碼
眾所周知,豐富、全面、高質(zhì)量的數(shù)據(jù)集,是LLM預(yù)訓(xùn)練核心。
這次,源2.0-M32使用了2萬億(2T)token進行訓(xùn)練。
且代碼數(shù)據(jù)占比最高,幾乎近一半(47.46%),而且從6類最流行的代碼擴充至619類,并通過對代碼中英文注釋的翻譯,將中文代碼數(shù)據(jù)量增大至1800億token,占比約8.0%。
此外,占比第二高的預(yù)料數(shù)據(jù)來自中英文互聯(lián)網(wǎng)(25.18%),有效提升了模型的知識實時性與跨領(lǐng)域、跨語言應(yīng)用效果。
之所以加入了如此之多的代碼數(shù)據(jù),是因為其本身就具有非常清晰的邏輯性。
當模型在海量的代碼數(shù)據(jù)上完成「高強度」訓(xùn)練之后,不僅可以在代碼生成、代碼理解、代碼推理上取得出色的表現(xiàn),而且還能在邏輯推理、數(shù)據(jù)求解等方面獲得可觀的提升。
源2.0-M32的性能隨著訓(xùn)練數(shù)據(jù)的增加而增強,且過程十分穩(wěn)定
模更強,算更優(yōu),是終解!
可以看出,浪潮信息的MoE模型,在榜單上基本上達到了Llama 3的水平,甚至有些可以超越Llama 3。
然而最大的不同,就是浪潮信息顯著降低了單個token在訓(xùn)練推理和微調(diào)過程中的算力消耗。
由此,大模型訓(xùn)練和應(yīng)用過程中的門檻也隨之降低,高智能水平的模型就能更順利地普及到千行百業(yè)當中去。
浪潮信息之所以選擇攻堅這個問題,也是他們長期「深根沃土」,服務(wù)行業(yè)客戶的深刻認知。
在浪潮信息看來,如今大模型智能水平提升,但背后所面臨的算力消耗,卻大幅攀升!
對企業(yè)落地,是極大的困難和挑戰(zhàn)。
由此,找到一種「模型水平高、算力門檻低」的技術(shù)方式就變得很重要。這也是我們在開頭所想強調(diào)的「模算效率」。這個指標不僅是大模型創(chuàng)新的關(guān)鍵,也是企業(yè)真正應(yīng)用大模型的關(guān)鍵。
為什么這么說?讓我們來舉個例子。
如果Llama 3-70B的每個token推理是140GFlops,用這個實際精度除以每token的推理算力,就可以得到一個模型的算力效率。
結(jié)果顯示,Llama 3的模型精度很高,但推理時的算力開銷將極大。這也就意味著,在單位算力下,它的相對精度是比較差的。
與之形成鮮明對比的,就是Mistral的8×7B模型。雖然它和Llama 3有較大差距,但它激活專家的參數(shù)量較小,所以模算效率反而更高。
追求模算效率,因為它意義非常深遠。
比如,一個5000億的Dense模型,訓(xùn)練20T token的話,需要的算力開銷是巨大的。因此,如果能獲得很高的模算效率,我們就能在更多token上,訓(xùn)練更大參數(shù)的模型。
第二點,從推理上來說,模算效率也極有意義。企業(yè)類用戶的推理都需要本地化部署,需要購買算力設(shè)備。
在這種情況下,給定精度水平下的推理回報就會顯出差別。
比如Mistral 8×22B和Llama 3-70B,二者的精度差別雖然不大,但前者的模算效率就會很高,
此前,業(yè)內(nèi)更加關(guān)注的是單個維度,即平均精度的提升。
而在大模型進入快速落地的當下,我們顯然就需要從模算效率上來考慮精度和開銷了。
此外,模算效率的提升也讓LLM微調(diào)的門檻和成本大幅降低,這就能讓高智能模型更加易于企業(yè)應(yīng)用開發(fā),實現(xiàn)智能落地。
尤其是考慮到現(xiàn)在,「微調(diào)」已成企業(yè)應(yīng)用大模型的關(guān)鍵環(huán)節(jié)。
因為它能結(jié)合特定業(yè)務(wù)場景和專業(yè)數(shù)據(jù)對LLM完成優(yōu)化,幫助LLM在專用場景中提高生成準確性、可解釋性,改善「幻覺」問題。
一如既往,全面開源
堅持開源,也是浪潮信息一直以來的傳統(tǒng)。
2021年,這家公司便開始布局大模型算法開發(fā),同年首次發(fā)布了2457億參數(shù)的「源1.0」中文語言大模型,并全面開源,在業(yè)界樹立了千億模型的新標桿。
值得一提的是,「源1.0」的MFU高達44%,可見算力利用率非常高。
而當時GPT-3的MFU只有22%,也就是說有近80%的算力被浪費掉了。
彼時的浪潮信息團隊還開源近5TB的中文數(shù)據(jù)集,在國內(nèi)100+個大模型廠商中,有近50個LLM的訓(xùn)練中得到應(yīng)用。
之后,歷時近2年研發(fā),2023年,浪潮信息將千億參數(shù)基礎(chǔ)大模型從1.0升級到「源2.0」。
「源2.0」包含了三種參數(shù)規(guī)模,1026億、518億、21億,并在代碼編程、邏輯推理、數(shù)學(xué)計算等領(lǐng)域展現(xiàn)出領(lǐng)先的性能。
論文地址:https://arxiv.org/ftp/arxiv/papers/2311/2311.15786.pdf
這一次,升級后的2.0版本同樣采取了「全面開放開源」的策略,全系列模型的參數(shù)、代碼,均可免費下載和商用。
「源2.0」也在不斷進行版本更新,并針對代碼能力、數(shù)理邏輯、推理速度等方面完成深度優(yōu)化。
浪潮信息還提供了豐富的預(yù)訓(xùn)練、微調(diào)以及推理服務(wù)腳本,并與流行框架工具全面適配,比如LangChain、LlamaIndex等。
正如前面所述,「源2.0-M32」 將繼續(xù)采用全面開源策略,又將給開源社區(qū)添磚增瓦,留下濃墨重彩的一筆。
首席科學(xué)家吳韶華表示,「當前業(yè)界大模型在性能不斷提升的同時,也面臨著所消耗算力大幅攀升的問題,這也對企業(yè)在落地應(yīng)用大模型時帶來了極大的困難和挑戰(zhàn)」。
降低應(yīng)用門檻
除了全面開源之外,浪潮信息還通過發(fā)布方便可用的工具,進一步降低了大模型應(yīng)用的門檻。
今年4月,企業(yè)大模型開發(fā)平臺「元腦企智」(EPAI)正式推出,為企業(yè)LLM訓(xùn)練提供了更加高效、易用、安全的端到端開發(fā)工具。
從數(shù)據(jù)準備、模型訓(xùn)練、知識檢索、應(yīng)用框架等系列工具全覆蓋,且支持多元算力和多模算法。
EPAI提供了非常豐富的基礎(chǔ)數(shù)據(jù),規(guī)模達1億+,同時提供自動化的數(shù)據(jù)處理工具,幫助行業(yè)伙伴和企業(yè)客戶整理行業(yè)數(shù)據(jù)和專業(yè)數(shù)據(jù),減少針對不同落地場景中出現(xiàn)的「幻覺」。
對于企業(yè)來說,甚至是企業(yè)小白用戶,EPAI可以幫助他們高效部署開發(fā)AI應(yīng)用,能夠釋放極大的商業(yè)價值。
如今,源2.0-M32也將集成到EPAI大模型庫,幫助企業(yè)加快AI應(yīng)用落地的步伐。
在算力愈發(fā)緊俏的當下,浪潮信息用「模更強 算更優(yōu)」的M32交出了答卷,讓整個業(yè)內(nèi)為之振奮。
接下來,我們等待它的更多驚喜!