0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Banana Pi BPI-M7 RK3588開(kāi)發(fā)板運(yùn)行RKLLM軟件堆AI大模型部署

Banana Pi開(kāi)源硬件 ? 來(lái)源:Banana Pi開(kāi)源硬件 ? 作者:Banana Pi開(kāi)源硬件 ? 2024-04-11 17:12 ? 次閱讀

關(guān)于Banana Pi BPI-M7

Banana Pi BPI-M7 采用Rockchip RK3588,板載8/16/32G RAM內(nèi)存和 64/128G eMMC存儲(chǔ),支持無(wú)線wifi6和藍(lán)牙5.2。2x2.5G網(wǎng)絡(luò)端口,1個(gè)HDMIout標(biāo)準(zhǔn) 輸出口,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,最高內(nèi)存為32GB。

wKgZomYXqY2APdbwAALT5qEdEtI654.jpg

Banana Pi BPI-M7開(kāi)源硬件開(kāi)發(fā)板

RKLLM 簡(jiǎn)介

RKLLM 軟件堆??梢詭椭脩艨焖賹?AI 模型部署到 Rockchip 芯片上。 整體框架如下:

wKgaomYXqY2AR0OcAAEH5S7a_Pc288.jpg

1.1 RKLLM 工具鏈介紹?

RKLLM-Toolkit 功能介紹?

RKLLM-Toolkit 是為用戶提供在計(jì)算機(jī)上進(jìn)行大語(yǔ)言模型的量化、轉(zhuǎn)換的開(kāi)發(fā)套件。通過(guò)該 工具提供的 Python 接口可以便捷地完成以下功能:

  1. 模型轉(zhuǎn)換:支持將 Hugging Face 格式的大語(yǔ)言模型(Large Language Model, LLM)轉(zhuǎn)換為 RKLLM 模型,目前支持的模型包括 LLaMA、Qwen/Qwen2、Phi2 等,轉(zhuǎn)換后的 RKLLM 模型能 夠在 Rockchip NPU 平臺(tái)上加載使用。
  2. 量化功能:支持將浮點(diǎn)模型量化為定點(diǎn)模型,目前支持的量化類型包括 w4a16 和 w8a8。

RKLLM Runtime 功能介紹?

RKLLM Runtime 主 要 負(fù) 責(zé) 加 載 RKLLM-Toolkit 轉(zhuǎn)換得到的 RKLLM 模型,并在 RK3576/RK3588 板端通過(guò)調(diào)用 NPU 驅(qū)動(dòng)在 Rockchip NPU 上實(shí)現(xiàn) RKLLM 模型的推理。在推理 RKLLM 模型時(shí),用戶可以自行定義 RKLLM 模型的推理參數(shù)設(shè)置,定義不同的文本生成方式, 并通過(guò)預(yù)先定義的回調(diào)函數(shù)不斷獲得模型的推理結(jié)果。

1.2 RKLLM 開(kāi)發(fā)流程介紹?

RKLLM 的整體開(kāi)發(fā)步驟主要分為 2 個(gè)部分:模型轉(zhuǎn)換和板端部署運(yùn)行。

  1. 模型轉(zhuǎn)換: 在這一階段,用戶提供的 Hugging Face 格式的大語(yǔ)言模型將會(huì)被轉(zhuǎn)換為 RKLLM 格式, 以便在 Rockchip NPU 平臺(tái)上進(jìn)行高效的推理。這一步驟包括:
  • a. 獲取原始模型:獲取 Hugging Face 格式的大語(yǔ)言模型;或是自行訓(xùn)練得到的大語(yǔ)言模 型,要求模型保存的結(jié)構(gòu)與 Hugging Face 平臺(tái)上的模型結(jié)構(gòu)一致。
  • b. 模型加載:通過(guò) rkllm.load_huggingface()函數(shù)加載原始模型。
  • c. 模型量化配置:通過(guò) rkllm.build() 函數(shù)構(gòu)建 RKLLM 模型,在構(gòu)建過(guò)程中可選擇是否 進(jìn)行模型量化來(lái)提高模型部署在硬件上的性能,以及選擇不同的優(yōu)化等級(jí)和量化類型。
  • d. 模型導(dǎo)出:通過(guò) rkllm.export_rkllm() 函數(shù)將 RKLLM 模型導(dǎo)出為一個(gè).rkllm 格式文件, 用于后續(xù)的部署。
  1. 板端部署運(yùn)行: 這個(gè)階段涵蓋了模型的實(shí)際部署和運(yùn)行。它通常包括以下步驟:
  • a. 模型初始化:加載 RKLLM 模型到 Rockchip NPU 平臺(tái),進(jìn)行相應(yīng)的模型參數(shù)設(shè)置來(lái) 定義所需的文本生成方式,并提前定義用于接受實(shí)時(shí)推理結(jié)果的回調(diào)函數(shù),進(jìn)行推理前準(zhǔn)備。
  • b. 模型推理:執(zhí)行推理操作,將輸入數(shù)據(jù)傳遞給模型并運(yùn)行模型推理,用戶可以通過(guò)預(yù) 先定義的回調(diào)函數(shù)不斷獲取推理結(jié)果。
  • c. 模型釋放:在完成推理流程后,釋放模型資源,以便其他任務(wù)繼續(xù)使用 NPU 的計(jì)算 資源。 這兩個(gè)步驟構(gòu)成了完整的 RKLLM 開(kāi)發(fā)流程,確保大語(yǔ)言模型能夠成功轉(zhuǎn)換、調(diào)試,并最終 在 Rockchip NPU 上實(shí)現(xiàn)高效部署。

