当前位置: 首页 > news >正文

ElfBoard技术实战|ELF 2开发板本地部署DeepSeek大模型的完整指南

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 <虚拟环境名称>

例如: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

conda activate <虚拟环境名称>

说明:激活虚拟环境后,在该环境下安装的包将仅在该环境中可用,从而避免了不同项目之间的依赖冲突。

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开发的工程师与高校师生提供有价值的参考,助力各位在边缘计算与人工智能交叉领域的技术探索与项目落地。

相关文章:

  • C#发送文件到蓝牙设备
  • 【实战篇】低代码报表开发——平台运营日报表的开发实录
  • Spring 框架 JDBC 模板技术详解
  • SQL实战:06交叉日期打折问题求解
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- MCP内幕解析
  • 观QFramework框架底层逻辑有感
  • 经典卷积神经网络
  • Secs/Gem第四讲(基于secs4net项目的ChatGpt介绍)
  • 开源免费iOS或macOS安装虚拟机运行window/Linux系统
  • Qt中控件的Viewport作用
  • 服务器连接多客户端
  • 文章复现|(1)整合scRNA-seq 和空间转录组学揭示了子宫内膜癌中 MDK-NCL 依赖性免疫抑制环境
  • 数据结构中双栈的实现方法分享
  • PH热榜 | 2025-05-15
  • 解码生命语言:深度学习模型TranslationAI揭示RNA翻译新规则
  • Quic如何实现udp可靠传输
  • 缓存的相关内容
  • 该如何了解联排半孔的使用规范?
  • FPGA: UltraScale+ bitslip实现(ISERDESE3)
  • 2025年长三角+山东省赛+ 认证杯二阶段资料助攻说明
  • 新华时评:让医德医风建设为健康中国护航
  • 黑龙江省政府副秘书长许振宇,拟任正厅级领导
  • 《上海市建筑信息模型技术应用指南(2025版)》发布
  • 端午假期购票日历发布,今日可购买5月29日火车票
  • 证券日报:降准今日正式落地,年内或还有降准空间
  • 上海市重大工程一季度开局良好,崇明线等按既定计划加快建设