一、项目背景介绍
本文介绍 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 烧录流程:
- 访问官方文档下载 Ubuntu 固件(推荐 22.04 版本)。
- 使用 RKDevTool 烧写工具进行固件写入。
- 烧录完成后再次检查 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, :


