999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于計(jì)算機(jī)體系結(jié)構(gòu)的大模型加速研究進(jìn)展

2024-01-18 09:09:48武瓊
科學(xué)與信息化 2024年1期
關(guān)鍵詞:計(jì)算機(jī)優(yōu)化模型

武瓊

北京冉騰語(yǔ)云科技有限公司 北京 100000

引言

大模型時(shí)代已然到來(lái),我們要擁抱未來(lái),改變世界。但大模型在網(wǎng)絡(luò)受限、計(jì)算資源不足的場(chǎng)景下,不能有效使用,算力低,無(wú)法滿足端側(cè)訓(xùn)練及本地化部署的問(wèn)題亟待解決。大模型加速、輕量化,是大模型能在消費(fèi)級(jí)配置中運(yùn)用的必然之路。

大模型的出現(xiàn),改變了馮諾依曼的傳統(tǒng)計(jì)算機(jī)體系結(jié)構(gòu)。處理器結(jié)構(gòu)、計(jì)算速度、計(jì)算精度等,對(duì)處理器及內(nèi)存提出了分布式存儲(chǔ)計(jì)算的要求,對(duì)體系架構(gòu)下各設(shè)備之間的輸入輸出提出了更高的要求。

大模型出現(xiàn)之前,算法與硬件是可以解耦的,但大模型的出現(xiàn),需要算法強(qiáng)依賴(lài)硬件資源,只有合理使用硬件,對(duì)硬件做到足夠優(yōu)化的基礎(chǔ)上,才能更好地支撐算法的訓(xùn)練和應(yīng)用。

目前在大模型輕量化的研究主要集中在模型量化,剪枝,蒸餾等算法層面,并未從硬件到軟件,從計(jì)算機(jī)體系角度全面貫通的大模型輕量化方法。

本文從計(jì)算機(jī)體系架構(gòu)角度,分析大模型對(duì)計(jì)算機(jī)各組成部分的優(yōu)化技術(shù)和調(diào)整方案,以滿足將大模型在消費(fèi)級(jí)移動(dòng)設(shè)備和小型設(shè)備上進(jìn)行訓(xùn)練和部署的目標(biāo)。

本文主要從計(jì)算機(jī)體系架構(gòu)的7個(gè)方面分析大模型輕量化研究進(jìn)展:①基于大模型的計(jì)算機(jī)體系架構(gòu)的變化;②處理器計(jì)算加速;③顯存加速;④輸入輸出通信傳輸加速;⑤操作系統(tǒng)加速;⑥編譯加速;⑦算法加速。

1 大模型下計(jì)算機(jī)新體系架構(gòu)

大模型技術(shù)的出現(xiàn),在計(jì)算機(jī)系統(tǒng)架構(gòu)中,最大變化是處理器,由單CPU模式變革到CPU與GPU聯(lián)合處理模式,這也是大模型得以實(shí)現(xiàn)的關(guān)鍵所在。處理器變化如下圖。

1.1 新計(jì)算機(jī)體系架構(gòu)框架

整體架構(gòu)如圖1所示。

圖1 新計(jì)算機(jī)體系架構(gòu)

1.1.1 系統(tǒng)存儲(chǔ)。

(1)L/L2L3:多級(jí)緩存,其位置一般在CPU芯片內(nèi)部。

(2)System DRAM:片外內(nèi)存,內(nèi)存條。

(3)Disk/Buffer:外部存儲(chǔ),如磁盤(pán)或者固態(tài)磁盤(pán)。

1.1.2 GPU設(shè)備存儲(chǔ)。

(1)/L2 cache:多級(jí)緩存,位置在GPU芯片內(nèi)部。

(2)GPUDRAM:通常所指顯存。

(3)GPU設(shè)備存儲(chǔ)包含許多存儲(chǔ)單元。

1.1.3 傳輸通道。

(1)PCIEBUS:PCIE標(biāo)準(zhǔn)的數(shù)據(jù)通道,數(shù)據(jù)是通過(guò)該通道從顯卡到達(dá)主機(jī)。

