跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

DeepSeek R1 在 RK3588 上的 RKLLM 转换与 Web 部署流程

在瑞芯微 RK3588 开发板上部署 DeepSeek R1 7B 大模型的完整流程。内容包括升级 NPU 驱动至 0.9.8 版本,在 x86 环境下将 Hugging Face 的 safetensors 权重转换为 RKLLM 格式,通过 C++ 或 Python 脚本在板端进行推理,以及集成 Gradio 实现局域网 Web 访问。文章提供了具体的代码示例和环境配置步骤。

DockerOne发布于 2026/4/6更新于 2026/9/1093 浏览
DeepSeek R1 在 RK3588 上的 RKLLM 转换与 Web 部署流程

一、项目背景介绍

本文介绍 DeepSeek R1 7B(基于 Qwen 底座)大语言模型在瑞芯微 RK3588 SoC 上的完整部署流程,涵盖从开发板驱动适配烧录到终端及局域网 Web 访问模型的步骤。

二、所需工具介绍

1. 硬件工具

  • X86 PC 虚拟机 Ubuntu20.04:用于模型转换和量化环境搭建。
  • RK3588 开发板:需确保 NPU 驱动版本为 0.9.8 及以上。

检查 NPU 驱动版本命令:

sudo cat /sys/kernel/debug/rknpu/version

早期驱动(如 0.8.2)仅支持传统 CV 模型,LLM 需要调用 librkllm.so,最低要求驱动 0.9.8。若版本过低需重新烧录固件。

Firefly RK3588 烧录流程:

  1. 访问官方文档下载 Ubuntu 固件(推荐 22.04 版本)。
  2. 使用 RKDevTool 烧写工具进行固件写入。
  3. 烧录完成后再次检查 NPU 驱动版本确认升级成功。

2. 软件工具

  • Hugging Face:获取开源模型权重(.safetensors 文件)。
  • RKNN-LLM-release:瑞芯微提供的模型转换 SDK,包含 rkllm-toolkit(PC 端)和 rkllm-runtime(板端)。

三、获取.safetensors 模型权重

从 Hugging Face 下载 DeepSeek-R1-Distill-Qwen-7B 模型权重。由于文件较大,建议逐个下载或处理分片文件(如 model-00001-of-000002.safetensors)。

四、safetensors 转 RKLLM

1. 转换环境搭建

在 x86 Linux 环境中创建 Python 3.10 虚拟环境并安装工具包:

conda create -n rkllm123 python=3.10
pip install rkllm_toolkit-1.2.3-cp310-cp310-linux_x86_64.whl

注意:模型转换对内存要求较高,必要时可配置 SWAP。

2. 模型转换

创建 export_model.py 和 generate_data.py 脚本。

生成量化数据 (generate_data.py):

import json
from transformers import AutoTokenizer

