端侧大模型落地参考:RK3572-LLM大语言模型应用

[复制链接]
26|0
gztwdz4379 发表于 2026-11-6 10:37 | 显示全部楼层 |阅读模式
, lm, 大模型, , ,
[color=rgba(0, 0, 0, 0.9)][color=rgba(0, 0, 0, 0.9)]大模型要上边缘设备,真正卡人的从来不是"能不能跑起来",而是这三个要素:内存撑不撑得住、首字延迟能不能忍、生成速度跟不跟得上。它们决定了一个端侧大模型是能进产品,还是只能留在评估板上。[color=rgba(0, 0, 0, 0.9)]这期我们拿LLM的端侧轻量化部署做了一次验证,看看RK3572在端侧推理的性能水平与工程可行性。详细操作与指令都将完整呈现,以供大家参考。一、
RK3572 NPU介绍

RK3572核心板搭载2核Cortex-A73与6核Cortex-A53,内置自研NPU提供最高4TOPS算力,支持INT4/INT8/INT16/FP16等多种混合精度运算。其配套的RKN3工具链可实现模型转换、量化与高效部署,大幅降低开发门槛。 487856aed3c16d9f5d.png
二、LLM
模型介绍

大语言模型(LLM)是在海量文本上预训练的深度神经网络,参数规模从数亿到数千亿不等,主流模型在数十亿以上。它通过学习语言中的统计规律获得理解与生成自然语言的能力:规模带来的是泛化,即能处理未见过的输入,而不是事实准确性,这一点需要外部校验。落地形态可归为三类:文本生成(自动写作、机器翻译、自动摘要)、问答与对话(复杂问答、智能助理、机器人交互)、语义理解与信息抽取(情感分析、命名实体识别、文本分类、信息提取)。 955156aed3bfe5dbfa.png 三、例程测试

  • 转换模型前需先完成开发环境配置,具体步骤请参考2026年10月1日发送的推文【RK3572实战连载 01】NPU 开发环境搭建指南。本节不再重复,后续流程默认环境已配置完成。
  • 开发前请先从我司光盘资料选择对应的资料包进行下载:\\192.168.0.6 \tw-nas-hdd34 \03.产品光盘 \自主产品光盘 \Core-RK3572 核心板光盘资料 \4-软件资料 \3-RK3572 模型案例源码\2-源码资\rk3572_rknn3_demo/rk3572_rknn3 _demo.tar.gz
3.1 解压资料包

talowe@ubuntu22:~$ tar -xvf rk3572_rknn3_demo.tar.gz
3.2 导出Qwen2.5模型(LLM→ONNX)
进入~/rk3572-rknn3_demo /Qwen2_5 /python 目录,并确认当前处于conda环境后,从网上下载对应llm模型,同时将其导出为ONNX模型:

talowe@ubuntu22:~$ cd ~/rk3572-rknn3_demo/Qwen2_5talowe@ubuntu22:~$ conda activate py3.10-tk3(请根据实际情况进行切换)talowe@ubuntu22:~$python export_llm.py --model_path Qwen/Qwen2.5-0.5B-Instruct --export_llm_path  ../model/llm/Qwen2.5-0.5B-Instruct.onnx 612456aed3c2937c5b.png 运行成功后,会在 ~/rk3572-rknn3 _demo /Qwen2_5 /model /llm 目录下生成以下文件:

Qwen2.5-0.5B-Instruct.onnx - ONNX模型文件Qwen2.5-0.5B-Instruct.config.pkl - 配置文件Qwen2.5-0.5B-Instruct.tokenizer.gguf - 分词器Qwen2.5-0.5B-Instruct.embed.bin - embedding权重
3.3 转换为RKNN模型(ONNX→RKNN)
进入~/rk3572-rknn3_demo /Qwen2_5 /python目录,将onnx转换为RKNN模型,执行如下命令:(注意 转换时需要保证虚拟机分配内存大于8GB)

talowe@ubuntu22:~$ python export_rknn.py --platform rk3572 764266aed3c33a17de.png 模型转换完成后会在~/rk3572-rknn3_demo/Qwen2_5/model/llm目录中生成Qwen2.5-0.5B-Instruct.rknn和Qwen2.5-0.5B-Instruct.weight模型文件。


3.4 编译C Demo

确保ubuntu22.04环境已经安装交叉编译工具进入到源码目录:


talowe@ubuntu22:~$ cd ~/rk3572-rknn3_demo/Qwen2_5/cpp

执行以下命令设置编译工具链环境变量(根据实际编译工具链环境变量位置设定)


talowe@ubuntu22:$export GCC_COMPILER=/home/talowe/rk3572-tool-chain/host/bin/aarch64-buildroot-linux-gnu

运行编译脚本:


talowe@ubuntu22:~$ ./build-linux.sh

编译过程由CMake 驱动构建,最终生成可执行文件。

586626aed3c5b6f45c.png 805656aed3c62e2e06.png
编译完成示意图

编译完成后,可执行程序输出在 ~/rk3572-rknn3_demo/Qwen2_5/cpp/install /rk3572_linux_aarch64 目录下,结构如下:

435236aed3c700c6da.png
3.5 推送应用

将整个 rknn3_Qwen2_5/ 目录通过 U 盘、网络或 adb 等方式拷贝至 RK3572 开发板的文件系统中,以下命令以 adb 为例:


talowe@ubuntu22:~$ adb push ~/rk3572-rknn3_demo/Qwen2_5/cpp/install/rk3572_linux_aarch64/rknn3_Qwen2_5 /
3.6 运行应用

以“Introduce the RK3588” 为例提问:


talowe@ubuntu22:~$ ./rknn_qwen2_5_demo ./model/Qwen2.5-0.5B-Instruct.rknn ./model/Qwen2.5-0.5B-Instruct.weight ./model/Qwen2.5-0.5B-Instruct.tokenizer.gguf ./model/Qwen2.5-0.5B-Instruct.embed.bin 1 "Introduce the RK3588"
  • 参数解析:


./model/Qwen2.5-0.5B-Instruct.rknn  RKNN格式模型文件(INT8量化)./model/Qwen2.5-0.5B-Instruct.weight  模型权重文件./model/Qwen2.5-0.5B-Instruct.tokenizer.gguf  Tokenizer分词器文件(GGUF格式)./model/Qwen2.5-0.5B-Instruct.embed.bin  词嵌入向量文件1 NPU 核心掩码(默认:0x1)"Introduce the RK3588" 用户输入的提示词/问题
3.7 运行结果

程序加载模型后,对输入的问题"Introduce the RK3588" 进行推理,生成关于RK3588芯片的介绍文本。推理结束后,终端将输出模型生成的回答内容。

414186aed3c7dce4cc.png
四、结语


检测完再回头看,是不是并不难。其实跑通一个大模型也没有需要很多复杂的技术,只要明白例程步骤和运行逻辑,再注意一下工程细节(环境、内存、工具链、四个模型文件的相对位置,以及对模型能力的预期)就好。其他类似的大语音模型的部署步骤也差不多。
466396aed3c86f131a.png

下期预告:

下一篇我们将继续讲解RK3572-垃圾分类检测模型的具体部署和运行操作,敬请期待!




728686aed3bdd338c0.png
573186aed3c0c15473.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

67

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部