1. 环境搭建与前期准备
参考文档地址:https://wiki.t-firefly.com/zh_CN/GS1-N2/ai_rockchip.html
获取RKLLM SDK资源:https://github.com/airockchip/rknn-llm/tree/main
RKLLM-Toolkit 是一套用于大模型量化与格式转换的开发工具集,支持将主流大模型转换为适用于Rockchip NPU硬件的专用格式。
安装 RKLLM-Toolkit:
# 检查是否安装 miniforge3 和 conda 版本信息,若已安装则可省略此小节步骤。
conda -V
# 下载 miniforge3 安装包
wget -c https://mirrors.bfsu.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh
# 安装 miniforge3
chmod 777 Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh
# 进入Conda base 环境,miniforge3 为安装目录
source ~/miniforge3/bin/activate
# 创建一个 Python3.8 版本(建议版本)名为 RKLLM-Toolkit 的 Conda 环境
conda create -n RKLLM-Toolkit python=3.8
# 进入 RKLLM-Toolkit Conda 环境
conda activate RKLLM-Toolkit
# 安装 RKLLM-Toolkit,如rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl
pip3 install rkllm-toolkit/rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl
# 若执行以下命令没有报错,则安装成功。
python
from rkllm.api import RKLLM
RKLLM Runtime 则负责在 GS1-N2 开发板上加载由 RKLLM-Toolkit 转换生成的 RKLLM 模型,并通过调用 NPU 驱动,在 Rockchip 的 NPU 上完成模型推理任务。
图解说明:
2. 实践操作流程
2.1 基于 DeepSeek 1.5B 模型的操作示例
本节以 DeepSeek-R1-Distill-Qwen-1.5B_Demo 为例,展示从模型转换、量化、导出到部署运行的完整流程。
2.1.1 获取大模型仓库内容
前往 ModelScope 平台下载所需模型文件:
https://modelscope.cn/models
2.1.2 执行量化标定
激活 conda 环境后,运行 generate_data_quant.py 脚本以生成用于量化的校准数据。
进入指定目录并执行命令:
cd /home/topeet/large_models/rknn-llm-main/rknn-llm-main/examples/rkllm_api_demo/export
python3 generate_data_quant.py -m /home/topeet/large_models/DeepSeek-R1-Distill-Qwen-1___5B
2.1.3 模型格式转换
根据 rk3576 平台配置修改 export_rkllm.py 文件,随后执行该脚本进行模型转换(此过程耗时较长)。
# 修改为实际路径
modelpath = '/home/topeet/large_models/DeepSeek-R1-Distill-Qwen-1___5B'
# 对于 RK3576, 量化方式为W4A16,且为双核NPU。RK3588则无需修改。
target_platform = "RK3576"
quantized_dtype = "W4A16"
num_npu_core = 2
# 执行
python3 export_rkllm.py
2.1.4 在开发板端完成部署
2.1.4.1 检查 NPU 驱动版本
确保开发板上的 NPU 内核驱动版本为 v0.9.8,可通过以下命令查看:
cat /sys/kernel/debug/rknpu/version
2.1.4.2 编译模型加载程序
需编译 RKLLM Runtime 组件。建议使用交叉编译工具链 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu。
步骤如下:
- 将下载的交叉编译器解压至当前路径:
sudo tar -xvf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz - 赋予 build-linux.sh 可执行权限并运行:
chmod +x ./build-linux.sh
./build-linux.sh - 编辑 build-linux.sh 文件,设置正确的编译器路径:
GCC_COMPILER_PATH=/home/topeet/large_models/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu
编译成功后,将在 install/demo_Linux_aarch64/ 目录下生成可执行文件 llm_demo。
2.1.4.3 板端运行推理
将以下文件一并拷贝至开发板:
- 可执行程序:llm_demo
- 运行时库:rknn-llm/rkllm-runtime/Linux/librkllm_api/aarch64/librkllmrt.so
- 频率锁定脚本:rknn-llm/scripts/fix_freq_rk3576.sh
- 已转换完成的 RKLLM 格式大模型文件
注意:原始仓库提供的 fix_freq_rk3576.sh 脚本适用于安卓系统,实际使用时需修改脚本首行解释器路径,替换为 Linux 系统下的 bash 或 sh 解释器。
# 执行定频脚本,以最高频率运行
firefly@firefly:~$ sudo ./fix_freq_rk3576.sh
# 指定函数库路径,运行demo
firefly@firefly:~$ export LD_LIBRARY_PATH=./lib
firefly@firefly:~$ taskset f0 ./llm_demo ./DeepSeek-R1-Distill-Qwen-1.5B_W4A16_RK3576.rkllm 2048 4096

雷达卡




京公网安备 11010802022788号







