首页 > 技术

RK3588开发板--YY3588上运行DeepSeek R1大模型

2026-07-29 13:21:36      西盟科技资讯   


  当前,AI产业正加速从云端向端侧迁移。隐私保护、实时响应和成本控制的需求,推动大模型在边缘设备上落地部署;同时,模型量化、蒸馏等压缩技术的成熟,以及以NPU为核心的异构计算芯片性能跃升,使端侧推理成为现实。据预测,全球端侧AI市场规模2029年将突破万亿元。

  在此趋势下,瑞芯微RK3588作为国产旗舰级边缘计算芯片,凭借6 TOPS算力NPU与多核异构架构,为端侧大模型部署提供了高性价比的硬件底座。而DeepSeek-R1蒸馏版本在保持强大推理能力的同时显著缩减参数规模,使两者结合成为“先进算法+国产芯片”端侧智能的典型实践,在智慧安防、工业质检等场景中展现出离线、低延迟的落地价值。

  本文将从实战角度,系统介绍在风火轮技术的RK3588开发板——YY3588上部署DeepSeek-R1的全流程,涵盖模型选型、量化转换、RKLLM工具链使用及板端推理优化等环节,为开发者提供一份可复用的技术参考。

  DeepSeek-R1及其蒸馏版本解析

  本文使用的端侧推理模型为DeepSeek-R1-Distill-Qwen-1.5B。这一长串名称拆解开来含义清晰:DeepSeek-R1是教师模型,Distill代表蒸馏技术,Qwen-1.5B则是被蒸馏的基座模型——即DeepSeek官方利用671B参数的DeepSeek-R1作为教师,通过蒸馏技术将推理能力迁移至轻量级的Qwen-1.5B基座上,生成的产物即为此1.5B版本。它属于官方发布的6个蒸馏版本中规模最小的一个,专为资源受限的边缘场景设计。

  作为教师模型的DeepSeek-R1,其核心突破在于后训练阶段大规模引入强化学习,促使模型自主探索思维链,涌现出自我验证、反思等复杂推理行为,在数学、代码等任务上可对标OpenAI o1。蒸馏技术的价值在于将这种强大推理能力压缩到小模型中——利用R1生成的约80万推理样本对Qwen进行微调,使1.5B版本在AIME 2024数学竞赛中达到28.9%的准确率,超越了GPT-4o(9.3%)。而选择这一最小版本,是基于RK3588硬件能力的理性权衡:该芯片NPU算力为6 TOPS,实测该模型仅需约2GB空闲内存即可运行,推理速度可达15.4 tokens/s,能够在RK3588上实现流畅的端侧实时推理,是当前硬件约束下“性能与资源”平衡的最优解。

  获取模型文件

  选定模型后,需要将DeepSeek-R1-Distill-Qwen-1.5B的模型文件下载到本地。目前RK平台可以支持Hugging Face格式的文件。此格式是目前业界最主流的深度学习模型存储标准,它以统一的目录结构组织模型文件,包含config.json(配置文件)、model.safetensors或pytorch_model.bin(权重文件)、tokenizer.json(分词器)等标准化文件。这种格式屏蔽了不同深度学习框架之间的差异,使得模型可以在PyTorch、TensorFlow等不同框架之间无缝加载和迁移,已成为AI领域的通用模型交换格式。

  该模型已由DeepSeek官方在Hugging Face社区和魔搭社区(ModelScope)同步开源,国内推荐使用魔搭社区。在魔搭社区搜索“DeepSeek-R1-Distill-Qwen-1.5B”进入模型详情页,使用以下命令直接下载:

  # 安装Git LFS

  sudo apt install git-lfs

  git lfs install

  # 克隆模型仓库

  git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git

  下载完成后,在模型目录中应能看到上述Hugging Face标准格式的各个文件,表示权重已完整获取

  RKLLM工具链与模型转换

  完成Hugging Face格式模型的下载后,接下来的关键步骤就是将其转换为RK3588 NPU能够识别和运行的格式。瑞芯微为此提供了一套完整的软件工具链——RKLLM(Rockchip Large Language Model),它专门用于大语言模型在Rockchip平台上的部署,可以借助RKNPU加速推理。

  RKLLM工具链由三个核心组件构成:RKLLM-Toolkit、RKLLM Runtime和RKNPU内核驱动。其中,RKLLM-Toolkit是运行在PC端的模型转换与量化工具,它接收Hugging Face格式(包含config.json、model.safetensors等文件)或GGUF格式的模型作为输入,经过一系列处理后输出一个独立的.rkllm格式文件。这个单一文件实际上打包了模型量化后的权重、计算图结构、量化参数以及词表等信息,方便后续在板端部署和分发。RKLLM Runtime则是运行在开发板上的C/C++推理库,负责加载.rkllm模型,并调用底层的NPU驱动完成硬件加速推理。三个组件协同工作,构成了从模型准备到最终在NPU上运行的完整通路。

  在使用的时候,RKLLM-Toolkit和RKLLM Runtime需要保持版本一致,笔者这里使用的是1.2.2版本。这个RKLLM工具链可以从

  https://github.com/airockchip/rknn-llm

  下载。拉取tags为1.2.2版本即可。

  而RKNPU驱动的版本变化较少,在RK3588上使用0.9.8版本即可。

  下面说明模型转换的步骤。RKLLM-Toolkit需要部署在x86_64架构的Linux PC上,笔者这里使用的是ubuntu 2404版本。在这个版本里面,自带的python 版本为3.12,因此使用名为

  rkllm_toolkit-1.2.2-cp312-cp312-linux_x86_64.whl

  的安装包,安装包在rkllm工程的rkllm-toolkit/packages目录下。

  此安装包还需要很多依赖,而新版的ubuntu不允许修改系统里面的pip包,这里需要使用Python自带的venv虚拟环境管理依赖。使用如下命令创建venv

  # 1. 创建虚拟环境(在当前目录下生成 venv 文件夹)

  python3 -m venv rkllm_venv

  # 2. 激活虚拟环境

  source rkllm_venv/bin/activate

  后续每次要使用这个环境时,执行激活虚拟环境的步骤即可。在这个虚拟环境下,所有的pip包都会被安装到rkllm_venv目录里面。

  执行完上述命令后,即可执行依赖安装。

  pip install rkllm_toolkit-1.2.2-cp312-cp312-linux_x86_64.whl

  如果成功,会有如下图所示的提示。

  接着开始执行模型转换。转换前,需先使用generate_data_quant.py脚本,传入下载好的Hugging Face模型路径,生成一份用于量化校准的数据集文件,这份校准数据对后续的量化精度至关重要。该脚本位于rkllm工程的examples/rkllm_api_demo/export目录下,使用如下命令即可生成校准数据:

  python3 generate_data_quant.py -m DeepSeek-R1-Distill-Qwen-1.5B/

  这里会得到名为data_quant.json量化校准的数据集文件。

  模型转换需使用RK提供的API。下面这份是笔者使用的python脚本

  from rkllm.api import RKLLM

  rkllm = RKLLM()

  model_path = "./DeepSeek-R1-Distill-Qwen-1.5B"

  ret = rkllm.load_huggingface(model=model_path, model_lora=None, device='cpu')

  if ret != 0:

  print('Load model failed!')

  ret = rkllm.build(

  do_quantization=True,

  optimization_level=1,

  quantized_dtype='w8a8_g128',

  quantized_algorithm="normal",

  num_npu_core=3,

  extra_qparams=None,

  dataset="./data_quant.json",

  hybrid_rate=0,

  target_platform='rk3588',

  max_context=4096

  )

  if ret != 0:

  print('Build model failed!')

  else:

  print('Build model success!')

  ret = rkllm.export_rkllm(export_path = './model.rkllm')

  if ret != 0:

  print('Export model failed!')

  其中rkllm.load_huggingface用于加载模型,通常用虚拟机时,选择model_lora=None, device='cpu'参数即可。

  rkllm.build用于执行模型构建。其中参数quantized_dtype为量化的具体类型,此处w8a8表示模型的权重和激活值都被量化为 8位 精度,g128表示量化时采用了分组量化(Group Quantization)策略,分组大小为128。

  参数num_npu_core为npu核心数,RK3588最大支持3

  参数dataset为上一步生成的量化校准的数据集文件

  rkllm.export_rkllm函数用于模型导出

  执行此脚本,最终可以得到名为model.rkllm的模型

  RK3588开发板与板端推理演示

  模型转换完成后,可以将其部署到真实硬件上运行。本文使用的是YY3588开发板,这款开发板基于瑞芯微RK3588处理器设计,八核 ARM 架构(4×Cortex-A76@2.4GHz + 4×Cortex-A55@1.8GHz),集成 6TOPs NPU,支持本地大模型推理与复杂AI任务。内存方面可根据需求选配LPDDR4/4X 4GB/8GB/16GB/32GB, 频率最高达3200Mbps。存储方面支持M.2 SSD与SATA 3.0硬盘接口,满足高速存储与大容量需求。接口方面提供了双网口、多种无线连接方式,以及HDMI、USB3.0、PCIe、MIPI CSI等丰富的外设接口,可灵活适配各类端侧应用场景。系统方面预适配Android 14、Debian 12、OpenHarmony 5.0,稳定可靠。

  将转换好的.rkllm模型文件拷贝至YY3588开发板后,需要在板端部署RKLLM Runtime推理运行环境。这里可以烧录风火轮科技为开发板提供的Debian或者Android系统的固件

  系统启动后需确认NPU驱动(rknn-server)已正常加载,可通过

  cat /sys/kernel/debug/rknpu/version 命令确认其版本。

  随后将RKLLM Runtime库文件(包含动态链接库和头文件)部署到系统中,并设置相应的环境变量。以Android为例,需要将rkllm工程的rkllm-runtime/Android/librkllm_api/arm64-v8a目录下的libomp.so和librkllmrt.so推送到板端,路径可自行选择,笔者这里使用/data/rkllm/lib,同时将整个librkllm_api目录推送到虚拟机。

  推理程序通常使用C/C++编写,核心流程包括:加载.rkllm模型文件、初始化推理上下文、构造输入文本、调用接口执行推理,最后解析并输出结果。编译时需链接RKLLM Runtime库,确保编译选项正确。RK提供了相应的demo,可以直接编译运行。以android为例,将rkllm工程的rknn-llm-main/examples/rkllm_api_demo放到虚拟机下面,然后下载ndk r21e版本,下载链接为

  https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip

  修改build-android.sh脚本,将ANDROID_NDK_PATH设定为ndk解压的目录,如

  ANDROID_NDK_PATH=~/opts/android-ndk-r21e

  然后修改CMakeLists.txt,将其中 RKLLM_API_PATH 修改为librkllm_api的目录,如

  set(RKLLM_API_PATH "${CMAKE_SOURCE_DIR}///librkllm_api")

  然后执行build-android.sh脚本,即可在

  rkllm_api_demo/deploy/install/demo_Android_arm64-v8a生成对应的llm_demo应用程序,将这个应用程序也推送到板上。同时将上一章生成的model.rkllm模型文件也推送到板端。

  在板端执行以下命令即可开始推理:

  RKLLM_LOG_LEVEL=2 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/rkllm/lib ./llm_demo ./ model.rkllm 1024 2048

  输入问题后,即可得到大模型的回答。

  实际推理性能是大家最关心的部分。下面可以看到,未提问时NPU占用率为0,回答时NPU占用率达到75%左右,说明确实使用了NPU加速。

  推理完成后,可使用logcat观察其性能统计信息。从日志可以看到,当前推理速度约为8 tokens/s,内存峰值占用约1.84GB。当然,这是在未做深度优化情况下的表现,后续如果有针对性的优化,推理速度可以进一步提升。

  结语

  本文完整走通了从模型选型、权重下载、RKLLM量化转换,到YY3588开发板端部署与推理验证的全流程。结果表明,DeepSeek-R1-Distill-Qwen-1.5B与RK3588平台的结合是切实可行的,能够在端侧实现流畅的大模型推理体验。随着RKLLM工具链的持续迭代和模型压缩技术的不断进步,端侧AI的推理能力和应用边界还将持续拓展。期待本文能为广大开发者提供一份实用的参考,助力更多“国产芯片+先进算法”的端侧智能应用落地。

相关阅读

    无相关信息