news 2026/4/24 20:06:37

rk3588本地部署大模型记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
rk3588本地部署大模型记录

rk3588本地部署大模型记录

参考:https://docs.radxa.com/rock5/rock5itx/app-development/rkllm_install

一、linux-PC端操作

1.下载代码
cd RKSDK git clone-b release-v1.2.3https://github.com/airockchip/rknn-llm.git
2.创建虚拟环境

这里不要按照参考里面的安装python3.12,要不然后续很多包无法匹配。

conda create-n rkllm python=3.10
3.激活环境
conda activate rkllm
4.安装依赖包
cd rknn-llm/rkllm-toolkit/packages pip install rkllm_toolkit-1.2.3-cp310-cp310-linux_x86_64.whl
5.下载交叉编译工具

下载链接:https://developer.arm.com/-/media/files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz?rev=33c6e30e5ac64e6dba8f0431f2c35f1b&revision=33c6e30e-5ac6-4e6d-ba8f-0431f2c35f1b&hash=632C6C0BD43C3E4B59CA8A09A7055D30
解压

tar-xJf gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu.tar.xz
6.下载大模型

自行下载

7.转换为RKNN

我这下载的是Qwen3-1.7B,算单模态大模型,因此选择转换代码路径应该为:

RKSDK/rknn-llm/examples/rkllm_api_demo/export

修改export_rkllm.py中的模型路径

modelpath='/home/chenjun0310/RKLLM/model/Qwen/Qwen3-1.7B'

更改模型上下文最大值 max_context,默认4096.
找到max_context参数修改
遇到问题:

ModuleNotFoundError:No module named'pkg_resources'

降级即可

pip install"setuptools<82"

运行脚本

python3 export_rkllm.py
8.交叉编译

在PC端操作,修改/rknn-llm/examples/rkllm_api_demo/deploy/build-linux.sh

GCC_COMPILER_PATH=/home/chenjun0310/RKLLM/tools/gcc-arm-11.2-2022.02-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu

运行rkllm_api_demo/deploy/build-linux.sh

bash build-linux.sh

会生成/rknn-llm/examples/rkllm_api_demo/deploy/install文件

二、开发板部署大模型

1.下载厂库代码
git clone-b release-v1.2.3https://github.com/airockchip/rknn-llm.git
2.拷贝文件运行模型

主要将上面生成的install文件夹和转换的rkllm文件至开发板
我是将模型和demo存放在同一个文件夹下,运行

cd/rknn-llm/examples/rkllm_api_demo/deploy/install/demo_Linux_aarch64 chmod+x llm_demo export LD_LIBRARY_PATH=$(pwd)/lib:$LD_LIBRARY_PATH./llm_demo Qwen3-1.7B_W8A8_RK3588.rkllm20484096

其中两个参数解释:

max_new_tokens:2048#每轮最大生成 token 数max_context_len:4096#模型最大上下文范围,尽量与上面PC端模型转换时参数一致

接下来会输出

rkllm initstartW rkllm: Warning: Your rknpu driver version is too low,please upgrade to 0.9.7 I rkllm: rkllm-runtime version: 1.2.3,rknpu driver version: 0.9.6,platform: RK3588 I rkllm: loading rkllm modelfromQwen3-1.7B_W8A8_RK3588.rkllm I rkllm: rkllm-toolkit version: 1.2.3,max_context_limit: 4096,npu_core_num: 3,target_platform: RK3588,model_dtype: W8A8 I rkllm: Enabled cpus:[4,5,6,7]I rkllm: Enabled cpus num: 4 rkllm init success**********************可输入以下问题对应序号获取回答/或自定义输入********************[0]现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只?[1]有28位小朋友排成一行,从左边开始数第10位是学豆,从右边开始数他是第几位?*************************************************************************user: 现有一笼子,里面有鸡和兔子若干只,数一数,共有头14个,腿38条,求鸡和兔子各有多少只? robot: 这是一个典型的**鸡兔同笼问题**,我们可以用代数的方法来解决。---### **已知条件:**

