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

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

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

請問移動端生成式AI如何在Arm CPU上運行呢?

Arm社區(qū) ? 來源:Arm社區(qū) ? 2024-05-21 17:07 ? 次閱讀

2023 年,生成式人工智能 (Generative AI) 領域涌現(xiàn)出諸多用例。這一突破性的人工智能 (AI) 技術是 OpenAI 的 ChatGPT 和 Google 的 Gemini AI 模型的核心,能夠根據(jù)用戶輸入的文本提示生成文本、圖像,甚至音頻內(nèi)容,其有望簡化工作流程和推動教育發(fā)展。這是不是聽起來相當震撼呢?

而隨著生成式 AI 技術下沉到我們鐘愛的消費電子設備上,其未來又將會如何發(fā)展?答案是,在邊緣移動設備上部署生成式 AI。

在本文中,我們將展示大語言模型 (LLM) 作為一種生成式 AI 推理形式,如何在基于 Arm 技術的多數(shù)移動設備上運行。此外我們還將介紹,鑒于此類 AI 工作負載所需的典型批量處理大小以及計算和帶寬的平衡,Arm CPU 如何適配此類用例。并進一步闡釋 Arm CPU 的 AI 功能,展示其靈活性和可編程性如何巧妙地實現(xiàn)軟件優(yōu)化,從而為許多 LLM 用例帶來巨大的性能優(yōu)勢和發(fā)展機會。

LLM 簡介

生成式 AI 可采用的網(wǎng)絡架構多種多樣。LLM 以其無可比擬的大規(guī)模解釋和生成文本的能力,迅速嶄露頭角。

顧名思義,大語言模型 (LLM) 比以往使用的模型要大得多。確切地說,其可訓練參數(shù)達到一千億到一萬億。如此規(guī)模的參數(shù)量,至少是 2018 年 Google 訓練的最大型先進自然語言處理 (NLP) 模型之一的 BERT(基于 Transformer 的雙向編碼器表示技術)三倍以上的數(shù)量級。

那么,一個一千億參數(shù)的模型如何轉化為 RAM 呢?如果打算在使用 16 位浮點數(shù)加速的處理器上部署這一模型,那么至少需要 200 GB 的 RAM!

因此,這些大模型只能在云端運行。然而,這帶來了三個根本性的挑戰(zhàn),并進而限制此項技術的普及:

高昂的基礎設施成本

隱私問題(因為用戶數(shù)據(jù)可能會泄漏)

可擴展性挑戰(zhàn)

2023 年下半年,一些規(guī)模較小、效率更高的 LLM 逐漸涌現(xiàn)。這些模型將生成式 AI 擴展至移動端,讓此項技術的應用變得更加普遍。

2023 年,Meta 的 Llama 2、Google 的 Gemini Nano 和微軟的 Phi-2 開辟了移動端 LLM 的部署,以解決上述三大挑戰(zhàn)。具體來說,這三個模型的可訓練參數(shù)分別達到 70 億、32.5 億和 27 億。

在移動端 CPU 上運行 LLM

基于 Arm 技術,當今的移動設備擁有強大的計算能力,能夠實時運行復雜的 AI 算法。事實上,現(xiàn)有的旗艦和高端智能手機已經(jīng)可以運行 LLM。

預計未來 LLM 在移動端的部署將會加速,并可能出現(xiàn)如下用例:

文本生成:舉例而言,我們要求虛擬助理為我們撰寫一封電子郵件。

智能回復:即時通訊應用自動提供針對某個問題的建議回復。

文本摘要:電子書閱讀器提供章節(jié)摘要。

在上述的用例中,模型需要處理大量的用戶數(shù)據(jù)。而在邊緣側運行的 LLM 則無需連接網(wǎng)絡,用戶數(shù)據(jù)便會保留在設備中,這將有助于保護個人隱私,同時降低延遲,改善響應速度和用戶體驗。這些都是在邊緣側移動設備上部署 LLM 所能帶來的優(yōu)勢。

幸運的是,得益于 Arm CPU,全世界約 99% 的智能手機都具備在邊緣側處理 LLM 所需的技術。

在 2024 世界移動通信大會 (MWC 2024) 上 Arm 進行了相關演示,敬請觀看以下視頻:

視頻演示了在搭載三核 Arm Cortex-A700 系列 CPU 核心的現(xiàn)有安卓手機上運行 Llama2-7B LLM 的性能表現(xiàn)。視頻中展示的是實際運行速度,可以看到安卓應用里的虛擬助手反應非常靈敏,回復速度很快。詞元 (Token) 首次響應時間表現(xiàn)驚人,文本生成速率達到每秒 9.6 個詞元,高于人們的平均閱讀速度。這得益于現(xiàn)有針對 AI 設計的 CPU 指令和專門為 LLM 進行的軟件優(yōu)化。更重要的是,所有處理都在邊緣(即移動設備上)本地完成。

