大模型訓練集群的存儲設計 原創
存儲系統在分布式LLM訓練中扮演著關鍵角色,需要滿足幾個關鍵要求。
- 應與 GPU 的計算能力相匹配,以最大限度地利用其性能,避免因存儲瓶頸造成的資源浪費。
- 應支持大規模結構化和非結構化訓練數據集的存儲,并在分布式處理環境中具備可擴展性。
- 模型checkpoint的存儲和檢索在 LLM 訓練中也帶來了挑戰,需要系統滿足模型大小和訓練時長所決定的讀寫帶寬要求。
- 滿足傳統企業級要求,例如數據保護、高可用性和安全性。
本文參考了論文 Llama3.1 405B Paper, Efficient Training of Large Language Models on Distributed Infrastructures: A Survey 以及公號之前的零一萬物《萬卡集群的AI Infra實踐分享》。兩篇paper已上傳到知識星球。
以Meta Llama 3 405B模型訓練的基礎設施為例。該模型是在一個配備16,000個GPU的集群上進行的訓練。支撐這一訓練的存儲系統由7500臺服務器組成,提供了高達240PB的SSD存儲容量。
在設計上,該存儲系統旨在支持持續讀寫帶寬達到2TB/s,并且在爆發式讀寫操作時,讀寫帶寬可以提升至7TB/s。這樣的設計充分考慮了Llama 3 405B模型訓練過程中的數據讀寫需求。
此外,考慮到訓練數據龐大且數量眾多,即使是文本格式,原始數據通常也是TB級別的,而語音和多模態數據則通常達到百TB的規模。因此,240PB的存儲規劃是合理的,可以滿足模型訓練過程中的數據存儲需求。
文件系統的高速度可以支持每一步都可以記錄一個checkpoint,當訓練過程中出現問題時,可以迅速從上一個checkpoint恢復訓練。這種設計大大縮短了容災恢復的時間,提高了訓練的效率。
Checkpoint
在LLM的訓練過程中,checkpoint的數量和大小都是巨大的。模型參數量越大,所需寫入的數據量也越大,這要求存儲系統提供更大的寫入帶寬。例如,具有70B參數的LLM的checkpoint大小大約980GB。
在Llama3 的paper中,Meta表示采用分布式文件系統Tectonic使數千個GPU能夠同時保存和加載模型checkpoint,從而為廣泛的訓練操作提供了高效且可擴展的存儲解決方案。在字節的MegaScale系統,HDFS被用于集中式模型檢查點維護,確保在規模上的一致性和可靠性。為了緩解checkpoint恢復期間的帶寬瓶頸。
分布式對象存儲,如Ceph對象存儲,則提供了更易于擴展的特性。這種優勢源于其沒有層次化的目錄樹或命名空間,從而簡化了一致性維護。正因如此,對象存儲已在模型checkpoint存儲中得到廣泛應用。零一萬物的數據中心就采用了Ceph。
訓練數據
LLM訓練的原始數據集是巨大的。Llama 3在超過15萬億token上進行了訓練,而Llama 2的數據集只有1.8萬億token。每個token大約2字節,相當于大約30TB的數據。準備訓練數據集涉及廣泛的預處理步驟,包括數據抓取和清理,需要大量的實驗。通常,這些步驟處理的數據超過最終訓練數據集大小的100倍 。例如,WanJuan-CC數據集有選擇性地提取了大約680億個文檔,生成了大約1萬億個高質量標記,相當于在丟棄99%的原始數據后,數據大小為2TB。因此,LLM訓練的總數據量預計將超過數十PB。
并行文件系統,如Lustre、GPFS和BeeGFS,經常部署在領先的高性能計算系統上,以確保高效的I/O、持久存儲和可擴展性能。這些系統也被廣泛用于訓練集群的數據加載,為高效處理大規模訓練數據提供了必要的基礎設施。此外,文件系統還必須使工程師能夠對使用數千個GPU的工作進行交互式調試,因為代碼更改需要立即對所有節點可用 。
在大多數LLM的訓練過程中,每個token通常只遇到一次。然而,采用數據緩存策略仍然至關重要,以緩解數據加載期間的I/O瓶頸。這種策略涉及從較慢的后端存儲預取訓練數據到更快的緩存存儲。Alluxio和JuiceFS通過從HDFS或對象存儲等底層存儲系統高效緩存訓練數據,增強了LLM訓練。Quiver支持跨多個作業和用戶透明地重用緩存數據。Fluid利用Alluxio進行數據緩存,并引入了一種機制,可以根據I/O條件實現緩存的自適應擴展。
本文轉載自公眾號AI時代窗口 作者:郁愈