(2)BUS:總線。計(jì)算機(jī)內(nèi)各個(gè)存儲(chǔ)之間交互數(shù)據(jù)通道。

(3)PCIE-to-PCIE:顯卡之間通過(guò)PCIE直接傳輸數(shù)據(jù)。

(4)NVLINK:顯卡之間的一種專(zhuān)用的數(shù)據(jù)傳輸通道。

1.2 新舊體系架構(gòu)的變化

所有對(duì)大模型的優(yōu)化、加速、輕量化,都是對(duì)于體系架構(gòu)中更好利用CPU、多級(jí)內(nèi)存、GPU并行計(jì)算速度,GPU顯存更好利用,提升速度等方面的優(yōu)化。

①為了適應(yīng)大模型千億數(shù)據(jù)的并行計(jì)算,處理器由CPU單一架構(gòu),增加了GPU集群;②為了存儲(chǔ)更多的參數(shù),內(nèi)存由過(guò)去的CPU緩存,增加了多級(jí)緩存,最革新的變化為增加了大量的GPU顯存;③處理器內(nèi)部,增加了內(nèi)存到顯存、顯存到顯存的通信傳輸通道。

2 處理器計(jì)算加速

處理器加速的最大變革是增加了GPU。為了更好地優(yōu)化算法,最大程度節(jié)省硬件資源,需要對(duì)算法進(jìn)行算力評(píng)估。

2.1 算力計(jì)算

2.1.1 訓(xùn)練算力。

訓(xùn)練算力 = 訓(xùn)練步數(shù)×每步計(jì)算量×并行度

(1)訓(xùn)練步數(shù):模型訓(xùn)練的迭代次數(shù),確保模型能夠收斂到最優(yōu)解。

(2)每步計(jì)算量:每個(gè)訓(xùn)練步驟需要的計(jì)算量,取決于模型的復(fù)雜度和訓(xùn)練數(shù)據(jù)的大小。

(3)并行度:計(jì)算設(shè)備的并行計(jì)算能力,計(jì)算設(shè)備的并行度越高,計(jì)算速度就越快。

2.1.2 參數(shù)計(jì)算。

其中:

C是訓(xùn)練transformer模型所需的計(jì)算量,單位為總浮點(diǎn)運(yùn)算數(shù)(FLOP);

C=C前向+C后向;

C前向≈ 2PD;

C后向≈ 4PD。

τ是訓(xùn)練集群的實(shí)際總吞吐量:

τ=GPU數(shù)×每GPU的實(shí)際每秒浮點(diǎn)運(yùn)算數(shù)(實(shí)際FLOPs),單位為FLOPs;

T是訓(xùn)練模型所花費(fèi)的時(shí)間,以秒為單位;

P是transformer模型的參數(shù)量;

D是數(shù)據(jù)集大小,表示為數(shù)據(jù)集的總詞元數(shù)。

2.1.3 精度計(jì)算。

精度計(jì)算如圖2所示。

圖2 精度計(jì)算結(jié)構(gòu)

2.2 構(gòu)建GPU集群

GPU集群能夠支持萬(wàn)級(jí)卡的高速互聯(lián),支持各種異構(gòu)計(jì)算,包括CPU、GPU等算力的高速互聯(lián)。

GPU集群支持模型并行、數(shù)據(jù)并行、流水線并行、張量并行,大大提高計(jì)算速度。

3 存儲(chǔ)加速

大模型環(huán)境下,存儲(chǔ)加速考慮最多的是GPU顯存加速。

3.1 消耗顯存的來(lái)源

GPU的高性能已成為業(yè)界共識(shí),但單個(gè)GPU的顯存大小卻增長(zhǎng)緩慢,顯存能力成為大模型訓(xùn)練的主要瓶頸,大模型的加速目標(biāo)主要集中在對(duì)顯存的優(yōu)化與加速。首先要明確消耗顯存的來(lái)源。

①數(shù)據(jù)顯存:輸入數(shù)據(jù)和神經(jīng)網(wǎng)絡(luò)每層輸出的激活值大小受batchsize及上下文長(zhǎng)度影響;②模型顯存:權(quán)重參數(shù)、梯度參數(shù)、優(yōu)化器狀態(tài)等都直接影響顯存的性能;③臨時(shí)顯存:GPUkernel計(jì)算時(shí)用到的臨時(shí)內(nèi)存和其他緩存等。④精度計(jì)算。

3.2 顯存優(yōu)化的方法

①Batch size:減少每次傳入模型的樣本數(shù)量。較小的batchsize可以減少顯存的使用,但也會(huì)降低模型的訓(xùn)練效果,batchsize選擇要權(quán)衡顯存的限制和模型的性能要求;②減少模型的參數(shù)量:也就是減少模型的復(fù)雜度,減少模型的隱藏層、每層神經(jīng)元數(shù)量,但會(huì)導(dǎo)致模型的表示能力下降,影響模型性能,要選擇適當(dāng)?shù)膮?shù)量,達(dá)到兩者平衡后的最佳效果。③梯度累積技術(shù):將梯度計(jì)算結(jié)果存儲(chǔ)在顯存中,以便在計(jì)算下一批樣本時(shí)重復(fù)使用;④壓縮模型參數(shù):利用GPU集群,使用分布式存儲(chǔ)計(jì)算推理技術(shù),將模型的計(jì)算分布到多個(gè)設(shè)備上,以減少單個(gè)設(shè)備的顯存需求;⑤模型并行:將模型的參數(shù)、梯度、優(yōu)化器狀態(tài)以模型并行的方式切分到所有的GPU,利用ZeRO-Cache框架把內(nèi)存作為二級(jí)存儲(chǔ)offload卸載參數(shù)、梯度、優(yōu)化器狀態(tài)到CPU內(nèi)存;⑥數(shù)據(jù)并行:在各個(gè)GPU上都拷貝一份完整模型,各自有一份數(shù)據(jù),算一份梯度,最后對(duì)梯度進(jìn)行累加來(lái)更新整體模型;⑦流水線并行:當(dāng)模型太大,一塊GPU放不下時(shí),流水線并行將模型的不同層放到不同的GPU上,通過(guò)切分mini-batch實(shí)現(xiàn)對(duì)訓(xùn)練數(shù)據(jù)的流水線處理,提示GPU計(jì)算通信比,通過(guò)re-materialization機(jī)制降低顯存消耗;⑧內(nèi)存架構(gòu)優(yōu)化:可以采用參數(shù)服務(wù)器集中式和去中心化兩種方式。

4 輸入輸出傳輸通信加速

大模型的基礎(chǔ)設(shè)施需要高性能智能計(jì)算,在萬(wàn)卡規(guī)模的網(wǎng)絡(luò)架構(gòu)中,要保證網(wǎng)絡(luò)的擴(kuò)展性,沒(méi)有擁塞,是非常困難的。大模型體系架構(gòu)的通信特點(diǎn)是,有很多集合的通信操作,集合通信可以分解為同號(hào)卡之間的集合通信,在同號(hào)卡之間構(gòu)建高速的通信通道,提升整個(gè)網(wǎng)絡(luò)的吞吐量。

