淺談國產化AI芯片模型部署實踐
國產化AI芯片的發展已經成為國內信息技術產業的一個重要領域,它的發展始于對高性能計算需求的崛起,尤其是在人工智能和大數據領域,國內的科研機構和高新技術企業開始投入大量資源用于AI芯片的研發,以滿足國內應用的需求。并且隨著中國在各個高新領域的不斷發力與國外AI芯片技術近年來不斷加深的制裁,各個行業的企業也開始合作,以共同推動AI芯片的研發和應用,包括通信、云計算、智能制造、自動駕駛等領域。國內市場對AI芯片的需求迅速增長,也促使了本土芯片的研發和生產。以上種種皆表明使用國產化AI芯片,推動國產化芯片的繁榮發展具有極其重要的現實含義。
一、國產化AI芯片模型部署的重要意義
人工智能的發展主要依賴兩個領域的創新和演進:一是模仿人腦建立起來的數學模型和算法,其次是半導體集成電路AI芯片。AI的發展一直伴隨著半導體芯片的演進過程,AI芯片則是AI發展的底層基石。
全球AI芯片市場主要由海外廠商占據壟斷地位,但國產廠商也在加速布局。國內市場中,景嘉微在圖形渲染GPU領域持續深耕,另外天數智芯、壁仞科技、登臨科技等一批主打AI及高性能計算的GPGPU初創企業正加速涌入。在GPGPU方面,目前國內廠商與Nvidia在GPGPU上仍存在較大差距。制程方面,目前Nvidia已率先到達4nm,國內廠商多集中在7nm;算力方面,國內廠商大多不支持雙精度(FP64)計算,在單精度(FP32)及定點計算(INT8)方面與國外中端產品持平,天數智芯、壁仞科技的AI芯片產品在單精度性能上超過Nvidia A100;接口方面,壁仞科技與Nvidia率先使用PCle5.0,其余廠商多集中在PCle4.0;生態方面,國內企業多采用OpenCL進行自主生態建設,與Nvidia CUDA的成熟生態相比,差距較為明顯。對于大模型訓練而言,目前能夠提供云端訓練和推理加速芯片的獨立廠商及產品則有壁仞科技BR100系列、高通Cloud AI 100、墨芯智能英騰處理器、燧原科技邃思2.0/2.5、瀚博半導體SV100、寒武紀思元370、鯤云科技CAISA數據流推理AI芯片等。
基于上述現狀以及國外技術的制裁等原因,在國產化AI芯片上進行模型部署則具有多方面的重要理由。首先,在AI應用中,許多敏感數據和任務涉及國家安全。依賴國際廠商的芯片可能會暴露國家對外部供應鏈的依賴性,從而帶來潛在的安全風險而使用國產AI芯片可以更好地掌握技術控制權,確保國家的安全和主權。其次,發展國產AI芯片有助于提高技術自主性。國內企業能夠掌握AI芯片的設計、制造和優化,而不必依賴外國技術。這有助于加速技術創新,提高國家的核心競爭力。并且國產AI芯片的發展將帶動整個創新生態系統的建設,這包括芯片設計、軟件開發、應用部署等各個環節,將促進國內創業公司的發展,推動技術生態系統的繁榮。
二、使用華為昇騰310平臺進行模型部署
ONNX是一種用于表示和交換深度學習模型的開放標準。它的主要目的是解決不同深度學習框架之間的互操作性問題,使開發者能夠輕松地在不同框架之間共享和部署訓練好的模型。本文以英偉達平臺訓練導出的ONNX模型為出發點,主要進行如下幾個步驟完成在華為昇騰310平臺上的模型部署
▲ 華為昇騰310芯片主要參數一覽
1.設計部署測試流程
由于模型要兼容華為底層硬件,所以需要將原始的ONNX模型轉換為華為硬件兼容的OM模型,然后對轉換后模型的優化適配再進行部署。整體的模型的部署測試流程如下圖:
2.對ONNX模型進行圖重構與優化
對模型進行改圖優化需要安裝auto_optimizer工具,需提前安裝auto_optimizer,安裝教程參考華為昇騰官方倉庫。對模型優化步驟參考如下:
- 查看當前AI芯片版本支持的可優化知識庫:python3 -m auto_optimizer list
- 評估當前ONNX模型在昇騰平臺可被優化的知識庫:python3 -m auto_optimizer evaluate model.onnx
- 對輸入的ONNX模型進行自動改圖優化生成新的優化后的ONNX模型:python3 -m auto_optimizer optimize model.onnx model_new.onnx
3.將ONNX模型轉換為昇騰平臺支持的OM模型
在將原始的ONNX模型進行官方的改圖優化后,進一步將優化后的ONNX模型轉換成昇騰平臺支持的OM模型。需要提前安裝華為模型轉換工具ATC,安裝教程參加華為昇騰官方倉庫。步驟如下:
- 查看當前芯片型號:npu-smi info (查看芯片型號用于后續ATC轉換工具中soc_version參數的設置,該參數用于適配轉換平臺的芯片型號。)
- 激活ATC工具環境:source /usr/local/Ascend/ascend-toolkit/set_env.sh
- 生成動態維度模型:atc --model=model_new.onnx --framework=5 --input_format=ND --input_shape="input_ids:1,-1;attention_mask:1,-1" --dynamic_dims="256,256;512,512" --output=model_fp16_out_new --soc_version=Ascend310 (具體參數含義可以參考官方文檔)
4.使用華為ais_bench工具進行性能測試
對于轉換后的OM模型,華為官方提供ais_bench用于模型性能的測試和評估,需要提前安裝ais_bench工具,安裝教程參考華為ais_bench官方倉庫。測試步驟如下:
激活ais_bench工具環境:source /usr/local/Ascend/ascend-toolkit/set_env.sh
測試模型推理性能:python3 -m ais_bench --model=model_new.om --dymDims "input_ids:1,512;attention_mask:1,512" --output ./output --outfmt TXT
5.模型測試精度一覽
我們使用FP16格式的命名實體識別模型在昇騰310平臺和英偉達平臺分別部署進行模型的精度測試比較如下:
總的來說,較英偉達T4芯片,命名實體識別模型平均F1提高0.39。模型在兩個平臺的推理精度差距較小,在合理接受的范圍內。
我們采用計算命名實體識別模型在兩個平臺上的平均單次推理時間作為性能比較的指標,可以看到,由于華為昇騰310對于FP16的性能為8TOPS而英偉達T4在FP16的性能表現為65TOPS,兩者相差較大,導致單次推理時間存在較大的差距。
三、結語
國產化AI芯片的快速發展標志著我國在人工智能領域取得了重大突破,為技術自主創新和國內產業的發展邁出了堅實的一步。通過將AI模型部署到國產AI芯片上,我們不僅提高了技術的自主性,還為未來的創新和發展奠定了堅實的基礎。因此,將深度學習大模型部署在更多的國產化AI芯片上并積極使用國產化AI芯片進行大模型的訓練和推理,將會不斷推動國產化芯片的發展與技術社區的繁榮,具有重要的戰略意義。
參考文獻
[1] tools: Ascend tools - Gitee.com
[2] Ascend/msadvisor - Gitee.com
[3] 昇騰社區-官網丨昇騰萬里 讓智能無所不及 (hiascend.com)
[4] OM模型部署至Atlas 300I(Ascend 310)推理卡-云社區-華為云 (huaweicloud.com)
[5] 2022年10大國產AI芯片 - 知乎 (zhihu.com)
[6] 2023年TOP 60 國產AI芯片廠商調研分析報告 - 知乎 (zhihu.com)
[7] 2022國產AI芯片報告之一:10大國產AI芯片-電子工程專輯 (??eet-china.com??)
本文轉載自 ??AI遇見云??,作者: 趙行前
