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