退出对话输入

exit

若需要查看 RKLLM 在板端推理时的性能或者日志,可使用如下指令:

export RKLLM_LOG_LEVEL=1//仅查看 TTFT、TPS 和内存数据 export RKLLM_LOG_LEVEL=2//除了性能数据,还会打印 cache 长度等更多信息
3.模型运行环境

rk3588上既有cpu也有npu。
NPU (主要算力):负责大模型最繁重的矩阵乘法运算(Tensor 计算)。这是 NPU 的强项,速度比CPU 快得多且功耗更低。
CPU (辅助与控制):负责数据预处理、算子调度、内存管理以及 NPU 不支持的某些特殊算子。RKLLM 会利用大核的高性能来处理这些任务,以减少 NPU 的等待时间。
运行环境结论:NPU+CPU协同运行
NPU运行结论:在使用NPU,但是版本比较低(0.9.6)可能无法释放全部算力。对应输出日志如下:

I rkllm:rkllm-toolkit version:1.2.3,max_context_limit:4096,npu_core_num:3,W rkllm:Warning:Your rknpu driver versionistoo low,please upgrade to0.9.7

三、交互处理-构建AI服务

目前,可以在开发板终端进行对话,但这种方法不够智能。需要进一步搭建交互工具等。
前面1.2.3.4步都在开发板上操作。

1.代码路径

相关demo在:

/rknn-llm/examples/rkllm_server_demo

一键部署脚本 build_rkllm_server_flask.sh 脚本可以使用usb线直连传送文件到开发板,但是我是通过网线路由远程。且我的开发板可以上网,于是我自行搭建了环境。

2.安装miniconda

输入:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh-O miniconda.sh bash miniconda.sh-b-p $HOME/miniconda source $HOME/miniconda/etc/profile.d/conda.sh conda create-n LLM_env python=3.11-y echo"source ~/miniconda/etc/profile.d/conda.sh">>~/.bashrc source~/.bashrc conda activate LLM_env pip install flask
3.拷贝文件

新建flask工作目录,我是在/rknn-llm目录下新建

mkdir rkllm_flask_server cd rkllm_flask_server

进入rkllm_flask_server文件夹下,拷贝模型文件至当前文件夹,路径自行替换,注意后面有个“点”

cp/rknn-llm/examples/rkllm_api_demo/deploy/install/demo_Linux_aarch64/Qwen3-1.7B_W8A8_RK3588.rkllm.

继续搞依赖相关

