Qwen2: Qwen is the large language model and large multimodal model series of the Qwen Team, Alibaba Group. Now the large language models have been upgraded to Qwen2.
一
背景
云端大模型,端側小模型,端云協同進提升用戶體驗已成為今年大模型(LLM)產品化落地的一個熱點話題。今年以來,各大手機廠家紛紛推出了端側小模型版本,例如Google的Gemini-nano(1.8B)、VIVO的藍星大模型(1B)、以及國內“小鋼炮”MiniCPM(1B)等等均已在各自/客戶手機上部署落地,進一步增加了手機智能屬性和便捷性。那么在設備數量更多的IoT領域是否也能部署經濟實用的LLM呢?例如實現本地人機問答、AI Agent、Function Call等等功能?
本文將分享如何將最新的端側大語言模型部署到超高性價比SoC上,向業界對端側大模型部署的開發者提供一種新的思路。
二
Qwen2介紹
Qwen是阿里巴巴集團Qwen團隊研發的大語言模型和大型多模態模型系列。目前,大語言模型已升級至Qwen2版本。無論是語言模型還是多模態模型,均在大規模多語言和多模態數據上進行預訓練,并通過高質量數據進行后期微調以貼近人類偏好。Qwen具備自然語言理解、文本生成、視覺理解、音頻理解、工具使用、角色扮演、作為AI Agent進行互動等多種能力。
●官方文檔:
https://qwen.readthedocs.io/zh-cn/latest/index.html
●Github項目:
https://github.com/QwenLM/Qwen2
最新版本Qwen2有以下特點:
●5種模型規模,包括0.5B、1.5B、7B、57B-A14B和72B;
●針對每種尺寸提供基礎模型和指令微調模型,并確保指令微調模型按照人類偏好進行校準;
●基礎模型和指令微調模型的多語言支持;
●所有模型均穩定支持32K長度上下文;
●支持工具調用、RAG(檢索增強文本生成)、角色扮演、AI Agent等。
最近Hugging Face聯合創始人兼首席執行Clem Delangue于6月26日在X平臺發布推文,表示阿里云開源的通義千問(Qwen)指令微調模型Qwen2-72B在開源模型排行榜上榮登榜首。
來自HuggingFace獨立、客觀、第三方的認可,從側面再次證明了Qwen2的技術先進性。同時也分享下在端側芯片AX650N上部署效果。
三
芯片介紹
3.1 AX650N
愛芯元智第三代高能效比智能視覺芯片AX650N。集成了八核Cortex-A55 CPU,高能效比NPU,支持8K@30fps的ISP,以及H.264、H.265編解碼的 VPU。接口方面,AX650N支持64bit LPDDR4x,多路MIPI輸入,千兆Ethernet、USB、以及HDMI 2.0b輸出,并支持32路1080p@30fps解碼內置高算力和超強編解碼能力,滿足行業對高性能邊緣智能計算的需求。通過內置多種深度學習算法,實現視覺結構化、行為分析、狀態檢測等應用,高效率支持基于Transformer結構的視覺大模型和語言類大模型。提供豐富的開發文檔,方便用戶進行二次開發。
3.2AX630C
愛芯元智第四代智能視覺芯片AX630C,該芯片集成新一代智眸4.0AI-ISP,最高支持4K@30fps實時真黑光,同時集成新一代通元4.0高性能、高能效比 NPU引擎,使得產品在低功耗、高畫質、智能處理和分析等方面行業領先。提供穩定易用的SDK軟件開發包,方便用戶低成本評估、二次開發和快速量產。幫助用戶在智能家居應用和其他AIoT項目中發揮更大的價值。
結合AX630C的產品規格,我們選擇最合適的Qwen2 0.5B-Instruct作為本次示例模型。
四
LLM編譯
4.1Pulsar2
Pulsar2是新一代AI工具鏈,包含模型轉換、離線量化、模型編譯、異構調度四合一超強功能,進一步強化了網絡模型高效部署的需求。在針對第三代、第四代NPU架構進行了深度定制優化的同時,也擴展了算子&模型支持的能力及范圍,對Transformer結構的網絡也有較好的支持。
最新釋放的Pulsar2 3.0-temp版本新增llm build模塊。在該版本中已經可編譯出能在AX650N上運行的大模型版axmodel(AX630C的llm build Release版加班開發中……當然我們在網盤中提供了預編譯體驗版本,感興趣的朋友可以先試試效果)
https://pulsar2-docs.readthedocs.io/zh-cn/latest/appendix/build_llm.html
4.2 下載ax-llm-build項目
默認用戶已經按照Pulsar2 v3.0-temp版本文檔中《開發環境準備》章節完成docker鏡像安裝并已進入pulsar2的docker環境。
git clone https://github.com/AXERA-TECH/ax-llm-build.git
4.3 下載Qwen2-0.5B-Instruct
cd ax-llm-build pip install -U huggingface_hub huggingface-cli download --resume-download Qwen/Qwen2-0.5B-Instruct --local-dir Qwen/Qwen2-0.5B-Instruct
4.4 編譯執行
pulsar2 llm_build --input_path Qwen/Qwen2-0.5B-Instruct/ --output_path Qwen/Qwen2-0.5B-w8a16/ --kv_cache_len 1023 --model_config config/qwen2-0.5B.json --hidden_state_type bf16 --weight_type s8
●log參考信息
root@gpux2:/data/ax-llm-build# pulsar2 llm_build --input_path Qwen/Qwen2-0.5B-Instruct/ --output_path Qwen/Qwen2-0.5B-w8a16/ --kv_cache_len 1023 --model_config config/qwen2-0.5B.json --hidden_state_type bf16 --weight_type s8 Config( model_name='Qwen/Qwen2-0.5B-Instruct', model_type='qwen', num_hidden_layers=24, num_attention_heads=14, num_key_value_heads=2, hidden_size=896, intermediate_size=4864, vocab_size=151936, rope_theta_base=1000000.0, max_position_embedings=32768, rope_partial_factor=1.0, norm_eps=1e-06, norm_type='rms_norm', hidden_act='silu' ) 2024-07-01 1108.009 | SUCCESS | yamain.command.llm_build85 - prepare llm model done! building llm decode layers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24/24 059 building llm post layer ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1/1 024 2024-07-01 1131.941 | SUCCESS | yamain.command.llm_build128 - build llm model done! 2024-07-01 1156.925 | SUCCESS | yamain.command.llm_build277 - check llm model done!
●embed提取和優化
python tools/extract_embed.py --input_path Qwen/Qwen2-0.5B-Instruct/ --output_path Qwen/Qwen2-0.5B-w8a16/ python tools/embed-process.py --input Qwen/Qwen2-0.5B-w8a16/model.embed_tokens.weight.npy --output Qwen/Qwen2-0.5B-w8a16/model.embed_tokens.weight.float32.bin chmod +x ./tools/fp32_to_bf16 ./tools/fp32_to_bf16 Qwen/Qwen2-0.5B-w8a16/model.embed_tokens.weight.float32.bin Qwen/Qwen2-0.5B-w8a16/model.embed_tokens.weight.bfloat16.bin
4.5輸出文件說明
root@xxx:/data/ax-llm-build# tree Qwen/Qwen2-0.5B-w8a16 Qwen/Qwen2-0.5B-w8a16 ├── model.embed_tokens.weight.bfloat16.bin ├── model.embed_tokens.weight.float32.bin ├── model.embed_tokens.weight.npy ├── qwen_l0.axmodel ├── qwen_l10.axmodel ├── qwen_l11.axmodel ├── qwen_l12.axmodel ├── qwen_l13.axmodel ...... ├── qwen_l7.axmodel ├── qwen_l8.axmodel ├── qwen_l9.axmodel └── qwen_post.axmodel
其中,
model.embed_tokens.weight.bfloat16.bin、qwen_l0.axmodel ~ qwen_l23.axmodel、qwen_post.axmodel,
是上板運行需要的。
五
開發板運行
5.1 ax-llm項目
ax-llm項目用于探索業界常用LLM(Large Language Model)在AXERA已有芯片平臺上落地的可行性和相關能力邊界,方便社區開發者進行快速評估和二次開發自己的LLM應用。
https://github.com/AXERA-TECH/ax-llm
同時,我們在網盤中已經提供好了分別基于AX650N和AX630C平臺預編譯好的部分LLM示例。
https://pan.baidu.com/s/1_LG-sPKnLS_LTWF3Cmcr7A?pwd=ph0e
5.2 執行過程(基于AX650N開發板)
root@ax650:/mnt/qtang/llama_axera_cpp# ./run_qwen2_0.5B.sh [I][ Init][ 71]: LLM init start 3% | ██ | 1 / 27 [0.28s<7.48s, 3.61 count/s] tokenizer init ok [I][ ? ? ? ? ? ? ? ? ? ? ? ? ? ?Init][ ?26]: LLaMaEmbedSelector use mmap 100% | ████████████████████████████████ | ?27 / ?27 [7.40s<7.40s, 3.65 count/s] init post axmodel okremain_cmm(11583 MB) [I][ ? ? ? ? ? ? ? ? ? ? ? ? ? ?Init][ 180]: max_token_len : 1023 [I][ ? ? ? ? ? ? ? ? ? ? ? ? ? ?Init][ 185]: kv_cache_size : 128, kv_cache_num: 1023 [I][ ? ? ? ? ? ? ? ? ? ? ? ? ? ?Init][ 199]: LLM init ok Type "q" to exit, Ctrl+c to stop current running >> who are you? I am a large language model created by Alibaba Cloud. I am called Qwen. [N][ Run][ 388]: hit eos,avg 24.51 token/s
5.3 視頻示例(基于AX630C開發板)
5.4 性能統計
AX650N、AX630C目前均采用W8A16量化方案(性能優化會持續進行)
●AX650N:
模型名稱 | 參數量 | 速度(token/s) |
TinyLlama-1.1 | 1.1B | 16.5 |
Qwen2.0 | 0.5B | 29.0 |
Qwen2.0 | 1.5B | 11.2 |
MiniCPM | 2.4B | 6.0 |
Phi3Qwen2.0 | 3.8B | 5.0 |
Llama3 | 8B | 2.5 |
●AX630C:
模型名稱 | 參數量 | 速度(token/s) |
TinyLlama-1.1 | 1.1B | 5.8 |
Qwen2.0 | 0.5B | 10.7 |
六
結束語
隨著大語言模型小型化的快速發展,越來越多有趣的多模態AI應用將逐漸從云端服務遷移到邊緣側設備和端側設備。我們會緊跟行業最新動態,歡迎大家持續關注。
7月4日-7日,愛芯元智@2024WAIC,上海世博展覽館2號館C1525(H2-C1525),歡迎大家現場交流。
-
愛芯元智
+關注
關注
1文章
84瀏覽量
4881 -
大模型
+關注
關注
2文章
2545瀏覽量
3163 -
LLM
+關注
關注
0文章
299瀏覽量
400
原文標題:愛芯分享 | 基于AX650N/AX630C部署Qwen2
文章出處:【微信號:愛芯元智AXERA,微信公眾號:愛芯元智AXERA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
基于AX650N/AX630C部署多模態大模型InternVL2-1B
![基于<b class='flag-5'>AX650N</b>/<b class='flag-5'>AX630C</b><b class='flag-5'>部署</b>多模態大<b class='flag-5'>模型</b>InternVL<b class='flag-5'>2</b>-1B](https://file1.elecfans.com/web1/M00/F5/59/wKgaoWc7CliADeIdAAAN6_RnLiM223.jpg)
愛芯元智發布第三代智能視覺芯片AX650N,為智慧生活賦能
![愛芯元智發布第三代智能視覺芯片<b class='flag-5'>AX650N</b>,為智慧生活賦能](https://file.elecfans.com/web2/M00/96/9F/pYYBAGQGqGCAW6F-AAK4o09gnn8112.jpg)
【愛芯派 Pro 開發板試用體驗】愛芯元智AX650N部署yolov5s 自定義模型
【愛芯派 Pro 開發板試用體驗】愛芯元智AX650N部署yolov8s 自定義模型
【愛芯派 Pro 開發板試用體驗】ax650使用ax-pipeline進行推理
愛芯元智第三代智能視覺芯片AX650N高能效比SoC芯片
基于AX650N部署EfficientViT
愛芯元智AX650N成端側、邊緣側Transformer最佳落地平臺
![愛芯元智<b class='flag-5'>AX650N</b>成<b class='flag-5'>端</b><b class='flag-5'>側</b>、邊緣<b class='flag-5'>側</b>Transformer最佳落地平臺](https://file1.elecfans.com/web2/M00/88/DB/wKgZomR1aACAVwnWAAAZ0FSt8es695.png)
基于AX650N部署視覺大模型DINOv2
愛芯元智發布新一代IPC SoC芯片AX630C和AX620Q
![愛芯元智發布新一代IPC SoC芯片<b class='flag-5'>AX630C</b>和<b class='flag-5'>AX</b>620Q](https://file1.elecfans.com/web2/M00/AA/D7/wKgaomU7dHeAWgq7AAEQik6TmaU608.jpg)
愛芯元智AX620E和AX650系列芯片正式通過PSA Certified安全認證
![愛芯元智<b class='flag-5'>AX</b>620E和<b class='flag-5'>AX650</b>系列芯片正式通過PSA Certified安全認證](https://file1.elecfans.com/web2/M00/D6/66/wKgZomYnZ2aADPfUAAAWQD9bV0s203.png)
阿里通義千問Qwen2大模型發布
Qwen2強勢來襲,AIBOX支持本地化部署
![<b class='flag-5'>Qwen2</b>強勢來襲,AIBOX支持本地化<b class='flag-5'>部署</b>](https://file.elecfans.com/web2/M00/10/E9/pYYBAGEfInyAb9dQAABH4pzjonI981.jpg)
基于AX650N芯片部署MiniCPM-V 2.0高效端側多模態大模型
![基于<b class='flag-5'>AX650N</b>芯片<b class='flag-5'>部署</b>MiniCPM-V 2.0高效<b class='flag-5'>端</b><b class='flag-5'>側</b>多模態大<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/FD/5B/wKgaomaUfXKACvWAAAApuTtR_pw763.png)
評論