在 RK3588 开发板上部署 DeepSeek-R1-Distill-Qwen-1.5B 模型:RKLLM API 实战指南

近年来,随着大语言模型(LLM)能力的不断提升,如何将这些模型高效部署到边缘设备 (如国产瑞芯微 RK3588 芯片)成为开发者关注的重点。本文将手把手带你完成 DeepSeek-R1-Distill-Qwen-1.5B 模型在 RK3588 上的转换、部署与推理全流程。

关键词:RK3588、RKLLM、Qwen、DeepSeek、边缘 AI、大模型推理、国产芯片、Rockchip


📦 项目背景

本 Demo 基于 RKLLM Toolkit 工具链,展示了如何将 Hugging Face 上开源的轻量级推理模型 DeepSeek-R1-Distill-Qwen-1.5B 转换为 RK3588 可运行的 .rkllm 格式,并通过 C++ 推理程序在开发板上实现本地化部署。

该模型仅 1.5B 参数,但经过 DeepSeek-R1 强化蒸馏,在数学、代码和逻辑推理任务上表现优异,非常适合资源受限的边缘场景。


🔧 环境要求

确保你的主机环境满足以下依赖:

text 复制代码
rkllm-toolkit == 1.2.x  
rkllm-runtime == 1.2.x  
Python >= 3.8

💡 提示:建议使用 Ubuntu 20.04/22.04(X86) + Conda 虚拟环境进行模型转换。


🔄 第一步:模型转换(Host 端,X86)

1. 准备量化校准数据

RKLLM 支持 INT8/W8A8 量化以提升推理速度。我们需要先生成校准数据 data_quant.json

bash 复制代码
cd export
python generate_data_quant.py -m /path/to/DeepSeek-R1-Distill-Qwen-1.5B

该脚本会加载原始 FP16 模型,生成一批典型输入用于后续量化。

2. 导出 RKLLM 模型

执行导出脚本,生成可在 RK3588 上运行的 .rkllm 文件:

模型下载:

bash 复制代码
pip install modelscope

modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

rkllm模型导出:(这一步在X86+cuda电脑上实现,非arm)

bash 复制代码
python generate_data_quant.py -m /path/to/DeepSeek-R1-Distill-Qwen-1.5B
python export_rkllm.py

TMI :以前也可以直接从 RKLLM 模型仓库(提取码:rkllm)下载已转换好的 DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm 模型文件,跳过上述步骤。But, rknn-llm 1.2.3版本的Deepseek-R1只能自己转,官方没有提供!

这个时候,如果想要转这个模型,就需要x86版本的带英伟达显卡的电脑。找了好久都没找到,甚至用虚拟机也没法实现(没法调用显卡)。这个时候非常感谢AladdinEdu AI学习实践工作坊,他们的工作人员(非常nice的兄弟!)给我提供了他们的云平台。

常言道,工欲善其事必先利其器!在他们的平台上,我很快转换成功我需要的DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm 的模型。


🖥️ 第二步:C++ 推理部署(板端)

进入 deploy 目录,我们提供了完整的 Linux/Android 推理示例。

1. 编译可执行程序

bash 复制代码
cd deploy
./build-linux.sh  # Linux aarch64 平台
# 或
./build-android.sh  # Android 平台(需配置交叉编译工具链)

编译成功后,会在 deploy/install/demo_Linux_aarch64/ 目录下生成:

  • llm_demo:推理主程序
  • lib/:RKLLM 运行时动态库

2. 推送文件到 RK3588 开发板

bash 复制代码
# 推送可执行程序
adb push install/demo_Linux_aarch64 /data

# 推送模型文件
adb push DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm /data/demo_Linux_aarch64/

# 推送固定频率脚本(提升性能稳定性)
adb push ../../../scripts/fix_freq_rk3588.sh /data/demo_Linux_aarch64/

3. 在板端运行推理

bash 复制代码
adb shell
cd /data/demo_Linux_aarch64
export LD_LIBRARY_PATH=./lib
sh fix_freq_rk3588.sh  # 锁定 CPU/NPU 频率
export RKLLM_LOG_LEVEL=1  # 启用日志(可选)

# 启动推理(参数:模型路径、max_new_tokens=2048、max_ctx_len=4096)
./llm_demo DeepSeek-R1-Distill-Qwen-1.5B_W8A8_RK3588.rkllm 2048 4096

启动成功后,你会看到:

复制代码
rkllm init start
rkllm init success

**********************可输入以下问题对应序号获取回答/或自定义输入********************
[0] 鸡兔同笼问题...
[1] 小朋友排队问题...
*************************************************************************
user:

🧠 推理效果展示

示例 1:数学推理(鸡兔同笼)

复制代码
user: 0
现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?

模型输出(节选):

设鸡为 ( x ),兔为 ( y ),列方程: [ \begin{cases} x + y = 14 \ 2x + 4y = 38 \end{cases} ] 解得:鸡有 9 只 ,兔子有 5 只

最终答案:鸡有 (\boxed{9}) 只,兔子有 (\boxed{5}) 只。

✅ 模型不仅给出答案,还完整展示分步推理过程,符合 DeepSeek 系列"强推理"特性。


示例 2:逻辑题(位置计算)

复制代码
user: 1
有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?

模型输出

总人数 28,左边第 10 位 → 右边位置 = ( 28 - 10 + 1 = 19 )

最终答案:(\boxed{19})


🌟 总结与展望

通过 RKLLM 工具链,我们成功将 1.5B 级别的高性能推理模型部署到 RK3588 边缘设备,实现在无网络、低功耗环境下运行复杂语言任务。这为国产芯片在 AIoT、教育、工业等场景的应用打开了新可能。

未来方向

  • 支持多模态模型(如 Qwen-VL)
  • 集成 FastAPI 构建本地 REST 服务
  • 优化 W4A16 量化策略进一步提速

🔗 参考资料

相关推荐
老欧学视觉1 小时前
0011机器学习特征工程
人工智能·机器学习
科技观察1 小时前
国产MATLAB替代软件的关键能力与生态发展现状
大数据·人工智能·matlab
用户5191495848451 小时前
掌握比特币:开放区块链编程全解析
人工智能·aigc
轻赚时代1 小时前
PC 端 AI 图像处理工具实操指南:抠图 / 证件照优化 / 智能擦除全流程解析
图像处理·人工智能·经验分享·笔记·深度学习·创业创新·学习方法
晓山清1 小时前
Meeting Summarizer Using Natural Language Processing论文理解
人工智能·python·nlp·摘要生成
池央1 小时前
从“算子不支持”到“NPU高效执行”:CANN 8.0 TBE 自定义算子落地实践
linux·人工智能
龙腾AI白云1 小时前
卷积神经网络(CNN)详细介绍及其原理详解前言一、什么是卷积神经网络二、输入层
人工智能·django
上海蓝色星球2 小时前
打破BIM应用“花瓶”窘境:让模型“活”在业务场景中
大数据·人工智能
币圈菜头2 小时前
GAEA:情感AI如何改变我们的生活?12月空投前瞻
人工智能·web3·区块链·生活