mkdir lib cp/rknn-llm/examples/rkllm_api_demo/deploy/install/demo_Linux_aarch64/lib/*.so./lib/cp/rknn-llm/examples/rkllm_server_demo/rkllm_server/flask_server.py.cp/rknn-llm/examples/rkllm_server_demo/rkllm_server/lib./-r

设置依赖路径

export LD_LIBRARY_PATH=$(pwd)/lib:$LD_LIBRARY_PATH
4.代码运行

运行指令

python3 flask_server.py--rkllm_model_path/rknn-llm/rkllm_flask_server/Qwen3-1.7B_W8A8_RK3588.rkllm--target_platform rk3588

路径自行替换。
这里默认端口是http://0.0.0.0:8080,如果与其他程序冲突的话,可以自行设置。例如修改指令
直接修改flask_server.py代码

app.run(host='0.0.0.0',port=8080,threaded=True,debug=False)

我是修改为8081,终端输出如下:

(LLM_env)root@OpenSDT:/rknn-llm/rkllm_flask_server# python3 flask_server.py --rkllm_model_path /rknn-llm/rkllm_flask_server/Qwen3-1.7B_W8A8_RK3588.rkllm --target_platform rk3588/bin/sh:1:sudo:notfound=========init....===========W rkllm:Warning:Your rknpu driver versionistoo low,please upgrade to0.9.7I rkllm:rkllm-runtime version:1.2.3,rknpu driver version:0.9.6,platform:RK3588 I rkllm:loading rkllm modelfrom/rknn-llm/rkllm_flask_server/Qwen3-1.7B_W8A8_RK3588.rkllm I rkllm:rkllm-toolkit version:1.2.3,max_context_limit:4096,npu_core_num:3,target_platform:RK3588,model_dtype:W8A8 I rkllm:Enabled cpus:[4,5,6,7]I rkllm:Enabled cpus num:4rkllm init success!==============================*Serving Flask app'flask_server'*Debug mode:off WARNING:Thisisa development server.Donotuse itina production deployment.Use a production WSGI server instead.*Running onalladdresses(0.0.0.0)*Running on http://127.0.0.1:8081*Running on http://172.16.6.217:8081Press CTRL+C to quit
5.PC端访问

开发板上以及利用flask开启服务,现在需要在PC端访问该服务。主要使用代码

/rknn-llm/examples/rkllm_server_demo/chat_api_flask.py

记得修改访问地址。
PC端的输入与回复如下:

(LLM)PS E:\work\Rk3588\LLM>python.\chat_api_flask.py============================Input your questioninthe terminal to start a conversationwiththe RKLLM model...============================*Please enter your question:你好 Q:你好 A:你好!我是你的AI助手,很高兴为你服务。有什么我可以帮助你的吗?😊*Please enter your question:

开发板的响应如下:

(LLM_env)root@OpenSDT:/rknn-llm/rkllm_flask_server# python3 flask_server.py --rkllm_model_path /rknn-llm/rkllm_flask_server/Qwen3-1.7B_W8A8_RK3588.rkllm --target_platform rk3588/bin/sh:1:sudo:notfound=========init....===========W rkllm:Warning:Your rknpu driver versionistoo low,please upgrade to0.9.7I rkllm:rkllm-runtime version:1.2.3,rknpu driver version:0.9.6,platform:RK3588 I rkllm:loading rkllm modelfrom/rknn-llm/rkllm_flask_server/Qwen3-1.7B_W8A8_RK3588.rkllm I rkllm:rkllm-toolkit version:1.2.3,max_context_limit:4096,npu_core_num:3,target_platform:RK3588,model_dtype:W8A8 I rkllm:Enabled cpus:[4,5,6,7]I rkllm:Enabled cpus num:4rkllm init success!==============================*Serving Flask app'flask_server'*Debug mode:off WARNING:Thisisa development server.Donotuse itina production deployment.Use a production WSGI server instead.*Running onalladdresses(0.0.0.0)*Running on http://127.0.0.1:8081*Running on http://172.16.6.217:8081Press CTRL+C to quit172.16.6.92--[27/Mar/202616:43:48]"GET / HTTP/1.1"404-172.16.6.92--[27/Mar/202616:43:48]"GET /favicon.ico HTTP/1.1"404-172.16.6.92--[27/Mar/202616:44:12]"GET / HTTP/1.1"404-172.16.6.92--[27/Mar/202616:46:43]"POST /chat HTTP/1.1"404-Received messages:[{'role':'user','content':'你好'}]172.16.6.92--[27/Mar/202616:59:57]"POST /rkllm_chat HTTP/1.1"200-

至此搭建完毕!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 20:02:25

【项目实训(个人4)】

继续进行法律文书智能摘要系统的开发本次开发周期内&#xff0c;我主要围绕文书管理系统的核心体验进行了五项功能迭代与多项优化工作。首先&#xff0c;我打通了文书管理与示例展示之间的壁垒&#xff0c;在管理页面中直接嵌入示例卡片并支持按类型过滤&#xff0c;解决了原本…

作者头像 李华
网站建设 2026/4/24 20:01:29

PMP刷题必备口诀-16(题库+答案详细解析)

刷题必背口诀竞品抢先出&#xff0c;MVP 来救&#xff1b;早推市场拿反馈&#xff0c;避免闭门造车落后头「竞品抢先出」&#xff1a;只要题干出现 “竞争对手先推出类似产品、市场脱节、产品上线即落后”&#xff0c;核心问题就是没提前做市场验证。「MVP 来救」&#xff1a;M…

作者头像 李华