色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用MLC-LLM在A100/Mac M2上部署RWKV模型

jf_pmFSk4VX ? 來源:GiantPandaCV ? 2023-10-29 16:39 ? 次閱讀

0x0. 前言

這篇文章主要是填一下 MLC-LLM 部署RWKV World系列模型實戰(3B模型Mac M2解碼可達26tokens/s) 這里留下來的坑,這篇文章里面介紹了如何使用 MLC-LLM 在A100/Mac M2上部署 RWKV 模型。但是探索在Android端部署一個RWKV對話模型的app時卻碰到了諸多問題,解決的周期也很長,之前留了issue在MLC-LLM的repo,這周@chentianqi大佬回復說之前編譯出的app會在模型初始化階段卡住的問題已經解決了,所以我又重新開始踩了一些坑最終完成了在手機上運行RWKV World4 3B模型的目的。這里把踩的坑和Android編譯方法都描述一下。

我這里編譯了一個RWKV4 World 3B模型的權重int4量化版本的apk,地址為:https://github.com/BBuf/run-rwkv-world-4-in-mlc-llm/releases/download/v1.0.0/app-debug.apk 。感興趣的小伙伴可以下載這個apk到android手機上來運行,需要注意的是由于要在線拉取HuggingFace的權重,所以手機上需要可以訪問HuggingFace需要代理。

在我的Redmik50手機上進行測試,效果和速度如下:

9c0883fc-7633-11ee-939d-92fbcf53809c.png

每一秒大概可以解碼8個token,我感覺速度勉強夠用了。由于RWKV5迭代到了第5個版本,后續希望能支持RWKV5的模型,當然也可以尋求新的優化機會提升解碼速度。

0x1. 踩坑

之前寫這篇文章 MLC-LLM 部署RWKV World系列模型實戰(3B模型Mac M2解碼可達26tokens/s) 的時候發現android app在初始化的時候一直會卡住,即使換成官方編譯的app也是如此,所以提了issue之后就放棄了。現在這個bug被修復了,不過我沒有找到具體的改動pr是什么,但我在mlc-llm的android部分沒有發現相關改動,所以大概率是relax本身的bug,就不深究了。

這次仍然是按照之前的方法進行編譯,但是也踩了幾個坑,具體體現在下方的改動:

9c3b78de-7633-11ee-939d-92fbcf53809c.png

這個改動只是為了在本地可以編譯出RWKV的android app,有坑的地方體現在下面的2個改動:

9c55d116-7633-11ee-939d-92fbcf53809c.png

第一個坑是在dump_mlc_chat_config的時候,對于RWKV World模型應該使用工程下面的tokenzier_model文件作為tokenzie的文件,但是之前沒考慮這個問題(dump出的config中tokenizer_files字段為空)就會導致編譯出的app在初始化階段報錯:

9c77d2de-7633-11ee-939d-92fbcf53809c.png

經過上面的修改之后重新在mlc-llm下面pip install .,然后編譯模型就可以得到可以正常初始化的config了。這個問題是通過在Android Studio里面通過Device Explore查看下載的文件夾發現的,我發現少了一個tokenizer_model文件才注意的。

第二個坑是初始化完成之后聊天的時候不出字,我在mac上去復現了這個錯誤,然后發現是因為在RWKV里面把max_window_size這個屬性設置成了1。

9c94482e-7633-11ee-939d-92fbcf53809c.png

然后在mlc_chat.cc里面通過max_window_size判斷結束符時沒有考慮-1,所以第一個token生成之后程序就終止了。所以在這里加一個特判進行了修復。

9cb44552-7633-11ee-939d-92fbcf53809c.png

解決了上面2個問題,編譯出新的apk之后就可以正常運行了。

0x2. 詳細教程

下面是編譯出apk的詳細教程。在這之前請閱讀:MLC-LLM 部署RWKV World系列模型實戰(3B模型Mac M2解碼可達26tokens/s) ,這是前置內容。

對于Android,你可以按照https://mlc.ai/mlc-llm/docs/deploy/android.html的教程在你的手機上編譯apk。

根據官方教程,這里有一些需要修改的地方:

  1. 修改這個文件。更新的內容應該是:
{
"model_libs":[
"RWKV-4-World-3B-q4f16_1"
],
"model_list":[
{
"model_url":"https://huggingface.co/BBuf/RWKV-4-World-3B-q4f16_1/",
"local_id":"RWKV-4-World-3B-q4f16_1"
}
],
"add_model_samples":[]
}
  1. 將代碼的這個部分修改為:
compileOptions{
sourceCompatibilityJavaVersion.VERSION_17
targetCompatibilityJavaVersion.VERSION_17
}
kotlinOptions{
jvmTarget='17'
}
  1. 如果你遇到錯誤:“Android Gradle插件要求運行Java 17。你目前使用的是Java 11”,請按照https://stackoverflow.com/questions/76362800/android-gradle-plugin-requires-java-17-to-run-you-are-currently-using-java-11 的方法清除緩存并重新編譯。

