DeepSeek作為國產大數據驅動的AI模型代表,憑借其卓越的推理能力和高效的文本生成技術,在全球人工智能領域引發廣泛關注。
RK3588作為瑞芯微推出的旗艦級芯片,憑借多核異構計算能力以及強大的CPU、GPU和NPU性能,成為嵌入式AI應用的理想平臺。
DeepSeek與基于RK3588設計的ELF 2開發板的深度融合,標志著國產AI大模型從云端向邊緣端的延伸。這種“先進算法+定制化芯片”的協同模式,不僅解決了邊緣側實時性、隱私保護等關鍵需求,更構建起從技術研發到產業賦能的完整價值鏈條。接下來,讓我們深入探討這一過程是如何具體實現的。
環境搭建
1.1 Anaconda安裝及使用
1.1.1 Anaconda介紹
Anaconda是一個流行的開源軟件包管理和環境管理系統,用于科學計算、數據分析和大數據處理,特別是在Python環境中。它包含了許多常用的科學計算和數據分析的軟件包,并提供了一個方便的方式來管理這些軟件包的安裝、更新和環境配置。
以下是 Anaconda的一些主要特點和用途:
1、軟件包管理
Anaconda提供了一個名為conda的包管理工具,可以輕松安裝、更新和刪除軟件包。它支持數千個科學計算和數據分析相關的軟件包,如NumPy、Pandas、Matplotlib等。
2、環境管理
Anaconda允許用戶創建和管理多個獨立的Python環境。每個環境可以有不同版本的Python和不同的軟件包集合,這樣可以避免版本沖突和環境污染。
3、跨平臺
Anaconda可以在Windows、macOS和Linux上運行,使其成為開發人員和研究人員之間共享和復制數據分析項目的理想工具。
4、集成開發環境(IDE)
Anaconda還包含了Jupyter Notebook等強大的交互式開發工具,使用戶能夠在瀏覽器中創建和分享文檔,結合代碼、公式、可視化和解釋性文本。
5、大數據支持
Anaconda 不僅適用于單機環境,還支持分布式計算平臺,如Apache Spark,從而能夠處理大規模數據和復雜的計算任務。
總之,Anaconda提供了一個全面的解決方案,使得科學計算和數據分析的開發和部署變得更加簡單和高效。
1.1.2 Anaconda安裝
我們提供的虛擬機系統內已預裝了Python 3.10及RKNN-Toolkit 2.1.0,專為模型轉換與量化打造。若使用其他版本Python或相關工具的需求,推薦在虛擬機中另行安裝Anaconda,以此避免環境沖突實現環境的完全隔離。
虛擬機系統使用的是“ELF 2開發板資料包”中提供的開發環境(路徑:ELF 2開發板資料包\08-開發環境)您可以選擇從網絡上下載Linux版本的Miniconda,推薦訪問清華大學的鏡像庫進行下載。
具體網址為:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
另外,您也可以在“ELF 2開發板資料包”的“06-常用工具\06-2 環境搭建工具\AI安裝腳本”路徑下找到名為“Miniconda3-4.7.12.1-Linux-x86_64.sh”的執行腳本。您只需將該腳本上傳至虛擬機中,并執行它即可完成Miniconda的安裝。
首先對執行腳本賦予執行權限并執行腳本:
elf@ubuntu:~$ chmod +x Miniconda3-4.7.12.1-Linux-x86_64.sh elf@ubuntu:~$ ./Miniconda3-4.7.12.1-Linux-x86_64.sh
按enter按鍵,之后輸入yes,然后再設置安裝路徑,進行安裝。

安裝完之后如下圖所示:

重新打開終端。命令行之前出現(base)代表安裝成功。

1.1.3 Anaconda基本使用
以下是關于conda操作指令的跨平臺說明及在虛擬機上的示范:conda的操作指令是跨平臺的,這意味著它們既可以在Linux系統上運行,也可以在Windows系統上執行。接下來將在虛擬機環境中進行示范。
1、查看虛擬環境列表:
conda env list