model_path = '/xxx/RKNN-LLM/rkllm/DeepSeek-R1-Distill-Qwen-7B'
prompts = [
    "你好,请介绍一下你自己。",
    "Explain the theory of relativity in simple terms.",
    "写一首关于春天的七言绝句。"
]
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
data_list = []
 prompt  prompts:
    messages = [{: , : prompt}]
    text = tokenizer.apply_chat_template(messages, tokenize=, add_generation_prompt=)
    data_list.append({: text, : 
for
in
"role"
"user"
"content"
False
True
"input"
"target"
"""}) with open('data_quant.json', 'w', encoding='utf-8') as f: json.dump(data_list, f, ensure_ascii=False, indent=4) print("量化数据已生成:data_quant.json")

执行转换 (export_model.py):

from rkllm.api import RKLLM
import os

model_path = '/xxx/RKNN-LLM/rkllm/DeepSeek-R1-Distill-Qwen-7B'
platform = 'rk3588'
export_path = f'DeepSeek-R1-Distill-Qwen-7B_W8A8_{platform}.rkllm'

llm = RKLLM()
print(">>> Loading model...")
ret = llm.load_huggingface(
    model=model_path,
    device='cpu',
    dtype='float16'
)
if ret != 0:
    print("Model Load Failed!")
    exit(ret)

print(">>> Building model (Quantization W8A8)...")
qparams = None
dataset = './data_quant.json'
ret = llm.build(
    do_quantization=True,
    optimization_level=1,
    quantized_dtype='w8a8',
    quantized_algorithm='normal',
    target_platform=platform,
    num_npu_core=3,
    dataset=dataset
)
if ret != 0:
    print("Model Build Failed!")
    exit(ret)

print(f">>> Exporting model to {export_path}...")
ret = llm.export_rkllm(export_path)
if ret != 0:
    print("Model Export Failed!")
    exit(ret)
print("\n\n转换成功!请将 .rkllm 文件推送到板端进行测试。")

运行顺序:先执行 generate_data.py 生成 data_quant.json,再执行 export_model.py。

五、RKLLM 模型板端部署及推理

将生成的 .rkllm 文件复制到开发板指定路径。

1. 修改 C++ Demo

编辑 llm_demo.cpp,适配 DeepSeek/Qwen 的 ChatML 模板:

// 【修改开始】适配 DeepSeek-R1 / Qwen 的 ChatML 模板
rkllm_set_chat_template(llmHandle,"<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n","<|im_start|>user\n","<|im_end|>\n<|im_start|>assistant\n");
// 【修改结束】

2. 编译与运行

修改 build-linux.sh 脚本设置编译器,然后编译:

bash build-linux.sh

设置环境变量:

export LD_LIBRARY_PATH=~/rknn-llm-release-v1.2.3/rkllm-runtime/Linux/librkllm_api/aarch64/lib:$LD_LIBRARY_PATH

运行模型:

./llm_demo /home/firefly/models/DeepSeek-R1-Distill-Qwen-7B_W8A8_rk3588.rkllm 512 2048

六、集成开源 Gradio 工具实现 Web 访问

在开发板上安装 Gradio 并配置服务。

  1. 安装依赖:
pip3 install gradio
  1. 复制运行时库:
cp ~/rknn-llm-release-v1.2.3/rkllm-runtime/Linux/librkllm_api/aarch64/librkllmrt.so ./lib/
  1. 修改 gradio_server.py,设置监听地址为 0.0.0.0 以允许局域网访问。
  2. 启动服务:
python3 gradio_server.py --model_path /home/firefly/rkllm_model_zoo_selfconvert/DeepSeek-R1-Distill-Qwen-7B_W8A8_rk3588.rkllm --target_platform rk3588
  1. 通过浏览器访问 http://<开发板 IP>:8080 即可使用 Web 界面与模型交互。

目录

  1. 一、项目背景介绍
  2. 二、所需工具介绍
  3. 1. 硬件工具
  4. 2. 软件工具
  5. 三、获取.safetensors 模型权重
  6. 四、safetensors 转 RKLLM
  7. 1. 转换环境搭建
  8. 2. 模型转换
  9. 五、RKLLM 模型板端部署及推理
  10. 1. 修改 C++ Demo
  11. 2. 编译与运行
  12. 六、集成开源 Gradio 工具实现 Web 访问

更多推荐文章

查看全部
  • Llama 开源家族梳理:从 Llama-1 到 Llama-3
  • 企业电子招投标系统首页设计与核心功能架构
  • ChatGPT Prompt Hacker 技巧:优化简历通过 AI 筛选
  • 基于 STM32 的智能家居环境监测系统
  • Ubuntu 22.04 原生 RDP 远程桌面配置与高分屏适配技巧
  • 利用提示词优化 AI 生成内容以降低 AIGC 检测率
  • Python JS 逆向与多线程结合实践
  • Ubuntu 18.04 解决 Linux 5.4 下 Intel I226-V 2.5G 网卡驱动识别问题
  • 微软暑期实习面试全解析:流程、考点与岗位查询
  • 三维模型格式转换:STL 到 STEP 高效转换方案
  • 条件变分自编码器(CVAE):如何精准控制生成结果
  • 语音转写文本润色:Llama-Factory 助力 ASR 结果后处理
  • MyBatisPlus 与 Thymeleaf 全栈分页实战方案
  • C++ 异常处理机制:异常捕获、自定义与实战应用
  • 树莓派 4B 连接大疆 M300 无人机开发指南
  • 北航发布 LLaMA-Factory:零代码大模型微调与高效训练框架
  • MySQL 8.4.7 Windows 免安装版配置与使用指南
  • C++ STL 基础:迭代器、auto 与范围循环
  • 人工智能应用工程师(高级)技能体系与课程路径解析
  • Web 自动化测试入门:从概念到百度搜索实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online