隨著新模型的不斷涌現(xiàn),Arm 也在不斷地改進 Arm 平臺上的 LLM 體驗。隨著近期 Meta 推出了最新 Llama 3 模型,以及微軟發(fā)布了 Phi-3-mini (Phi-3 3.8B) 模型,我們迅速地讓它們得以在移動設備上的 Arm CPU 運行。Llama 3 和 Phi-3-mini 比它們的前代模型更大。從體量上來看,最小版本的 Llama 2 為 7B,而 Llama 3 達到了 8B;另外,Phi-2 為 2.7B,而 Phi-3-mini 達到了 3.8B。這些新的 AI 模型能力更強,可以回應更廣泛的問題。

新的演示配備了一個經(jīng)過專門訓練的聊天機器人Ada”,可以作為科學和編碼的虛擬助教。在以下視頻中運行的 Phi-3-mini 模型顯示出同樣令人印象深刻的詞元首次響應時間性能,文本生成速率每秒超過 15 個詞元。該演示基于我們?yōu)?Llama 2 和 Phi-2 開發(fā)的現(xiàn)有軟件優(yōu)化。盡管這些模型更大、更復雜,但這清楚地表明它們可以在當今由 Arm CPU 驅動的移動設備上良好運行。

那么這些演示是如何開發(fā)出來的呢?接下來,我將分享一些技巧,來幫助大家在搭載 Arm CPU 的安卓手機上部署 LLM。

在移動設備上部署 LLM

首先要強調(diào)的是,Arm CPU 為 AI 開發(fā)者提供了諸多便利。因此,如今第三方應用中有 70% 的 AI 應用均運行在 Arm CPU 上。由于其編程能力非常靈活,AI 開發(fā)者可以嘗試應用創(chuàng)新的壓縮和量化技術,讓 LLM 更加小巧,并且在各種環(huán)境下運行得更快。實際上,我們之所以能運行一個具有 70 億參數(shù)的模型,關鍵就在于整數(shù)量化技術,我們的演示中使用的是 int4。

int4 位量化

作為一項關鍵技術,量化可以將 AI 和機器學習 (ML) 模型壓縮至足夠小,以便能在 RAM 有限的設備上高效運行。因此,這項技術對于那些原生以浮點數(shù)據(jù)類型(如 32 位浮點 FP32 和 16 位浮點 FP16)存儲數(shù)十億可訓練參數(shù)的 LLM 來說,是必不可少的。例如,采用 FP16 權重的 Llama2-7B 版本至少需要大約 14 GB 的 RAM,而這是許多移動設備無法滿足的條件。

通過將 FP16 模型量化到四位,我們可以將其大小縮減至原來的四分之一,并將 RAM 使用量降低到大約 4 GB。得益于 Arm CPU 提供的巨大軟件靈活性,開發(fā)者還可以通過減少參數(shù)值位數(shù)來獲得更小的模型。但請注意,將位數(shù)減少至三位或兩位可能會導致準確度明顯降低。

在 CPU 上運行工作負載時,我們建議通過一個簡單的技巧來提高其性能,即設置線程的 CPU 關聯(lián)性。

采用線程關聯(lián)性改善 LLM 的實時體驗

一般來說,當部署 CPU 應用時,操作系統(tǒng) (OS) 負責選擇運行線程的核心。此決策并不總是以實現(xiàn)最佳性能為目標。

但是,對于非常看重性能表現(xiàn)的應用而言,開發(fā)者可以使用線程關聯(lián)性,強制線程運行在特定核心上。這項技術幫助我們提升了 10% 以上的延遲速度。

您可以通過關聯(lián)性掩碼指定線程關聯(lián)性,關聯(lián)性掩碼的每一位都代表系統(tǒng)中的一個 CPU 核心。假設有八核,其中四核是 Arm Cortex-A715 CPU,并被分配給位掩碼的最高有效位 (0b1111 0000)。

為了在每個 Cortex-A715 CPU 核心上運行每個線程,我們應該在執(zhí)行工作負載之前將線程關聯(lián)性掩碼傳遞給系統(tǒng)調(diào)度程序。在安卓設備中,此操作可通過以下系統(tǒng)調(diào)用函數(shù)完成:

5e0c4dcc-1750-11ef-b74b-92fbcf53809c.jpg

例如,假設有兩個線程,我們可以為每個線程使用以下位掩碼:

線程 1:位掩碼 0b1000 0000

線程 2:位掩碼 0b0100 0000