2、創建新的虛擬環境:
conda create --name <虛擬環境名稱> python=<版本號>
例如:conda create --name myenv python=3.9
說明:此命令會創建一個名為<虛擬環境名稱>的新虛擬環境,并安裝指定版本的Python。如果不指定Python版本,則會安裝Anaconda發行版中附帶的Python版本。

3、激活虛擬環境:
例如:conda activate myenv
說明:激活虛擬環境后,在該環境下安裝的包將僅在該環境中可用,從而避免了不同項目之間的依賴沖突。

4、退出虛擬環境:
conda deactivate
說明:此命令用于退出當前激活的虛擬環境,返回到基礎環境(base環境),如再次執行命令。

5、給虛擬環境安裝庫:
pip install <包名> conda install <包名>
例如:conda install numpy 或 pip install numpy
說明:通常推薦使用conda安裝庫,因為它會自動處理依賴關系。但在某些情況下,如果conda中沒有可用的包版本,也可以使用pip進行安裝。

6、 刪除虛擬環境:
conda env remove --name <虛擬環境名稱>
例如:conda env remove --name myenv
說明:此命令會刪除指定的虛擬環境及其下安裝的所有包。

1.1.4 創建用于部署的虛擬環境
查看虛擬環境列表:
elf@ubuntu:~$ conda env list

創建新的虛擬環境:
elf@ubuntu:~$ conda create --name RKLLM-Toolkit-pyth3.10 python=3.10
conda create --name <虛擬環境名稱> python=<版本號>
說明:此命令會創建一個名為<虛擬環境名稱>的新虛擬環境,并安裝指定版本的Python。如果不指定Python版本,則會安裝Anaconda發行版中附帶的Python版本。

激活虛擬環境:
elf@ubuntu:~$ conda activate RKLLM-Toolkit-pyth3.10
說明:激活虛擬環境后,在該環境下安裝的包將僅在該環境中可用,從而避免了不同項目之間的依賴沖突。