大模型架構(gòu)體系的輸入輸出通信模式,也對(duì)大模型性能有很大的影響,大模型通信優(yōu)化方向:①改善網(wǎng)絡(luò)硬件資源,從物理上直接提升帶寬,降低延遲,但成本高,需要新設(shè)備及使用維護(hù)開(kāi)銷(xiāo);②采用AllReduce集合通信,減少帶寬聚合,但不利于集中管理;③增加并行度,通過(guò)重疊計(jì)算與通信減少通信獨(dú)立時(shí)間,但實(shí)現(xiàn)設(shè)計(jì)深度學(xué)習(xí)框架,修改困難;④改善同步通信算法,通過(guò)選取更合適的算法來(lái)減少通信時(shí)間,但不同環(huán)境下算法選擇不固定;⑤使用張量融合技術(shù),減少小通信包的通信時(shí)間占比,有額外的計(jì)算開(kāi)銷(xiāo),會(huì)造成異步;⑥使用異步通信算法,減小由于計(jì)算時(shí)間差導(dǎo)致的節(jié)點(diǎn)等待,但只支持PS結(jié)構(gòu),另外會(huì)造成渾濁梯度影響訓(xùn)練精度;⑦量化壓縮及稀疏化壓縮,大幅度降低通信量,造成數(shù)量信息丟失,影響訓(xùn)練精度;⑧與拓?fù)湎嚓P(guān)的網(wǎng)絡(luò)優(yōu)化,充分利用拓?fù)鋷挘薅☉?yīng)用范圍,系統(tǒng),算法實(shí)現(xiàn)難;⑨專(zhuān)用系統(tǒng)設(shè)計(jì),減少帶寬聚合,減少節(jié)點(diǎn)計(jì)算量,但硬件成本高;⑩減少通信占比,調(diào)整神經(jīng)網(wǎng)絡(luò)來(lái)降低同步參數(shù)量,但在多數(shù)環(huán)境下性能因素并非調(diào)整神經(jīng)網(wǎng)絡(luò)的主導(dǎo)因素。

5 操作系統(tǒng)加速

大模型在內(nèi)存的分布式存儲(chǔ)與并行計(jì)算,對(duì)計(jì)算機(jī)系統(tǒng)管理提出了更高的要求,越來(lái)越多的操作系統(tǒng)管理工作放在GPU中,以及與GPU相關(guān)的CUDE中,未來(lái)大模型會(huì)是操作系統(tǒng)中的一部分。

大模型需要在更多不同操作系統(tǒng)的端側(cè)設(shè)備,如手機(jī)、汽車(chē)、智能家電等點(diǎn)在設(shè)備、VR可穿戴設(shè)備等終端設(shè)備運(yùn)行,需要有更高效的操作系統(tǒng)在硬件與軟件之間找到平衡。

6 算法加速

6.1 算法架構(gòu)優(yōu)化

①減少卷積核大小,將大卷積分解成一系列小的卷積核的操作組合,將少attention點(diǎn)積操作;②減少通道數(shù);③加強(qiáng)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索:更少的乘法操作,更快的速度;④損失函數(shù)優(yōu)化。

6.2 矩陣優(yōu)化計(jì)算

對(duì)矩陣計(jì)算進(jìn)行優(yōu)化,提高計(jì)算效率和節(jié)省存儲(chǔ)空間。

6.2.1 分塊矩陣乘法:將矩陣劃分成小矩陣的塊,通過(guò)重新組合計(jì)算順序來(lái)減少計(jì)算量。可以利用矩陣的局部性,將少內(nèi)存訪問(wèn)次數(shù),提高計(jì)算效率。

6.2.2 并行計(jì)算的矩陣乘法優(yōu)化:將大矩陣分解成多個(gè)子矩陣,分配給不同的處理器進(jìn)行并行計(jì)算,加快計(jì)算速度。

6.2.3 矩陣轉(zhuǎn)置優(yōu)化:交換矩陣的行和列,需要使用額外的存儲(chǔ)空間,時(shí)間復(fù)雜度高。

6.2.4 矩陣分解優(yōu)化:將一個(gè)矩陣分解成多個(gè)子矩陣,常用的矩陣分解方法LU分解、QR分解、奇異值分解。

6.3 模型剪枝[1]

大模型網(wǎng)絡(luò)結(jié)構(gòu)中,有大量的冗余參數(shù),在推理過(guò)程中,僅有少部分的權(quán)值與有效計(jì)算,并對(duì)推理結(jié)果產(chǎn)生主要影響。剪枝方法通過(guò)把網(wǎng)絡(luò)結(jié)構(gòu)中冗余的權(quán)值、節(jié)點(diǎn)或?qū)尤サ簦瑴p少網(wǎng)絡(luò)的規(guī)模,降低復(fù)雜度。

6.3.1 剪枝原理:訓(xùn)練一個(gè)性能較好的原始模型,參數(shù)巨大,推理速度慢。判斷原模型中參數(shù)的重要程度,去除重要程度較低的參數(shù),在訓(xùn)練集上微調(diào),盡量避免由于網(wǎng)絡(luò)結(jié)構(gòu)變化而出現(xiàn)的性能下降,判斷模型大小、推理速度、效果等是否滿足要求,不滿足繼續(xù)剪枝。

6.3.2 非結(jié)構(gòu)化剪枝:權(quán)重剪枝,神經(jīng)元剪枝。

6.3.3 結(jié)構(gòu)化剪枝:卷積剪枝,跨多層剪枝。

6.3.4 Channel-wise: 通道剪枝[2]。

6.3.5 Stripe-wise pruning:[3]。

6.4 模型量化

大模型中計(jì)算量非常大,需要GPU等專(zhuān)用的計(jì)算pintail才能實(shí)現(xiàn)實(shí)時(shí)運(yùn)算,這對(duì)于端上產(chǎn)品是不可接受的,模型量化就是減少計(jì)算量的方法。量化,對(duì)模型網(wǎng)絡(luò)的權(quán)值,激活值等從高精度轉(zhuǎn)化成低精度的操作過(guò)程,模型量化優(yōu)勢(shì)如下。

6.4.1 量化方法。①聚類(lèi)量化[4];②對(duì)數(shù)量化;③二值量化;④對(duì)稱(chēng)量化;⑤非對(duì)稱(chēng)量化;⑥訓(xùn)練后量化和訓(xùn)練感知量化。

6.4.2 量化步驟。①選擇合適的量化方法,確定選用的對(duì)稱(chēng)量化或非對(duì)稱(chēng)量化;②統(tǒng)計(jì)輸輸入數(shù)據(jù)的數(shù)值區(qū)間;③根據(jù)量化方法,輸入?yún)^(qū)間,計(jì)算量化參數(shù),零點(diǎn)值,縮放系數(shù);④根據(jù)轉(zhuǎn)換公式,對(duì)輸入的float32精度的數(shù)據(jù)轉(zhuǎn)換為int8精度數(shù)據(jù);⑤驗(yàn)證量化后的模型效果。

6.5 知識(shí)蒸餾[5-6]

大模型結(jié)構(gòu)復(fù)雜,但有良好的性能和泛化能力,小模型網(wǎng)絡(luò)規(guī)模小,表達(dá)能力有限,利用大模型學(xué)習(xí)到的知識(shí)去指導(dǎo)小模型訓(xùn)練,使得小模型具有與大模型相當(dāng)?shù)男阅埽箙?shù)量大福降低,可實(shí)現(xiàn)大模型輕量化。

6.5.1 知識(shí)蒸餾一般流程。

知識(shí)蒸餾如圖3所示。

圖3 知識(shí)蒸餾一般流程

6.5.2 知識(shí)蒸餾方法。①利用蒸餾損失函數(shù)刻畫(huà)的教師神經(jīng)網(wǎng)絡(luò)中的知識(shí)在蒸餾過(guò)程中的丟失程度;②多教師知識(shí)蒸餾;③融合圖神經(jīng)網(wǎng)絡(luò)的知識(shí)蒸餾;④結(jié)合多模態(tài)的知識(shí)蒸餾。

7 編譯加速

編譯器是連接算法和體系結(jié)構(gòu)的部分,是解決訓(xùn)練環(huán)境與部署環(huán)境不一致的直接方法。一般通過(guò)大模型特有的深度學(xué)習(xí)訓(xùn)練框架,作為訓(xùn)練環(huán)境和部署環(huán)境的中間層,在中間層表示做系列標(biāo)準(zhǔn)的流圖優(yōu)化操作(loop調(diào)度,算子融合等),最后在按需求生成各自目標(biāo)平臺(tái)的機(jī)器碼。常用的大模型編譯器:①TVM:實(shí)現(xiàn)算子代碼的自動(dòng)生成;②TensorflowXLA:是一種優(yōu)化TensorFlow計(jì)算的編譯器,可以提高服務(wù)器的移動(dòng)平臺(tái)的速度,改進(jìn)內(nèi)存使用、提升便攜性和可移植性;③PytorchGlow:Glow是一個(gè)機(jī)器學(xué)習(xí)編譯器和執(zhí)行引擎,可以面向多種硬件;④DeepSpeed:微軟開(kāi)源的一個(gè)LLM模型訓(xùn)練推理加速工具,并在此編譯框架下復(fù)現(xiàn)了instructGPT論文工作,可以將速度提升15倍以上。DeepSpeed提供了GPU加速、模型壓縮、ZeRO優(yōu)化、自動(dòng)混合精度、算力預(yù)測(cè)等功能,支持多種編程語(yǔ)言和編譯框架,如Python、PyTorch、TensorFlow、JAX等編譯器。

