巨量模型的智能生產(chǎn)力正在逐步滲透到各行各業(yè),但它們的部署和運行通常需要專用的AI加速卡,能否在CPU上運行千億大模型,對千行百業(yè)智能化轉(zhuǎn)型的深化與普惠至關(guān)重要。
日前,浪潮信息研發(fā)工程師基于2U4路旗艦通用服務(wù)器NF8260G7,通過張量并行、模型壓縮量化等技術(shù),解決了通用服務(wù)器的CPU計算資源不足、內(nèi)存帶寬瓶頸、缺乏大規(guī)模并行計算環(huán)境等問題,在業(yè)內(nèi)首次實現(xiàn)服務(wù)器僅依靠4顆CPU即可運行千億參數(shù)“源2.0”大模型。該方案建設(shè)成本更低,首次投入可節(jié)約80%以上建設(shè)成本,且通用服務(wù)器功耗更低,運維更便捷,能夠有效降低客戶TCO。
大模型推理的硬件需求:內(nèi)存與帶寬的雙重考驗
當(dāng)前,大模型的推理計算面臨多方面的挑戰(zhàn),制約了大模型服務(wù)成本的降低和應(yīng)用落地。
首先是對內(nèi)存容量的需求。大模型的推理過程中,需要將全部的模型權(quán)重參數(shù)、計算過程中的KV Cache等數(shù)據(jù)存放在內(nèi)存中,一般需要占用相當(dāng)于模型參數(shù)量2-3倍的內(nèi)存空間。隨著業(yè)界LLM的網(wǎng)絡(luò)架構(gòu)從GPT架構(gòu)走向MOE架構(gòu),主流開源模型的尺寸越來越大,千億及以上參數(shù)的模型已經(jīng)成為主流,運行一個千億大模型(100B),則需要200-300GB的顯存空間。
其次是對計算和內(nèi)存讀寫帶寬的需求。大模型的推理主要分為預(yù)填充和解碼兩個階段。預(yù)填充階段把Prompt一次性輸入給模型進行計算,對顯存的需求更大;解碼階段,每次推理僅生成1個token,計算訪存較低,對內(nèi)存帶寬的需求更大。因此,千億大模型的實時推理,計算設(shè)備需要具備較高的計算能力,以及較高的存儲單元到計算單元的數(shù)據(jù)搬運效率。
NF8260G7作為一款采用高密度設(shè)計的2U4路服務(wù)器,支持16TB大內(nèi)存容量,配置了4顆具有AMX(高級矩陣擴展)的AI加速功能的英特爾至強處理器,內(nèi)存帶寬極限值為1200GB/s。盡管NF8260G7服務(wù)器可以輕松滿足千億大模型推理的內(nèi)存需求,甚至于萬億參數(shù)的MOE架構(gòu)大模型推理的內(nèi)存需求。但是,按照BF16的精度計算,千億參數(shù)大模型運行時延要小于100ms,內(nèi)存與計算單元之間的通信帶寬至少要在2TB/s以上。因此,要在NF8260G7上實現(xiàn)千億大模型的高效運行,僅靠硬件升級還遠遠不夠,硬件資源與軟件算法協(xié)同優(yōu)化至關(guān)重要。
張量并行+NF4量化,實現(xiàn)千億模型極致優(yōu)化
Yuan2.0-102B是浪潮信息發(fā)布的新一代基礎(chǔ)語言大模型,參數(shù)量為1026億,通過提出全新的局部注意力過濾增強機制(LFA:Localized Filtering-based Attention),有效提升了自然語言的關(guān)聯(lián)語義理解能力。
為了盡可能提升Yuan2.0-102B模型在NF8260G7服務(wù)器上的推理計算效率,浪潮信息算法工程師采用了張量并行(tensor parallel)策略。該策略改變了傳統(tǒng)CPU服務(wù)器串行運行的模式,把Yuan2.0-102B模型中的注意力層和前饋層的矩陣計算分別拆分到多個處理器,實現(xiàn)同時使用4顆CPU進行計算加速。然而,張量并行對模型參數(shù)的切分粒度較細,要求CPU在每次張量計算后進行數(shù)據(jù)同步,增加了對CPU間通信帶寬的需求。在傳統(tǒng)的使用多個基于PCIe互聯(lián)的AI芯片進行張量并行時,通信占比往往會高達50%,也就是AI芯片有50%的時間都在等待數(shù)據(jù)傳輸,極大影響了推理效率。
NF8260G7服務(wù)器的4顆CPU通過全鏈路UPI(Ultra Path Interconnect)總線互連,該設(shè)計帶來了兩個優(yōu)勢:首先,全鏈路UPI互連允許任意兩個CPU之間直接進行數(shù)據(jù)傳輸,減少了通信延遲;其次,全鏈路UPI互連提供了高傳輸速率,高達16GT/s(Giga Transfers per second),遠高于PCIe的通信帶寬,保障了4顆處理器間高效的數(shù)據(jù)傳輸,從而支持張量并行策略下的數(shù)據(jù)同步需求。
UPI總線互連示意圖
為了進一步提升Yuan2.0-102B模型在NF8260G7服務(wù)器上的推理效率,浪潮信息算法工程師還采用了NF4量化技術(shù),來進一步提升推理的解碼效率,從而達到實時推理的解碼需求。NF4(4位NormalFloat)是一種分位數(shù)量化方法,適合于正態(tài)分布的數(shù)據(jù)。它通過確保量化區(qū)間內(nèi)輸入張量的值數(shù)量相等,來實現(xiàn)對數(shù)據(jù)的最優(yōu)量化。由于大型語言模型(LLM)的權(quán)重通常呈現(xiàn)零中心的正態(tài)分布,NF4量化技術(shù)可以通過調(diào)整標(biāo)準(zhǔn)差來適配量化數(shù)據(jù)類型的范圍,從而獲得比傳統(tǒng)的4位整數(shù)或4位浮點數(shù)量化(這些量化方法的數(shù)據(jù)間隔通常是平均分布或指數(shù)分布的)更高的精度。
INT4數(shù)據(jù)類型與NF4數(shù)據(jù)類型對比
為了進一步壓縮Yuan2.0-102B模型的權(quán)重參數(shù),浪潮信息算法工程師采用了嵌套量化(Double Quant)技術(shù),這是在NF4量化基礎(chǔ)上進行的二次量化。NF4量化后,由于會產(chǎn)生大量的scale參數(shù),如果使用32位浮點數(shù)(FP32)存儲,會占用大量的內(nèi)存空間。若以64個參數(shù)作為一個量化塊(block size=64)來計算,對于一個千億參數(shù)的大模型,僅存儲scale參數(shù)就需要額外的6GB內(nèi)存:
(100B/64) * 4 = 6GB
為了減少內(nèi)存占用,浪潮信息工程師通過將這些scale參數(shù)量化到8位浮點數(shù)(FP8),可以顯著減少所需的存儲空間。在采用256為量化塊大小(block size=256)的情況下,存儲所有scale參數(shù)所需的額外空間僅為1.57GB:
(100B/64/256)* 4 + (100B/64) * 1 = 1.57GB
通過嵌套量化,模型的每個權(quán)重參數(shù)最終僅占用4字節(jié)的內(nèi)存空間,這比原始的FP32存儲方式減少了大量的內(nèi)存占用,從內(nèi)存到CPU的數(shù)據(jù)搬運效率提高了4倍。這樣的優(yōu)化顯著減輕了內(nèi)存帶寬對Yuan2.0-102B模型推理解碼效率的限制,從而進一步提升了模型的推理性能。
高算效,低成本
通過在NF8260G7服務(wù)器上應(yīng)用張量并行和NF4量化技術(shù),浪潮信息工程師成功實現(xiàn)了千億大模型Yuan2.0-102B的實時推理,根據(jù)性能分析(profiling)的結(jié)果,可以清晰地看到模型中不同部分的計算時間分布:線性層運行時間占比50%,卷積運行時間占比20%,聚合通信時間占比20%,其它計算占比10%。在整個推理過程中,計算時間占比達到了80%,和此前相比,計算時間占比提升30%,大幅提升了算力利用率。
Yuan2.0-102B模型推理性能分析(profiling)結(jié)果圖
浪潮信息基于通用服務(wù)器NF8260G7的軟硬件協(xié)同創(chuàng)新,為千億參數(shù)AI大模型在通用服務(wù)器的推理部署,提供了性能更強,成本更經(jīng)濟的選擇,讓AI大模型應(yīng)用可以與云、大數(shù)據(jù)、數(shù)據(jù)庫等應(yīng)用能夠?qū)崿F(xiàn)更緊密的融合,從而充分釋放人工智能在千行百業(yè)中的創(chuàng)新活力。
-
cpu
+關(guān)注
關(guān)注
68文章
10911瀏覽量
213141 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9332瀏覽量
86132 -
浪潮
+關(guān)注
關(guān)注
1文章
469瀏覽量
23953 -
大模型
+關(guān)注
關(guān)注
2文章
2598瀏覽量
3211
原文標(biāo)題:服務(wù)器僅靠4顆CPU運行千億大模型的“算法秘籍”
文章出處:【微信號:浪潮AIHPC,微信公眾號:浪潮AIHPC】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論