人工智慧時代,大模型的發展帶來了智慧算力需求的大爆發。據估算,自 2012 年以來,AI 模型訓練算力需求每 3~4 個月就翻一番,每年訓練 AI 模型所需算力增長幅度高達 10 倍。同時,OpenAI 曾在 2020 年提出 Scaling law 定律。該定律指出,大模型的最終效能與計算量、模型引數量及訓練資料量的大小密切相關。換言之,若要提升大模型的能力,就需要不斷增加模型引數和訓練資料量,這就需要部署大規模的訓練叢集,隨著叢集規模的不斷擴大,訓練成本也呈指數級增長。
9月13日,在百度智慧雲舉辦的媒體技術沙龍上,百度傑出系統架構師、百度智慧雲AI計算部負責人王雁鵬表示,2024年大模型市場發展迅速,很多企業加大了在大模型領域的投入,但大家在大模型訓練時遇到了一個共性問題,那就是算力利用率很低。目前企業訓練大模型的算力有效利用率不足 50%,這意味著,一半以上的算力被浪費了。在算力短缺且昂貴的當下,這無疑是一種巨大的浪費。
那麼,究竟該如何提升算力的有效利用率呢?王雁鵬指出,算力有效利用率=能耗有效率✖單卡算力有效率✖並行擴充套件有效率✖有效訓練時間✖資源利用率,其中每一項都是乘積關係,任何一項的表現有細微偏差,都會對整體算力利用率產生系統性影響。然而,目前一個行業共識的難點是,提升任意一項都絕非易事,系統性提升更是難上加難。
王雁鵬表示,針對以上5大核心技術難題、系統性提升GPU算力的有效利用率,百度智慧雲已經連續3年升級百舸AI異構計算平臺。
從百度雲的實踐經驗看,在提升能耗有效率方面,依託百舸打造的智算中心已經能夠實現 PUE 值低於 1.1;在提升單卡算力有效率方面,百舸所提供的大模型訓推加速套件 AIAK,可在主流開源大模型訓練任務中,將 MFU 大幅提升至 70% 以上;在提升並行擴充套件有效率方面,百舸提供自動並行策略,把策略調優時間縮短至分鐘級別;在提升有效訓練時間方面,百舸能夠提供全面的故障診斷手段以及自動容錯能力,在萬卡任務中實現大於 99% 的有效訓練時長佔比;在提升資源利用率方面,百舸支援訓推一體技術,能夠將算力資源利用率提升到90%。
“儘管今年百舸實現了技術突破,在萬卡叢集的GPU算力有效利用率上達到了國際領先水平,但面向未來10萬卡超大規模的計算,還有很多工作要做。”王雁鵬說。
據悉,在9月25日舉辦的2024百度雲智大會上,針對大模型的訓練和推理服務,百舸將再次升級。
如何提升能耗有效率?
降低資料中心能耗,中國電網比美國有優勢
最新資料顯示,在整個社會用電量中,大約有 1% 至 3% 的電力消耗在計算領域,大模型訓練對電力的消耗極為巨大。因此,如何實現電力的有效利用,讓電力用在任務上而不是用在散熱上,已然成為當前行業所面臨的一項巨大挑戰。
資料中心能源效率的指標通常用 PUE(Power Usage Effectiveness)來衡量,PUE 值越低意味著資料中心的能源效率就越高,即更多的能源被用於實際的計算任務(IT 裝置),而較少的能源被浪費在輔助設施上。因此,降低 PUE 對於提高算力的有效利用率至關重要。
王雁鵬表示,從百舸的實踐來看,為了降低 PUE,通常的做法是最佳化資料中心的製冷系統、提高裝置的能效。百度雲自建資料中心的平均 PUE 小於 1.1,目前業界平均水平為大於 1.2,這主要歸功於百度雲領先的資料中心製冷方案。百度雲在自建的資料中心裡採用自研的液冷方案。相較於傳統的風冷方案,該液冷方案能夠實現機器效能提升 10%,同時使機器故障率降低 60%-70%。
如何提升單卡算力有效率?
使用AI加速套件,提升大模型訓練的MFU
GPU 最初是為圖形處理而設計的,其具有大量的平行計算單元,擅長處理大規模的平行計算任務。然而,在用於通用計算尤其是人工智慧模型訓練時,會面臨一些限制。
一方面,GPU 的記憶體架構和資料傳輸機制會導致瓶頸。雖然 GPU 擁有高速的視訊記憶體,但在處理大規模資料時,資料在視訊記憶體和系統記憶體之間的傳輸可能會成為效能瓶頸,影響算力的充分發揮。
另一方面,GPU 的指令集和程式設計模型也可能限制其算力的發揮。GPU 的指令集通常是針對圖形處理最佳化的,對於一些複雜的通用計算任務,可能需要進行大量的指令轉換和最佳化才能高效執行。
我們通常使用 MFU(Model FLOPS Utilization)這個引數來去衡量 GPU 的有效利用率。MFU 越高,算力利用率越高。業內通常提升 MFU 的做法主要包括:進行演算法最佳化、使用 AI 加速套件等方式。
如何提升 MFU 呢?王雁鵬表示,針對 GPU 有效利用率低這一問題,百舸選擇的路徑是:自主研發出了大模型訓推加速套件 AIAK。該套件針對主流開源大模型,在視訊記憶體、運算元等層面進行了深度最佳化,相比於英偉達自研的運算元加速庫,實現了10%的效能提升。同時,在主流開源大模型訓練任務中,能夠將 MFU 大幅提升至 70% 以上,達到了行業領先水平。
如何提升並行擴充套件有效率?
使用自動並行策略,降低策略調優時間
為了提高訓練效率、縮短訓練時間以及處理大規模資料和模型,大模型訓練通常採用並行訓練方式。並行訓練是指利用多個計算資源同時進行模型訓練的過程,以往的並行訓練需要手動進行復雜的並行程式設計和任務分配,這種方式效率低、上手難度高。
王雁鵬表示,自動並行策略的出現為解決這些難題帶來了重大突破。
自動並行策略透過自動分析計算任務和計算資源,實現了任務在多個計算單元上的合理分配並行執行,這一方式具有多方面的顯著優勢。首先,它能夠充分利用計算資源,避免了資源的閒置和浪費。無論是 CPU、GPU 還是分散式計算節點,都能被高效地調動起來,共同為複雜的計算任務服務。其次,它大大降低了開發難度,開發者無需再進行繁瑣的手動並行程式設計和任務分配,只需專注於計算任務的邏輯實現,極大地提高了開發效率。最後,自動並行策略顯著提高了計算效率,透過合理的任務分配和資源利用,能夠大幅縮短計算時間,為各種應用場景的快速迭代和最佳化提供了有力支援。
以百度云為例,百舸平臺提供的大模型訓推加速套件AIAK在並行策略方面進行了深度最佳化,與開源方案相比,實現了30%的效能提升。同時,使模型並行策略調優時間大幅降低,從原先的小時級縮短至分鐘級。這種高效的調優能力使得開發者能夠更加快速地進行模型訓練和最佳化,極大地提高了工作效率。
如何提升有效訓練時間?
提升AI基礎設施穩定性,減少故障恢復時間
Meta 在近期的一份研究報告中揭示了訓練 Llama3-405B 引數模型的重大挑戰:該系統在包含 16384 個英偉達 H100 GPU 的叢集上執行,在訓練期間平均每三個小時就發生一次故障, 54 天內經歷了 419 次意外故障。大規模計算任務的複雜性使得故障幾乎成為必然。
馬斯克近日也分享了一段全新「Cortex」AI 超級叢集的影片。它位於特斯拉奧斯汀總部,建成後將包含 50,000 個英偉達 H100 和 20,000 臺特斯拉硬體,是“世界上最強大的 AI 訓練叢集”。但有了 Meta 的前車之鑑,業內普遍認為,按 GPU 規模比例來看,「Cortex」AI 超級叢集可能會面臨指數級更高的故障率,預計每10-20分鐘就會出現一次故障,這給其未來的 AI 訓練帶來了更大的挑戰。
看來,大模型時代,企業需要穩定性高的 AI 基礎設施已成為行業共識。那麼如何提高 AI 基礎設施的穩定性呢?我們來看看主流大模型廠商是如何做的。
王雁鵬表示,Meta 開發了多種工具和最佳化策略,最佳化措施包括縮短任務啟動和檢查點時間,並廣泛採用 PyTorch 自帶的 NCCL 飛行記錄器進行故障診斷,以及識別通訊緩慢的節點。目前實現了模型訓練任務 90%以上的有效訓練時間。
再來看百度雲。百舸平臺針對模型訓練的穩定性進行了最佳化,百舸可以提供全面的故障診斷手段,可以快速自動偵測到導致訓練任務異常的節點故障,同時提供自動化的容錯能力,重新排程任務到健康節點,繼續完成訓練,目前已經將故障恢復時間從小時級降低到分鐘級。
“經過幾年的研發,目前,百舸在萬卡任務上實現了大於99%的有效訓練時長佔比,這是非常不容易的。”王雁鵬說。
如何提升資源利用率?
訓推一體,提升資源利用率
在傳統的人工智慧應用中,模型的訓練和推理通常是在不同的叢集中進行的。訓練階段需要大量的計算資源和資料,通常在高效能運算叢集中進行。而推理階段則需要將訓練好的模型部署到實際應用場景中,對算力的要求顯著低於訓練階段。
為了提高算力資源的利用率,針對一些特殊場景,可以將訓練和推理過程混合在同一叢集中進行,也就是我們所說的訓推一體。訓推一體技術讓叢集能同時支援線上推理服務部署和離線訓練任務,實現推理和訓練之間的算力自由無縫切換。訓練和推理場景在不同時間複用相同 GPU 資源,在推理時把高算力高視訊記憶體的訓練卡分給多個業務應用以提高卡利用率和推理效率。
王雁鵬指出,行業平均算力資源利用率達 50%,這是一個比較理想的資料。然而,藉助百舸所提供的訓推一體技術,能夠實現高達 90% 的算力資源利用率。在未來的人工智慧應用中,訓推一體將成為一種重要的技術趨勢。