SPACEMIT:進(jìn)迭時(shí)空是一家計(jì)算芯片企業(yè),專注于研發(fā)下一代 RISC-V架構(gòu)的高性能CPU并提供軟硬一體優(yōu)化的計(jì)算解決方案。秉承進(jìn)取不息、迭代不止的企業(yè)精神,公司致力于構(gòu)建“云—邊—端”架構(gòu)原生一體的下一個(gè)計(jì)算時(shí)代。
愛芯通元:以算子為原子指令集的AI計(jì)算處理器。高效支持混合精度算法設(shè)計(jì)和Transformer,為大模型(DeepSeek、Qwen、MiniCPM……)在“云—邊—端”的AI應(yīng)用提供強(qiáng)力基礎(chǔ)。
背景
最近,路邊社消息說又要大力推廣RISC-V產(chǎn)業(yè)生態(tài)了。還好提前布局,借助于AXCL項(xiàng)目優(yōu)秀的可移植性,已經(jīng)完成了國內(nèi)能順利買到的基于RISC-V指令集的應(yīng)用處理器開發(fā)板,同時(shí)完成內(nèi)置愛芯通元NPU的M.2算力卡適配,讓DeepSeek蒸餾模型在市面上已有的RISC-V開發(fā)板上運(yùn)行更加流暢,給RISC-V生態(tài)提供了一種高性價(jià)比的AI算力拓展解決方案。
本文簡單介紹下SPACEMIT M1社區(qū)開發(fā)板加裝M.2算力卡運(yùn)行DeepSeek-R1-7B模型的安裝細(xì)節(jié)和注意事項(xiàng),降低大家踩坑概率。
Milk-V Jupiter
RISC-V PC for Everyone。Milk-V Jupiter由Spacemit K1/M1 SoC提供動(dòng)力,是世界上第一款同時(shí)支持RVA22和RVV1.0的Mini ITX設(shè)備。本設(shè)備集成標(biāo)準(zhǔn)PCIe連接器,支持常見PCIe器件,如顯卡、PCIe轉(zhuǎn)SATA適配器、網(wǎng)卡等。它具有雙千兆以太網(wǎng)接口,板載Wi-Fi 6/BT 5.2,并支持NVMe SSD,使其成為入門級RISC-V桌面的理想選擇。
芯繭加速卡
芯繭?人工智能算力卡是深圳市云集互聯(lián)生態(tài)科技有限公司推出的基于AXCL軟件架構(gòu)的M.2 2280計(jì)算卡。
硬件安裝
軟件安裝
適用于SPACEMIT M1的axcl deb包獲取鏈接
詳細(xì)安裝流程可參考:AXCL安裝 - AXCL V1.0文檔
踩坑記錄
在Milk-V Jupiter開發(fā)板上預(yù)裝的Bianbu OS中,如果要使用python環(huán)境或者安裝pip package,需要啟用python虛擬環(huán)境進(jìn)行隔離。很遺憾大家最熟悉的miniconda貌似沒有RISC-V版本,建議采用python venv創(chuàng)建python虛擬環(huán)境。
當(dāng)前DEMO依賴Transformer庫,pip安裝時(shí)請選用SPACEMIT提供的pip源。
測試
1、基本功能
DeepSeek
直接嘗試DeepSeek-R1 7B模型,可以從AXERA-TECH/DeepSeek-R1-Distill-Qwen-7B-GPTQ-Int4獲取。
安裝完成后,可以使用類似nvidia-smi的設(shè)備管理工具axcl-smi。
使用axcl_ut_npu完成NPU功能自測。
2、Tokenizer解析器
DEMO中的Tokenizer解析器采用本地模塊與HTTP Server兩種方案,其中本地方案又嘗試了sentencepiece、tiktoken兩種方案。但是我們在實(shí)際調(diào)試過程中發(fā)現(xiàn)sentencepiece對于不同LLM模型的special tokens支持不友好,需要用戶自行處理special tokens的拆分,容易導(dǎo)致板端token id與Transformers庫中的AutoTokenizer獲得的token id存在差異,最終影響LLM的輸出結(jié)果正確性。因此我們建議前期調(diào)試的時(shí)候使用Tokenizer HTTP Server的方式直接調(diào)用Transformers庫中的AutoTokenizer模塊進(jìn)行測試。
Tokenizer HTTP Server的特點(diǎn):
保證token id正確
方便添加chat template
支持本地、遠(yuǎn)端部署
支持多用戶接入
以huggingface中提供的基于DeepSeek-R1-Distill-Qwen-7B的相關(guān)文件為例:
i@m1:~/samples/deepseek-7b-gptq-int4$ tree
.
├── deepseek-r1-7b-gptq-int4-ax650
│ ├── model.embed_tokens.weight.bfloat16.bin
│ ├── qwen2_p128_l0_together.axmodel
......
│ ├── qwen2_p128_l9_together.axmodel
│ └── qwen2_post.axmodel
├── deepseek-r1_tokenizer
│ ├── tokenizer_config.json
│ └── tokenizer.json
├── deepseek-r1_tokenizer.py
├── main_axcl_riscv
├── main_prefill
├── post_config.json
└── run_deepseek-r1_7b_gptq_int4_axcl_riscv.sh
deepseek-r1_tokenizer:是tokenizer相關(guān)文件,從DeepSeek/DeepSeek-R1-Distill-Qwen-7B中提取
deepseek-r1_tokenizer.py:是用python實(shí)現(xiàn)的Tokenizer HTTP Server
運(yùn)行說明如下:
python deepseek-r1_tokenizer --host xxx.xxx.xxx.xxx --port 12345,其中--host xxx.xxx.xxx.xxx設(shè)置tokenizer解析服務(wù)器的IP地址,確保開發(fā)板能正常訪問該地址??梢栽诰邆鋚ython環(huán)境的開發(fā)板本地運(yùn)行;
修改run_deepseek-r1_7b_gptq_int4_axcl_riscv.sh中--filename_tokenizer_model的IP信息和步驟1中的一致;
運(yùn)行run_deepseek-r1_7b_gptq_int4_axcl_riscv.sh即可。
結(jié)束語
當(dāng)前,AI芯片行業(yè)競爭已從單純算力比拼轉(zhuǎn)向場景化適配能力。愛芯元智以“普惠AI造就美好生活”為使命,通過愛芯通元NPU與RISC-V產(chǎn)業(yè)鏈深度協(xié)同,成為驅(qū)動(dòng)行業(yè)從“云端集中”邁向“邊緣智能”的關(guān)鍵力量。
因此從今年開始,愛芯通元NPU IP正式啟動(dòng)商業(yè)授權(quán)服務(wù),歡迎RISC-V產(chǎn)業(yè)鏈中感興趣的朋友來咨詢。
感謝:
AXCL項(xiàng)目組小伙伴的支持
進(jìn)迭時(shí)空開發(fā)者交流群
芯繭技術(shù)支持群
土撥鼠們
購買鏈接: