Llama3.1訓(xùn)練平均3小時(shí)故障一次,H100萬卡集群好脆弱,氣溫波動都會影響吞吐量
每3個小時(shí)1次、平均1天8次,Llama 3.1 405B預(yù)訓(xùn)練老出故障,H100是罪魁禍?zhǔn)祝?/p>
最近有人從Meta發(fā)布的92頁超長Llama 3.1論文中發(fā)現(xiàn)了華點(diǎn):
Llama 3.1在為期54天的預(yù)訓(xùn)練期間,經(jīng)歷了共466次任務(wù)中斷。其中只有47次是計(jì)劃內(nèi)的,419次純屬意外,意外中78%已確認(rèn)或懷疑是硬件問題導(dǎo)致。
而且GPU問題最嚴(yán)重,占了58.7%。
Llama 3.1 405模型是在一個含16384塊Nvidia H100 80GB GPU集群上進(jìn)行訓(xùn)練的。雖說針對大規(guī)模系統(tǒng)有句老話:唯一確定的就是會出故障。
但這一問題還是引起不少網(wǎng)友關(guān)注。
放慢速度,check一下產(chǎn)品吧。
圖片
圖片
老出故障,咋整?
具體來看,在419次意外中斷中,148 次(30.1%)是由各種GPU故障(包括NVLink故障)引起的,72次 (17.2%)可以具體到是由HBM3內(nèi)存故障引起。
鑒于H100的700W高功耗和熱應(yīng)力,出現(xiàn)這樣的結(jié)果也并不意外。
有意思的是,54天內(nèi)只有兩次是CPU出現(xiàn)了故障。
除了GPU外的另一半故障由眾多因素導(dǎo)致,比如軟件Bug、網(wǎng)絡(luò)電纜等等。
圖片
不過最終,Llama 3.1團(tuán)隊(duì)保持了超90%的有效訓(xùn)練時(shí)間。只有三起故障需要人工大幅介入,其余的都自動化處理了。
那么他們是如何應(yīng)對的?
為了增加有效訓(xùn)練時(shí)間,Llama 3.1團(tuán)隊(duì)表示減少了任務(wù)啟動和checkpointing時(shí)間,并開發(fā)了一些工具來快速診斷和解決問題。
其中廣泛使用了PyTorch的內(nèi)置NCCL flight recorder(Ansel等人2024年開發(fā)),是一個可以把集體元數(shù)據(jù)和堆棧跟蹤記錄到一個循環(huán)緩沖區(qū)里的功能,這樣就能快速診斷大規(guī)??D和性能問題,特別是跟NCCLX有關(guān)的問題。
圖片
用這個工具,團(tuán)隊(duì)能有效記錄每次通信事件和每個集體操作的持續(xù)時(shí)間,在NCCLX Watchdog或Heartbeat超時(shí)時(shí)還能自動導(dǎo)出跟蹤數(shù)據(jù)。
還可以根據(jù)需要,通過在線配置更改(Tang等人2015年提出的方法)來選擇性地啟用一些計(jì)算量更大的跟蹤操作和元數(shù)據(jù)收集,而不需要重新發(fā)布代碼或重啟任務(wù)。
圖片
團(tuán)隊(duì)表示,在大規(guī)模訓(xùn)練中調(diào)試問題很復(fù)雜,因?yàn)榫W(wǎng)絡(luò)同時(shí)使用了NVLink和RoCE。通過NVLink傳輸數(shù)據(jù)通常是通過CUDA內(nèi)核發(fā)出的加載/存儲操作來完成的,如果遠(yuǎn)程GPU或NVLink連接出了問題,往往表現(xiàn)為CUDA內(nèi)核里的加載/存儲操作卡住了,卻不會返回明確的錯誤代碼。
而NCCLX通過與PyTorch緊密配合,提高了故障檢測和定位的速度和準(zhǔn)確性,讓PyTorch能夠訪問NCCLX的內(nèi)部狀態(tài)并跟蹤相關(guān)信息。
雖然無法完全避免NVLink故障導(dǎo)致的卡頓,但系統(tǒng)會監(jiān)控通信庫狀態(tài),在發(fā)現(xiàn)卡頓時(shí)自動超時(shí)。
此外,NCCLX還會跟蹤每次NCCLX通信的內(nèi)核和網(wǎng)絡(luò)活動,并在失敗時(shí)提供NCCLX集體操作內(nèi)部狀態(tài)“快照”,包括所有等級之間已完成和待處理的數(shù)據(jù)傳輸。團(tuán)隊(duì)通過分析這些數(shù)據(jù)來調(diào)試NCCLX的擴(kuò)展問題。
有時(shí),硬件問題可能導(dǎo)致某些部分雖然看起來還在運(yùn)行,但速度變慢,這種情況很難被發(fā)現(xiàn)。即使只有一個部分變慢,也可能拖慢數(shù)千個其它GPU的速度。
為此團(tuán)隊(duì)開發(fā)了一些工具,可以優(yōu)先處理某些可能有問題的進(jìn)程組的通信。通常只需要調(diào)查幾個最可疑的對象,就能有效找出那些變慢的部分。
團(tuán)隊(duì)還觀察到了一個有趣的現(xiàn)象——環(huán)境因素對大規(guī)模訓(xùn)練性能的影響。在訓(xùn)練Llama 3.1 405B時(shí),吞吐量會根據(jù)一天中時(shí)間的不同而有1-2%的變化。這是因?yàn)橹形鐪囟容^高,影響了GPU動態(tài)電壓和頻率調(diào)節(jié)。
在訓(xùn)練過程中,數(shù)萬個GPU可能會同時(shí)增加或減少功耗,比如在所有GPU等待checkpointing或集體通信完成時(shí),或者在整個訓(xùn)練任務(wù)啟動/關(guān)閉時(shí)。這種情況發(fā)生,可能導(dǎo)致數(shù)據(jù)中心的瞬時(shí)功耗波動達(dá)到數(shù)十兆瓦,對電網(wǎng)來說是個不小的考驗(yàn)。
團(tuán)隊(duì)最后還表示:
隨著未來更大的Llama模型擴(kuò)展訓(xùn)練規(guī)模,這一挑戰(zhàn)將持續(xù)存在。
圖片
AI集群問題正待破壁
Meta2022年首次分享了其AI研究超級集群(RSC)的詳細(xì)信息,當(dāng)時(shí)擁有16000個NVIDIA A100 GPU,幫助其構(gòu)建了第一代AI模型,在Llama初代和Llama 2開發(fā)中都發(fā)揮了重要作用。
圖片
△來自Meta
今年三月份,Meta又公開了24576個NVIDIA H100 GPU的AI集群,支持Llama 3及之后模型。
更是定下了到今年年底增加350000個NVIDIA H100 GPU的目標(biāo),作為整體算力的一部分(整體算力近600000個H100 GPU)。
圖片
這么大的規(guī)模,emmm可不是個持續(xù)性的挑戰(zhàn)嘛。當(dāng)然,大規(guī)模AI集群會給模型訓(xùn)練造成故障是一個有些“遠(yuǎn)古”的問題,很早之前就有相關(guān)研究。
H100本身什么含金量無需多言。
在去年最新MLPerf訓(xùn)練基準(zhǔn)測試中,英偉達(dá)H100集群,橫掃八項(xiàng)測試,全部創(chuàng)下新紀(jì)錄,并且在大語言模型任務(wù)中表現(xiàn)尤為突出。
圖片
11分鐘內(nèi)訓(xùn)練一遍GPT-3,8秒訓(xùn)完BERT。在大語言模型任務(wù)中,H100集群的加速性能逼近線性增長。即隨著集群處理器數(shù)量增加,加速效果也幾乎同比增加。
意味著在集群內(nèi)GPU之間的通信效率非常高。
圖片
除此之外,H100還完成了推薦算法、CV、醫(yī)學(xué)圖像識別以及語音識別等任務(wù),是唯一一個參加8項(xiàng)測試的集群。
不過,SemiAnalysis一個月前的一篇文章指出,構(gòu)建大規(guī)模AI算力集群非常復(fù)雜,遠(yuǎn)遠(yuǎn)不只是有沒有錢買卡的事。
在電力、網(wǎng)絡(luò)設(shè)計(jì)、并行、可靠性等很多方面都面臨局限。
圖片
參考鏈接:
[1]https://ai.meta.com/research/publications/the-llama-3-herd-of-models/
[2]https://engineering.fb.com/2024/03/12/data-center-engineering/building-metas-genai-infrastructure/
[3]https://www.semianalysis.com/p/100000-h100-clusters-power-network