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