8 結(jié)束語(yǔ)

全文從計(jì)算機(jī)體系架構(gòu)角度,從底層硬件到上層軟件,對(duì)目前存在的LLM大模型加速方進(jìn)行總結(jié)分析,建立了一種全視角LLM大模型加速的思路,有利于下一步通過(guò)計(jì)算機(jī)體系架構(gòu)整體研究LLM大模型加速。

猜你喜歡
計(jì)算機(jī)優(yōu)化模型
一半模型
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
計(jì)算機(jī)操作系統(tǒng)
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
基于計(jì)算機(jī)自然語(yǔ)言處理的機(jī)器翻譯技術(shù)應(yīng)用與簡(jiǎn)介
科技傳播(2019年22期)2020-01-14 03:06:34
信息系統(tǒng)審計(jì)中計(jì)算機(jī)審計(jì)的應(yīng)用
主站蜘蛛池模板: 国产精品福利社| 亚洲三级片在线看| 9久久伊人精品综合| 亚洲热线99精品视频| 亚洲综合天堂网| 亚洲天堂免费观看| 57pao国产成视频免费播放| 尤物午夜福利视频| 热久久综合这里只有精品电影| 国产视频久久久久| 思思热在线视频精品| 亚洲国产欧洲精品路线久久| 国产亚洲欧美日韩在线一区二区三区| 久久精品国产亚洲麻豆| 午夜无码一区二区三区| 人妻无码中文字幕一区二区三区| 久久网欧美| 2020亚洲精品无码| 99久久精品免费看国产电影| 欧美成在线视频| 亚洲精品少妇熟女| 亚洲精品成人7777在线观看| 99激情网| 色偷偷av男人的天堂不卡| 国内精自线i品一区202| 人妻91无码色偷偷色噜噜噜| 热99re99首页精品亚洲五月天| 欧美日韩中文字幕在线| 日韩视频精品在线| 欧美成人午夜影院| 日韩不卡免费视频| 欧美成人h精品网站| 亚洲视频四区| 免费观看成人久久网免费观看| 欧美a在线| 日本a级免费| 一级毛片免费的| 亚洲成人福利网站| 国产欧美亚洲精品第3页在线| 免费中文字幕在在线不卡 | 欧美国产日韩在线| 99热最新在线| 欧美日韩北条麻妃一区二区| a网站在线观看| 国产黑丝一区| 熟妇人妻无乱码中文字幕真矢织江 | 国产99在线| 欧美日韩91| 国内精品久久久久鸭| 综合亚洲网| 精品视频第一页| 婷婷中文在线| 人妻无码中文字幕第一区| 亚洲Av激情网五月天| 福利在线一区| 一区二区三区国产| 国产三级毛片| 第一区免费在线观看| 亚洲天堂视频网| 91伊人国产| 国产欧美日韩视频一区二区三区| 国产精品手机在线观看你懂的| 国产一区二区视频在线| 国产尤物在线播放| 韩日午夜在线资源一区二区| 亚洲男人在线天堂| 一本一本大道香蕉久在线播放| 成人无码区免费视频网站蜜臀| 亚洲国产亚洲综合在线尤物| 亚洲青涩在线| 丁香婷婷久久| 国产综合欧美| 香蕉视频在线观看www| 国产美女精品在线| 国产一区在线视频观看| 亚洲精品天堂自在久久77| 在线免费看黄的网站| 国模私拍一区二区| 99在线观看免费视频| 国产尤物jk自慰制服喷水| 亚洲妓女综合网995久久| 9啪在线视频|