GPU訓Llama 3.1瘋狂崩潰,竟有大廠用CPU服務器跑千億參數(shù)大模型?
馬斯克19天建成由10萬塊H100串聯(lián)的世界最大超算,已全力投入Grok 3的訓練中。
與此同時,外媒爆料稱,OpenAI和微軟聯(lián)手打造的下一個超算集群,將由10萬塊GB200組成。
在這場AI爭霸賽中,各大科技公司們卯足勁加大對GPU的投資,似乎在暗示著擁有更多、更強大的GPU,就能讓自己立于不敗之地。
然而,這種對高端GPU的狂熱追求,并非在所有情況下,都是完美無缺的解決方案。
圖片
Pytorch之父表示,技術(shù)報告中暗藏了很多基礎設施的有趣細節(jié),包括如何并行化,如何讓系統(tǒng)更可靠等等
就拿穩(wěn)定性來說,在Llama 3.1訓練的54天里,Meta的1.6萬塊H100集群總共遇到了419次意外中斷,相當于平均每3小時發(fā)生一次。
而在這之中,有148次(30.1%)是由于各種GPU故障引起的。
相比之下,由CPU故障引發(fā)的中斷,只有2次。
圖片
另一方面,想要把Llama 3.1 405B跑起來,還得搭配2臺8×H100的DGX工作站才行——即1280GB的顯存。
曾經(jīng)有位勇士嘗試用一張4090運行,結(jié)果等了30分鐘,模型才緩緩吐出一個「The」。
完整的回復,花了整整20個小時
熟悉模型的訓練和推理的朋友都知道,這些事情一點都不奇怪。
集群搭建(GPU配置、網(wǎng)絡設計、軌道優(yōu)化等)、集群管理(實時監(jiān)控、故障排除等)……個個都是「攔路虎」。
對于缺乏相關(guān)經(jīng)驗和資金的公司來說,該怎么辦?
圖片
最近,浪潮信息的研發(fā)工程師,僅靠4顆CPU,就讓千億參數(shù)的「源2.0」在通用服務器上跑起來了!
面對用Java編寫程序的代碼任務,「源2.0」非常迅速地給出了結(jié)果。
再給它上一道推理題——船邊掛著軟梯,離海面2米,海水每小時漲半米,幾小時海水能淹沒軟梯?
同樣,AI幾乎0延遲給出了詳細的解題步驟和答案。
用通用服務器運行千億參數(shù)大模型,可謂是前無古人,這一領域的積累完全是空白,沒有任何經(jīng)驗可借鑒。
浪潮信息,究竟是怎么做到的?
用4顆CPU,撬動千億參數(shù)大模型
若要在單臺服務器中,實現(xiàn)千億參數(shù)大模型的推理,包含了2個主要階段,均對計算能力提出了硬性需求。
首先,是預填充階段,也叫做前向傳播階段。
這一階段涉及到輸入數(shù)據(jù)的處理、模型參數(shù)第一次讀取。
比如,當你輸入「給我寫一篇有關(guān)AI的文章」提示,預填充階段便會將問題中所有token、模型參數(shù),一次性輸入計算。
有時,這一輸入可能是幾個字,也可能是幾千個字,或者是一本著作。
第一階段的計算需求有多大,主要取決于我們輸入的長度。
而在計算第一個token過程中,由于模型首次加載,會在內(nèi)存中存放全部的權(quán)重參數(shù),以及KV Cache等數(shù)據(jù)。
這是模型參數(shù)本身所占內(nèi)存空間的2-3倍。
對于千億參數(shù)模型來說,大量的參數(shù)和數(shù)據(jù)輸入,需要在強大計算單元中處理。對此,它需要支持向量化指令集、矩陣計算指令集,來實現(xiàn)大量的矩陣乘法和張量運算。
其次,是解碼階段,即在問題全部輸入之后,模型開始輸出結(jié)果的階段。
在這個階段,對大模型唯一要求便是,輸出盡可能快。同時,挑戰(zhàn)不再是算力挑戰(zhàn),轉(zhuǎn)而為「數(shù)據(jù)搬運」的挑戰(zhàn)。
它包含了兩部分「數(shù)據(jù)搬運」:
- 預填充階段生成的大量KV Cache,需要從顯存/內(nèi)存,搬運到計算單元中(工作量非常大)
- 模型參數(shù)本身的搬運
這些搬運對大模型的計算和推理速度,起到了一個決定性的作用。數(shù)據(jù)搬運很快,LLM吐字的速度也會快。
LLM輸出主要通過KV Catch,逐一生成token,并在每步生成后存儲新詞塊的鍵值向量。
因此,千億大模型的實時推理,服務器需要具備較高的計算能力,以及較高的存儲單元到計算單元的數(shù)據(jù)搬運效率。
總而言之,在大模型推理的兩階段中,有著截然不同的計算特征,需要在軟硬件方面去做協(xié)同優(yōu)化。
GPU不是萬能的
傳統(tǒng)上,GPU因其具備優(yōu)越的并行處理能力,一舉成為了AI訓練和推理的首選。
成本
然而,高端GPU服務器在市場中經(jīng)常出現(xiàn)供不應求,極難獲取的現(xiàn)象。
僅有資金雄厚的科技巨頭們,諸如微軟、谷歌,才能夠承擔起這筆費用。
另一方面,不僅買不起,更是用不起。
基于GPU的云服務租用,在推理任務中的代價卻是高昂的。對于科研人員和應用廠商來說,需要實現(xiàn)更高的成本效益,就得另謀他路。
顯存
此外,GPU最大的劣勢之一在于,顯存容量受限。
當前業(yè)界LLM的網(wǎng)絡架構(gòu),已從GPT逐漸走向MoE。通向AGI的大模型參數(shù)規(guī)模,只會呈指數(shù)級增長。
這意味著,閉源/開源主流模型的尺寸只會越來越大,千億參數(shù),甚至萬億參數(shù)模型將會成為主流。
對于百億參數(shù)模型,20-30GB顯存就夠了。然而,若想跑千億參數(shù),大約需要200-300GB的顯存空間。
目前主流的AI芯片,顯存通常只有幾十GB,顯然放不下這么大的模型。(目前最強的AI芯片也沒還沒達到200GB)
圖片
被低估的通用服務器
GPU不行,那就從CPU入手。
雖然目前還搞不定模型的大規(guī)模訓練,但通用服務器在推理任務上,卻意外有著不小的優(yōu)勢。
在具體實踐的過程中,浪潮信息的工程師們分別從硬件資源和算法層面入手,攻克了一個個「攔路虎」。
超大內(nèi)存+高速帶寬
算力方面,目前領先的服務器CPU都已經(jīng)具備了AI加速功能。
類似于GPU的Tensor core,AMX高級矩陣擴展可以將低精度的計算做加速,編成指令集給CPU的核,利用專用的核做加速。
算法方面,浪潮信息的通用服務器可同時支持PyTorch、TensorFlow等主流AI框架,以及DeepSpeed等流行開發(fā)工具,滿足了用戶更成熟、易部署、更便捷的開放生態(tài)需求。
通信方面,全鏈路UPI(Ultra Path Interconnect)總線互連的設計,則實現(xiàn)了CPU之間高效的數(shù)據(jù)傳輸:
- 允許任意兩個CPU之間直接進行數(shù)據(jù)傳輸,減少了通信延遲
- 提供了高傳輸速率,高達16GT/s(Giga Transfers per second)
圖片
此外,浪潮信息的研發(fā)工程師還優(yōu)化了CPU之間、CPU和內(nèi)存之間的走線路徑和阻抗連續(xù)性。
依據(jù)三維仿真結(jié)果,他們調(diào)整了過孔排列方式,將信號串擾降低到-60dB以下,較上一代降低了50%。
并且,通過DOE矩陣式有源仿真,找到了通道所有corner的組合最優(yōu)解,讓算力性能可以得到充分發(fā)揮。
內(nèi)存方面,可以說是通用服務器的最大優(yōu)勢了。
- 容量
對于4路服務器來說,只需給每顆CPU插上8根32GB內(nèi)存,就能輕松達到1TB。插滿之后甚至可以擴展到16TB,最大可支持萬億參數(shù)的模型。
- 帶寬
搭配DDR5的內(nèi)存,則可以實現(xiàn)4800MHz × 8bit × 8通道 × 4顆 ÷ 1024 = 1200GB/s的理論上帶寬。
實測結(jié)果顯示,讀帶寬為995GB/s、寫帶寬為423GB/s,以及讀寫帶寬為437GB/s。
這個數(shù)據(jù),對于一些搭載GDDR顯存的GPU或加速卡,可以說是毫不遜色。
圖片
但僅靠硬件遠遠不夠
僅僅依靠硬件創(chuàng)新,是遠遠不夠的,CPU很難進行大模型算法的大規(guī)模并行計算。
正如開篇所述,大模型對通信帶寬的要求是非常高的,無論是數(shù)據(jù)計算、計算單元之間,還是計算單元與內(nèi)存之間。
如果按照BF16精度計算,想要讓千億大模型的運行時延小于100ms,內(nèi)存和計算單元之間的通信帶寬,就至少要達到2TB/s以上。
不僅如此,對于基于擅長大規(guī)模并行計算的加速卡設計的AI大模型,通用服務器的處理器與之并不適配。
原因很明顯:后者雖然擁有高通用性和高性能的計算核心,但并沒有并行工作的環(huán)境。
通常來說,通用服務器會將先將模型的權(quán)重傳給一個CPU,然后再由它去串聯(lián)其他CPU,實現(xiàn)權(quán)重數(shù)據(jù)的傳輸。
然而,由于大模型在運行時需要頻繁地在內(nèi)存和CPU之間搬運算法權(quán)重,這樣造成的后果就是,CPU與內(nèi)存之間的帶寬利用率不高,通信開銷極大。
圖片
如何解題?用算法創(chuàng)新
針對以上難題,浪潮信息提出了「張量并行」(Tensor Parallel)和「NF4量化」兩項技術(shù)創(chuàng)新,成功實現(xiàn)了千億大模型Yuan2.0-102B的實時推理。
根據(jù)性能分析結(jié)果,可以清晰地看到模型中不同部分的計算時間分布——
線性層運行時間占比50%,卷積運行時間占比20%,聚合通信時間占比20%,其它計算占比10%。
注意,在整個推理過程中,計算時間占比達到了80%!
跟使用多個PCIe的AI加速卡相比,這就形成了鮮明的對比——后者的通信開銷可能高達50%,從而導致嚴重的算力浪費。
圖片
Yuan2.0-102B模型推理性能分析結(jié)果圖
張量并行
所謂張量并行,就先將卷積算子進行張量切分,然后把大模型中的注意力層和前饋層的矩陣計算權(quán)重,分別輸入到多個處理器的內(nèi)存中。
如此一來,通用服務器中的4顆CPU便可同時獲取算法權(quán)重,進行計算加速。
不過,張量并行對模型參數(shù)的切分粒度較細,要求CPU在每次張量計算后都要進行數(shù)據(jù)同步。
對于這個需求,前文提到的全鏈路UPI總線互連技術(shù),完全可以滿足(通信帶寬高達16GT/s)。
最終,這種協(xié)同并行工作,直接讓計算效率提升了4倍!
圖片
NF4量化
至于內(nèi)存帶寬不足的問題,則需要在不影響精度的情況下對模型進行「瘦身,也就是量化。
其優(yōu)勢在于,一方面可以將LLM參數(shù)量化成低比特數(shù)據(jù),權(quán)重會變小。另一方面,權(quán)重縮小之后,在計算時傳輸?shù)臄?shù)據(jù)量也會變小。
這里,浪潮信息采用了一種并不多見的分位數(shù)量化方法——NF4(4位NormalFloat)。
圖片
NF4量化方法可將Yuan2.0-102B的尺寸壓縮到原來的1/4
具體來說,NF4的核心思想是,確保量化區(qū)間內(nèi)輸入張量的值數(shù)量相等。
這個特點,恰恰非常適合呈現(xiàn)近似正態(tài)分布的LLM權(quán)重。
由于可以通過調(diào)整標準差來適配量化數(shù)據(jù)類型的范圍,NF4相較于傳統(tǒng)的4位整數(shù)或4位浮點數(shù)量化,可以獲得更高的精度。
如此一來,量化之后的模型既能滿足精度需求,又能大幅降低大規(guī)模并行計算的訪存數(shù)據(jù)量,從而達到了實時推理的解碼需求。
整數(shù)或浮點數(shù)量化方法的數(shù)據(jù)間隔通常是平均分布或指數(shù)分布的
為了進一步壓縮模型的權(quán)重參數(shù),團隊還采用了嵌套量化(Double Quant)技術(shù)。
這是在NF4量化基礎上,進行了二次量化。
因為NF4量化后會產(chǎn)生大量的scale參數(shù),如果使用32位浮點數(shù)(FP32)存儲,會占用大量內(nèi)存。
對于一個千億參數(shù)的LLM,若以每64個參數(shù)作為一個量化塊(block size=64)來計算,僅存儲scale參數(shù)就需要額外的6GB內(nèi)存:(100B ÷ 64) × 4 = 6GB。
團隊通過將這些scale參數(shù)量化到8位浮點數(shù)(FP8),顯著減少了所需的存儲空間。
在采用256為量化塊大?。╞lock size=256)的情況下,存儲所有scale參數(shù)所需的額外空間僅為1.57GB:(100B ÷ 64 ÷ 256) × 4 + (100B ÷ 64) × 1 = 1.57GB.
通過嵌套量化,模型的每個權(quán)重參數(shù)最終僅占用4字節(jié)的內(nèi)存空間,比原始FP32節(jié)省了大量的內(nèi)存占用空間。
與此同時,它將從內(nèi)存到CPU的數(shù)據(jù)搬運效率,提高了4倍。
這樣的優(yōu)化顯著減輕了內(nèi)存帶寬對Yuan2.0-102B模型推理解碼效率的限制,從而進一步提升了模型的推理性能。
所謂通用,就是讓大家都用上
到這里,浪潮信息就成功交卷了!
通過系統(tǒng)優(yōu)化,浪潮信息的NF8260G7,在業(yè)界首次實現(xiàn)了僅基于通用處理器,支持千億參數(shù)大模型的運行。
至此,通用算力可支持的AI大模型,參數(shù)規(guī)模突破了千億,徹底填補了行業(yè)空白,成為了企業(yè)擁有AI的新起點。
千億參數(shù)AI的模型的部署,從此有了性能更強、成本更經(jīng)濟的選擇;AI大模型應用,可以和云、大數(shù)據(jù)、數(shù)據(jù)庫,實現(xiàn)更緊密的融合。
圖片
科技進步的最終目的,一定是落入凡間。
放眼當下,AIGC已經(jīng)滲透進千行百業(yè)。AI已經(jīng)以驚人的速度,滲透進了每一個計算設備。
2024年1-4月,國內(nèi)大模型的中標數(shù)量,已經(jīng)超越了2023全年總數(shù),中標披露金額已經(jīng)達到了2023年全年的77%。
在金融行業(yè)、醫(yī)院門診部,企業(yè)的IT部門,從業(yè)者都發(fā)現(xiàn)了這一點:傳統(tǒng)行業(yè)的算力基礎設施,已經(jīng)不夠用了!
如今,千億參數(shù)大模型,是千行百業(yè)智能涌現(xiàn)的關(guān)鍵。而通用算力能否運行千億參數(shù)大模型,正是衡量其能否支撐千行百業(yè)智能涌現(xiàn)的關(guān)鍵。
浪潮信息的創(chuàng)舉,讓互聯(lián)網(wǎng)、金融、醫(yī)療等行業(yè)客戶可實現(xiàn)高效部署,首次投入就可節(jié)約80%以上的建設成本。
無論是金融防欺詐、財務數(shù)據(jù)分析、企業(yè)CRM營銷洞察、醫(yī)療智能診斷、個性化診療方案、教育培訓等等,都將見證AI的廣泛應用。
從此,一切計算皆AI。