当前位置: 首页 > news >正文

香橙派RK3588s部署大模型

香橙派RK3588s部署大模型

  • 香橙派RK3588s部署大模型
    • 香橙派RK3588s更新npu驱动
      • NPU驱动更新步骤
        • PC机下载驱动压缩包
        • 编译内核前的环境配置(参考香橙派文档)
        • 替换NPU驱动并重新编译
      • RK3588s开发板安装驱动
    • PC机进行模型转换
      • rknn-llm
      • hugging face下载模型权重
      • 模型权重转换
    • 开发板部署
      • 编译
      • 部署测试

香橙派RK3588s部署大模型

香橙派RK3588s更新npu驱动

香橙派系统:ubuntu20.04,内核6.1.43

通过以下命令查看NPU驱动版本:

sudo cat /sys/kernel/debug/rknpu/version

需要npu驱动版本0.9.8,我这里板子上显示版本是0.9.6,需要升级。

NPU驱动更新步骤

PC机下载驱动压缩包
git clone https://github.com/airockchip/rknn-llm.git

解压目录/rknn-llm-release-v1.2.1/rknpu-driver下的rknpu_driver_0.9.8_20241009.tar.bz2,后面会用到。

编译内核前的环境配置(参考香橙派文档)

在linux环境下

sudo apt-get update
sudo apt-get install -y git
git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next
cd orangepi-build
sudo ./build.sh

按以下选项配置

  1. 选择 Kernel package(内核包);
  2. 选择 do not change(不修改内核配置)
  3. 选择板卡 orangepi5;
  4. 选择第一项 current

关闭内核源码自动同步

sudo gedit userpatches/config-default.conf
IGNORE_UPDATES="yes"
替换NPU驱动并重新编译

复制rknpu_driver_0.9.8_20241009.tar.bz2解压出来的rknn-llm-release-v1.2.1/rknpu-driver/drivers/rknpu下的文件到orangepi-build/kernel/orange-pi-6.1-rk35xx/drivers/rknpu中。
我这里重新编译的时候遇到了两处问题,这里先解决这两处问题再编译。

  1. 修改orangepi-build/kernel/orange-pi-6.1-rk35xx/include/linux/mm.h,添加以下代码
    static inline void vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
    {vma->vm_flags |= flags;
    }static inline void vm_flags_clear(struct vm_area_struct *vma, vm_flags_t flags)
    {vma->vm_flags &= ~flags;
    }
    
  2. 直接搜索rknpu_devfreq.c,注释掉第237行.set_soc_info = rockchip_opp_set_low_length
    然后重新编译内核(同样按照上述配置)
sudo ./build.sh

编译之后在路径orangepi-build/output/debs会生成文件linux-image-current-rockchip-rk3588_1.1.8_arm64.deb

RK3588s开发板安装驱动

在开发板上直接安装

sudo dpkg -i linux-image-current-rockchip-rk3588_1.1.8_arm64.deb

然后重启开发板。查看NPU驱动版本

sudo cat /sys/kernel/debug/rknpu/version

显示0.9.8,则更新成功。

PC机进行模型转换

rknn-llm

现在PC机创建虚拟环境,我这里用的python版本是3.10

克隆rknn-llm仓库,cd到目录下安装rknn-llm的whl文件

git clone https://github.com/airockchip/rknn-llm.git
cd rknn-llm/rkllm-toolkit
pip3 install rkllm_toolkit-1.2.1-cp310-cp310-linux_x86_64.whl

hugging face下载模型权重

安装huggingface-cli,导入镜像源,下载模型权重

pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com  
huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B  --local-dir . --local-dir-use-symlinks False
参数说明
huggingface-cli downloadHugging Face 官方命令行工具的下载命令
deepseek-ai/DeepSeek-R1-Distill-Qwen-7B要下载的模型标识符
deepseek-ai:组织名称
DeepSeek-R1-Distill-Qwen-7B:具体的模型名称
--local-dir .指定下载到当前目录
--local-dir-use-symlinks False禁用符号链接,直接复制文件到目标目录

如果不清楚模型名称,可以先去https://hf-mirror.com,这里以Qwen3为例,搜索qwen3,找到Qwen/Qwen3-0.6B后点击进去,Qwen/Qwen3-0.6B旁边有个复制按钮,这个就是我们要找的模型名称。

模型权重转换

参考rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/export/export_rkllm.py,修改modelpath为下载好的模型权重路径。执行

python export_rkllm.py

如果遇到报错AttributeError: module ‘pyarrow‘ has no attribute ‘PyExtensionType‘. Did you mean: ‘ExtensionType‘,可以尝试降低pyarrow的版本,我记得当时我是降版本了,但是现在查看环境的时候发现还是新的版本,这里仅做记录。

执行后得到rkllm文件

开发板部署

编译

开发板同样要克隆rknn-llm仓库,稍后编译用。

git clone https://github.com/airockchip/rknn-llm.git

参考rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/build-linux.sh,配置GCC_COMPILER_PATH,做以下修改

#!/bin/bash
# Debug / Release / RelWithDebInfo
set -e
if [[ -z ${BUILD_TYPE} ]];thenBUILD_TYPE=Release
fiGCC_COMPILER_PATH=aarch64-linux-gnu
C_COMPILER=${GCC_COMPILER_PATH}-gcc
CXX_COMPILER=${GCC_COMPILER_PATH}-g++
STRIP_COMPILER=${GCC_COMPILER_PATH}-stripTARGET_ARCH=aarch64
TARGET_PLATFORM=linux
if [[ -n ${TARGET_ARCH} ]];then
TARGET_PLATFORM=${TARGET_PLATFORM}_${TARGET_ARCH}
fiROOT_PWD=$( cd "$( dirname $0 )" && cd -P "$( dirname "$SOURCE" )" && pwd )
BUILD_DIR=${ROOT_PWD}/build/build_${TARGET_PLATFORM}_${BUILD_TYPE}if [[ ! -d "${BUILD_DIR}" ]]; thenmkdir -p ${BUILD_DIR}
ficd ${BUILD_DIR}
cmake ../.. \-DCMAKE_SYSTEM_PROCESSOR=${TARGET_ARCH} \-DCMAKE_SYSTEM_NAME=Linux \-DCMAKE_C_COMPILER=${C_COMPILER} \-DCMAKE_CXX_COMPILER=${CXX_COMPILER} \-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \-DCMAKE_POSITION_INDEPENDENT_CODE=ONmake -j4
make install

执行编译./build-linux.sh

部署测试

复制rkllm模型文件至目录rknn-llm/examples/DeepSeek-R1-Distill-Qwen-1.5B_Demo/deploy/,同时进入该目录

export LD_LIBRARY_PATH=./lib
./llm_demo ~/DeepSeek-R1-Distill-Qwen-1.5B_w4a16_RK3576.rkllm 128 512

我的开发板ram应该只有4G,实测4B以上模型直接重启,因此最多只测试了Qwen3-1.7B


参考:

  • 香橙派 RK3588 部署 DeepSeek
  • 香橙派 RK3588 使用 RKLLM 更新 NPU 驱动教程
  • AttributeError: module ‘pyarrow‘ has no attribute ‘PyExtensionType‘. Did you mean: ‘ExtensionType‘
  • RK3588成功部署 Qwen3-1.7B模型
  • Luban Cat DeepSeek-R1
http://www.dtcms.com/a/439083.html

相关文章:

  • 【自记】数据开发中分区表、事务表、分区事务表:特性相似处与区别
  • ATMS课程管理系统 - 从零构建的MySQL实战之旅
  • 广东东莞自己建站教程做网站设计的公司叫什么
  • 网站站外引流怎么做西安动力无限网站建设
  • 智能交通顶刊TITS论文分享|一种可以提高车辆轨迹预测精度和稳定性的稀疏时空Transformer模型
  • 福州专业网站设计团队seo排名优化公司
  • 进入WSL2 Ubuntu环境的完整指南
  • 龙岗网站建设公司效果河南建筑官网首页
  • 网站前置审批怎么进网站源码的后台
  • 电商网站建设考试题网站头部优化文字怎么做
  • php做网站有哪些好处界面官方网站
  • perror与stderr:错误处理的“诊断专家“与“急诊通道“
  • 小公司做网站需要什么条件绿茶直播
  • import-route direct 概念及题目
  • K230基础-图像绘制
  • 鲜花网站设计php 企业网站 后台图片上传
  • 帮人做非法网站oa信息化管理系统平台
  • 君正T32开发笔记之固件烧写
  • MCP模型上下文协议实战:使用TKinter构建桌面AI助手
  • 网络培训视频如何快速完成网站优化托管方案文库
  • 从0-1建设数据仓库
  • 【玩泰山派】4、制作ubuntu镜像-(5)总结制作镜像流程
  • 红帽Linux-1.访问命令行
  • 永久免费建个人网站优秀个人网站推荐
  • 网站首页html制作代码深圳龙岗网络推广公司
  • 深圳公司建立网站建筑业大数据服务平台官网
  • 在电脑上哪里可以做网站向百度提交网站
  • vs做网站怎么上百度手机极速版
  • Spark专题-第三部分:性能监控与实战优化(3)-数据倾斜优化
  • gRPC从0到1系列【15】