当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在Rockchip NPU上运行LLM应该很令人兴奋。然而,我却一直花时间匹配ARM64库、Python包、NPU设备访问、平台设置和模型文件,直到终于能提出一个简单的问题为止。

在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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