如何使用单条命令在 RK3576/RK3588 上运行 LLM
在Rockchip NPU上运行LLM应该很令人兴奋。然而,我却一直花时间匹配ARM64库、Python包、NPU设备访问、平台设置和模型文件,直到终于能提出一个简单的问题为止。
我构建了 RKLLM Docker 以隐藏环境相关的工作:
选择一个兼容的模型图像,运行一条命令,即可开始聊天。
该容器包包含 Rockchip 的 RKLLM 运行时环境、RKNN 工具包 Lite、依赖项、平台配置以及一个 FastAPI 服务器。它提供了与 OpenAI 和 Ollama 兼容的 API,因此现有应用程序无需编写特定于 RKLLM 的客户端代码即可使用该板子。
该项目运行的是预先转换过的 `.rkllm` 模型。模型转换不会在容器内部执行。
你需要什么
•搭载 RK3576 或 RK3588 系列 SoC 的 ARM64 Linux 板载设备
•Docker 引擎
•网络连接和足够内存,以支持您所选的型号
•建议使用主动冷却
一键启动
此示例在 RK3576 上运行 Qwen2.5 1.5B Instruct W4A16:
该命令提供了模型、运行时环境、依赖项和API服务器。在主机上既没有Python环境可供创建,也没有RKLLM库需要安装。
对于 RK3588,请使用标记为 `w8a8-rk3588` 的镜像。模型是针对特定目标编译的,因此切勿在 RK3588 上使用 RK3576 模型,反之亦然。
检查服务器是否就绪:
与模型聊天
使用熟悉的 OpenAI 格式发送请求:
服务器还支持流式传输以及Ollama风格的生成/聊天端点。将API_FORMAT设置为both,即可启用两种API格式。
RK3576性能
我使用相同的长文本提示测试了多个 W4A16 的 Qwen 和 Gemma 模型。这些是单次实验的结果,而非性能保证:
•Qwen2.5 1.5B:19.55 每秒吞吐量,1.6 GB 内存
•Qwen3 1.7B:每秒13.31个token,2.0 GB内存
•Qwen2.5 3B:11.45 每秒吞吐量,2.5 GB 内存
•Qwen3 4B:8.30秒/次,3.4 GB内存
•Gemma 3 4B:8.40秒,4.0 GB内存
在所有记录的RK3576对比中,W4A16比W8A8更快且占用更少内存。最快的结果是Qwen2.5 1.5B,在使用1.6 GB稳定RAM时,每秒输出19.55个标记。
结果
RKLLM Docker 可将 RK3576 或 RK3588 板卡转变为本地私有的 AI 端点,无需用户重新构建我的环境。切换模型如同更换容器镜像一样简单,同时支持 OpenAI/Ollama,使 NPU 能够与现有工具兼容使用。
这仍是一个实验性项目。服务器未包含身份验证或TLS功能,且当前容器需要特权设备访问权限。请将其部署在受信任的网络中,并不要将端口8001直接暴露给互联网。
本文编译自hackster.io





