楼主: 假寐,
450 2

[其他] rk3576下部署deepseek1.5B的rkllm大模型 [推广有奖]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
1.5788
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
60 点
帖子
5
精华
0
在线时间
0 小时
注册时间
2018-9-25
最后登录
2018-9-25

楼主
假寐, 发表于 2025-11-27 14:44:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:deep seek PSE EPS Dee

沙发
军旗飞扬 发表于 2025-11-28 09:40:37

藤椅
xujingjun 发表于 2025-11-28 10:25:54

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-6 02:47