1.2 RKLLM-Toolkit安裝及使用
1.2.1 RKLLM-Toolkit介紹
RKLLM-Toolkit 提供模型的轉換、量化功能。作為RKLLM-Toolkit的核心功能之一,它允許用戶將Hugging Face或GGUF格式的大語言模型轉換為RKLLM模型,從而將RKLLM模型在Rockchip NPU上加載運行。
1.2.1 RKLLM-Toolkit 安裝
在虛擬環境安裝RKLLM-Toolkit,以便將DeepSeek R1 大語言模型轉換為RKLLM模型格式和編譯板端推理的可執行程序。在發布的RKLLM工具鏈壓縮文件中,包含了 RKLLM-Toolkit的whl安裝包。
鏈接:GitHub - airockchip/rknn-llm
也可以在ELF 2開發板資料包\03-例程源碼\03-4 AI例程源碼\路徑下找到rknn-llm-main.zip。
將下載成功的rknn-llm-main.zip 壓縮包放到/home/elf/work/deepseek目錄下,并解壓。
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek$ unzip rknn-llm-main.zip
進入到rknn-llm-main/rkllm-toolkit/目錄下,進行安裝RKLLM-Toolkit工具
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek$ cd rknn-llm-main/rkllm-toolkit/ (RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek/rknn-llm-main/rkllm-toolkit$ pip install rkllm_toolkit-1.1.4-cp310-cp310-linux_x86_64.whl -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
注意:如果出現庫版本沖突問題,再次執行
pip install rkllm_toolkit-1.1.4-cp310-cp310-linux_x86_64.whl-i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package命令重新安裝RKLLM工具會解決庫版本沖突的報錯問題。
安裝完成如下圖所示:

1.3 交叉編譯工具安裝
推薦使用交叉編譯工具 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu;交叉編譯工具往往向下兼容而無法向上兼容,因此不要使用 10.2 以下的版本。
鏈接:Downloads | 10.2-2020.11 – Arm Developer。
也可以在ELF 2開發板資料包\03-例程源碼\03-4 AI例程源碼\路徑下找到gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz。
移植過程
2.1 模型轉換
1、下載DeepSeek-R1源碼
在ubuntu虛擬機上從DeepSeek-R1官網地址下載DeepSeek-R1-Distill-Qwen-1.5B權重文件。
鏈接:deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B at main (huggingface.co)
也可以在ELF 2開發板資料包\03-例程源碼\03-4 AI例程源碼\路徑下找到DeepSeek-R1-Distill-Qwen-1.5B.zip。
2、模型轉換
使用RKLLM-Toolkit對模型進行轉換,RKLLM-Toolkit提供模型的轉換、量化功能。作為RKLLM-Toolkit的核心功能之一,它允許用戶將Hugging Face或GGUF格式的大語言模型轉換為RKLLM模型,從而將RKLLM模型在Rockchip NPU 上加載運行。
進入到rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export目錄下,生成data_quant.json,data_quant.json文件以對rkllm模型進行量化處理,我們將fp16模型生成結果用作量化校準數據。目錄下默認已存在data_quant.json文件。
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek$ cd rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export (RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export$ python generate_data_quant.py -m /home/elf/work/deepseek/DeepSeek-R1-Distill-Qwen-1.5B
/home/elf/work/deepseek/DeepSeek-R1-Distill-Qwen-1.5B為權重文件所在的路徑。
在export_rkllm.py中指定權重文件所在路徑:
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export$ vi export_rkllm.py

導出RKLLM模型:
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export$ python export_rkllm.py
轉換成功的模型:rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export/DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm。
2.2 交叉編譯
進入到rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy目錄下,在build-linux.sh文件指定交叉編譯工具。
注意:改為實際安裝的路徑
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy$ vi build-linux.sh

修改完成,進行編譯:
(RKLLM-Toolkit-pyth3.10) elf@ubuntu:~/work/deepseek/rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy$ ./build-linux.sh

編譯生成的庫文件:rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/install/demo_Linux_aarch64/lib/librkllmrt.so。
可執行文件:rknn-llm-main/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/install/demo_Linux_aarch64/llm_demo。
2.3 模型本地部署
將編譯好的rkllm模型、可執行文件以及庫文件上傳至板端即可執行,這樣我們在本地就可和DeepSeek-R1對話了,而且無需聯網。
elf@elf2-desktop:~$ ./llm_demo DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm 10000 10000
執行應用后效果如下圖所示:

注意:本次測試使用的desktop系統NPU驅動為0.9.6,更新驅動請參考《Rockchip_RKLLM_SDK_CN_1.1.4.pdf》文件。
通過上述標準化部署流程,即可在ELF 2開發板上實現DeepSeek大數據模型的高效本地化運行。期待本文所分享的技術實踐,能為從事嵌入式AI開發的工程師與高校師生提供有價值的參考,助力各位在邊緣計算與人工智能交叉領域的技術探索與項目落地。
-
單片機
+關注
關注
6061文章
44853瀏覽量
645584 -
嵌入式
+關注
關注
5130文章
19480瀏覽量
313882 -
人工智能
+關注
關注
1804文章
48551瀏覽量
245589 -
DeepSeek
+關注
關注
1文章
763瀏覽量
1203
發布評論請先 登錄
ATK-DLRK3588開發板deepseek-r1-1.5b/7b部署指南
添越智創基于 RK3588 開發板部署測試 DeepSeek 模型全攻略
RK3588開發板上部署DeepSeek-R1大模型的完整指南
聆思CSK6大模型語音開發板接入DeepSeek資料匯總(包含深度求索/火山引擎/硅基流動華為昇騰滿血版)
【幸狐Omni3576邊緣計算套件試用體驗】DeepSeek 部署及測試
大模型實戰(SC171開發套件V3)
香橙派發布OrangePi 5Plus本地部署Deepseek-R1蒸餾模型指南

行芯完成DeepSeek-R1大模型本地化部署
博實結完成DeepSeek大模型本地化部署
香橙派發布OrangePi RV2本地部署Deepseek-R1蒸餾模型指南

評論