深度學習已經成為我們這一代人最重要的計算工作量之一,推進從視覺識別到自動駕駛的跨行業應用。但這也是深刻的計算密集型。
為了訓練當今最先進的神經網絡,深度學習研發人員通常需要使用幾十至數百個GPU的超大集群。這些集群的構建成本很高,而且很復雜。還需要幾天到幾周的時間來訓練網絡,從而拖累了創新的步伐。我們來看看Cerebras是怎么解決該問題的呢?
大多數深度學習工作都是在原型階段開始的,研究人員希望快速、準確進行迭代。當一個實驗處于初始階段,并且使用有限的數據子集運行時,小規模的硬件設置(如單顆GPU工作站)就夠了。
但隨著研究規模的擴大或模型投產,其復雜數據集需要大量的計算。從而大規模、可擴展的液冷GPU工作站應運而生,甚至用液冷GPU服務器做數據集群。然而在龐大的計算集群中實現良好的利用率復雜且費時。它需要將工作負載分布在許多小型設備上,以解決這些內存大小和內存帶寬限制,以及兼顧并管理通信及同步管理。因此研發人員經常發現需要引入其它軟件如Nccl、Horovod、OpenMPI。
此外,對于大規模分布式訓練,很少能從一開始就產生正確的結果。擴展效率依賴于使用大批量,影響模型的聚攏方式。
為了應對準確性下降的問題,調整學習速度及嘗試不同的優化器,以找到最佳的訓練配置,然后根據需要定制特定的硬件配置。
因此,雖然大量GPU集群有可能為神經網絡訓練帶來更多的計算量,但對于整個組織來說,無論從ML研究人員到生產ML工程師以及基礎架構和IT團隊都是復雜、耗時且困難。
Cerebras最先進的深度學習是每個ML研發人員都可以輕松訪問,無需集群或并行編程專業知識。以晶圓級技術為動力,Cerebras的計算和存儲變得更加緊湊。將整個集群部署在單個設備的單個芯片上,因此ML研究人員和從業者可以通過單個機器的編程輕松實現集群規模的性能。
分布式GPU集群在深度學習方面最痛苦的步驟,在Cerebras CS-1和CS-2系統上更簡單、更快的方法,以實現大規模的深度學習。
1傳統方法:使用GPU集群進行分布式訓練
模型分發和集群編排
像PyTorch和TensorFlow這樣的ML框架使得在單顆GPU上構建和運行模型變得非常簡單。但最終遇到性能瓶頸,需要使用大量數據來擴展。如何解決跨多個GPU分發模型成為挑戰。多GPU工作負載分配不僅僅需考慮單個神經網絡模型范圍及設備之間的并行處理。通常從更改模型代碼開始訓練。數據在一臺或多臺GPU機器上并行,并使用分布式TensorFlow或PyTorch等框架擴展進行軟件配置。
與手動實現數據或模擬相比,這些框架使向外擴展變得不那么痛苦,但調整設置和學習仍然需要時間。并且得到模型運行只是第一步。
設備和群集編排
想要在較高的設備使用率下運行分布式深度學習工作負變得更加復雜。從多個小型處理器實現性能最大化是一項的挑戰,每個處理器都有具體的設備限制,需要統一管理和協調。
需要弄清楚如何在設備之間分配計算,如何考慮設備內存大小以及內存限制,以及如何處理它們之間的通信和同步。這就是為什么許多用戶會引入更多框架(如Horovod)和庫(如OpenMPI)用于工作負載分配、進程間通信以及內外節點通信。
但模型并行化不是深入學習的研究或工程;它是超級計算機集群工程,是個非常復雜的并行編程問題。即使有最好的工具,也會非常耗時,通常需要IT支持、HPC和ML工程的專業團隊。
聚攏與調優
成功地跨集群分發模型需要不僅僅是調整集群設置和同步開發軟件,還需要研究人員改變他們的實際模型部署。隨著GPU集群擴展到10、100甚至1000,研究人員往往被迫使用超大規模集群,減少大量通信開銷以實現設備利用率。
但大規模批量訓練往往對模型聚攏有很大影響。需要顯著增加epoch總數,甚至可能導致模型精度下降。實現聚攏到精準的快速分布式模型可能需要幾天、幾周甚至更長。研究人員通常需要進行幾十次實驗才能找到合適的組合 - 優化超參數(例如批量大小、學習速度和動量)、優化器等聚攏性和精準度。
同時,掛鐘訓練時間也呈亞線性變化。例如MLPerf最近研究結果顯示, 需要32個NVIDIA DGX-A100 系統(256個A100 GPU)的集群才能實現僅比單個DGX-A100高14.6倍的掛鐘加速。隨著對計算機需求的增長,運行分布式GPU的研究人員必須應對日益增加的軟件和模型聚攏復雜性,同時在性能上帶來的回報不斷減少。
最后,通過分布式集群實現深度學習模式是脆弱的。如果研究人員需要更改其數據維度、數據集、模型架構或神經網絡層操作及優化器,需重新調整功能超參數、解碼及性能調試實驗。
2 Cerebras解決方案
Cerebras系統可以消除跨GPU集群擴展深度學習模型帶來的挑戰。
由世界上最大的芯片驅動,CS-2系統單個芯片上集成85萬個AI優化內核,從而大大增強了計算能力。將所有都集成在硅上意味著CS-2不僅能提供巨大的計算和芯片內存,而且比GPU提供了更大數量的內存和互連帶寬。加速深度學習模型的訓練。
單個CS-2可提供整個GPU集群的掛鐘計算性能:數十到數百個獨立處理器,節約空間和功耗。
這意味著以更低的成本獲得更快的洞察力。對于ML研究人員來說,通過單個設備的編程實現集群規模的性能。有了CS-2,研究人員可以加速最先進的模型,而無需花費數天到數周的時間對大型集群運行分布式培訓而帶來的設置和調整。
3 Programming the CS-2
由于CS-2在單個設備中加速集群擴展,顯著縮短運行時間且保持編程模型的簡單性。數據 科學家和ML研究人員可以專注于處理他們的數據、模型和應用程序,無需花時間協調解決備群集的并行處理及優化。
研究人員可以使用熟悉的ML框架(如TensorFlow和PyTorch)對CS-2進行編程。之后,Cerebras圖形編譯器(CGC)自動將用戶的神經網絡圖轉換為CS-2的850000個內核的優化可執行文件。
在CS-2上實現應用程序非常簡單。添加幾行代碼,如使用TensorFlow。
CerebrasEstimator是專為TensorFlow開發的包裝類浮點。用戶只需導入CerebrasEstimator,然后跟平常一樣定義其模型函數,輸入功能、相關參數、培訓腳本,使用標準的TensorFlow語義。
CerebrasEstimator是官方TensorFlowEstimator的子分類,以保持工作流程簡單和熟悉。用戶只需實例化CerebrasEstimator,為Cerebras系統提供IP地址,并設置一個標志use_cs=True以指導CS-2的訓練或推理。運行時CerebrasEstimator train將自動調用CGC并處理為CS-2準備一個模型的剩余的內容。
由于CS-2是如此強大的單一系統,因此不需要額外的工作來擴展網絡。用戶只需更改幾行代碼。
使用CS-2端到端模型開發任務,如模型設置、超參數優化、擴展和性能優化可以在數小時或數天內完成,而非采用傳統GPU集群所需數周時間。
4CS-2的優勢
CS-2獨特的性能與單節點簡單結合不僅避免了并行編程的復雜性,也解鎖了更快的時間問題,從研究理念可以直通生產建模。
在典型的GPU集群設置中,ML工程師可能會花費數天或數周的時間來選擇和調整超參數,以實現可接受的設備利用率,同時還要保持大規模擴展帶來的的模型精度。
CS-2是單一的功能強大的設備,所以沒有這樣的批量規模要求。在CS-2上,研究人員可以在任何批量下對模型進行高可用訓練。用戶不僅可以實現巨大的即時加速,也可以提高模型聚攏及到目標精度。
5 GPU與Cerebras的實例對比
在與一生命科學客戶的合作中,下圖展示使用GPU集群和系統從概念到生產特定領域的BERT NLP模型開發項目對比。顯而易見Cerebras的性能與編程的易用性相結合,使研究人員節省了14周的時間。
我們考慮了相同的模型和數據集,并包括軟件設置步驟:模型定義、功能調試、性能優化、初始模型培訓和后續實驗開發生產部署。
這項工作表明,Cerebras解決方案縮短了生產解決方案的端到端時間。在GPU集群上運行18周,在Cerebras系統上只需運行四周。編程和計算時間都縮短至少三個多月,為客戶節省了大量工程成本,使其加速新的人工智能創新。
深度學習將繼續是我們這個時代最重要的計算工作量之一。今天的傳統系統正在拖累傳統行業的創新步伐。Cerebras先進的深度學習推崇的是簡單易行。Cerebras已將整個集群的計算和內存加密整合到單個設備中的單個芯片。Cerebras創造更簡單、更快的方法,實現大規模的深度學習。
責任編輯:tzh
評論
查看更多