一旦你完成了APK的編譯,你可以在你的手機上啟用開發者模式并安裝APK以供使用。

以小米手機為例,你可以按照下面的教程啟用開發者模式并將APK傳輸到你的手機上。

  • 第一步:在手機上啟用USB調試

    • 首先,前往你的手機的"設置 -> 我的設備 -> 所有規格 -> MIUI版本",連續點擊"MIUI版本"七次以進入開發者模式。
    • 接下來,導航至"設置 -> 額外設置 -> 開發者選項",打開"USB調試"和"USB安裝"。
  • 第二步:配置Android Studio

    • 打開你的Android Studio項目,前往"運行 -> 編輯配置",如下圖所示,選擇"打開選擇部署目標對話框"。這將在每次你調試時提示設備選擇對話框。注意:如果你直接選擇"USB設備",你可能無法在調試過程中檢測到你的手機。
  • 第三步:在線調試

    • 通過USB將你的手機連接到電腦。通常會自動安裝必要的驅動程序。當你運行程序時,將出現設備選擇對話框。選擇你的手機,APK將自動安裝并運行。

一個編譯好的apk: https://github.com/BBuf/run-rwkv-world-4-in-mlc-llm/releases/download/v1.0.0/app-debug.apk

0x3. 總結

這篇文章分享了一下使用MLC-LLM將RWKV模型跑在Android手機上遭遇的坑以及編譯的詳細教程,接下來也會嘗試一下RWKV5。想在andorid手機上本地運行開源大模型的伙伴們可以考慮一下MLC-LLM,他們的社區還是比較活躍的,如果你提出一些問題一般都會有快速的回復或者解決方法。

0x4. 相關link

  • https://github.com/mlc-ai/tokenizers-cpp/pull/14
  • https://github.com/mlc-ai/mlc-llm/pull/1136
  • https://github.com/mlc-ai/mlc-llm/pull/848
  • https://mlc.ai/mlc-llm/docs/
  • StarRing2022/RWKV-4-World-1.5B
  • StarRing2022/RWKV-4-World-3B
  • StarRing2022/RWKV-4-World-7B
  • https://github.com/mlc-ai/mlc-llm/issues/862
  • https://github.com/mlc-ai/mlc-llm/issues/859



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3298

    瀏覽量

    49071
  • 編譯
    +關注

    關注

    0

    文章

    661

    瀏覽量

    32976
  • MLC
    MLC
    +關注

    關注

    0

    文章

    41

    瀏覽量

    17321

