文章目錄
- 論文
- Reference
論文
MegaScale: Scaling Large Language Model Training to More Than 10,000 GPUs
論文鏈接:https://arxiv.org/abs/2402.15627
從結構上講,網絡是基于Clos的“胖樹”結構。其中一個改進是在頂層交換機上把上行與下行鏈路分開,有效降低沖突率。
以下內容轉載自道明實驗室
這可能是一段時間以來,我看到的寫的最好的來自國內公司的論文:
非常客觀,非常細節,非常實戰,非常誠實也非常自信。
我推薦所有對AI訓練集群感興趣的朋友認真閱讀。
因為只是短評,我就略過細節挑一些重點,怎么部署集群過于技術化,就不涉及了。至于GPU與光模塊的配比關系也不涉及,國內公司因為芯片限制,網絡部分只要做到匹配即可,算力利用率(MFU)高不代表算力高,從規模上講,這個集群是最高規格之一,但是從性能而言,一定不能算頂級的了。
重點反而是在集群規模達到萬卡以上,會碰到的問題,以及字節的解決方案,重點在于,如果論文是真實的(很大概率),那么我們對于下一階段國產模型能力的大幅提升應該有足夠的信心。
1、大幅優化的初始化時間,在沒經過優化的情況下,2048張GPU的集群初始化時間是1047秒,經過各種優化后,初始化時間下降到5秒以下,10000張GPU集群的初始化時間降到30秒以下;
2、錯誤后快速恢復能力。論文里把這個叫做容錯能力(Fault Tolerance),我認為不是非常準確,因為正如論文中的表述,萬卡集群會不可避免的隨時隨地發生軟硬件故障,這些都要導致訓練進程停下,再開始(GPU其實是很脆弱的,CUDA經常會有BUG,硬盤很容易壞,數據里出現一個奇怪的字符,也可能導致程序錯誤,等等,反正,只要集群超過上百個節點,各種奇奇怪怪的故障都會有可能發生)。所以第一層保障機制是Checkpointing,也就是高頻的把訓練進程保存下來,一旦宕機,快速重啟后,就加載上一次存檔,繼續訓練。為了加快這種經常發生的讀寫速度,論文介紹了文件系統的優化,技術細節略過。同樣的,上一節提到的初始化時間的大幅縮減,在這里也起到了巨大的作用,畢竟重啟是家常便飯。第三層保障,就是建立完整的系統狀態監控及自動檢測機制,對超過90%的故障都能自動檢測,定位,并快速恢復。
3、截止2023年9月,字節建立起了超過一萬張Ampere架構GPU(A100和A800)的集群,目前正在建設Hopper架構的集群(H100和H800)。
4、那些被簡單描述的“血淚教訓”。GPU的個性(同樣的卡,就是有那么幾張會慢一點,奇怪一點),網絡閃斷,不必要的等待,等等。這些問題,不是一直跟幾百臺以上規模的集群打交道,是不可能有認知的。所以,大模型訓練本質上是一個工程問題。
5、顯然,字節花了接近一年時間去“搞定”基礎設施,這,或許是模型研發生命周期里最重要的一步。
Reference
https://mp.weixin.qq.com/s/xSE_7TKPMcJjlxywbFyL2g