一、简介

本文主要介绍如何编译并运行LLM模型demo程序。

源码获取

https://gitee.com/xuanwu_s3/rknn3-model-zoo

git clone https://gitee.com/xuanwu_s3/rknn3-model-zoo.git

编译构建

编译步骤:

  • 获取交叉编译工具链并按文档安装

https://gitee.com/xuanwu_s3/toolchain

git clone https://gitee.com/xuanwu_s3/toolchain.git
  • 指定交叉编译路径
export GCC_COMPILER=aarch64-none-linux-gnu
  • 编译
./build-linux.sh -t rk3588 -a aarch64 -d Qwen2_5

编译警告

编译时警告提示模型文件找不到说明:

提示模型文件找不到

如上图所示:编译已经成功,红色字体提示是因为编译前没有进行Qwen2_5模型转换,从而编译后安装目录中就不会安装模型文件,需要在编译前进行模型转换再编译,或者直接联系Ebaina销售人员获取转换好的模型文件。

编译生成文件:

生成的安装目录:rknn3-model-zoo/install/rk3588_linux_aarch64/rknn_Qwen2_5_demo
目录结构:

rknn_Qwen2_5_demo
    ├── lib                 # 依赖的动态库 
    │   ├── librga.so
    │   ├── librknn3_api_rkcp.so
    │   └── librknn3_api.so
    ├── model   # 模型目录,需要编译前进行模型转换才会有该目录以及该目录下的模型文件,
    |           # 也可通过Ebaina销售人员获取转化好的模型,单独拷贝到板端运行demo程序时指定模型执行
    |
    └── rknn_qwen2_5_demo   # demo可执行程序

模型文件的两种获取方式:

  1. 联系Ebaina销售人员获取转换好的模型文件;
  2. 参考Ebaina玄武S3_模型转换_环境搭建指南.mdEbaina玄武S3_模型转换_Qwen2.5-3B指南.md 进行模型转换得到模型;

运行说明

demo程序传到板端:

adb push install/rk3588_linux_aarch64/rknn_Qwen2_5_demo/ /userdata/

板端运行demo:

cd /userdata/rknn_Qwen2_5_demo
export LD_LIBRARY_PATH=./lib

chmod +x rknn_qwen2_5_demo
./rknn_qwen2_5_demo \
    model/Qwen2.5-3B-Instruct.rknn \
    model/Qwen2.5-3B-Instruct.weight \
    model/Qwen2.5-3B-Instruct.tokenizer.gguf \
    model/Qwen2.5-3B-Instruct.embed.bin \
    0xff \
    "Who are you?"

说明:

./rknn_qwen2_5_demo 可以指定模型路径和模型。

更多推荐