【幸狐 Omni3576 边缘计算套件测评】DeepSeek 部署及测试
本文介绍了幸狐 Omni3576 边缘计算套件实现 DeepSeek 部署及测试的相关流程,包括模型介绍、部署方案、RKLLM 库、编译和运行、效果演示等。
简介
介绍了板端部署的 DeepSeek 模型及其部署方案。
DeepSeek
DeepSeek 是由杭州深度求索公司自主研发的高性能大语言模型,以其开源、轻量化和强大的多场景适应能力受到广泛关注。业务范围包括为用户提供智能对话、推理、AI搜索、文件处理、翻译、解题、创意写作、编程等多种服务。

最新发布的 DeepSeek R1 大型语言模型可提供流畅精准的 AI 对话体验,并引起广泛关注。经过多次技术迭代与优化,DeepSeek-R1 的性能已经可以媲美 ChatGPT,甚至在某些方面有所超越。更多信息可查看官方资料 。
DeepSeek R1 模型完全开源。
部署方案
目前在幸狐 Omni3576 板端部署 Deepseek 提供了两种方法,分别是使用 Ollama 工具部署和使用瑞芯微官方的 RKLLM 量化部署。
这里介绍 RKLLM 这种部署方式。
RKLLM 部署
RKLLM-Toolkit 是一个开发套件,旨在帮助用户在计算机上进行大语言模型的量化和转换。
其功能类似于图像识别篇介绍的 RKNN-Toolkit2,都是通过电脑平台提供的 Python 接口实现简化模型的部署和运行。

为了实现板端模型部署和应用,需要先在计算机运行 RKLLM-Toolkit,将训练好的模型转换为 RKLLM 格式,再通过 RKNN C API 或 Python API 在开发板上进行部署。
在官方提供的示例程序框架下,仅需要完成模型训练和模型转换(模型转换可参考 rknn-llm 仓库下 rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/Readme.md 文档)即可实现 DeepSeek 部署。
这里使用瑞芯微转换好的 rkllm 进行推演。
仓库下载
克隆 rknn-llm 仓库
git clone https://github.com/airockchip/rknn-llm.git --depth 1
若 GitHub 访问受限可修改 host 文件,详见:Gitee .
下载完成后,检查目录结构。
doc
└── Rockchip_RKLLM_SDK_CN.pdf
└── Rockchip_RKLLM_SDK_EN.pdf
examples
├── DeepSeek-R1-Distill-Qwen-1.5B_Demo
├── Qwen2-VL-2B_Demo
└── rkllm_server_demo
rkllm-runtime
├── runtime
│ └── Android
│ └── librkllm_api
│ └── arm64-v8a
│ └── librkllmrt.so
│ └── include
│ └── rkllm.h
│ └── Linux
│ └── librkllm_api
│ └── aarch64
│ └── librkllmrt.so
│ └── include
│ └── rkllm.h
rkllm-toolkit
├── rkllm_toolkit-x.x.x-cp38-cp38-linux_x86_64.whl
└── rkllm_toolkit-x.x.x-cp310-cp310-linux_x86_64.whl
rknpu-driver
└── rknpu_driver_x.x.x_xxxxxxx.tar.bz2
scripts
├── fix_freq_rk3576.sh
└── fix_freq_rk3588.sh
程序编译
进入示例程序目录
cd rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy

修改 build-linux.sh 文件中的交叉编译器路径
sudo vim build-linux.sh
GCC_COMPILER_PATH=/home/ljl/Omni3576-sdk/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu

这里使用官方 SDK 中自带的工具链。工具链的获取需要先 编译官方 SDK .
**下载 SDK 压缩文件后解压得到 **.repo
文件,执行 .repo/repo/repo sync -l
解包;
**设置环境变量后, **./build.sh lunch
编译镜像
运行 build-linux.sh 脚本,交叉编译例程
./build-linux.sh

编译完成后, 会在 deploy 目录下生成 install 文件夹, 其中有编译好的可执行文件, 以及 RKLLM Runtime 库
install/
└── demo_Linux_aarch64
├── lib
│ └── librkllmrt.so
└── llm_demo

DeepSeek 模型下载
根据 rknn-llm 仓库 examples 例程 DeepSeek-R1-Distill-Qwen-1.5B 的说明文档,下载.rkllm
模型文件用于板端调用(提取码:rkllm)

板端运行
将生成的 demo_Linux_aarch64
文件夹传输至板端;
使用 SSH 指令推送文件夹
scp -r luckfox@192.168.31.108:/home/luckfox
或使用 ADB 推送方式
adb push D:\demo_Linux_aarch64 /home/luckfox
或使用 FileZilla 软件直接拖拽复制;
同理,将 DeepSeek 模型文件 DeepSeek-R1-Distill-Qwen-1.5B_W4A16_RK3576.rkllm
传输至板端;
开发板端运行程序
cd demo_Linux_aarch64/
export LD_LIBRARY_PATH=./lib
export RKLLM_LOG_LEVEL=1
./llm_demo DeepSeek-R1-Distill-Qwen-1.5B_W4A16_RK3576.rkllm 2048 4096
效果演示
程序运行后提示 rkllm init success

默认提问推演
对于初始化问题选项 [1] 的解答,推演输出如下

随机提问
鉴于 DeepSeek 比较智能和深邃,提出一些基础物理问题不过分吧……
问题 1
问:麦克斯韦方程组是什么?
回答如下


思考过程倒是很详细,给出了方程组对电磁场的描述,就是速度慢点……
好在最后总结处给出了 Maxwell equations 的微分形式(直接给出 LaTeX 公式代码真是贴心呢)

问题 2
鉴于 DeepSeek 提供国际化的解决方案,测试其对英文提问的回答情况
Ask: what is Schrodinger equation ?
Answers are as follows

这次的回答就比较简练了,一句话概括方程出处后,直接给出了 Schrödinger 方程的数学表达式(一维空间)

以及各个参量的物理含义。
快捷键 Ctrl
+ C
即可退出 DeepSeek 程序。
板端 DeepSeek 体验下来发现,对于英文提问和回答较为简洁,对于中文问答更详细,展示出了该人工智能的思考过程,以及本土应用的智能化和人性化等特点。
长时间运行 DeepSeek 程序,开发板未见明显发热,内存占用小,且处理速度快,取得了令人满意的测试效果。
总结
本文介绍了幸狐 Omni3576 边缘计算套件实现 DeepSeek 部署的相关流程,包括模型介绍、部署方案、RKLLM 库、编译和运行、效果演示等。通过板端人工智能大模型的部署,展示了该开发板在处理边缘计算方面的优势,为人工智能等相关领域的开发和应用提供了参考。