執(zhí)行工作負載后,我們應將關聯(lián)性掩碼重置為默認狀態(tài),如下面的代碼片段所示:

5e24e710-1750-11ef-b74b-92fbcf53809c.jpg

通過利用線程關聯(lián)性,您可輕松提高各類 CPU 工作負載性能。然而,僅靠 int4 量化和線程關聯(lián)性還不足以全方面發(fā)揮 LLM 的性能。我們知道,低延遲直接關系到用戶的整體體驗,對此類模型至關重要。

因此,Arm 開發(fā)了高度優(yōu)化的 int4 矩陣乘向量和矩陣乘矩陣 CPU 例程,以顯著提升性能表現(xiàn)。

Arm int4 優(yōu)化矩陣乘矩陣和矩陣乘向量例程

矩陣乘矩陣和矩陣乘向量例程是對 LLM 性能至關重要的函數(shù)。這些例程已使用 SDOT 和 SMMLA 指令針對 Cortex-A700 系列 CPU 進行了優(yōu)化。相較于 llama.cpp 中的原生實現(xiàn),我們的例程(即將推出)將詞元首次響應時間(編碼器)縮短了 50% 以上,文本生成速率提升了 20%。

這僅僅只是開始......

出色的用戶體驗、優(yōu)越的性能表現(xiàn),而這僅僅只是開始......借助專用 AI 指令、CPU 線程關聯(lián)性,以及經(jīng)過軟件優(yōu)化的例程,這些演示展示了出色的交互式用例的整體使用體驗。上文中的演示視頻展示出,詞元首次響應時間非常短,文本生成速率快于人們的平均閱讀速度。更令人興奮的是,所有搭載 Cortex-A700 的移動設備均能實現(xiàn)這樣的性能表現(xiàn)。

我們也很高興看到開發(fā)者開源社區(qū)參與到 Arm 平臺上的模型工作。Arm CPU 為 AI 開發(fā)者社區(qū)提供了試煉自己技術的機會,以提供進一步的軟件優(yōu)化,使 LLM 得以更小、更快、更高效。開源社區(qū)中的開發(fā)者大約在 48 小時內(nèi)就成功在 Arm 平臺上啟動并運行了新模型,這便是很好的例證。我們期待看到更多來自開源的力量參與到 Arm 平臺上的生成式 AI 開發(fā)。

而這只是基于 Arm 技術的 LLM 體驗的初期成果。隨著 LLM 變得更加小巧而精密,它們在邊緣移動設備上的表現(xiàn)也將穩(wěn)步提升。此外,Arm 以及我們行業(yè)領先生態(tài)系統(tǒng)中的合作伙伴將繼續(xù)推動硬件進步和軟件優(yōu)化,加速發(fā)展 CPU 指令集的 AI 功能,如針對 Armv9-A 架構的可伸縮矩陣擴展 (Scalable Matrix Extension, SME) 等。這些進展預示著在不久的未來,基于 Arm 架構的消費電子設備將迎來 LLM 用例的新時代。



審核編輯:劉清

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

    關注

    8

    文章

    1368

    瀏覽量

    114697
  • 人工智能
    +關注

    關注

    1791

    文章

    47279

    瀏覽量

    238495
  • LLM
    LLM
    +關注

    關注

    0

    文章

    288

    瀏覽量

    335
  • 生成式AI
    +關注

    關注

    0

    文章

    504

    瀏覽量

    474

原文標題:移動端生成式 AI 如何在 Arm CPU 上運行?

