AI嵌入式7——瑞芯微RK3588s+RK1828 NPU 部署VLM模型(Qwen3-VL-2B)

系列文章目录

参考博客

参考博客


文章目录


前言

RK1828 是瑞芯微(Rockchip)推出的一款端侧 AI 协处理器,其核心使命是作为"AI 加速引擎",与主控芯片(如 RK3588)协同工作,专门应对端侧大模型部署中普遍存在的"内存墙"瓶颈。

与传统 SoC 内置 NPU 不同,RK1828 采用了"主控 SoC + AI 协处理器"的双芯架构。它并非要取代主控,而是作为专职的 AI 推理加速单元,通过 PCIe 或 USB 接口挂载到 RK3588、RK3576 等主控平台上。

这种设计的关键,在于它通过3D 堆叠封装技术,将高带宽 DRAM 直接集成在芯片内部,从而绕开了外部内存带宽的限制。其内部理论带宽可达约 1TB/s,远超通过 PCIe 接口获得的外部带宽,使得大模型推理所需的数据搬运不再成为瓶颈。

RK1828 的具体配置如下:

NPU 算力:20 TOPS (INT8),支持 INT4、INT8、INT16、FP8、FP16、BF16 等多种计算精度。

片上内存:5GB 3D 堆叠 DRAM,这是它与入门款 RK1820(2.5GB)最核心的区别,决定了它能承载的模型规模。

处理器架构:采用三核 64 位 RISC-V 架构作为控制核心。

功耗 (TDP):热设计功耗为 20W。实际运行中,单卡功耗约 10W,运行 7B 模型时平均功耗约 13.6W,峰值约 29.4W。

接口与形态:常见形态包括 M.2 2280 (M-Key) 和 SODIMM 算力卡,通过 PCIe 接口与主控连接。一个关键特性是,仅需 PCIe 2.1 x1 Lane 的带宽即可"满血"发挥其 AI 算力,对外部接口依赖极低。

得益于 5GB 的片上内存,RK1828 能够流畅地在端侧离线运行 8B 参数以下的LLM模型、VLM模型、TTS模型以及传统的CNN模型,具体模型支持可参考官方文件。


一、下载模型

通过魔搭下载Qwen3-VL-2B-Instruct模型。

首先可以在虚拟环境中安装魔搭的下载工具:

bash 复制代码
pip install modelscope

然后根据具体模型名和本地保存位置进行下载:

bash 复制代码
modelscope download --model Qwen/Qwen3-VL-2B-Instruct --local_dir /home/xxx/xxx

二、环境搭建

在服务器的虚拟环境中搭建RK环境,这个环境主要用于模型的量化及转换,只有转换得到对应模型文件才能在RK1828上推理。

首先下载解压rknn3_model_zoo和rknn3-toolkit工具包。

进入rknn3_model_zoo文件夹,安装对应的依赖环境:

bash 复制代码
cd rknn3_model_zoo/
pip install -r requirements.txt
export PYTHONPATH=./

进入rknn3-toolkit文件夹,安装对应的依赖环境:

bash 复制代码
cd rknn3-toolkit\rknn3-toolkit\packages
pip install -r requirements_cp310-1.1.0.txt
pip install rknn3_toolkit-1.1.0-cp310-cp310-manylinux2014_x86_64.whl

测试rknn3-toolkit是否能够正常使用:

bash 复制代码
python -c "from rknn.api import RKNN; print('Toolkit OK')"

由于 Qwen3-VL 模型对部分依赖库版本有特殊要求,与rknn3_model_zoo的 requirements.txt 中的部分依赖库版本不兼容,需要单独手动安装以下依赖:

bash 复制代码
pip install "torch>=2.9.0" "transformers==4.57.1" "onnxruntime>=1.23.2"

安装后可能会出现更新的依赖库与原来某些对应的依赖库不兼容问题:

bash 复制代码
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
datasets 5.1.0 requires huggingface-hub<3.0,>=1.31.0, but you have huggingface-hub 0.36.2 which is incompatible.
torchvision 0.23.0 requires torch==2.8.0, but you have torch 2.14.1 which is incompatible.

