摘要
人工智能(AI)方法在科學(xué)應(yīng)用中變得至關(guān)重要,有助于加速科學(xué)發(fā)現(xiàn)。大語言模型(LLM)由于其跨領(lǐng)域的卓越泛化能力,被認為是解決一些具有挑戰(zhàn)性的問題的很有前景的方法。模型的有效性和應(yīng)用程序的準(zhǔn)確性取決于它們在底層硬件設(shè)備上的有效執(zhí)行。專門的人工智能加速器硬件系統(tǒng)可用于加速人工智能相關(guān)應(yīng)用。然而,這些人工智能加速器在大語言模型上的性能比較此前尚未被研究過。在本文中,我們系統(tǒng)地研究了多個人工智能加速器和GPU上的LLM,并評估了它們在這些模型中的性能特征。我們用(i)使用Transformer block的微基準(zhǔn)、(ii)GPT-2模型和(iii)LLM驅(qū)動的科學(xué)用例GenSLM來評估這些系統(tǒng)。文章展示了我們對模型性能的發(fā)現(xiàn)和分析,以更好地理解人工智能加速器的內(nèi)在能力。此外,我們的分析也考慮了關(guān)鍵因素,如序列長度、縮放行為、稀疏性和對梯度累積步驟的敏感性。
I.介紹
將人工智能(AI)用于科學(xué)已經(jīng)引起了科研機構(gòu)和超級計算設(shè)備越來越多的興趣,目的是通過涉及AI的新方法加速科學(xué)發(fā)現(xiàn)。這種協(xié)同作用增加了人們對采用新型人工智能驅(qū)動技術(shù)的興趣,以幫助開發(fā)復(fù)雜科學(xué)問題的解決方案,如蛋白質(zhì)結(jié)構(gòu)預(yù)測、宇宙學(xué)參數(shù)預(yù)測、中微子粒子檢測、醫(yī)學(xué)藥物設(shè)計、基因組模型和天氣預(yù)報模型等。最常用的人工智能技術(shù)包括進化神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)、圖神經(jīng)網(wǎng)絡(luò)和大語言模型(LLM),這些技術(shù)以其獨特的結(jié)構(gòu)特征,能夠有效幫助科學(xué)家進行研究。近年來,人工智能中的自然語言處理領(lǐng)域經(jīng)歷了巨大的增長,這極大促進了LLM的發(fā)展,使其能夠用于各種任務(wù),如問答、文本摘要和語言翻譯。這些模型在科學(xué)的AI應(yīng)用中將變得越來越重要。
LLM,如Generative Pre-trained Transformers(GPT)GPT-3、LLaMA、LLaMA 2和Bloom,其復(fù)雜性以及模型輸出結(jié)果質(zhì)量都有了巨大的提高。這種增長的部分原因是基于Transformer的模型的迅速發(fā)展,它既是傳統(tǒng)應(yīng)用程序的事實架構(gòu),也是科學(xué)用例的有力工具。從加速藥物發(fā)現(xiàn)到理解基因序列,基于Transformer的架構(gòu)已經(jīng)部署在許多應(yīng)用上。例如,GenSLM提供了一個基于LLM的基礎(chǔ)模型來預(yù)測Sars-CoV2變異毒株。它的優(yōu)勢在于它能夠為設(shè)計有效的抗病毒藥物提供信息。GenSLM模型是在超過1.1億個原始核苷酸序列的廣泛數(shù)據(jù)集上訓(xùn)練的,模型規(guī)模在2500萬至250億個可訓(xùn)練參數(shù)之間。然而,訓(xùn)練具有大模型參數(shù)和較長序列長度的GPT變體LLM需要專門的計算資源和軟件堆棧,從中實現(xiàn)技術(shù)創(chuàng)新和優(yōu)化。
為了滿足這些需求,出現(xiàn)了基于非傳統(tǒng)架構(gòu)(如數(shù)據(jù)流)設(shè)計的人工智能加速器。這些加速器是定制的,以其強大的硬件計算引擎和新穎的軟件優(yōu)化有效支持人工智能工作負載。它們被證明可以有效地訓(xùn)練多種人工智能模型,其中特別關(guān)注LLM的訓(xùn)練。憑借其獨特的系統(tǒng)特性,這些人工智能加速器能夠應(yīng)對LLM帶來的挑戰(zhàn)。這些加速器除了提供一套預(yù)先訓(xùn)練的GPT模型外,還能夠運行一些最大規(guī)模的GPT模型。這些模型展示了人工智能加速器的多功能性和可擴展性。隨著LLM的規(guī)模和復(fù)雜性的增加,創(chuàng)新的訓(xùn)練技術(shù)變得至關(guān)重要,以進一步增強具有數(shù)十億參數(shù)的LLM的訓(xùn)練。
在不同的硬件平臺上評估LLM對于理解傳統(tǒng)和非傳統(tǒng)體系結(jié)構(gòu)的能力和局限性至關(guān)重要。先前的工作已經(jīng)在超級計算機上研究了LLM,并使用傳統(tǒng)的深度學(xué)習(xí)基準(zhǔn)來提供對其能力的詳細評估與分析。然而,之前的研究尚未對各種人工智能加速器進行全面評估,尤其是LLM。本文旨在通過對多個人工智能加速器上的大語言模型進行詳細的性能評估來解決這一差距,這是我們所知的第一個此類基準(zhǔn)研究。本文的主要貢獻是:
對最先進的人工智能加速器上的LLM進行了系統(tǒng)評估。
專注于Transformer block微基準(zhǔn),它是基于GPT的模型中的核心組件。
對GPT-2 XL 1.5B參數(shù)模型進行全面評估,以深入了解所有系統(tǒng)的模型性能。
科學(xué)應(yīng)用的移植和評估:GenSLM,基因測序的基礎(chǔ)模型。
研究序列長度、稀疏性和梯度累積步驟對模型吞吐量的影響。
我們在第二節(jié)中概述了LLM和各種人工智能加速器,然后在第三節(jié)中介紹了評估模型的細節(jié),即Transformer block微基準(zhǔn)、GPT-2XL和GenSLM應(yīng)用。我們在第四節(jié)中描述了LLM在不同人工智能加速器上的實現(xiàn)。我們在第五節(jié)中展示了實驗結(jié)果,然后在第六節(jié)中給出了結(jié)論。
II.大語言模型和人工智能加速器綜述
大語言模型是一種使用深度學(xué)習(xí)算法處理和生成自然語言文本的人工智能系統(tǒng)。近年來,由于這些模型能夠執(zhí)行廣泛的語言相關(guān)任務(wù),如機器翻譯、文本摘要和問答,因此它們越來越受歡迎。深度學(xué)習(xí)技術(shù)的進步推動了大語言模型的發(fā)展,特別是在Transformer模型領(lǐng)域。這些模型使用自注意力機制來處理文本輸入,使它們能夠捕捉語言數(shù)據(jù)中的復(fù)雜模式和關(guān)系。他們還使用無監(jiān)督學(xué)習(xí)技術(shù)在大型數(shù)據(jù)集上進行預(yù)訓(xùn)練,如掩蔽語言建模和上下文預(yù)測,這有助于他們學(xué)習(xí)廣泛的語言特征和結(jié)構(gòu)。對特定任務(wù)進行微調(diào)可以進一步提高它們的性能和適應(yīng)性。
最著名的LLM之一是GPT(Generative Pretrained Transformer)系列,它由OpenAI開發(fā),用于回答問題、翻譯語言和生成文本。這些任務(wù)是通過在未標(biāo)記文本的不同數(shù)據(jù)語料庫上生成語言模型的預(yù)訓(xùn)練來實現(xiàn)的,然后對特定任務(wù)進行有區(qū)別的微調(diào)。微調(diào)過程中的任務(wù)感知輸入轉(zhuǎn)換有助于在對模型架構(gòu)進行最小更改的情況下實現(xiàn)有效轉(zhuǎn)移。由于神經(jīng)元結(jié)構(gòu)的差異,GPT模型可以大致分為GPT、GPT-2、GPT-3和最近的GPT-4。
由基于GPU的系統(tǒng)和新型非傳統(tǒng)人工智能硬件(如數(shù)據(jù)流架構(gòu))組成的人工智能加速器已被證明可以提高各種人工智能模型的效率。下面我們將介紹本研究中使用的加速器,配置列于表I中。
表一:評估的人工智能加速器的特性
Nvidia A100:A100 GPU由6912個CUDA內(nèi)核和432個Tensor內(nèi)核組成,用于加速并行工作負載。在單個DGX節(jié)點上,有4個A100 GPU,與NVLink互連。我們使用微軟Megatron-DepSpeed框架的分叉實現(xiàn)進行評估。在這樣做的過程中,我們可以充分利用DeepSpeed的各種優(yōu)化和方便的功能,如ZeRO卸載和自動度量跟蹤(帶有通信+FLOP分析)。所有實驗都是在Argonne Leadership Computing Facility(ALCF)的Polaris超級計算機上進行的,每個節(jié)點有4個A100 GPU和40 GB內(nèi)存。
Cerebras CS-2:Cerebras CS 2是一款晶圓級深度學(xué)習(xí)加速器,包括85萬個處理內(nèi)核,每個內(nèi)核提供48KB的專用SRAM內(nèi)存,芯片總?cè)萘繛?0GB,并相互連接以優(yōu)化帶寬和延遲。該系統(tǒng)已擴展到通過SwarmX結(jié)構(gòu)和MemoryX存儲子系統(tǒng)互連的兩個CS-2 waferscale引擎節(jié)點,以啟用大型模型。晶圓級集群支持重量流執(zhí)行模式,其中每個模型層逐個加載。該功能允許用戶運行大語言模型,其中每一層的權(quán)重都適合內(nèi)存,但不適合整個模型。該軟件平臺集成了流行的機器學(xué)習(xí)框架,如PyTorch。對于單個Cerebras CS-2,支持的最大模型是GPT-3(175B參數(shù)模型),CS-2可以支持高達58k的序列長度。
SambaNova SN30:SambaNova DataScale系統(tǒng)使用第二代可重構(gòu)數(shù)據(jù)流單元(RDU)處理器來實現(xiàn)最佳的數(shù)據(jù)流處理和加速。每個RDU具有1280個模式計算單元(PCU)和1TB的片外存儲器。該系統(tǒng)由八個節(jié)點組成,每個節(jié)點有八個互連的RDU,以實現(xiàn)模型和數(shù)據(jù)的并行性。SambaFlow,其軟件堆棧,從PyTorch機器學(xué)習(xí)框架中提取、優(yōu)化數(shù)據(jù)流圖并將其映射到RDU。SN30可以在4個RDU上訓(xùn)練多達176B參數(shù)的模型。
Graphcore Bow Pod64:Graphcore22 PB級的Bow Pod 64系統(tǒng)是Graphcore的最新一代加速器。它是一個單機架系統(tǒng),由64個帶有自定義互連的Bow級IPU組成。Graphcore軟件堆棧包括Poplar SDK,并支持TensorFlow和PyTorch。Bow系統(tǒng)目前支持具有256個IPU的GPT-3 175B參數(shù)模型。
Habana Gaudi2:Habana Godi2處理器具有兩個矩陣乘法引擎(MME)、24個完全可編程的VLIW SIMD張量處理器內(nèi)核,將24個100 GbE端口的聚合以太網(wǎng)RDMA(RoCE)集成到每個處理器芯片中,以有效擴展訓(xùn)練。Gaudi系統(tǒng)由一個HLS-2服務(wù)器和八個Gaudi HL-225H卡組成。軟件堆棧包括SynapseAI堆棧,并支持TensorFlow和PyTorch。它支持現(xiàn)有的深度學(xué)習(xí)優(yōu)化庫DeepSpeed和定制庫Optimum Habana,后者是Transformer庫和Habana的Gaudi處理器(HPU)之間的接口。在Gaudi系統(tǒng)上,目前驗證的最大模型是在384張Gaudi 2卡上運行的GPT-3(175B參數(shù)模型)。
AMD MI250:AMD MI250 GPU基于CDNA2架構(gòu),由分布在208個計算單元上的13312個流處理器組成,并配有128 GB專用HBM2e內(nèi)存,內(nèi)存帶寬為3.276 TB/s。它能夠?qū)崿F(xiàn)FP16的362.1 TFlops和FP32的45.3 TFlops的峰值性能。每個GPU使用PCIe Gen4連接到主機,并使用InfiniBand進行節(jié)點間通信。AMD ROCm開放軟件平臺支持常見的DL堆棧,包括Tensorflow和PyTorch,以及rocBLAS、rocSPARSE、rocFFT和RCCL(ROCm集體通信庫)等庫。
III. 評估
在這項工作中,我們主要關(guān)注評估(i)Transformer基準(zhǔn),(ii)GPT 2-XL模型,以及(iii)科學(xué)應(yīng)用GenSLM(這是一種基因組測序的基礎(chǔ)模型)。
(1) Transformer微基準(zhǔn):要評估AI加速器上Transformer基準(zhǔn)的性能,必須考慮幾個關(guān)鍵因素。首先,重要的是選擇適當(dāng)?shù)奈⑿突鶞?zhǔn),以反映所使用的Transformer模型的工作量。一旦選擇了合適的微基準(zhǔn),就有必要收集性能指標(biāo),例如吞吐量,這可以通過測量每秒處理以完成一定數(shù)量迭代的輸入數(shù)量來完成。此外,監(jiān)控硬件資源(如內(nèi)存和計算單元)的利用率也很重要。最后,建議將傳統(tǒng)NVIDIA GPU的性能與其他AI加速器進行比較,以更全面地了解它們的優(yōu)缺點。通過仔細評估這些因素,可以有效預(yù)測AI加速器上Transformer模型的性能。
Transformer block(圖1)是基于Transformer模型的一個廣泛認可和建立的微觀基準(zhǔn)。由于幾個原因,Transformer block是微型基準(zhǔn)的理想選擇。首先,它是自然語言處理任務(wù)(如語言建模和文本生成)中廣泛使用的構(gòu)建塊,使其成為許多LLM應(yīng)用程序的相關(guān)基準(zhǔn)。其次,與較大的Transformer模型相比,Transformer block相對簡單且尺寸較小,這使得運行和評估更容易。這也允許在評估新硬件架構(gòu)時進行更快的實驗。最后,Transformer block包括Transformer模型的許多關(guān)鍵組件,包括自注意層和前饋層,使其成為Transformer模型的合適代表。總的來說,Transformer block是一個公認且廣泛接受的微型基準(zhǔn),是評估LLM模型性能的絕佳選擇。
圖1:GPT transformer block
Transformer block由一個多頭自注意層和一個前饋神經(jīng)網(wǎng)絡(luò)層組成。Transformer block的輸入是一個令牌序列。在這項工作中,我們評估的輸入序列的長度為1024。為了計算Transformer block的FLOP,我們需要考慮每層所需的操作次數(shù)。自注意層需要O(n2d)FLOP,其中n是序列長度,d是隱藏維度。前饋神經(jīng)網(wǎng)絡(luò)層需要O(ndk)FLOP,其中k是隱藏層的大小。因此,Transformer block的FLOP的總數(shù)為O(n2d+ndk)。
(2) GPT-2XL:在這項研究中,我們使用GPT-2XL 1.5B參數(shù)模型進行預(yù)訓(xùn)練實驗,以分析加速器在運行大語言模型時的性能。盡管如第二節(jié)所述,被評估的系統(tǒng)可以單獨支持更大的模型和不同的配置,但我們選擇GPT-2 XL是因為它可以及時在每個系統(tǒng)上輕松實現(xiàn),以便進行公平的比較。此外,GPT-2大小的模型的內(nèi)存和計算需求與每個系統(tǒng)上的最小計算單元節(jié)點非常匹配;因此,這里獲得的測試結(jié)論可以擴展,以幫助推動選擇加速器的決策,這些加速器可以為任何給定的基于Transformer的大模型架構(gòu)產(chǎn)生最佳性能。本次評估中使用的數(shù)據(jù)集是開放式Web文本(OWT),它是WebText語料庫的開源版本。它由8013769個文檔中的38 GB文本數(shù)據(jù)組成,這些文本數(shù)據(jù)是從Reddit上共享的URL中提取的內(nèi)容,至少有三次投票支持。對于這個模型,我們測量了每個系統(tǒng)上器件規(guī)模的模型吞吐量。此外,我們還評估了序列長度、梯度累積(GAS)和稀疏性對模型性能的影響。
(3) GenSLM(科學(xué)用例):除了上面描述的基準(zhǔn)之外,我們還對評估這些模型在現(xiàn)實世界用例中的表現(xiàn)。GenSLM是一個基因組的基礎(chǔ)模型,可以推廣到其他模型。該模型的目標(biāo)是識別和分類不同的病毒變異毒株,然后可以將其擴展到基因或蛋白質(zhì)合成。它采用基于GPT的具有不同參數(shù)的大語言模型(25M-25B)和1.2B的原始核苷酸數(shù)據(jù)集,旨在獲得更大的序列長度,以幫助更好地捕捉上下文,并可推廣用于學(xué)習(xí)進化。圖2顯示了GenSLM模型的概述,該模型以SARS-CoV-2基因組(在密碼子水平編碼的核苷酸序列,其中每三個核苷酸代表一個密碼子)為輸入,將其輸入到一系列轉(zhuǎn)換層。中間層學(xué)習(xí)單個密碼子的語義嵌入,可以將其映射到29個單獨的病毒編碼的蛋白質(zhì)序列。在本研究中,我們重點評估了Nvidia A100、SambaNova SN30上具有13B參數(shù)的GenSLM GPT模型和Cerebras CS-2上的25B GPT3-XL模型。
圖2:用于嚴重急性呼吸系統(tǒng)綜合征冠狀病毒2型進化預(yù)測建模的GenSLM模型概述
度量:評估大語言模型的性能超出了傳統(tǒng)的度量,包括計算效率和硬件利用率的考慮。隨著這些模型的規(guī)模和復(fù)雜性的增長,評估它們有效處理和生成文本的能力至關(guān)重要,尤其是考慮到訓(xùn)練和推理所需的計算資源。吞吐量是衡量大型語言模型處理給定數(shù)量輸入數(shù)據(jù)的速率的關(guān)鍵性能指標(biāo)。它通常以每秒處理的令牌或語句來量化。更高的吞吐量值表示更好的效率和有效處理大規(guī)模語言處理任務(wù)的能力。在這項工作中,我們以每秒令牌數(shù)的形式展示了評估系統(tǒng)的吞吐量。
硬件利用率是評估大語言模型的另一個重要指標(biāo),因為它評估了在模型訓(xùn)練和推理過程中計算資源的有效利用率。它涉及多種設(shè)計選擇,如模型并行性、內(nèi)存管理和高效的數(shù)據(jù)處理技術(shù)。分析模型以提取評估系統(tǒng)的硬件利用率的工作正在進行中,并將包含在報告的最終版本中。
IV. AI加速器的實現(xiàn)
由于不同的軟件堆棧和規(guī)模,評估模型在每個系統(tǒng)上的實現(xiàn)方式各不相同。在這里,我們描述了三種情況下每個系統(tǒng)的實現(xiàn)細節(jié):Transformer微基準(zhǔn)測試、GPT-2XL預(yù)訓(xùn)練和GenSLM科學(xué)應(yīng)用。
A. Transformer微基準(zhǔn)
Transformer微基準(zhǔn)的評估涉及一個細致的實施過程,旨在評估該內(nèi)核在不同AI加速器上的計算效率和性能特征。Transformer微基準(zhǔn)是為了模擬Transformer模型中的內(nèi)核操作而設(shè)計的,廣泛用于各種自然語言處理任務(wù)。Transformer微基準(zhǔn)使用標(biāo)準(zhǔn)化GPT-2XL模型中的一層,輸入序列為1024,確保不同平臺之間的結(jié)果一致且可比較。實現(xiàn)是使用相同的深度學(xué)習(xí)框架PyTorch進行的,PyTorch針對每個平臺的獨特功能進行定制。工作負載用于利用并行性和特定于硬件的優(yōu)化,并實現(xiàn)最佳吞吐量和計算速度。我們會仔細注意批量大小等因素,以避免瓶頸并充分利用可用的硬件資源。
對于不同的配置,我們使用8、16、32和64的批量大小。收集性能指標(biāo),如TFLOPS,以量化每個硬件平臺在處理Transformer模型所需的苛刻計算方面的能力。該評估為處理基于Transformer的工作負載時不同硬件的優(yōu)勢和劣勢提供了有價值的見解。
B. GPT-2 XLA預(yù)訓(xùn)練
作為GPT-2 XL研究的一部分,我們在OWT數(shù)據(jù)集上預(yù)訓(xùn)練模型,其中對給定序列長度的原始數(shù)據(jù)進行預(yù)處理和標(biāo)記。下面描述每個系統(tǒng)的標(biāo)記化和模型實現(xiàn)的細節(jié)。
Nvidia A100:我們在不同的節(jié)點計數(shù)上運行了具有不同微塊大小、序列長度和張量平行度的模型,最多可達64個A100 GPU。這些都是用Megatron-DeepSpeed實現(xiàn)的,使用的是fp16精度的ZeRO Stage 1。在這些實驗中,啟用了flash-attn,這可以緩解內(nèi)存壓力,通常可以提高吞吐量。實驗使用了2k的序列長度。使用Nvidia的NeMo生成人工智能框架進行的實驗是未來計劃工作的一部分。
Cerebras CS-2:在Cerebra CS-2系統(tǒng)上,我們在單個CS-2引擎上運行在PyTorch框架中實現(xiàn)的GPT-2 XL模型,序列長度為1024和2048,批量大小為112。該實現(xiàn)使用了一個基于字節(jié)對編碼(BPE)的自定義GPT-2標(biāo)記器,vocab大小為50257。使用1(默認值)和2的混合精度和精度選擇級別來訓(xùn)練模型。它使用了一個AdamW優(yōu)化器,其權(quán)重衰減率為0.011。該模型使用密集和稀疏配置進行訓(xùn)練。在稀疏性方法中,基于所提供的程度來稀疏密集層的所有權(quán)重。我們運行了具有各種稀疏性值的GPT-3 6.7B和GPT-3 30B模型。這里,稀疏度值為0.3意味著修剪了30%的權(quán)重。第V節(jié)將討論稀疏性對模型吞吐量和損失的影響。
SambaNova SN30:我們評估了SambaNovas下一代SN30上OWT數(shù)據(jù)集的預(yù)訓(xùn)練性能,它的每個節(jié)點有8個RDU,每個RDU有8個Tile。我們使用了適用于4個Tile或半個RDU的GPT-1.5B模型的SN參考實現(xiàn)。該實現(xiàn)基于PyTorch的SambaFlow框架,使用混合精度(16位乘法器和32位累加器)。它使用基于BPE的GPT-2標(biāo)記器,vocab大小為50260。我們使用數(shù)據(jù)并行性來跨多個Tile和節(jié)點進行擴展。我們最多可擴展8個節(jié)點(對應(yīng)于128個數(shù)據(jù)并行運行實例),每個實例的微批大小為16。
Graphcore Bow Pod64:在Bow Pod 64上,我們利用64個IPU來訓(xùn)練評估的模型。在PyTorch框架中實現(xiàn)的GPT-2 XL 1.5B模型可以跨4個IPU進行模型劃分。作為數(shù)據(jù)預(yù)處理的一部分,該實現(xiàn)使用Nvidia的Megatron庫來生成具有BPE標(biāo)記器和50272的vocb大小的訓(xùn)練樣本。Poplar SDK使用多指令多數(shù)據(jù)(MIMD)方式的映射來利用IPU并行進行計算和通信。我們在FP16中使用了1的局部批量大小,并結(jié)合了128和1024的大梯度累積步長值。這樣大的值有助于最小化通信開銷,因為它模擬了更大的全局批量大小。特別是對于較小的GAS值,我們使用了1、2、4和16的復(fù)制因子來實現(xiàn)更好的擴展。
Habana Gaudi2:我們在PyTorch中運行了GPT-2 XL模型,每個HPU設(shè)備的序列長度為1024,本地批量大小為32。在Habana Gaudi2上對GPT-2 XL模型進行的訓(xùn)練代表了軟件和硬件功能的強大組合。訓(xùn)練中使用的數(shù)據(jù)格式為BF16。訓(xùn)練樣本是使用BPE標(biāo)記器生成的。
AMD MI250:在AMD MI250系統(tǒng)上,我們評估了GPT-2的性能,其中在多達8個GPU的OWT數(shù)據(jù)集上訓(xùn)練的絕對位置中,使用因果語言建模(CLM)目標(biāo)進行嵌入。我們使用了基于字節(jié)對編碼的GPT-2標(biāo)記器,并使用了Hugging Face中的PyTorch 2.0參考設(shè)計來實現(xiàn)這一點。針對1024的序列長度、每個GPU 16和32的批處理大小以及1和4的GAS值來評估性能。
C. GenSLM
我們在Nvidia A100、SambaNova SN30和Cerebras CS-2上實現(xiàn)了GenSLM科學(xué)應(yīng)用程序。在三個系統(tǒng)上,均使用PyTorch框架實現(xiàn)該模型。它使用基因組序列數(shù)據(jù)集,并使用密碼子級標(biāo)記器將其標(biāo)記化,該標(biāo)記器將基因組拆分為3個核酸塊。由于GenSLM應(yīng)用程序包含多種模型,它們的模型參數(shù)數(shù)量從25M到25B不等,因此我們在本實驗中使用了兩種不同的模型參數(shù)大小。
GenSLM的SN30實現(xiàn)基于GPT-2 13B參數(shù)模型,該模型使用1024的上下文長度、44層、64個注意力頭、4992的嵌入大小和71的詞匯表大小。該批量大小為32的GPT-2 13B參數(shù)模型可以映射在4個Tile內(nèi)或相當(dāng)于半個RDU內(nèi)。Cerebras上使用的模型是GPT-3 XL,這是一個1.5B參數(shù)的模型,有24個隱藏層和16個注意力頭。該模型使用70的詞匯大小和2048的嵌入大小。該模型針對序列長度為10240且局部大小為27的基因組序列進行訓(xùn)練。其他模型參數(shù)類似于上面列出的GPT-2XL實現(xiàn)細節(jié)。GPT3-XL模型在兩個CS-2上進行了縮放,以提供54的全局批量大小。在Nvidia A100上,我們使用了一個相同的GPT-2 13B模型,該模型由40層隱藏維度和40個注意力頭組成。
V. 結(jié)論
在本節(jié)中,我們介紹了三個評估案例的實驗結(jié)果。我們從第V-A節(jié)中以三個精度評估的Transformer微基準(zhǔn)開始。接下來,我們介紹了GPT-2 XL 1.5B參數(shù)模型的結(jié)果,重點是第V-B1節(jié)中的可擴展性、第V-B3節(jié)中的GAS研究、第V-B2節(jié)中的序列長度分析和第V-B4節(jié)中的稀疏性研究。最后,我們詳細介紹了GenSLM模型在三個系統(tǒng)上的實驗結(jié)果,這些系統(tǒng)具有三種尺寸的模型:SectionV-C中的1.5B、13B和25B個參數(shù)。
A.Transformer微基準(zhǔn)
在單個NVIDIA A100 GPU、SambaNova SN30 RDU、Graphcore Bow IPU、Habana Gaudi2和AMD MI250上的Transformer微基準(zhǔn)評估結(jié)果如圖3和圖4所示,顯示了FP32、FP16和BF16三種精度的前向和后向通道的吞吐量。與A100的2039 GB/s相比,Mi250具有更高的內(nèi)存帶寬(3276.8 GB/s),更高的帶寬能夠用于提高單精度的性能。但是MI250的總效率低于A100。
圖3:Transformer微基準(zhǔn)在不同精度的正向通道中的吞吐量評估
圖4:Transformer微基準(zhǔn)在不同精度的后向通道中的吞吐量評估
據(jù)觀察,NVIDIA A100 GPU得益于其先進的張量內(nèi)核和并行處理能力,展示了基線吞吐量。FP16和BF16精度的吞吐量比FP32高約4倍。A100的單精度理論性能是半精度理論性能的兩倍。由于使用半精度減少了內(nèi)存訪問,可能會帶來額外的性能改進。SambaNova SN30具有可重新配置的數(shù)據(jù)流架構(gòu),在BF16精度方面表現(xiàn)出令人印象深刻的性能,展示了其使用半精度格式處理復(fù)雜Transformer工作負載的潛力。由于RDU上的管道化/融合執(zhí)行,與任何管道一樣,自然會有一個預(yù)熱和冷卻階段。一批中的更多樣本會具有更長的穩(wěn)態(tài)行為和更高的有效吞吐量。由IPU提供動力的Graphcore Bow IPU在FP32和FP16精度方面表現(xiàn)出色,突出了其適用于NLP任務(wù)。同時,Habana Gaudi2在所有三種格式中都表現(xiàn)出強大的性能,強調(diào)了其在高效執(zhí)行各種Transformer計算方面的能力。在后向通道中,我們認為這是由于硬件利用率更高,從而帶來更高的吞吐量。AMD MI250利用其專用張量處理內(nèi)核陣列,在后向傳輸中表現(xiàn)出顯著的加速和一致的吞吐量。
B.GPT-2 XL
對于該模型,我們將設(shè)備數(shù)量的不同配置的預(yù)訓(xùn)練吞吐量作為縮放研究。稍后我們將討論序列長度和梯度累積步驟對模型吞吐量的敏感性。
1) 縮放研究:這部分,我們展示了在不同系統(tǒng)上縮放GPT-2XL模型的發(fā)現(xiàn)。由于資源的可用性,縮放研究中使用的設(shè)備數(shù)量因系統(tǒng)而異。我們使用了64個Nvidia A100 GPU、2個CS-2引擎、64個SambaNova SN30 RDU、64個Graphcore Bow IPU、4個AMD MI250 GPU和64個Habana Gaudi2 HPU。圖5顯示了設(shè)備數(shù)量的增加,對模型吞吐量(以log為單位)的影響。需要注意的是,每個系統(tǒng)上使用的精度是不同的,并且每個系統(tǒng)上的批量大小都針對該配置進行了調(diào)整。
圖5:GPT2-XL縮放研究顯示,序列長度為1K的加速器數(shù)量增加對吞吐量(以log為單位)的影響。
表II列出了每個評估系統(tǒng)上設(shè)備數(shù)量對加速以及縮放效率的影響。這項研究的一個引人注目的觀察結(jié)果表明,在16個SN30 RDU、2個CS-2和16個IPU上訓(xùn)練的模型優(yōu)于在64個A100上的運行。此外,Gaudi 2具有104%的最高縮放效率,這是由于Synapse軟件堆棧的優(yōu)化,這些優(yōu)化有助于最大限度地減少跨多個HPU劃分模型和數(shù)據(jù)的開銷。緊隨其后的是Bow Pod64,其縮放效率達到100%。超線性縮放是通過使用復(fù)制張量分片來實現(xiàn)的——隨著縮放的增加,DRAM I/O上的重量加載壓力降低,IPU鏈接被用來交換重量張量的分片。此外,Bow IPU有900 MB的SRAM,目前它不使用DRAM來運行,因此,由于SRAM大小的限制,我們無法將其安裝到單個IPU中。我們使用4個IPU,并行運行管道,模型層分布在IPU上。Cerebras CS-2的縮放效率為95.7%,這證明了具有專用節(jié)點的權(quán)重流技術(shù)的效率,MemoryX用于保存所有模型權(quán)重,SwarmX用于將這些權(quán)重流式傳輸?shù)接嬎阋妗V档米⒁獾氖牵琒N30和MI250的縮放效率約為80%,高于75.8%的A100。
表II:GPT-2 XL模型的縮放行為研究
結(jié)果表明,隨著模型在越來越多的設(shè)備上運行,所有評估的加速器都表現(xiàn)出了更高的吞吐量。盡管計算成本很高,但使用更多的設(shè)備可以更好地訓(xùn)練具有大量參數(shù)的模型。隨著模型大小按萬億參數(shù)的順序擴大,在不斷增加的設(shè)備數(shù)量上運行它們可能是不可行的,從而強調(diào)了實施新方法的必要性,以在給定計算預(yù)算的情況下優(yōu)化訓(xùn)練模型的時間。
2) 序列長度的影響:近期的研究強調(diào)了在大語言模型任務(wù)中縮放序列長度(縮放到1B以上的令牌)的必要性。在GenSLM科學(xué)應(yīng)用中,大的上下文長度在合成基因組數(shù)據(jù)方面極其重要。因此,我們研究了GPT-2模型的序列長度縮放的影響,并在Nvidia A100、SambaNova SN30和Cerebras CS-2上給出了結(jié)果,并由于支持有限或正在進行的工作而排除了其他結(jié)果。在本研究中,我們在A100和Cerebras系統(tǒng)上使用了GPT-2XL 1.5B參數(shù)模型,Cerebras CS-2和SambaNova SN30都使用了GPT2-13B參數(shù)模型。正如我們從表III中看到的,Nvidia A100至少需要4個設(shè)備來適應(yīng)較小序列長度的數(shù)據(jù)集。另一方面,SambaNova SN30和Cerebras CS-2由于其大的本地內(nèi)存和計算架構(gòu),可以在單個計算設(shè)備上適應(yīng)具有較長序列長度的模型。SambaNova SN30可以適應(yīng)13B參數(shù)模型,序列長度從1K到64K不等,所有這些都在一個RDU上。我們在數(shù)據(jù)并行模式下在一個節(jié)點上運行該模型的8個實例,并給出了結(jié)果。我們可以預(yù)見,隨著序列長度的增加,吞吐量會下降。此外,從32k的序列長度來看,該實現(xiàn)使用分段softmax實現(xiàn)。對于GPT-2XL模型的CS-2系統(tǒng),當(dāng)序列長度從1K增加到8K時,我們可以看到序列長度影響吞吐量的趨勢。
表III:序列長度對模型吞吐量的影響
3) 梯度積累積的影響:大語言模型,尤其是那些具有數(shù)十億參數(shù)的模型,在訓(xùn)練過程中會消耗大量內(nèi)存。梯度累積允許在更新模型的權(quán)重之前在多個小批量上累積梯度。與處理每個單獨的小批量后更新模型相比,這減少了內(nèi)存需求。當(dāng)使用內(nèi)存容量有限的硬件時,這一點尤為重要。在本研究中,我們研究了增加GAS值對模型性能的影響。
圖6:GAS值對模型吞吐量的影響
圖6(a)顯示了A100和MI250 GPU上模型吞吐量對GAS值的敏感性。在這項研究中,我們測試了GAS值為1和4的性能,同時我們將批量大小和序列長度分別保持為16和1024。我們觀察到,隨著設(shè)備數(shù)量的增加,在GAS值飽和之前,較大的GAS值的吞吐量有所提高。我們看到,當(dāng)微批量大小為1、張量平行度為1的GPT-2XL模型上的GAS值從1增加到4時,64個A100 GPU的模型吞吐量增加了1.74倍。
對于MI250 GPU,4個GPU的模型吞吐量增加了1.2倍。性能的提高可以通過處理GAS值增加的更多樣本的能力來解釋。此外,對于A100 GPU,當(dāng)我們將本地批量大小為32的GAS值從1增加到32時,我們觀察到模型吞吐量增加了1.74倍,從而證實了在相對較低的批量大小下,GAS值更容易增大。關(guān)于A100和MI250的本地批量大小和GAS值之間的權(quán)衡的詳細研究正在進行中。圖6(b)顯示了SambaNova SN30系統(tǒng)上GAS值為1、4、8和16的每秒采樣吞吐量。我們觀察到,當(dāng)與較小的本地批量相結(jié)合時,隨著GAS值的增加,吞吐量增益是顯著的。相反,增加GAS值對吞吐量的影響較小或沒有影響,吞吐量在較大的本地批量時飽和。這一觀察結(jié)果可歸因于這樣一個事實,即在較大的批量下,與通過減少優(yōu)化步驟數(shù)量節(jié)省的時間相比,在反向通過計算的情況下加載梯度的額外任務(wù)非常耗時。
圖6(c)顯示了Graphcore POD16上模型吞吐量對GAS值的敏感性。在本研究中,我們考慮了復(fù)制因子為4的情況,即表明模型的單個實例(在4個IPU上分片)被復(fù)制4次,以跨越整個POD16系統(tǒng)。結(jié)果可以擴展到POD64的整個構(gòu)架。正如我們所看到的,Graphcore可以支持從16到2048的非常大的GAS值。這是通過處理多個批次并將梯度聚合到累加器張量中而不增加內(nèi)存使用量來實現(xiàn)的。SambaNova SN30在技術(shù)上也可以支持非常大的GAS值,盡管它對模型吞吐量的影響尚待研究。Cerebras梯度累積步驟(GAS)由Cerebras軟件堆棧自動確定,以在給定所需全局批量大小和CS-2s數(shù)量的情況下驅(qū)動最佳吞吐量。鑒于用戶調(diào)整該參數(shù)的功能有限,我們在本研究中排除了CS-2。
4) 權(quán)重稀疏性對模型吞吐量的敏感性:稀疏性對于訓(xùn)練大語言模型很重要,這主要是由于幾個因素,例如通過只存儲非零參數(shù)提高了內(nèi)存效率,由于減少了每個優(yōu)化步驟中更新的參數(shù)數(shù)量而提高了訓(xùn)練速度,以及有效的可擴展性。它還有助于更快的推理,因為計算僅限于非零權(quán)重。在此,我們對模型稀疏性對Cerebras CS-2吞吐量的敏感性進行了研究。稀疏度反映了為加速訓(xùn)練而修剪的權(quán)重的百分比。從圖7中可以觀察到,模型吞吐量從密集模型(s=0)增加到高度稀疏模型(s=0.9)的變化。對于GPT-2XL模型,與完全密集模型(s=0)相比,我們觀察到在具有極端稀疏性(s=0.90)的情況下吞吐量加速了1.8倍到2倍。此外,稀疏度對較大模型的吞吐量提高有更高的影響。對于GPT-3 6.7B,在單個CS-2上的密集模型上,0.9的稀疏度產(chǎn)生2.1倍,而對于GPT--3 30B,在單個CS-2上的密集模型上,0.9的稀疏度獲得3.79倍。進一步擴展,與單個CS-2相比,8和16 各CS-2上的6.7B型號的加速系數(shù)分別提高了7.75倍和15.49倍。該實驗表明,模型稀疏性可以顯著提高吞吐量,并有可能幫助在相對較少的設(shè)備上運行更大的模型。
圖7:不同稀疏度水平(0、0.6、0.8和0.9)對CS-2上模型吞吐量的影響
此外,圖8顯示了在3B令牌上訓(xùn)練的GPT-3模型的損失曲線,強調(diào)了與密集模型相比,稀疏性s=0.9的模型精度損失了15%。在預(yù)訓(xùn)練期間,訓(xùn)練損失與稀疏性值成正比。然而,模型的密集微調(diào)可以恢復(fù)這樣的差距,正如Cerebras過去在稀疏預(yù)訓(xùn)練和密集微調(diào)框架上的工作所證明的那樣。1.3B GPT-3XL模型以75%的稀疏性進行預(yù)訓(xùn)練,在減少2.5倍預(yù)訓(xùn)練FLOP的同時,下游任務(wù)精度沒有顯著損失。我們目前正在探索用于CS-2上的大型LLM模型的稀疏預(yù)訓(xùn)練密集微調(diào)技術(shù)。
利用開發(fā)的技術(shù)和Nvidia A100評估稀疏性對SambaNova SN30訓(xùn)練的影響的研究正在進行中,并將包含在論文的最終版本中。由于稀疏性在其他系統(tǒng)上的支持有限或沒有,他們被排除在本研究之外。
C.GenSLM
表IV顯示了GenSLM模型在Nvidia A100、SambaNova SN30和Cerebras CS-2之間的吞吐量,以每秒令牌數(shù)為單位進行測量。我們給出了三種模型大小的吞吐量:A100和CS-2具有1.5B參數(shù)模型,A100、SN30和CS-2帶有13B參數(shù)模型以及CS-2帶有25B參數(shù)模型。在A100、SN30和CS-2的情況下,所有實現(xiàn)都使用GPT-2 13B參數(shù)模型,并且用1024的序列長度進行訓(xùn)練。A100和SN30都使用32的微批量大小,但由于SN30可以在4個Tile上適應(yīng)32微批量大小的13B模型,因此它可以在8個設(shè)備上并行容納該模型的16個實例。對于表III中使用的相同型號,SN30和A100使用不同的批大小。
表IV:GenSLM模型性能評估
我們的觀察結(jié)果表明,當(dāng)我們考慮相同數(shù)量的計算單元或設(shè)備時,SN30的吞吐量比相同數(shù)量的A100顯著提高了5.7倍。我們還發(fā)現(xiàn),與8個A100相比,同一型號的一個Cerebras CS-2表現(xiàn)出了19倍的巨大加速。
當(dāng)我們進一步比較在Nvidia A100和Cerebras CS-2上訓(xùn)練的1.5B參數(shù)GenSLM模型的性能時,出現(xiàn)了一個有趣的趨勢。CS-2能夠處理比A100 GPU上運行的序列長度長十倍的序列長度,同時比A100實現(xiàn)了顯著的2倍加速改進。
這一嚴格的評估強調(diào)了這些加速器在解決大規(guī)模現(xiàn)實世界科學(xué)應(yīng)用方面的重大貢獻。它們在加速大規(guī)模科學(xué)應(yīng)用領(lǐng)域的準(zhǔn)確性方面發(fā)揮著關(guān)鍵作用。
D. 觀察結(jié)果
這項對最關(guān)鍵的人工智能工作負載之一的全面基準(zhǔn)評估得出了幾個值得注意的觀察結(jié)果。下面,我們將介紹一些有趣且有價值的見解。
?在單個設(shè)備中容納相當(dāng)大的模型的能力取決于可用的計算資源和內(nèi)存容量。即使使用了強大的計算引擎,采用旨在最大限度地減少內(nèi)存消耗的創(chuàng)新技術(shù),特別是權(quán)重和激活等參數(shù),也是至關(guān)重要的。
促進開源模型的執(zhí)行和簡化Hugging Face模型的擴展對于利用這些人工智能加速器進行大量新興的人工智能科學(xué)應(yīng)用非常重要。
實現(xiàn)人工智能加速器之間的公平比較是一個顯著的挑戰(zhàn)。差異源于局部/微批量大小、GAS值、模型副本數(shù)量和相關(guān)因素的變化。必須制定有利于公平比較的方法。
值得注意的是,GAS值的增加并不總是轉(zhuǎn)化為超過某個閾值的性能改進。這種方法結(jié)合了對微批量大小的明智選擇,可以在更大的批量大小下運行。
支持較長的序列長度對于捕獲上下文、處理長期依賴關(guān)系以及在各種任務(wù)中表現(xiàn)出色非常重要。
隨著即將推出的具有數(shù)萬億參數(shù)的模型以及滿足更長序列長度的要求,硬件和軟件設(shè)計必須進行定制,以最大限度地提高計算能力,同時最大限度地減少內(nèi)存使用。
VI.結(jié)論
在本文中,我們對非傳統(tǒng)硬件上的生成人工智能模型進行了廣泛而全面的評估,重點是GPT模型、Transformer block的深入分析和科學(xué)應(yīng)用(GenSLM)。此外,我們探索了GPT-2模型的縮放行為,以深入了解其性能特征。我們的一個重要觀察結(jié)果是硬件固有的內(nèi)存限制,這限制了可以安裝在單個設(shè)備上的模型大小的可行性。它還需要分布式實現(xiàn),例如數(shù)據(jù)并行,并增加設(shè)備數(shù)量。隨著設(shè)備數(shù)量的增加,也觀察到接近線性的縮放。此外,采用優(yōu)化,如權(quán)重稀疏性,有助于有效減少分布式實現(xiàn)中的通信開銷。
我們計劃繼續(xù)進行這項評估,重點關(guān)注更長的序列長度,并為新興的科學(xué)應(yīng)用生成具有代表性的人工智能基準(zhǔn)模型。我們還希望將這項全面的基準(zhǔn)研究擴展到更大的模型,如175B參數(shù)模型,以及具有不同架構(gòu)的生成模型,如Llama。據(jù)觀察,為了促進更大模型的有效訓(xùn)練,例如用于科學(xué)應(yīng)用的人工智能中的萬億參數(shù),利用非傳統(tǒng)人工智能硬件將是至關(guān)重要的。優(yōu)化除模型吞吐量之外的其他指標(biāo),如訓(xùn)練中的功耗和I/O,特別是在增加計算和利用更大數(shù)據(jù)集的情況下,也是至關(guān)重要的。
本文作者
Murali Emani、Sam Foreman、Varuni Sastry、Zhen Xie、Siddhisanket Raskar、William Arnold、Rajeev Thakur、Venkatram Vishwanath、Michael E. Papka
編輯:黃飛
?
評論
查看更多