文章出處:【微信號:Arm社區(qū),微信公眾號:Arm社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MediaTek發(fā)布天璣8300移動芯片,全面革新推動生成AI創(chuàng)新

    2023 年11月21日 – MediaTek發(fā)布天璣 8300 5G生成AI移動芯片,將天璣的旗艦級體驗引入天璣8000系列,賦能高端智能手機A
    發(fā)表于 11-21 16:01 ?1272次閱讀
    MediaTek發(fā)布天璣8300<b class='flag-5'>移動</b>芯片,全面革新推動<b class='flag-5'>端</b>側<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>創(chuàng)新

    新功能get√:AI大學移動,來了!

    `「AI大學移動」已經(jīng)正式上線了!點開公眾號菜單欄【AI大學】~即可在手機上觀看相關AI課程視頻躺著看,坐著看、等地鐵的時候看,隨時隨地,
    發(fā)表于 07-13 10:23

    何在RK3399這一 Arm64平臺搭建Tengine AI推理框架

    Tengine是什么?如何在RK3399這一 Arm64平臺搭建Tengine AI推理框架
    發(fā)表于 03-04 12:31

    何在RK3399搭建Tengine AI推理框架

    Tengine是什么?如何在RK3399這一 Arm64 平臺上搭建 Tengine AI 推理框架,并運行圖像識別相關應用?
    發(fā)表于 03-07 07:53

    何在基于Arm的設備運行游戲AI

    的工作原理以及游戲如何在基于 Arm 的設備運行。培訓策略是時候開始訓練了一切準備就緒后,就該開始訓練了。訓練區(qū)域的許多副本可以在場景中實例化。這加快了訓練,允許環(huán)境同時收集許多經(jīng)驗
    發(fā)表于 08-15 15:43

    何在嵌入設備運行高性能Java

    何在嵌入設備運行高性能Java
    發(fā)表于 03-28 09:43 ?16次下載

    程序是如何在 CPU運行的(二)

    在上一篇文章中《程序是如何在 CPU運行的(一)》筆者講述了程序中一條一條指令以及一條一條數(shù)據(jù)是如何在 CPU
    發(fā)表于 02-07 11:10 ?1次下載
    程序是如<b class='flag-5'>何在</b> <b class='flag-5'>CPU</b> 中<b class='flag-5'>運行</b>的(二)

    英偉達 GTC 2023黃仁勛談生成AI

    英偉達 GTC 2023黃仁勛談生成AI 黃教主在GTC 2023大談特談生成
    的頭像 發(fā)表于 03-22 17:14 ?1872次閱讀
    英偉達 GTC 2023<b class='flag-5'>上</b>黃仁勛談<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>

    移動設備部署機器學習,Arm談如何賦能移動AI

    如今生成AI帶火了整個AI產(chǎn)業(yè),尤其是各大廠商扎堆于大模型的AI訓練,不過很多AI應用的落地則
    的頭像 發(fā)表于 07-07 14:47 ?629次閱讀
    <b class='flag-5'>移動</b>設備部署機器學習,<b class='flag-5'>Arm</b>談如何賦能<b class='flag-5'>移動</b><b class='flag-5'>AI</b>

    利用 NVIDIA Jetson 實現(xiàn)生成 AI

    交互速率運行的 Llama-2-70B 模型。 圖 1. 領先的生成 AI 模型在? Jetson AGX Orin 的推理性能 如要在
    的頭像 發(fā)表于 11-07 21:25 ?973次閱讀
    利用 NVIDIA Jetson 實現(xiàn)<b class='flag-5'>生成</b><b class='flag-5'>式</b> <b class='flag-5'>AI</b>

    MediaTek 發(fā)布天璣 8300 移動芯片,全面革新推動生成 AI 創(chuàng)新

    MediaTek 發(fā)布天璣 8300 5G 生成 AI 移動芯片,將天璣的旗艦級體驗引入天璣 8000 系列,賦能高端智能手機 AI 創(chuàng)新
    的頭像 發(fā)表于 11-21 20:30 ?537次閱讀
    MediaTek 發(fā)布天璣 8300 <b class='flag-5'>移動</b>芯片,全面革新推動<b class='flag-5'>端</b>側<b class='flag-5'>生成</b><b class='flag-5'>式</b> <b class='flag-5'>AI</b> 創(chuàng)新

    Arm平臺賦能移動生成AI

    生成人工智能 (Generative AI) 涵蓋了當下廣為人知,且備受關注的大語言模型 (LLM),如今也已落地邊緣側的移動設備。
    的頭像 發(fā)表于 04-26 11:09 ?802次閱讀

    新的Armv9 CPU技術加速AI移動設備等領域的發(fā)展

    當今移動設備的大多數(shù)人工智能 (AI) 工作負載均可在 Arm CPU
    的頭像 發(fā)表于 05-30 11:44 ?628次閱讀
    新的Armv9 <b class='flag-5'>CPU</b>技術加速<b class='flag-5'>AI</b>在<b class='flag-5'>移動</b>設備等領域的發(fā)展

    原來這才是【生成AI】?。?/a>

    隨著ChatGPT、文心一言等AI產(chǎn)品的火爆,生成AI已經(jīng)成為了大家茶余飯后熱議的話題。可是,為什么要在AI前面加上“
    的頭像 發(fā)表于 06-05 08:04 ?290次閱讀
    原來這才是【<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>】??!

    在設備利用AI Edge Torch生成API部署自定義大語言模型

    時,從而無縫地將新的設備生成 AI 模型部署到邊緣設備。本文是 Google AI Edg
    的頭像 發(fā)表于 11-14 10:23 ?438次閱讀
    在設備<b class='flag-5'>上</b>利用<b class='flag-5'>AI</b> Edge Torch<b class='flag-5'>生成</b><b class='flag-5'>式</b>API部署自定義大語言模型