datasets 冲突:环境里的 datasets 5.1.0 发布于 2026-10-05,它强制要求 huggingface-hub>=1.31。这与安装的 transformers 4.57.1 所需的 huggingface-hub<1.0 直接矛盾,pip 为了满足 transformers,只能将 huggingface-hub 降级到 0.36.2,从而导致 datasets 5.1.0 报错。

torchvision 冲突:原有的 torchvision 0.23.0 是为了匹配 torch 2.8.0 而安装的。当将 torch 升级到 2.14.1 后,这个旧版的 torchvision 自然就不兼容了。

手动更新:

bash 复制代码
pip install "torchvision==0.29.1" "datasets==5.0.1"

三、模型转换

1、LLM语言解码器

进入安装好的模型转换虚拟环境,调用rknn3-model-zoo工具,先生成量化校准数据集,再根据校准数据通过GRQ量化把原始模型分割转换为独立的llm.onnx模型。

bash 复制代码
cd rknn3-model-zoo/examples/Qwen3_VL/python/llm

python make_calidata.py --model_path Qwen/Qwen3-VL-2B-Instruct --datapath ../../../../datasets/MMBench/llm/dataset.json

python export_llm.py --quant --model_path Qwen/Qwen3-VL-2B-Instruct --export_llm_path Qwen3-VL-2B-llm.onnx

量化转换过程中可能提示缺少某些依赖库,给他pip补上即可:

bash 复制代码
ModuleNotFoundError: No module named 'onnxscript'
pip install onnxscript

将转换好的onnx模型再次转换为rknn模型:

bash 复制代码
python export_rknn.py --onnx_path Qwen3-VL-2B-llm.onnx --config Qwen3-VL-2B-llm.config.pkl  --rknn_path Qwen3-VL-2B-llm.rknn --platform rk1820

2、Vision视觉编码器

依然是进入安装好的模型转换虚拟环境,调用rknn3-model-zoo工具,这次不需要重新生成量化校准数据集,直接复用之前llm模型的数据集即可,然后根据校准数据通过GRQ量化把原始模型分割转换为独立的vision.onnx模型。

bash 复制代码
cd rknn3-model-zoo/examples/Qwen3_VL/python/vision

cp -r ../llm/quant_data ./

python export_vision.py --quant --model_path Qwen/Qwen3-VL-2B-Instruct --export_vision_path Qwen3-VL-2B-vision.onnx

同样将转换好的onnx模型再次转换为rknn模型:

bash 复制代码
python export_rknn.py --onnx_path Qwen3-VL-2B-vision.onnx --rknn_path Qwen3-VL-2B-vision.rknn --platform rk1820

自此,获得以下6个模型文件,这些模型文件就是RK1828推理时所需要的数据文件:

bash 复制代码
Qwen3-VL-2B-vision.rknn
Qwen3-VL-2B-vision.weight
Qwen3-VL-2B-llm.rknn
Qwen3-VL-2B-llm.weight
Qwen3-VL-2B-llm.tokenizer.gguf
Qwen3-VL-2B-llm.embed.bin

四、模型部署

在RK3588s+RK1828中下载解压rknn3_model_zoo文件,然后使用命令进行编译:

bash 复制代码
cd rknn3-model-zoo/

chmod +x build-linux.sh

./build-linux.sh -t rk3588 -a aarch64 -d Qwen3_VL

调用编译好的可执行文件示例,输入对应的参数,比如模型路径、图片路径、prompt提示词,模型支持的图片宽高以及加速参数:

bash 复制代码
cd install/rk3588_linux_aarch64/rknn_Qwen3_VL_demo

./rknn_qwen3_vl_demo \
  <vision_rknn> <vision_weight> \
  <llm_rknn> <llm_weight> \
  <tokenizer_gguf> <embed_bin> \
  <vision_core_mask> <llm_core_mask> \
  <image_path> "<prompt>" \
  [model_width model_height] [speedup_ratio]
  