原文標題:0x4. 相關link

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深度學習模型部署與優化:策略與實踐;L40S與A100、H100的對比分析

    隨著生成式AI應用的迅猛發展,我們正處在前所未有的大爆發時代。在這個時代,深度學習模型部署成為一個亟待解決的問題。盡管GPU訓練和推理中扮演著關鍵角色,但關于它在生成式AI領域的誤解仍然存在。近期英偉達L40S GPU架構成
    的頭像 發表于 10-07 09:43 ?1624次閱讀
    深度學習<b class='flag-5'>模型</b><b class='flag-5'>部署</b>與優化:策略與實踐;L40S與<b class='flag-5'>A100</b>、H<b class='flag-5'>100</b>的對比分析

    搭載M2 Ultra的Mac Pro,真能兼具高性能和靈活擴展嗎?

    芯片換代。新款Mac Pro保證超高自身性能的同時,也將擴展性做到了極致,但與前代產品相比,還是留有一些遺憾的。 ? M2 U ltra 性能突破 ? 新款Mac Pro上最引人注目
    的頭像 發表于 06-15 01:59 ?2052次閱讀

    介紹STM32cubeIDE上部署AI模型的系列教程

    介紹STM32cubeIDE上部署AI模型的系列教程,開發板型號STM32H747I-disco,值得一看。MCUAI原文鏈接:【嵌入式AI開發】篇四|部署篇:STM32cubeID
    發表于 12-14 09:05

    Arm虛擬硬件上部署PP-PicoDet模型

    1、Arm虛擬硬件上部署PP-PicoDet模型  經典的深度學習工程是從確認任務目標開始的,我們首先來簡單地介紹一下目標檢測任務以及本期部署實戰課程中我們所使用的工具和平臺。  目
    發表于 09-16 14:42

    NVIDIA推出了基于A100的DGX A100

    發布A100 80GB加速卡之后,NVIDIA也更新了自家的DGX A100產品線,最多可達640GB HBM2e顯存了。此外,還有全新的DGX Station
    的頭像 發表于 11-17 10:26 ?4453次閱讀

    蘋果M2芯片將搭載新Mac系列設備6月份發布

      目前,蘋果官宣將在6月初的WWDC 2022中公布M2芯片,將搭載與今年下半年推出的新Mac系列設備中。首款搭載M2自研芯片的設備為新款13英寸MacBook Pro、24英寸iMac和M
    的頭像 發表于 04-06 11:46 ?5242次閱讀

    OpenNCC上部署人臉檢測模型

    電子發燒友網站提供《OpenNCC上部署人臉檢測模型.zip》資料免費下載
    發表于 06-27 10:34 ?0次下載
    <b class='flag-5'>在</b>OpenNCC<b class='flag-5'>上部署</b>人臉檢測<b class='flag-5'>模型</b>

    英偉達a100和h100哪個強?

    英偉達a100和h100哪個強? 英偉達A100比H100更強。英偉達A100處理大型
    的頭像 發表于 08-07 17:32 ?1.5w次閱讀

    英偉達a100a800的區別

    英偉達a100a800的區別 英偉達A100A800是兩種不同的產品, 主要區別如下: 1. 架構不同:A100使用Ampere架構,
    的頭像 發表于 08-07 17:57 ?4.5w次閱讀

    英偉達A100和4090的區別

    2. 核心數量:英偉達A100的核心數量是6912個,4090中是4608個。 3. 性能:英偉達A100的理論最高浮點計算性能為19.5FP32/9.7FP64 exaFLOP
    的頭像 發表于 08-08 11:59 ?3w次閱讀

    英偉達A100的優勢分析

    HBM2顯存。 英偉達A100是一款高性能的GPU,其主要優勢如下: 1. 支持高效的AI計算:A100采用了新一代的Tensor Core技術,能夠AI計算方面提供卓越的性能,為A
    的頭像 發表于 08-08 15:25 ?3368次閱讀

    MLC-LLM的編譯部署流程

    MLC-LLM部署各種硬件平臺的需求,然后我就開始了解MLC-LLM的編譯部署流程和RWKV
    的頭像 發表于 09-04 09:22 ?2994次閱讀
    <b class='flag-5'>MLC-LLM</b>的編譯<b class='flag-5'>部署</b>流程

    深度學習模型部署與優化:策略與實踐;L40S與A100、H100的對比分析

    、TensorFlow、PyTorch、Batchnorm、Scale、Crop算子、L40S、A100、H100A800、H800
    的頭像 發表于 09-22 14:13 ?1215次閱讀
    深度學習<b class='flag-5'>模型</b><b class='flag-5'>部署</b>與優化:策略與實踐;L40S與<b class='flag-5'>A100</b>、H<b class='flag-5'>100</b>的對比分析

    mlc-llm對大模型推理的流程及優化方案

    MLC-LLM 部署RWKV World系列模型實戰(3B模型
    發表于 09-26 12:25 ?982次閱讀
    <b class='flag-5'>mlc-llm</b>對大<b class='flag-5'>模型</b>推理的流程及優化方案

    使用MLC-LLM支持RWKV-5推理的過程思考

    LLM的理解比較有限,從代碼實現的角度來說,RWKV的狀態和KV Cache不同,不依賴序列長度,這讓RWKV模型各種長度下運行內存和運
    的頭像 發表于 11-19 15:58 ?1032次閱讀
    使用<b class='flag-5'>MLC-LLM</b>支持<b class='flag-5'>RWKV</b>-5推理的過程思考
    主站蜘蛛池模板: 免费99精品国产人妻自在线 | 好男人好资源在线播放 | 捆绑白丝粉色JK震动捧喷白浆 | 色多多污网站在线观看 | 欧美激情视频在线观看一区二区三区 | 琪琪的色原网站 | 麻豆高潮AV久久久久久久 | 国产亚洲精品视频亚洲香蕉视 | 久久久久久人精品免费费看 | 4399日本电影完整版在线观看免费 | 一道精品视频一区二区三区 | 99re10久久热 | 亚洲色欲色欲WWW在线丝 | 美女脱了内裤张开腿让男人桶到爽 | 男人舔女人的阴部黄色骚虎视频 | 久久天天综合 | 国产露脸无码A区久久 | 中文字幕在线视频网站 | 中国xxxxxx片免费播放 | 三级黄色片免费观看 | 蜜芽无码亚洲资源网站 | 人与人特黄一级 | 亚洲精品蜜桃AV久久久 | 快播av种子 | 97成人精品视频在线播放 | 亚洲AV久久婷婷蜜臀无码不卡 | 人人碰国产免费线观看 | 日韩亚洲国产中文字幕欧美 | 精品无码国产自产在线观看 | 成人精品综合免费视频 | 丰满的女朋友 在线播放 | 一区二区三区无码被窝影院 | 国产亚洲精品A久久777777 | 芳草地在线观看免费视频 | 欧美老少欢杂交另类 | 欧美5g影院天天爽天天看 | 九九热精品在线观看 | 亚洲国产精品无码中文字幕 | 在线免费看a| 国产精品婷婷久青青原 | 女生下面免费看 |