1.3 適用的硬件平臺(tái)?

本文檔適用的硬件平臺(tái)主要包括:RK3576、RK3588

2. 開(kāi)發(fā)環(huán)境準(zhǔn)備?

在發(fā)布的 RKLLM 工具鏈壓縮文件中,包含了 RKLLM-Toolkit 的 whl 安裝包、RKLLM Runtime 庫(kù)的相關(guān)文件以及參考示例代碼,具體的文件夾結(jié)構(gòu)如下:

doc
└──Rockchip_RKLLM_SDK_CN.pdf # RKLLM SDK 說(shuō)明文檔
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 庫(kù)
│ └──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

在本章中將會(huì)對(duì) RKLLM-Toolkit 工具及 RKLLM Runtime 的安裝進(jìn)行詳細(xì)的介紹,具體的使 用方法請(qǐng)參考第 3 章中的使用說(shuō)明。

2.1 RKLLM-Toolkit 安裝?

本節(jié)主要說(shuō)明如何通過(guò) pip 方式來(lái)安裝 RKLLM-Toolkit,用戶可以參考以下的具體流程說(shuō)明 完成 RKLLM-Toolkit 工具鏈的安裝。

通過(guò) pip 方式安裝?

安裝 miniforge3 工具?

為防止系統(tǒng)對(duì)多個(gè)不同版本的 Python 環(huán)境的需求,建議使用 miniforge3 管理 Python 環(huán)境。 檢查是否安裝 miniforge3 和 conda 版本信息,若已安裝則可省略此小節(jié)步驟。

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

創(chuàng)建 RKLLM-Toolkit Conda 環(huán)境?

進(jìn)入 Conda base 環(huán)境

source ~/miniforge3/bin/activate # miniforge3 為安裝目錄
# (base) xxx@xxx-pc:~$

創(chuàng)建一個(gè) Python3.8 版本(建議版本)名為 RKLLM-Toolkit 的 Conda 環(huán)境

conda create -n RKLLM-Toolkit python=3.8

進(jìn)入 RKLLM-Toolkit Conda 環(huán)境

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

安裝 RKLLM-Toolkit?

在 RKLLM-Toolkit Conda 環(huán)境下使用 pip 工具直接安裝所提供的工具鏈 whl 包,在安裝過(guò)程 中,安裝工具會(huì)自動(dòng)下載 RKLLM-Toolkit 工具所需要的相關(guān)依賴包。

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

若執(zhí)行以下命令沒(méi)有報(bào)錯(cuò),則安裝成功。

python
from rkllm.api import RKLLM

2.2 RKLLM Runtime 庫(kù)的使用?

在所公開(kāi)的的 RKLLM 工具鏈文件中,包括包含 RKLLM Runtime 的全部文件:

  • lib/librkllmrt.so: 適用于 RK3576/RK3588 板端調(diào)用進(jìn)行 RKLLM 模型部署推理的 RKLLM Runtime 庫(kù);
  • include/rkllm_api.h: 與 librkllmrt.so 函數(shù)庫(kù)相對(duì)應(yīng)的頭文件,其中包含相關(guān)結(jié)構(gòu)體及 函數(shù)定義的說(shuō)明; 在通過(guò) RKLLM 工具鏈構(gòu)建 RK3576/RK3588 板端的部署推理代碼時(shí),需要注意對(duì)以上頭文 件及函數(shù)庫(kù)的鏈接,從而保證編譯的正確性。當(dāng)代碼在 RK3576/RK3588 板端實(shí)際運(yùn)行的過(guò)程中, 同樣需要確保以上函數(shù)庫(kù)文件成功推送至板端,并通過(guò)以下環(huán)境變量設(shè)置完成函數(shù)庫(kù)的聲明:
ulimit -Sn 50000
export LD_LIBRARY_PATH=./lib
./llm_demo qwen.rkllm

2.3 RKLLM Runtime 的編譯要求?

在使用 RKLLM Runtime 的過(guò)程中,需要注意 gcc 編譯器的版本問(wèn)題。推薦使用交叉編譯工具 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu;具體的下載路徑為:GCC_10.2 交叉編譯工 具下載地址。

請(qǐng)注意,交叉編譯工具往往向下兼容而無(wú)法向上兼容,因此不要使用 10.2 以下的版本。

若是選擇使用 Android 平臺(tái),需要進(jìn)行 Android 可執(zhí)行文件的編譯,推薦使用 Android NDK 工具進(jìn)行交叉編譯,下載路徑為:Android_NDK 交叉編譯工具下載地址,推薦使用 r18b 版本。

具體的編譯方式也可以參考 RKLLM-Toolkit 工具鏈文件中的 example/build_demo.sh。

2.4 芯片內(nèi)核更新 由于當(dāng)前公開(kāi)的固件內(nèi)核驅(qū)動(dòng)版本不支持 RKLLM 工具,因此需要更新內(nèi)核。rknpu 驅(qū)動(dòng)包支持兩 個(gè)主要內(nèi)核版本:kernel-5.10 和 kernel-6.1。對(duì)于 kernel-5.10,建議使用具體版本號(hào) 5.10.198,repo: GitHub - rockchip-linux/kernel at develop-5.10;對(duì)于 kernel-6.1,建議使用具體版本號(hào) 6.1.57。可在 內(nèi)核根目錄下的 Makefile 中確認(rèn)具體版本號(hào)。 更新步驟如下: a. 下載壓縮包 rknpu_driver_0.9.6_20240322.tar.bz2。 b. 解壓該壓縮包,將其中的 rknpu 驅(qū)動(dòng)代碼覆蓋到當(dāng)前內(nèi)核代碼目錄。 c. 重新編譯內(nèi)核。 d. 將新編譯的內(nèi)核燒錄到設(shè)備中。

