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