瑞芯微Rockchip开发者社区
直播中

jf_07365693

2年用户 380经验值
擅长:嵌入式技术 控制/MCU
私信 关注
[讨论]

【幸狐Omni3576边缘计算套件试用体验】DeepSeek 部署及测试

DeepSeek_enter

【幸狐 Omni3576 边缘计算套件测评】DeepSeek 部署及测试

本文介绍了幸狐 Omni3576 边缘计算套件实现 DeepSeek 部署及测试的相关流程,包括模型介绍、部署方案、RKLLM 库、编译和运行、效果演示等。

简介

介绍了板端部署的 DeepSeek 模型及其部署方案。

DeepSeek

DeepSeek 是由杭州深度求索公司自主研发的高性能大语言模型,以其开源、轻量化和强大的多场景适应能力受到广泛关注。业务范围包括为用户提供智能对话、推理、AI搜索、文件处理、翻译、解题、创意写作、编程等多种服务。

logo-deepseek.jpg

最新发布的 DeepSeek R1 大型语言模型可提供流畅精准的 AI 对话体验,并引起广泛关注。经过多次技术迭代与优化,DeepSeek-R1 的性能已经可以媲美 ChatGPT,甚至在某些方面有所超越。更多信息可查看官方资料

DeepSeek R1 模型完全开源。

部署方案

目前在幸狐 Omni3576 板端部署 Deepseek 提供了两种方法,分别是使用 Ollama 工具部署和使用瑞芯微官方的 RKLLM 量化部署。

这里介绍 RKLLM 这种部署方式。

RKLLM 部署

RKLLM-Toolkit 是一个开发套件,旨在帮助用户在计算机上进行大语言模型的量化和转换。

其功能类似于图像识别篇介绍的 RKNN-Toolkit2,都是通过电脑平台提供的 Python 接口实现简化模型的部署和运行。

RKNN_llm.jpg

为了实现板端模型部署和应用,需要先在计算机运行 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 # RKLLM SDK 中文说明文档
  └── Rockchip_RKLLM_SDK_EN.pdf # RKLLM SDK 英文说明文档
 examples
  ├── DeepSeek-R1-Distill-Qwen-1.5B_Demo # 板端 API 推理调用示例工程
  ├── Qwen2-VL-2B_Demo # 多模态推理调用示例工程
  └── rkllm_server_demo # RKLLM-Server 部署示例工程
 rkllm-runtime
  ├──  runtime
  │  └── Android
  │  └── librkllm_api
  │  └── arm64-v8a
  │  └── librkllmrt.so # RKLLM Runtime 库
  │  └── include
  │  └── rkllm.h # Runtime 头文件
  │  └── Linux
  │  └── librkllm_api
  │  └── aarch64
  │  └── librkllmrt.so # RKLLM Runtime 库
  │  └── include
  │  └── rkllm.h # Runtime 头文件
 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 # RK3576 定频脚本
  └── fix_freq_rk3588.sh # RK3588 定频脚本

程序编译

进入示例程序目录

cd  rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy

rknn-llm_install_list.jpg

修改 build-linux.sh 文件中的交叉编译器路径

sudo vim build-linux.sh
 # 修改 GCC 工具链的路径
 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

rknn-llm_gcc_path_change.jpg

这里使用官方 SDK 中自带的工具链。工具链的获取需要先 编译官方 SDK .

**下载 SDK 压缩文件后解压得到 **.repo 文件,执行 .repo/repo/repo sync -l 解包;

**设置环境变量后, **./build.sh lunch 编译镜像

运行 build-linux.sh 脚本,交叉编译例程

./build-linux.sh

rknn-llm_build_sh.jpg

编译完成后, 会在 deploy 目录下生成 install 文件夹, 其中有编译好的可执行文件, 以及 RKLLM Runtime 库

install/
 └──  demo_Linux_aarch64
      ├── lib
      │   └── librkllmrt.so
      └── llm_demo

rknn-llm_deploy_files.jpg

DeepSeek 模型下载

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

rknn-llm_model_deepseek_rkllm_file.jpg

板端运行

将生成的 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 <model_path> <max_new_tokens> <max_context_len>
 ./llm_demo  DeepSeek-R1-Distill-Qwen-1.5B_W4A16_RK3576.rkllm 2048 4096

效果演示

程序运行后提示 rkllm init success

rknn-llm_deepseek_runing.jpg

默认提问推演

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

deepseek_default_Q1.jpg

随机提问

鉴于 DeepSeek 比较智能和深邃,提出一些基础物理问题不过分吧……

问题 1

问:麦克斯韦方程组是什么?

回答如下

DeeSeek_Q2_Maxwell_equations-1.jpg

DeeSeek_Q2_Maxwell_equations-2.jpg

思考过程倒是很详细,给出了方程组对电磁场的描述,就是速度慢点……

好在最后总结处给出了 Maxwell equations 的微分形式(直接给出 LaTeX 公式代码真是贴心呢)

DeepSeek_Q2_Maxwell_equations_latex.jpg

问题 2

鉴于 DeepSeek 提供国际化的解决方案,测试其对英文提问的回答情况

Ask: what is Schrodinger equation ?

Answers are as follows

DeepSeek_Q3_Schrodinger_equation.jpg

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

DeepSeek_Q3_Schrodinger_equation_latex.jpg

以及各个参量的物理含义。

快捷键 Ctrl + C 即可退出 DeepSeek 程序。

板端 DeepSeek 体验下来发现,对于英文提问和回答较为简洁,对于中文问答更详细,展示出了该人工智能的思考过程,以及本土应用的智能化和人性化等特点。

长时间运行 DeepSeek 程序,开发板未见明显发热,内存占用小,且处理速度快,取得了令人满意的测试效果。

总结

本文介绍了幸狐 Omni3576 边缘计算套件实现 DeepSeek 部署的相关流程,包括模型介绍、部署方案、RKLLM 库、编译和运行、效果演示等。通过板端人工智能大模型的部署,展示了该开发板在处理边缘计算方面的优势,为人工智能等相关领域的开发和应用提供了参考。

DeepSeek_QA

回帖(1)

无垠的广袤

2025-3-25 19:18:13
本帖最后由 无垠的广袤 于 2025-3-26 10:32 编辑

要是可以结合语音模块,实现智能对话(本地AI同学)就更好了
3 举报
  • jf_07365693: 板载语音输入接口和GPIO引脚,资源丰富。
    想要实现智能对话,只需添加麦克风模块和扬声器模块。将语音输入转化为文字,交由板端DeepSeek推理,再将文字结果转化为声音,通过扬声器播放即可实现对话和互动。
  • cszzlsw: 你看一下你说的是这种的吗?https://bbs.elecfans.com/jishu_2483451_1_1.html
  • jf_07365693 回复 cszzlsw: 膜拜大佬啊,神奇的效果,强!

更多回帖

发帖
×
20
完善资料,
赚取积分