示例:
./rknn_qwen3_vl_demo \
  ../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-vision.rknn \
  ../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-vision.weight \
  ../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-llm.rknn \
  ../../models/Qwen3-VL-2B-Instruct-rknn/Qwen3-VL-2B-llm.weight \
  ../../models/Qwen3-VL-2B-Instruct-onnx/Qwen3-VL-2B-llm.tokenizer.gguf \
  ../../models/Qwen3-VL-2B-Instruct-onnx/Qwen3-VL-2B-llm.embed.bin \
  0xff 0xff \
  /path/to/your/test_image.jpg \
  "Describe this image in detail." \
  384 384 1.0

参数说明:

vision_model_path:Vision 模型的结构文件路径,即 Qwen3-VL-2B-vision.rknn

vision_weight_path:Vision 模型的权重文件路径,即 Qwen3-VL-2B-vision.weight

llm_model_path:LLM 模型的结构文件路径,即 Qwen3-VL-2B-llm.rknn

llm_weight_path:LLM 模型的权重文件路径,即 Qwen3-VL-2B-llm.weight

tokenizer_path:LLM 的 Tokenizer 文件路径,即 Qwen3-VL-2B-llm.tokenizer.gguf

embedding_path:LLM 的 Embedding 文件路径,即 Qwen3-VL-2B-llm.embed.bin

vision_core_mask:Vision 模型的核心掩码,十六进制表示,0xff表示可以使用RK1828的3个NPU核心

llm_core_mask:LLM 模型的核心掩码,十六进制表示,0xff表示可以RK1828的3个NPU核心

image_path:待推理图片的路径

prompt:给模型的文本指令,需要用引号包裹

model_width:Vision 模型的输入宽度 与导出 Vision RKNN 时的 --img_w 一致

model_height:Vision 模型的输入高度 与导出 Vision RKNN 时的 --img_h 一致

speedup_ratio:SpeedUP 加速模式的控制比例,1.0表示自动模式,自动决定加速策略,0.0表示关闭SpeedUP加速,(0.0, 1.0) 之间的任意值表示手动模式,手动在这个区间内微调。

最终模型会输出对应结果


总结

RK1828和RK3588不一样,它不是一颗通用的应用处理器,而是一颗目标明确、特点突出的 AI 协处理器,通常搭配RK3588这种通用开发板使用。它通过 3D 堆叠内存技术,精准地解决了端侧大模型推理的带宽瓶颈,使得在功耗和体积受限的边缘设备上运行 7B 级别的模型成为可能。其"协处理器"的定位和灵活的算力卡形态,为现有设备的 AI 能力升级提供了一条高性价比的路径。

相关推荐
阿里云大数据AI技术37 分钟前
云栖实录 | 具身智能前沿对话
人工智能
imythu44 分钟前
让 Claude Code 在家跑,我在外面用手机盯着:做一个开源工具踩过的几个坑
人工智能·github
用户6602638008361 小时前
8GB 显存跑 7B 大模型:vLLM 消费级显卡极限实战白皮书
人工智能
躺柒1 小时前
读数据安全架构设计与实践20安全政策文件体系(上)
大数据·人工智能·安全·数据安全·安全架构·安全体系
用户302514728061 小时前
从对话到行动:用 AIUI 构建「意图驱动」的隐形界面——「言值」AI 表达教练开发实录
人工智能
武子康1 小时前
工作流 JSON 没变,为什么 ComfyUI 更新后仍可能跑出不同结果?
人工智能·agent
海螺_AIHCC1 小时前
Agent 能自己调工具之后,安全就不该写在提示词里:一个 200 行拦截器的工程实践
人工智能
加宝的起点雷达2 小时前
三个定时任务被删那天,系统一声不吭
人工智能·后端
用户321757668342 小时前
ComfyUI AI 漫剧本地量产流水线搭建教程|8G 显存本地部署、分镜生成、角色一致性、视频生成
人工智能