Banana P BPI-M7開(kāi)發(fā)板:https://docs.banana-pi.org/zh/BPI-M7/BananaPi_BPI-M7


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1789

    文章

    46652

    瀏覽量

    237073
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4896

    瀏覽量

    97058
  • RK3588
    +關(guān)注

    關(guān)注

    6

    文章

    303

    瀏覽量

    4144
  • AI大模型
    +關(guān)注

    關(guān)注

    0

    文章

    307

    瀏覽量

    276
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Banana Pi BPI-R3路由器開(kāi)發(fā)板運(yùn)行 OrayOS物聯(lián)網(wǎng)系統(tǒng)

    近日,Banana PI開(kāi)發(fā)板宣布與貝銳達(dá)成戰(zhàn)略合作,貝銳OrayOS現(xiàn)已成功適配Banana PIB
    的頭像 發(fā)表于 10-23 15:49 ?287次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI</b>-R3路由器<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>運(yùn)行</b> OrayOS物聯(lián)網(wǎng)系統(tǒng)

    Banana Pi BPI-R3路由器開(kāi)發(fā)板運(yùn)行 OrayOS物聯(lián)網(wǎng)系統(tǒng)

    近日,Banana PI開(kāi)發(fā)板宣布與貝銳達(dá)成戰(zhàn)略合作,貝銳OrayOS現(xiàn)已成功適配Banana PIB
    發(fā)表于 10-23 15:26

    迅為iTOP-RK3568/RK3588開(kāi)發(fā)板獲麒麟軟件適配認(rèn)證

    迅為iTOP-RK3568/RK3588開(kāi)發(fā)板獲麒麟軟件適配認(rèn)證
    的頭像 發(fā)表于 10-18 14:56 ?397次閱讀
    迅為iTOP-<b class='flag-5'>RK</b>3568/<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>獲麒麟<b class='flag-5'>軟件</b>適配認(rèn)證

    RK3588!黑神話悟空,啟動(dòng)?-迅為電子RK3588開(kāi)發(fā)板

    RK3588!黑神話悟空,啟動(dòng)?-迅為電子RK3588開(kāi)發(fā)板
    的頭像 發(fā)表于 08-30 14:13 ?471次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動(dòng)?-迅為電子<b class='flag-5'>RK3588</b><b class='flag-5'>開(kāi)發(fā)板</b>

    基于迅為RK3568/RK3588開(kāi)發(fā)板AI圖像識(shí)別方案

    https://www.bilibili.com/video/BV1G54y1A7nf/?spm_id_from=333.999.0.0 迅為RK3568/RK3588開(kāi)發(fā)板
    發(fā)表于 08-28 09:50

    【飛凌嵌入式OK3576-C開(kāi)發(fā)板體驗(yàn)】rkllm模型量化構(gòu)建

    和Android下RKLLM Runtime 的全部文件: lib/librkllmrt.so: 適用于 RK3576/RK3588 端進(jìn)行模型
    發(fā)表于 08-27 22:50

    Banana Pi BPI-M4 Berry 開(kāi)源硬件開(kāi)發(fā)板以太網(wǎng)口和WiFi測(cè)試

    Banana Pi BPI-M4 Berry 開(kāi)源硬件開(kāi)發(fā)板以太網(wǎng)口和WiFi測(cè)試
    的頭像 發(fā)表于 07-02 16:16 ?542次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI-M</b>4 Berry 開(kāi)源硬件<b class='flag-5'>開(kāi)發(fā)板</b>以太網(wǎng)口和WiFi測(cè)試

    Banana Pi BPI-M7 RK3588開(kāi)源硬件開(kāi)發(fā)板評(píng)測(cè)試

    過(guò)去幾周,我對(duì)高性能 ARM 開(kāi)發(fā)板的追求進(jìn)展有些不順,但經(jīng)過(guò)近三個(gè)月的測(cè)試,以下是我對(duì)Banana Pi BPI-M7的筆記。
    的頭像 發(fā)表于 06-18 15:21 ?579次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI-M7</b> <b class='flag-5'>RK3588</b>開(kāi)源硬件<b class='flag-5'>開(kāi)發(fā)板</b>評(píng)測(cè)試

    Banana Pi BPI-M7 RK3588開(kāi)發(fā)板運(yùn)行RKLLM軟件測(cè)試

    軟件路由器
    Banana Pi開(kāi)源硬件
    發(fā)布于 :2024年04月11日 17:36:48

    Banana Pi BPI-M7 RK3588開(kāi)源硬件開(kāi)發(fā)板運(yùn)行istoreos系統(tǒng)演示 #RK3588

    硬件開(kāi)發(fā)板banana pi
    Banana Pi開(kāi)源硬件
    發(fā)布于 :2023年12月05日 12:03:24

    Banana Pi BPI-M4 Berry 全志H618開(kāi)源開(kāi)發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行

    Banana Pi BPI-M4 Berry 全志H618開(kāi)源開(kāi)發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行
    的頭像 發(fā)表于 11-30 14:36 ?863次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI-M</b>4 Berry 全志H618開(kāi)源<b class='flag-5'>開(kāi)發(fā)板</b>低溫環(huán)境測(cè)試啟動(dòng)和<b class='flag-5'>運(yùn)行</b>

    Banana Pi BPI-M4 Berry 全志H618開(kāi)源開(kāi)發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行

    Banana Pi BPI-M4 Berry 全志H618開(kāi)源開(kāi)發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行
    的頭像 發(fā)表于 11-30 14:26 ?512次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI-M</b>4 Berry 全志H618開(kāi)源<b class='flag-5'>開(kāi)發(fā)板</b>低溫環(huán)境測(cè)試啟動(dòng)和<b class='flag-5'>運(yùn)行</b>

    Banana Pi BPI-M7 迷你尺寸開(kāi)源硬件開(kāi)發(fā)板采用瑞芯微RK3588芯片設(shè)計(jì)

    MIPI CSI接口和1x MIPI DSI接口,1x M.2 KEY M接口,40 PIN GPIO,迷你尺寸僅為92x62mm。 Banana Pi
    發(fā)表于 11-18 13:51

    迷你尺寸開(kāi)源硬件開(kāi)發(fā)板Banana Pi BPI-M7 采用瑞芯微RK3588芯片設(shè)計(jì)

    MIPI CSI接口和1x MIPI DSI接口,1x M.2 KEY M接口,40 PIN GPIO,迷你尺寸僅為92x62mm。Banana Pi
    發(fā)表于 11-18 13:49

    Banana Pi BPI-M7迷你尺寸開(kāi)源硬件開(kāi)發(fā)板采用瑞芯微RK3588芯片設(shè)計(jì)

    香蕉派BPI-M7采用瑞芯芯片RK3588, 8/16/32G,RAM 64/128G eMMC,支持wifi6。2x2.5G端口,1xHDMIout,2x USB3.0,2xTYPE-C,2x
    的頭像 發(fā)表于 11-18 13:46 ?575次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> <b class='flag-5'>BPI-M7</b>迷你尺寸開(kāi)源硬件<b class='flag-5'>開(kāi)發(fā)板</b>采用瑞芯微<b class='flag-5'>RK3588</b>芯片設(shè)計(jì)