Banana Pi BPI-M7 RK3588开发板运行RKLLM软件堆AI大模型部署

这篇具有很好参考价值的文章主要介绍了Banana Pi BPI-M7 RK3588开发板运行RKLLM软件堆AI大模型部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于Banana Pi BPI-M7

Banana Pi BPI-M7 采用Rockchip RK3588,板载8/16/32G RAM内存和 64/128G eMMC存储,支持无线wifi6和蓝牙5.2。2x2.5G网络端口,1个HDMIout标准 输出口,2x USB3.0,2xTYPE-C,2x MIPI CSI接口和1x MIPI DSI接口,1x M.2 KEY M接口,40 PIN GPIO,迷你尺寸仅92x62mm

香蕉派BPI-M7采用睿芯最新旗舰RK3588八核64位处理器,最高频率为2.4GHz, 6 TOPS NPU,最高内存为32GB。

Banana Pi BPI-M7开源硬件开发板

Banana Pi BPI-M7 RK3588开发板运行RKLLM软件堆AI大模型部署,产品与方案,嵌入式硬件,arm开发,人工智能,语言模型,网络协议,信息与通信

RKLLM 简介

RKLLM 软件堆栈可以帮助用户快速将 AI 模型部署到 Rockchip 芯片上。 整体框架如下:

Banana Pi BPI-M7 RK3588开发板运行RKLLM软件堆AI大模型部署,产品与方案,嵌入式硬件,arm开发,人工智能,语言模型,网络协议,信息与通信

1.1 RKLLM 工具链介绍​

RKLLM-Toolkit 功能介绍​

RKLLM-Toolkit 是为用户提供在计算机上进行大语言模型的量化、转换的开发套件。通过该 工具提供的 Python 接口可以便捷地完成以下功能:

  1. 模型转换:支持将 Hugging Face 格式的大语言模型(Large Language Model, LLM)转换为 RKLLM 模型,目前支持的模型包括 LLaMA、Qwen/Qwen2、Phi2 等,转换后的 RKLLM 模型能 够在 Rockchip NPU 平台上加载使用。
  2. 量化功能:支持将浮点模型量化为定点模型,目前支持的量化类型包括 w4a16 和 w8a8。

RKLLM Runtime 功能介绍​

RKLLM Runtime 主 要 负 责 加 载 RKLLM-Toolkit 转换得到的 RKLLM 模型,并在 RK3576/RK3588 板端通过调用 NPU 驱动在 Rockchip NPU 上实现 RKLLM 模型的推理。在推理 RKLLM 模型时,用户可以自行定义 RKLLM 模型的推理参数设置,定义不同的文本生成方式, 并通过预先定义的回调函数不断获得模型的推理结果。

1.2 RKLLM 开发流程介绍​

RKLLM 的整体开发步骤主要分为 2 个部分:模型转换和板端部署运行。

  1. 模型转换: 在这一阶段,用户提供的 Hugging Face 格式的大语言模型将会被转换为 RKLLM 格式, 以便在 Rockchip NPU 平台上进行高效的推理。这一步骤包括:
  • a. 获取原始模型:获取 Hugging Face 格式的大语言模型;或是自行训练得到的大语言模 型,要求模型保存的结构与 Hugging Face 平台上的模型结构一致。
  • b. 模型加载:通过 rkllm.load_huggingface()函数加载原始模型。
  • c. 模型量化配置:通过 rkllm.build() 函数构建 RKLLM 模型,在构建过程中可选择是否 进行模型量化来提高模型部署在硬件上的性能,以及选择不同的优化等级和量化类型。
  • d. 模型导出:通过 rkllm.export_rkllm() 函数将 RKLLM 模型导出为一个.rkllm 格式文件, 用于后续的部署。
  1. 板端部署运行: 这个阶段涵盖了模型的实际部署和运行。它通常包括以下步骤:
  • a. 模型初始化:加载 RKLLM 模型到 Rockchip NPU 平台,进行相应的模型参数设置来 定义所需的文本生成方式,并提前定义用于接受实时推理结果的回调函数,进行推理前准备。
  • b. 模型推理:执行推理操作,将输入数据传递给模型并运行模型推理,用户可以通过预 先定义的回调函数不断获取推理结果。
  • c. 模型释放:在完成推理流程后,释放模型资源,以便其他任务继续使用 NPU 的计算 资源。 这两个步骤构成了完整的 RKLLM 开发流程,确保大语言模型能够成功转换、调试,并最终 在 Rockchip NPU 上实现高效部署。

1.3 适用的硬件平台​

本文档适用的硬件平台主要包括:RK3576RK3588

2. 开发环境准备​

在发布的 RKLLM 工具链压缩文件中,包含了 RKLLM-Toolkit 的 whl 安装包、RKLLM Runtime 库的相关文件以及参考示例代码,具体的文件夹结构如下:

doc
└──Rockchip_RKLLM_SDK_CN.pdf # RKLLM SDK 说明文档
rkllm-runtime
├──example
│ └── src
│ └── main.cpp
│ └── build-android.sh
│ └── build-linux.sh
│ └── CMakeLists.txt
│ └── Readme.md
├──runtime
│ └── Android
│ └── librkllm_api
│ └──arm64-v8a
│ └── librkllmrt.so # RKLLM Runtime 库
│ └──include
│ └── rkllm.h # Runtime 头文件
│ └── Linux
│ └── librkllm_api
│ └──aarch64
│ └── librkllmrt.so
│ └──include
│ └── rkllm.h
rkllm-toolkit
├──examples
│ └── huggingface
│ └── test.py
├──packages
│ └── md5sum.txt 
│ └── rkllm_toolkit-1.0.0-cp38-cp38-linux_x86_64.whl
rknpu-driver
└──rknpu_driver_0.9.6_20240322.tar.bz2

在本章中将会对 RKLLM-Toolkit 工具及 RKLLM Runtime 的安装进行详细的介绍,具体的使 用方法请参考第 3 章中的使用说明。

2.1 RKLLM-Toolkit 安装​

本节主要说明如何通过 pip 方式来安装 RKLLM-Toolkit,用户可以参考以下的具体流程说明 完成 RKLLM-Toolkit 工具链的安装。

通过 pip 方式安装​

安装 miniforge3 工具​

为防止系统对多个不同版本的 Python 环境的需求,建议使用 miniforge3 管理 Python 环境。 检查是否安装 miniforge3 和 conda 版本信息,若已安装则可省略此小节步骤。

conda -V
# 提示 conda: command not found 则表示未安装 conda
# 提示 例如版本 conda 23.9.0

下载 miniforge3 安装包

wget -c https://mirrors.bfsu.edu.cn/github-release/condaforge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh

安装 miniforge3

chmod 777 Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh

创建 RKLLM-Toolkit Conda 环境​

进入 Conda base 环境

source ~/miniforge3/bin/activate # miniforge3 为安装目录
# (base) xxx@xxx-pc:~$

创建一个 Python3.8 版本(建议版本)名为 RKLLM-Toolkit 的 Conda 环境

conda create -n RKLLM-Toolkit python=3.8

进入 RKLLM-Toolkit Conda 环境

conda activate RKLLM-Toolkit
# (RKLLM-Toolkit) xxx@xxx-pc:~$

安装 RKLLM-Toolkit​

在 RKLLM-Toolkit Conda 环境下使用 pip 工具直接安装所提供的工具链 whl 包,在安装过程 中,安装工具会自动下载 RKLLM-Toolkit 工具所需要的相关依赖包。

pip3 install rkllm_toolkit-1.0.0-cp38-cp38-linux_x86_64.whl

若执行以下命令没有报错,则安装成功。

python
from rkllm.api import RKLLM

2.2 RKLLM Runtime 库的使用​

在所公开的的 RKLLM 工具链文件中,包括包含 RKLLM Runtime 的全部文件:

  • lib/librkllmrt.so: 适用于 RK3576/RK3588 板端调用进行 RKLLM 模型部署推理的 RKLLM Runtime 库;
  • include/rkllm_api.h: 与 librkllmrt.so 函数库相对应的头文件,其中包含相关结构体及 函数定义的说明; 在通过 RKLLM 工具链构建 RK3576/RK3588 板端的部署推理代码时,需要注意对以上头文 件及函数库的链接,从而保证编译的正确性。当代码在 RK3576/RK3588 板端实际运行的过程中, 同样需要确保以上函数库文件成功推送至板端,并通过以下环境变量设置完成函数库的声明:
ulimit -Sn 50000
export LD_LIBRARY_PATH=./lib
./llm_demo qwen.rkllm

2.3 RKLLM Runtime 的编译要求​

在使用 RKLLM Runtime 的过程中,需要注意 gcc 编译器的版本问题。推荐使用交叉编译工具 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu;具体的下载路径为:GCC_10.2 交叉编译工 具下载地址。

请注意,交叉编译工具往往向下兼容而无法向上兼容,因此不要使用 10.2 以下的版本。

若是选择使用 Android 平台,需要进行 Android 可执行文件的编译,推荐使用 Android NDK 工具进行交叉编译,下载路径为:Android_NDK 交叉编译工具下载地址,推荐使用 r18b 版本。

具体的编译方式也可以参考 RKLLM-Toolkit 工具链文件中的 example/build_demo.sh。

2.4 芯片内核更新 由于当前公开的固件内核驱动版本不支持 RKLLM 工具,因此需要更新内核。rknpu 驱动包支持两 个主要内核版本:kernel-5.10 和 kernel-6.1。对于 kernel-5.10,建议使用具体版本号 5.10.198,repo: GitHub - rockchip-linux/kernel at develop-5.10;对于 kernel-6.1,建议使用具体版本号 6.1.57。可在 内核根目录下的 Makefile 中确认具体版本号。 更新步骤如下: a. 下载压缩包 rknpu_driver_0.9.6_20240322.tar.bz2。 b. 解压该压缩包,将其中的 rknpu 驱动代码覆盖到当前内核代码目录。 c. 重新编译内核。 d. 将新编译的内核烧录到设备中。

Banana P BPI-M7开发板:https://docs.banana-pi.org/zh/BPI-M7/BananaPi_BPI-M7文章来源地址https://www.toymoban.com/news/detail-855376.html

到了这里,关于Banana Pi BPI-M7 RK3588开发板运行RKLLM软件堆AI大模型部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RK3588平台开发系列讲解(AI 篇)RKNPU 推理软件框架

    沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解什么是 RKNPU 。 RKNPU 硬件层 RKNPU 驱动层 RKNPU 的驱动层是连接上层应用和 RKNPU 硬件的桥梁。驱动层的主要作用是将应用程序需要推理的内容提交给 RKNPU 进行计算,从而加速神经网络的训练和推理过程。具

    2024年02月13日
    浏览(42)
  • RK3588平台开发系列讲解(USB篇)Linux Android USB软件架构

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12

    2024年02月09日
    浏览(55)
  • yolov5训练自己的pt文件,转onnx,再转成rknn,到RK3588开发板运行测试

    yolov5训练好自己的模型,例如训练完后,名称为best.pt,路径为runs/exp/weights/best.pt。 采用detect.py文件验证best.pt可以正常检测目标,再进行下一步工作。 修改utils/yolo.py文件的后处理部分,将class Detect(nn.Module) 类的子函数forward由 修改为: 注意:训练和检测的时候,yolo.py文件应

    2024年02月01日
    浏览(58)
  • 香蕉派BPI-M6 采用深蕾半导体Vs680芯片设计,板载4G LPDDR4和16G eMMC存储

    Banana PI BPI-M6 香蕉派BPI-M6是香蕉派社区在2022年推出的新一代单板计算机,它采用深蕾半导体(Synaptics) VS680四核Cortex-A73 (2.1GHz)和一个Cortex-M3处理器,Imagination GE9920 GPU。 NPU高达6 .75 tops算力。 板载4GB LPDDR4内存和16GB EMMC存储,支持4个USB 3.0接口,1个千兆网口。 板载1个HDMI-rx端口和

    2023年04月08日
    浏览(42)
  • [rk3588]Linux下docker运行安卓镜像

    关于在Linux下docker运行Android拿来挂机玩游戏一类的一直感觉很有意思,后面就在网上搜集了一下资料,资料有点少且乱,总的尝试下来也踩了不少的坑,这里我记录一下我部署的过程,有感兴趣的朋友可以直接拿去用。 开发板:ArmSoM-sige7 Kernel:5.10.160 OS:Debian11 开源docker镜像

    2024年01月23日
    浏览(62)
  • RK3588开发板的入门指南:如何开始在RK3588开发板上进行安卓开发?

    RK3588是一款适用于Android系统的芯片,同时也是开发嵌入式系统的理想选择。本文将介绍如何开始在RK3588开发板上进行安卓开发,以及一些需要了解的基本知识和工具。 首先,需要准备一个RK3588开发板,一台运行Windows或Linux操作系统的计算机,以及一些必要的开发工具。这些

    2024年02月09日
    浏览(46)
  • 迅为RK3588开发板-基于瑞芯微RK3588摄像头方案

    硬件: RK3588开发板+摄像头   MIPI摄像头:   1.1 硬件连接 RK3588 底板上有四个摄像头接口,如下图所示,此四个接口均可连接摄像头 ov5695 和 摄像头 ov13850。   摄像头模块连接硬件时要将模块对准插槽缺口处,J1 接口连接摄像头模块如下图所示:   J2 接口连接摄像头模块

    2024年02月09日
    浏览(60)
  • 【触觉智能Purple Pi OH开发板体验】开箱体验:开源主板Purple Pi RK3566 上手指北

    前段时间收到来自【电子发烧友】的一款开发板,名叫: PurplePi ,2+16G售价仅249元。它使用的芯片是rk3566,适配的OpenHarmony版本为3.2 Release 是目前最便宜的OpenHarmony标准系统开源开发板,并且软硬件全部开源,听说在300元以内无敌手,由于博主第一次接触这类开发板,在做本期

    2024年02月14日
    浏览(42)
  • 启航RK3588边缘计算之旅:保定飞凌OK3588开发板

    一、飞凌嵌入式公司简介 飞凌嵌入式技术有限公司(Forlinx Embedded Technology Co., Ltd)是一家专注于嵌入式核心控制系统研发与制造的高新技术企业,创建于2006年。公司总部位于河北省保定市,并在北京和深圳分别设立了研发中心和华南技术服务中心。多年来,他们始终坚持技

    2024年02月15日
    浏览(49)
  • 即将推出的 OpenWrt One/AP-24.XY:OpenWrt 和 Banana Pi 合作路由器板

    OpenWrt开发人员正在与Banana Pi合作开发OpenWrt One/AP-24.XY路由器板。OpenWrt 是一个轻量级嵌入式 Linux 操作系统,支持近 1,800 个路由器和其他设备。然而,这将是第一块由 OpenWrt 直接开发的路由器板。 该主板将基于 MediaTek MT7981B (Filogic 820) SoC 和 MediaTek MT7976C 双频 WiFi 6 芯片组。Op

    2024年01月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包