RK1828 开发笔记:rknn3 sdk 环境、安装与模型转换

最近在用 RK1828 做端侧 AI 部署,重点折腾了 RKNN3 Toolkit 这个 PC 端模型转换工具。从环境配置到 LLM/CNN 模型转换都跑了一遍,整理了一些踩坑经验和关键参数说明,分享给同样在折腾这块的同学。

(本文基于 V1.0.4 测试,不同版本 API 可能有差异,具体以为准。)


一、环境要求

先说环境,这块卡住的人应该不在少数:

项目 要求
Python 3.10 或 3.12
操作系统 Linux / Windows(V1.0.4 起支持 Windows)
GPU 建议有 NVIDIA GPU,加速模型加载和量化
CUDA 11.8+(推荐)

特别注意:Python 只支持 3.10 和 3.12,不支持 3.11! 别手欠装 3.11,装完 pip install 直接报错。


二、安装

去 下载对应系统的 whl 文件,然后 pip 装就行:

# Linux
pip install rknn3_toolkit-1.0.4-cp310-cp310-manylinux_4_64_x86_64.whl

# Windows
pip install rknn3_toolkit-1.0.4-cp310-cp310-win_amd64.whl

装完验证一下:

python -c "from rknn3.api import RKNN3; print('RKNN3 Toolkit installed')"

看到 RKNN3 Toolkit installed 就对了。


三、LLM 模型转换(以 Qwen3-1.7B 为例)

LLM 的转换流程相对简单,主要靠 load_huggingface 一步到位:

from rknn3.api import RKNN3

rknn3 = RKNN3()

# 从 HuggingFace 加载模型
rknn3.load_huggingface(model="Qwen/Qwen3-1.7B")

# 构建 RKNN 模型
rknn3.build(
    target="rk1828",
    quantization="w8a8",
    max_context_len=2048,
)

# 导出
rknn3.export("Qwen3-1.7B.rknn")

四、CNN 模型转换(以 MobileNet V2 为例)

CNN 的流程稍微多一步,需要先 config 配置均值和方差,再 load_onnx 加载模型:

from rknn3.api import RKNN3

rknn3 = RKNN3()

# 配置输入预处理
rknn3.config(
    mean_values=[[0, 0, 0]],
    std_values=[[255, 255, 255]],
)

# 加载 ONNX 模型
rknn3.load_onnx(model='./mobilenet_v2.onnx')

# 构建(INT8 量化)
rknn3.build(
    target="rk1828",
    do_quantization=True,
    dataset='.dataset.txt',
)

# 导出
rknn3.export_rknn('./mobilenet_v2.rknn')

五、关键参数说明(避坑重点)

LLM 模型参数

参数 说明 建议值
target 目标芯片 rk1828
quantization 量化方式:w4a8 / w8a8 w8a8 质量更好,w4a8 更省空间
max_context_len 最大上下文长度 建议 ≥ 32768(Agent 框架需要)

这里有个大坑: max_context_len 在转换时就定死了,运行时改不了!如果你转换时设了 2048,那后面 rkllm3-server 的 -c 参数最大也只能传 2048。建议一开始就设大一点,按需调整。

CNN 模型参数

参数 说明 建议值
target 目标芯片 rk1828
do_quantization 是否量化 True(INT8 量化减小模型体积)
dataset 量化校准数据集 20~200 张代表性图片路径

六、LLM 转换完成后会生成哪些文件?

跑完 LLM 转换,目录里会多出几个文件:

Qwen3-1.7B.rknn           # 模型结构
Qwen3-1.7B.weight          # 模型权重
Qwen3-1.7B.tokenizer.gguf  # 分词器
Qwen3-1.7B.embed.bin       # Embedding

这几个文件全部要拷到 RK1828 设备的模型目录,少一个都跑不起来。


七、更多示例

RKNN3 Model Zoo 里还有更多模型的转换和部署 demo,常见类型都有覆盖:

类型 示例模型
LLM Qwen3-1.7B / Qwen3-4B / Qwen2.5-3B
VLM Qwen3-VL-2B / InternVL3-2B
ASR Qwen3-ASR / Whisper / SenseVoice
TTS Qwen3 TTS / VITS
CNN MobileNet V2 / YOLOv5 / YOLOv8

差不多就这些,如果有遇到什么坑,欢迎评论区一起讨论!

RKNN3 Toolkit GitHub:GitHub - airockchip/rknn3-toolkit · GitHub