智東西(公眾號:zhidxcom)
作者 | 徐豫
編輯 | 漠影
智東西9月13日消息,百度系統(tǒng)架構(gòu)師、百度智能云AI計算部負責人王雁鵬向媒體解讀了大模型時代的算力成本。為了有效降低AI萬卡集群的算力開支,他提出搭載RDMA網(wǎng)絡、自動并行策略、保證訓練穩(wěn)定性、動態(tài)分配算力、多芯異構(gòu)混訓,共五個方面的解決方案。
過去互聯(lián)網(wǎng)時代,服務器每臺數(shù)萬元,各大廠商光是采購成本就要花費幾個億。高昂的支出促使互聯(lián)網(wǎng)大廠自研服務器,百度也是其中一員,該公司自2011年起涉足計算基礎設施建設。
然而,伴隨深度學習的發(fā)展,GPU集群來到萬卡規(guī)模,大模型時代的算力成本已經(jīng)遠高于人力成本。王雁鵬稱,當下浪費僅僅1%的算力,也是很大的一筆花銷,算力之貴也體現(xiàn)出計算基礎設施的重要性。
近期,不少業(yè)內(nèi)人士認為,“兼容CUDA是AI芯片的決勝點”,但王雁鵬并不認可這個觀點。他解釋道,不少模型兼容CUDA后,只留住了1/3的性能,失去了原有的競爭力。英偉達是基于CUDA構(gòu)建了一個加速庫生態(tài),王雁鵬則認為,其中生態(tài)庫的壁壘才是真正的難點。
一、當前的模型訓練普遍吃掉了超5成算力
來到AI大模型時代,算力的復雜性已從硬件轉(zhuǎn)移到了軟件上,這也導致各大AI開發(fā)者利用算力的難度指數(shù)級上升。據(jù)百度系統(tǒng)架構(gòu)師、百度智能云AI計算部負責人王雁鵬了解,現(xiàn)階段的模型訓練普遍浪費了超5成的算力。
最初的CPU通用計算時代,硬件和軟件之間高度協(xié)同,假設CPU的性能提升了一倍,那么使用該CPU的軟件,其性能也會相應地翻一番。
后續(xù)來到GPU數(shù)值加速計算時代,芯片架構(gòu)更簡單,以專注于提供最大的算力。開發(fā)者們通常利用GPU突出的算力優(yōu)勢,構(gòu)建一系列復雜的加速庫和框架,有針對性地適配不同應用場景。
目前,我們已處于AI大集群超算時代。單一的芯片已經(jīng)不足以獨立解決問題,因此需要大規(guī)模的芯片協(xié)同解決一個問題,GPU集群規(guī)模甚至達到10萬卡。
在王雁鵬看來,上述計算范式的變遷決定了計算體系機構(gòu)的技術發(fā)展,而這種結(jié)構(gòu)上的變化,又催生了云計算的技術和產(chǎn)品格局。“云計算可以看作一種售賣AI基礎設施的形式”,他說道。
打個比方,現(xiàn)在可能只有一塊GPU,但其算力分給了100個人用;或者說一個訓練任務被切分到十萬張卡里運算,這背后需要充足的存儲資源來支撐。
▲有效算力的5大參考指標
如何在大模型時代發(fā)揮出AI大集群的有效算力,王彥鵬給出了一個計算模型訓練過程中有效算力的公式,即有效算力相當于能耗有效率(PUE)、單卡算力有效率(MFU)、并行擴展有效率、有效訓練時間、資源利用這5項數(shù)據(jù)的乘積。
二、從五大維度釋放萬卡集群的GPU算力
為了解決大模型時代算力利用率低的難點,王彥鵬從有效算力公式中的五大方面入手,提出了5個有助于釋放算力潛能的GPU設計理念。
1、為萬卡AI場景設計的RDMA網(wǎng)絡適配AI集群
傳統(tǒng)的IB網(wǎng)絡是為HPC設計的,并不適用于AI集群。這主要是因為兩者的設計理念優(yōu)先級存在沖突,HPC是延遲優(yōu)先,AI則是吞吐優(yōu)先。
據(jù)王彥鵬透露,百度長期基于RDMA網(wǎng)絡構(gòu)建萬卡級別以上的AI集群,以減少內(nèi)存帶寬瓶頸。從數(shù)據(jù)結(jié)果來看,應用RDMA網(wǎng)絡后AI集群的帶寬有效率從60%提升至95%,模型性能則增強了5%到10%。
2、自動并行策略是AI集群最重要的演進范式
百度的自動并行策略搜索有兩個核心策略。
一方面,百度采取了“邊計算邊通信”的方式,節(jié)省數(shù)據(jù)搬運所花費的時間,減少算力和能源損耗。
另一方面,顯存優(yōu)化的切分策略將運算中斷所浪費的時間,控制在幾分鐘內(nèi)。
▲百度通過RDMA網(wǎng)絡支撐AI萬卡集群的訓練
得益于此,百度旗下的模型性能不僅能達到開源模型的130%,也比人工調(diào)優(yōu)的模型效果好。
3、保證穩(wěn)定不間斷的任務運行是一個系統(tǒng)工程
王彥鵬多次強調(diào)了穩(wěn)定性在AI訓練中起到的重要作用。AI訓練的計算任務是同步進行的,如果中途出現(xiàn)故障,萬卡的故障定位是一個非常困難且不可控的事情。
同時,考慮到萬卡規(guī)模的AI集群中斷頻率較高,通常是牽一發(fā)而動全身。王彥鵬提出,“無效訓練時間=故障次數(shù)*故障恢復時間+寫檢查點的時間”。因此,一旦某個點位出現(xiàn)故障,其影響可能被擴大了十萬倍。
▲可以通過3個公式綜合判斷AI集群的訓練效率
據(jù)王彥鵬介紹,百度通過Hang檢測、慢節(jié)點檢測、秒級捕捉檢查點、分鐘級任務恢復等方式,來定位和修復出現(xiàn)故障的單張芯片。目前,百度文心一言大模型的有效訓練時長比例超99%。
4、訓練一體提升資源利用率
目前,主流模型訓練存在以下4個劣勢。
首先在線推理或計算任務當中,系統(tǒng)在峰值負載時的性能是平均負載時的3倍。這意味著系統(tǒng)在設計時預留了較多的算力以應對峰值。但AI集群的波峰和波谷其實較為明顯,這也造成非峰值時資源的大量浪費,后續(xù)在設計上還可以進一步優(yōu)化。
其次,大量微調(diào)模型存在冷熱分布不均的情況。此外,其實有很多計算任務可以通過離線推理實現(xiàn),但仍占用了一定的算力資源。最后,從單卡計算轉(zhuǎn)向萬卡計算時代,訓練任務分布廣、數(shù)量大。
對于上述問題,王雁鵬認為,總的來說是要實現(xiàn)算力流量和資源的動態(tài)分配,以便跑通不同規(guī)模的層級。百度的百舸異構(gòu)計算平臺(AIHC)運用單機多推理實力混合布局、彈性層級隊列、訓練任務彈性伸縮機制三種模式后,公司內(nèi)部和客戶的資源利用率都從50%提升到了90%。
5、多芯混訓是解決算力卡脖子的關鍵技術
據(jù)王雁鵬介紹,目前市面上的芯片規(guī)格、版本、存量和算力水平都參差不齊。他提出,可以用一套兼容的框架將各式各樣的芯片組合起來,形成一個強大的算力集群。
有共同的“大腦”后,AI開發(fā)者可以通過該集群統(tǒng)一調(diào)動所有芯片的算力,從而提高效率、節(jié)省開支。
百度在異構(gòu)并行切分策略下,搭建了跨芯溝通庫,并采用了Accelerator抽象設計方法,從而實現(xiàn)千卡性能損失僅3%,以及萬卡性能損失僅5%。
不過,王雁鵬也談道,多芯的異構(gòu)混訓雖然理論上可行,但實際推廣起來,還有諸多技術難點亟待解決。
結(jié)語:突破3個核心技術,為十萬卡集群做準備
目前,美國AI大模型獨角獸OpenAI和xAI的模型訓練規(guī)模已卷到10萬卡級別,百度也將加入這場圍繞AI集群算力的競爭,算力應用場景則聚焦于大語言模型和自動駕駛技術。
王雁鵬向媒體透露,后續(xù)百度將持續(xù)在3個核心技術上尋求芯片設計架構(gòu)的突破。
首先是實現(xiàn)更高效的拓撲和擁塞控制,該公司希望將無阻塞RDMA域擴大10倍。
除此之外,百度計劃將跨地域的RDMA網(wǎng)絡范圍擴大至方圓30km內(nèi)。
王雁鵬稱,現(xiàn)階段百度的萬卡集群平均4個小時會中斷1次,如果擴展到10萬卡集群,可能20分鐘左右就會出現(xiàn)一次中斷。現(xiàn)階段,其模型比較穩(wěn)定的恢復時間介于10到20分鐘之間,未來致力于達到分鐘級別。