华北地区负责人:17340067106(毛经理)
华东地区负责人:17358670739(甘经理)
华南、华西地区负责人:19113907060(耿女士)
软件算法咨询:18982151213(刘先生)

联系我们
产品咨询

瑞芯微RV1126B 核心板 RKNN 轻量化大模型本地推理完整部署教程

作者:万物纵横
发布时间:2026-07-03 09:31
阅读量:

一、硬件与方案前置说明


1. RV1126B 硬件限制(部署 LLM 核心前提)


主控:4×Cortex-A53@1.6GHz,3TOPS INT8 NPU,支持 INT4/INT8/FP16 量化


内存选型硬性要求:


1GB DDR:仅支持 300M 以内极小模型(TinyLLaMA、MiniCPM-0.2B),极易 OOM


2GB DDR 推荐起步:稳定跑 0.5B~1B 轻量化 LLM(Qwen-0.7B、MiniCPM-1B、Phi-2)


4GB DDR:可流畅运行 1.5B 模型,支持短上下文 8K


存储:eMMC≥16GB,存放量化模型 + 词表 + 运行库


功耗:整机 2~7W,适合离线 IPC、边缘语音问答、本地文本分析场景


2. 适配轻量化大模型清单(RV1126B 实测可用)


模型

参数规模

推荐量化

最低内存

Qwen-0.7B-Chat

700M

W4A16

2GB

MiniCPM-1B-Small

1B

W4A16

2GB

Phi-2

1.3B

W4A16

4GB

TinyLLaMA-1.1B

1.1B

INT8

4GB

RWKV7-0.4B

400M

INT4

2GB


禁止部署≥2B 模型:NPU 算力 + 内存不足,持续 OOM、推理卡顿


3. 两条部署路线(二选一)


1. RKLLM(瑞芯微官方 LLM 专用框架,推荐):专门优化 Transformer 大模型,支持流式 Token 输出、LoRA、W4 量化,底层封装 RKNN Runtime,上手最快


2. 原生 RKNN-Toolkit2:拆分 Encoder/Decoder 单独转 rknn,自行实现循环解码,适合自定义多模态图文大模型


二、环境搭建


2.1 PC 宿主机环境(模型转换,Ubuntu20.04)


1)安装 RKNN-Toolkit2 + RKLLM 工具链


# 1. 创建虚拟环境

conda create -n rknn python=3.8

conda activate rknn


# 2. 安装依赖

pip install torch torchvision onnx onnxsim transformers sentencepiece accelerate


# 3. 安装RKNN-Toolkit2(瑞芯微官网下载对应whl)

pip install rknn_toolkit2-2.4.0-cp38-cp38-linux_x86_64.whl


# 4. 安装RKLLM模型转换工具

pip install rkllm


2)交叉编译工具链(板端 C++ 推理)


从 RV1126B 官方 SDK 获取 arm-rockchip830-linux-uclibcgnueabihf 工具链,解压并配置环境变量:


export PATH=$PWD/toolchain/bin:$PATH


2.2 RV1126B 核心板板端环境


1. 固件要求:Linux5.10/6.1,内置Galcore NPU 驱动、rknn_server、librknn\[_runtime.so](_runtime.so)


# 校验NPU驱动正常

dmesg | grep Galcore

strings /usr/lib/librknn_runtime.so | grep version


2. 板端依赖安装(Debian 系统)


apt update

apt install python3-pip libopencv-dev libgomp1

# 安装板端推理库 rknn_toolkit_lite2

pip3 install rknn_toolkit_lite2-2.3.2-cp38-aarch64.whl

# 部署RKLLM板端运行库

