在 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 量化策略进一步提速

🔗 参考资料

相关推荐
NAGNIP9 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab10 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab10 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP14 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年14 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼14 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS14 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区15 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈15 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang16 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx