随着边缘计算和端侧AI的兴起,在嵌入式设备上直接运行大语言模型(LLM)已成为一个热门且极具挑战性的领域。Rockchip推出的RK3588芯片凭借其强大的NPU算力,为这一设想提供了硬件基础。本文将手把手带你完成从模型转换到板端部署的完整流程,让你在RK3588开发板上成功运行LLM推理,体验端侧AI的魅力。
一、RKLLM生态:连接模型与硬件的桥梁
要在RK3588这类嵌入式平台上运行大模型,直接使用原始的PyTorch或TensorFlow模型是行不通的。Rockchip为此提供了RKLLM软件栈,它是一套完整的工具链,专门用于将通用的大语言模型适配并优化到其NPU硬件上运行。其核心由两部分组成:
- RKLLM-Toolkit:运行在PC端的模型转换与量化工具。它的作用类似于一个“翻译官”,将训练好的模型(如Hugging Face格式)转换成RKNPU能够高效识别和执行的专有格式(RKLLM格式)。
- RKLLM Runtime:运行在开发板端的C/C++推理库。它为开发者提供了简洁的API,用于加载RKLLM模型、执行推理并获取结果,是板端应用开发的核心。
整个开发流程可以概括为“两步走”:首先在PC上使用RKLLM-Toolkit完成模型转换与量化;然后将生成的RKLLM模型和Runtime库部署到开发板,编写或调用推理程序。目前,RKLLM主要支持RK3562、RK3576和RK3588等平台,对应鲁班猫(LubanCat)3/4/5系列开发板。 对于习惯使用高级语言的开发者,虽然板端核心是C++,但在模型转换和后续服务部署阶段,Python脚本是主要的工具,这大大降低了入门门槛。
本文主要讲述在已有环境下,在RK3588开发板上进行大语言模型的部署和推理。
在开始之前,建议仔细阅读官方文档,这是最重要的参考资料:鲁班猫AI开发文档。

二、环境搭建与模型转换:万事开头难
第一步是在你的PC(通常是x86 Linux系统)上安装RKLLM-Toolkit。官方推荐使用Conda来管理独立的Python环境,避免依赖冲突。以下是关键步骤的概括:
- 获取工具包:从官方渠道拉取RKLLM-Toolkit的源码包。
- 创建Conda环境:使用指定的Python版本创建一个干净的环境。
- 安装与验证:按照说明安装工具包,并进行简单测试以确保安装正确。
安装完成后,你就可以使用它提供的Python脚本对模型进行转换了。通常你需要准备一个原始的LLM模型(如ChatGLM3-6B, Qwen等),然后通过编写一个转换配置文件,指定量化精度(如INT4, INT8)、模型路径等参数,运行脚本即可生成对应的.rkllm模型文件。⚠️ 注意:模型转换和量化可能需要较长时间,并且会消耗大量内存,请确保你的PC有足够的资源。
[AFFILIATE_SLOT_1]三、板端推理:从代码到实际运行
得到RKLLM模型后,下一步就是将其部署到RK3588开发板上运行。Rockchip在工具包中提供了非常清晰的C++示例代码,位于examples/rkllm_api_demo/目录下,这是我们学习的绝佳起点。
首先,我们需要将示例代码和模型文件放到开发板上:
git clone https://github.com/airockchip/rknn-llm.git
核心的推理逻辑在llm_demo.cpp中实现,它清晰地展示了使用RKLLM Runtime API的完整生命周期:
- 初始化:创建句柄,加载模型。
- 配置与推理:设置生成参数(如max tokens, temperature),输入prompt。
- 输出处理:通过回调函数流式地获取模型生成的每一个token。
- 资源释放:推理结束后,安全释放内存。
接下来,我们需要在板端编译这个Demo。由于开发板是ARM架构,我们通常使用交叉编译。进入部署目录:
cd rknn-llm/examples/rkllm_api_demo/deploy

赋予编译脚本执行权限,并设置交叉编译工具链的路径:
chmod +x build-linux.sh

运行编译脚本,生成可在ARM Linux上运行的可执行文件:

编译成功后,就可以使用生成的llm_demo程序进行推理了。你需要指定模型路径和一个提示词:
# 切换到install/demo_Linux_aarch64目录下
cd install/demo_Linux_aarch64/
# 指定模型路径,执行rkllm推理
# Usage: ./llm_demo model_path max_new_tokens max_context_len
./llm_demo ~/Qwen-1_8B-Chat-q.rkllm 256 256
# 如果需要查看性能
export RKLLM_LOG_LEVEL=1

如果一切顺利,你将看到模型逐字输出的回答。✅ 至此,你已经成功在RK3588上完成了大模型的基础推理!对于追求更高性能或需要集成到C++主程序中的场景,深入研究这个Demo的代码是必经之路。
四、构建AI服务:从本地程序到网络API
让模型在命令行中运行只是第一步。一个更实用的场景是将其部署为一个网络服务(Server),这样局域网内的其他设备(如手机、电脑)都可以通过API调用来使用这个“私有化”的AI助手。RKLLM工具包提供了两种服务器示例:
- RKLLM-Server-Flask:基于轻量级Python Web框架Flask构建,提供RESTful API,适合程序化调用和集成。
- RKLLM-Server-Gradio:基于Gradio构建,快速生成一个可视化的Web UI交互界面,适合演示和快速测试。
它们的代码都位于examples/rkllm_server_demo/目录下:

我们重点介绍基于Flask的部署方式,因为它更灵活,便于二次开发。部署前请确保:1) 开发板已联网并获取IP地址;2) RKLLM模型已推送至板端。
官方提供了一个便捷的一键部署脚本build_rkllm_server_flask.sh。你可以在PC上通过ADB连接开发板并执行此脚本,它会自动完成环境检查、依赖安装和服务启动。脚本用法如下:
./build_rkllm_server_flask.sh--workshop [RKLLM-Server Working Path]--model_path [Absolute Path of Converted RKLLM Model on Board]--
platform [Target Platform: RK3588/RK3576/RK3562/RV1126B]
[--lora_model_path [Lora Model Path]]
[--prompt_cache_path [Prompt Cache File Path]]
部署成功后,服务默认会在开发板的0.0.0.0:5000端口启动。此时,你可以在同一局域网内的任何设备上,通过Python的requests库、JavaScript的fetch,甚至Go或TypeScript编写的客户端程序,向http://[开发板IP]:5000/generate发送POST请求(携带prompt参数),即可获得模型的生成结果。
[AFFILIATE_SLOT_2]其中,
workshop 参数指明RKLLM-Server-Flask 在板端的后续工作路径;
model_path 参数指明了已使用RKLLM-Toolkit 转换得到RKLLM模型在板端的绝对路径,RKLLM-Server-Flask在工作时将根据该路径读取RKLLM模型;
platform 参数指明了当前使用的平台类型为RK3588、 RK3576、RK3562 或 RV1126B;lora_model_path 和 prompt_cache_path
五、总结与进阶思考
通过本文的步骤,我们完成了在RK3588开发板上部署大语言模型推理的完整闭环:从PC端的环境搭建、模型转换,到板端的程序编译、基础推理,再到最终的网络服务化部署。整个过程虽然涉及多个环节,但Rockchip提供的工具链已经做了大量封装,使得开发者能够聚焦于应用逻辑本身。
核心要点回顾:1) RKLLM是连接通用LLM与RK NPU的关键;2) 开发流程遵循“PC转换-板端部署”模式;3) 利用官方Demo能快速上手;4) 通过Flask/Gradio可轻松构建网络服务。
对于希望深入优化的开发者,下一步可以探索:如何调整量化策略以在精度和速度间取得更好平衡;如何利用RK3588的多核CPU和NPU进行异构计算优化;以及如何将整个服务封装成更稳定的系统守护进程。将大模型塞进小小的开发板,只是边缘AI无限可能的开始。
# 拉取源码
git clone https://github.com/airockchip/rknn-llm.git
# 目录说明
.
├── benchmark.md # 相关模型的测试性能
├── CHANGELOG.md # 更新日志
├── doc # RKLLM用户手册
├── examples # 模型转换示例
├── LICENSE
├── README.md
├── res
├── rkllm-runtime # 板端部署的库和例程
├── rkllm-toolkit # rkllm-toolkit包
├── rknpu-driver # RKNPU驱动
└── scripts # 固定cpu、ddr、npu频率的脚本
8 directories, 4 files
# 创建RKLLM_Toolkit环境
conda create -n rkllm1.2.1 python=3.10
conda activate rkllm1.2.1
# 切换到前面拉取工程的rkllm-toolkit目录下
cd rknn-llm/rknn-toolkit/
# 安装rkllm_toolkit(文件请根据具体版本修改),会自动下载RKLLM-Toolkit工具所需要的相关依赖包。
(rkllm1.2.1) llh@llh:/xxx/rknn-llm/rkllm-toolkit$ pip3 install rkllm_toolkit-1.2.1-cp310-cp310-linux_x86_64.whl
(rkllm1.2.1) llh@llh:/xxx$ python3
Python 3.10.18 (main, Jun 5 2025, 13:14:17) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from rkllm.api import RKLLM
>>>
---
浙公网安备 33010602011771号