cp ./rkllm_lib/aarch64/* /usr/lib/


3. 关键配置:关闭系统内存交换,预留大模型运行内存


swapoff -a

echo 0 > /proc/sys/vm/swappiness


三、方案 A:RKLLM 轻量化大模型一键转换(推荐)


RKLLM 封装完整 LLM 流水线,自动完成模型量化、NPU 编译、生成.rkllm推理文件,适配 RV1126B 平台


步骤 1:HuggingFace 轻量化模型本地下载


from transformers import AutoModelForCausalLM, AutoTokenizer


model_name = "Qwen/Qwen-0.7B-Chat"

save_path = "./qwen0.7b_origin"


tokenizer = AutoTokenizer.from_pretrained(model_name)

model = AutoModelForCausalLM.from_pretrained(

    model_name, load_in_8bit=False, device_map="cpu"

)

tokenizer.save_pretrained(save_path)

model.save_pretrained(save_path)


步骤 2:RKLLM 量化编译(指定 RV1126B 硬件)


新建build_rkllm.py


from rkllm import RKLLM


# 1. 初始化RKLLM对象

rkllm = RKLLM()


# 2. 加载原始HF模型

ret = rkllm.load_huggingface(model_path="./qwen0.7b_origin")


# 3. 量化&编译配置(RV1126B最优参数)

rkllm.build(

    target_platform="rv1126b",    # 目标芯片

    quant_type="w4a16",            # INT4权重量化,大幅降低内存占用

    optimization_level=3,          # 最高NPU优化

    max_context_len=4096,          # 上下文长度(2GB内存建议≤4K)

    num_threads=4                  # 4核A53全部启用

)


# 4. 导出板端可用.rkllm文件

rkllm.export_rkllm("./qwen0.7b_w4_rv1126b.rkllm")

rkllm.release()

print("模型转换完成")


执行转换:


python build_rkllm.py


输出文件:qwen0.7b_w4_rv1126b.rkllm(包含权重、词表、NPU 算子)


步骤 3:RV1126B 板端 Python 流式推理


新建llm_infer.py,支持逐 Token 流式输出


from rkllm import RKLLM, RKLLMInput, RKLLMParam


# 全局回调函数:实时打印生成token

def stream_callback(result, userdata):

    print(result.text, end="", flush=True)


# 1. 初始化推理参数

llm_param = RKLLMParam()

llm_param.model_path = "./qwen0.7b_w4_rv1126b.rkllm"

llm_param.max_new_tokens = 512

llm_param.temperature = 0.7

llm_param.top_p = 0.8

llm_param.stream_callback = stream_callback


# 2. 加载模型到NPU

rkllm = RKLLM()

rkllm.init(llm_param)


# 3. 构造输入Prompt

prompt = "你是本地离线AI助手,请简短回答问题:什么是边缘计算?"

input_data = RKLLMInput()

input_data.text = prompt


# 4. 执行本地NPU推理

print("AI回复:")

rkllm.run(input_data)


# 5. 释放NPU内存(必须执行,否则内存泄漏)

rkllm.destroy()


板端运行命令:


# 配置库路径

export LD_LIBRARY_PATH=./lib:/usr/lib

python3 llm_infer.py


步骤 4:C++ 高性能推理(产品量产推荐)


1. 使用 SDK 中rkllm_demo示例,修改CMakeLists指定rv1126b交叉编译链


2. 核心 API 流程:rkllm_init() → rkllm_run() → rkllm_destroy()


3. 支持 LoRA 动态加载:rkllm_load_lora(),适配行业微调模型


四、方案 B:原生 RKNN-Toolkit2 拆分 LLM 部署(多模态场景)


适用于需要视觉 Encoder+LLM Decoder 组合(Qwen-VL 轻量化),将 Transformer 拆分为输入 Embedding、Attention、FFN、Decoder独立 ONNX,分别转 rknn


1. ONNX 导出与简化


# 导出Decoder单模块ONNX

torch.onnx.export(

    decoder_model,

    dummy_input,

    "llm_decoder.onnx",

    opset_version=17,

    do_constant_folding=True

)

# 简化模型去除冗余算子

import onnxsim

model = onnx.load("llm_decoder.onnx")

sim_model, ok = onnxsim.simplify(model)

onnx.save(sim_model, "llm_decoder_sim.onnx")


2. RKNN 转换脚本(target 指定 rv1126b)


from rknn.api import RKNN


rknn = RKNN(verbose=True)

# 硬件平台锁定RV1126B

rknn.config(target_platform="rv1126b", quantized_dtype="w4")

rknn.load_onnx("llm_decoder_sim.onnx")

# INT4量化,校准数据集

rknn.build(do_quantization=True, dataset="./calib.txt")

rknn.export_rknn("llm_decoder.rknn")

rknn.release()


3. 板端循环解码逻辑


1. 预处理:token 编码、position embedding CPU 计算


2. NPU 推理:循环调用rknn_infer生成 next token


3. 后处理:token 解码,终止符判断,循环直到生成结束


缺点:需自行实现 KV 缓存、流式输出,开发量大于 RKLLM


五、关键优化方案(解决 RV1126B 内存 / 速度瓶颈)


1. 内存优化(杜绝 OOM)


1. 强制W4A16 量化,模型体积压缩 75%,优先 2GB 核心板使用


2. KV 缓存分块:RKLLM 开启cache_block_size=128,减少瞬时内存占用


3. 关闭并行加载:单次仅运行 1 个 LLM 模型,不与 YOLO/OCR 同时跑 NPU


4. 系统裁剪:Buildroot 固件删除无用服务,空闲内存≥800MB 再启动大模型


2. 推理速度优化


1. NPU 独占:停止 rknn_server 其他任务,echo 1 > /proc/galcore/exclusive


2. CPU 四线程拉满:num_threads=4,关闭 CPU 节能调频


3. 上下文截断:2GB 内存 max_context_len=4096,不要开到 16K


4. 模型剪枝:源头裁剪 LLM 层数、头数,使用 MiniCPM/TinyLLaMA 原生轻量版本


3. 量化精度平衡


离线问答 / 文本总结:W4A16(速度优先,损失可忽略)


高精度代码 / 数学推理:INT8 量化,需 4GB DDR 核心板


六、常见报错与排错


1. NPU 内存溢出 OOM


原因:内存不足、上下文过长、未使用 W4 量化


解决:更换 2GB/4GB 核心板、降低 max_context_len、重新 W4 量化


2. rknn_init 失败 Galcore 报错


解决:重启 rknn_server,升级固件匹配 RV1126B 驱动版本


3. 推理速度极慢(<1token/s)


排查:未指定 target_platform="rv1126b",模型跑在 CPU 而非 NPU


4. token 输出乱码


解决:转换时同步导出 tokenizer 词表,板端使用配套 sentencepiece


七、量产落地建议


1. 硬件选型:优先2GB DDR RV1126B 核心板,eMMC≥16GB


2. 模型标准:统一使用 RKLLM W4 量化.rkllm格式,兼容 SDK 迭代


3. 系统:Debian 完整系统方便调试;量产使用 Buildroot 精简固件


4. 场景适配:本地语音问答、设备故障文本分析、离线工单摘要、IPC 画面图文联动

家具美容培训

家具维修培训

- END -
分享:
留言 留言 试用申请
产品咨询 产品咨询 硬件设备咨询
华北地区负责人:17340067106(毛经理)
华东地区负责人:17358670739(甘经理)
华南、华西地区负责人:19113907060(耿女士)
技术咨询 技术咨询 软件算法咨询
18982151213(刘先生)
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *