type
status
date
slug
summary
tags
category
icon
password
记录一下Orange Pi 5 Plus运行rknn-llm遇到的坑
📝 编译内核
RK现在并没有发布能直接运行rknn-llm的内核,需要自己手动编译
- 下载香橙派提供的最新内核代码: (最新的应该是6.1的内核)
- 进入
orangepi-build
目录,运行build.sh
脚本,选择Full OS image for flashing
,这里将下载编译内核所需的全部代码
- 修改内核头文件
kernel/orange-pi-6.1-rk35xx/include/linux/mm.h
,加入以下代码:
- 下载rknpu的drivers: https://github.com/airockchip/rknn-llm/tree/main/rknpu-driver,解压后拷贝到
kernel/orange-pi-6.1-rk35xx/drivers
目录
- 修改
userpatches/config-default.conf
将IGNORE_UPDATES
的值设置为yes
- 再次运行
build.sh
脚本,选择Full OS image for flashing
,这次编译出的内核就是我们需要的内核
- 将内核烧录到开发板
模型转换
运行rknn-llm需要的大模型需要从Hugging Face下载,目前只支持LLaMA, Qwen, Qwen2, and Phi-2
模型转换步骤如下:
- 从Hugging Face下载所需的大模型,需要下载
Files and versions
里面的所有文件,保存到某个目录(/path/to/llm)
- 下载rknn-toolkit,修改
examples/huggingface/test.py
中modelpath
的路径,以及输出模型的文件名
- 使用
conda
创建一个python3.8
的环境,并安装rknn-toolkit/packages
中的依赖包
- 运行
test.py
即可生产所需的rknn-llm模型
板端运行
在香橙派5plus上运行demo程序时,可能会提示
too many open files
,需要先执行一次ulimit -n 8912
即可正常运行🤗 总结
我使用的开发板内存为16G,能非常流畅的运行QWen大模型,目前RK支持的模型还是比较少,希望后面能增加更多大模型的支持