博客專欄

EEPW首頁 > 博客 > 陳天奇等人新作引爆AI界:手機(jī)原生跑大模型,算力不是問題了

陳天奇等人新作引爆AI界:手機(jī)原生跑大模型,算力不是問題了

發(fā)布人:傳感器技術(shù) 時(shí)間:2023-05-02 來源:工程師 發(fā)布文章

從此,大模型可以在任何設(shè)備上編譯運(yùn)行。


「我把大語言模型下到我的 iPhone 上,它神奇地跑起來了!」


五一假期還沒過半,大模型領(lǐng)域的技術(shù)就已經(jīng)發(fā)展到了這種程度。


圖片

對(duì)于陳天奇等人開源的新技術(shù),大家一致的評(píng)論是「Amazing」。


最近人們都在研究 ChatGPT,大語言模型(LLM)徹底改變了科技領(lǐng)域的格局,但對(duì)于 AI 開發(fā)者來說,并不是人人都有上萬塊 A100 的。為了跑得起大模型,就要尋找各種優(yōu)化方法。


在讓大模型變小這條路上,人們做了很多嘗試,先是 Meta 開源了 LLaMA,讓學(xué)界和小公司可以訓(xùn)練自己的模型。隨后斯坦福研究者啟動(dòng)了 Lamini,為每個(gè)開發(fā)者提供了從 GPT-3 到 ChatGPT 的快速調(diào)優(yōu)方案。


最近這個(gè)叫 MLC LLM 的項(xiàng)目可謂一步登天,因?yàn)樗茏屇恪冈谌魏卧O(shè)備上編譯運(yùn)行大語言模型。


圖片


MLC LLM 為我們?cè)诟黝愑布显渴鹑我獯笮驼Z言模型提供了解決方案,可將大模型應(yīng)用于移動(dòng)端(例如 iPhone)、消費(fèi)級(jí)電腦端(例如 Mac)和 Web 瀏覽器。


該項(xiàng)目是由 TVM、MXNET、XGBoost 作者,CMU 助理教授,OctoML CTO 陳天奇等多位研究者共同開發(fā)的,參與者來自 CMU、華盛頓大學(xué)、上海交通大學(xué)、OctoML 等院校機(jī)構(gòu),同時(shí)也獲得了開源社區(qū)的支持。


圖片

項(xiàng)目地址:https://github.com/mlc-ai/mlc-llm

Demo:https://mlc.ai/mlc-llm/


借助 MLC LLM 方案,我們可以在移動(dòng)端部署和運(yùn)行大型語言模型,例如在 iPhone 上運(yùn)行聊天機(jī)器人:


圖片


在 Web 瀏覽器上運(yùn)行聊天機(jī)器人:


圖片


當(dāng)然,在 Windows 和 Linux 上本地運(yùn)行也是肯定可以的,聊天機(jī)器人應(yīng)用程序能通過 Vulkan 平臺(tái)在 GPU 上運(yùn)行:


圖片


MLC-LLM 推出不到兩天,GitHub 的 Star 量已經(jīng)接近一千。在社交網(wǎng)絡(luò)上人們紛紛點(diǎn)贊,表示 MLC-LLM 讓我領(lǐng)教了低精度跑 AI 的可怕程度:


圖片


也有人曬出了自己的使用體驗(yàn),iPhone 飛行模式本地跑大語言模型:


圖片


簡單來說,MLC LLM 是一種通用解決方案,它允許將任何語言模型本地部署在各種硬件后端和本地應(yīng)用程序上。此外,MLC LLM 還提供了一個(gè)高效的框架,供使用者根據(jù)需求進(jìn)一步優(yōu)化模型性能。


MLC LLM 旨在讓每個(gè)人都能在個(gè)人設(shè)備上本地開發(fā)、優(yōu)化和部署 AI 模型,而無需服務(wù)器支持,并通過手機(jī)和筆記本電腦上的消費(fèi)級(jí) GPU 進(jìn)行加速。具體來說,MLC LLM 支持的平臺(tái)包括:


  • iPhone

  • Metal GPU 和英特爾 / ARM MacBook;

  • 在 Windows 和 Linux 上支持通過 Vulkan 使用 AMD 和 NVIDIA GPU;

  • 在 Windows 和 Linux 上 通過 CUDA 使用 NVIDIA GPU;

  • 瀏覽器上的 WebGPU(借助 MLC LLM 的配套項(xiàng)目 Web LLM)。


項(xiàng)目概覽


圖片


為了實(shí)現(xiàn)在各類硬件設(shè)備上運(yùn)行 AI 模型的目標(biāo),研究團(tuán)隊(duì)首先要解決計(jì)算設(shè)備和部署環(huán)境的多樣性問題,主要挑戰(zhàn)包括:


  • 支持不同型號(hào)的 CPU、GPU 以及其他可能的協(xié)處理器和加速器;

  • 部署在用戶設(shè)備的本地環(huán)境中,這些環(huán)境可能沒有 python 或其他可用的必要依賴項(xiàng);

  • 通過仔細(xì)規(guī)劃分配和積極壓縮模型參數(shù)來解決內(nèi)存限制。

  • MLC LLM 提供可重復(fù)、系統(tǒng)化和可定制的工作流,使開發(fā)人員和 AI 系統(tǒng)研究人員能夠以 Python 優(yōu)先的方法實(shí)現(xiàn)模型并進(jìn)行優(yōu)化。MLC LLM 可以讓研究人員們快速試驗(yàn)新模型、新想法和新的編譯器 pass,并進(jìn)行本地部署。


原生部署


為了實(shí)現(xiàn)原生部署,研究團(tuán)隊(duì)以機(jī)器學(xué)習(xí)編譯(MLC)技術(shù)為基礎(chǔ)來高效部署 AI 模型。MLC LLM 借助一些開源生態(tài)系統(tǒng),包括來自 HuggingFace 和 Google 的分詞器,以及 LLaMA、Vicuna、Dolly 等開源 LLM。


MLC LLM 的主要工作流基于 Apache TVM Unity,通過擴(kuò)展 TVM 后端使模型編譯更加透明和高效。


  • Dynamic shape:該研究將語言模型烘焙(bake)為具有原生 Dynamic shape 支持的 TVM IRModule,避免了對(duì)最大輸入長度進(jìn)行額外填充的需要,并減少了計(jì)算量和內(nèi)存使用量。


  • 可組合的 ML 編譯優(yōu)化:MLC LLM 可以執(zhí)行許多模型部署優(yōu)化,例如更好的編譯代碼轉(zhuǎn)換、融合、內(nèi)存規(guī)劃和庫卸載(library offloading),并且手動(dòng)代碼優(yōu)化可以很容易地合并為 TVM 的 IRModule 轉(zhuǎn)換,成為一個(gè) Python API。


  • 量化:MLC LLM 利用低位量化來壓縮模型權(quán)重,并利用 TVM 的 loop-level TensorIR 為不同的壓縮編碼方案快速定制代碼生成。


  • 運(yùn)行時(shí)(Runtime):TVM 編譯生成的庫能夠通過 TVM runtime 在設(shè)備的原生環(huán)境中運(yùn)行,TVM runtime 支持 CUDA/Vulkan/Metal 等主流 GPU 驅(qū)動(dòng)以及 C、JavaScript 等語言的綁定。


此外,MLC 還為 CUDA、Vulkan 和 Metal 生成了 GPU shader,并通過 LLVM 支持多種 CPU,包括 ARM 和 x86。通過改進(jìn) TVM 編譯器和運(yùn)行時(shí),使用者可以添加更多支持,例如 OpenCL、sycl、webgpu-native。


MLC-LLM 的發(fā)布讓我們?cè)俅胃惺艿搅岁愄炱?TVM 的力量。


圖片



陳天奇是機(jī)器學(xué)習(xí)領(lǐng)域知名青年學(xué)者,2019 年任卡耐基梅隆大學(xué)機(jī)器學(xué)習(xí)、計(jì)算機(jī)科學(xué)系助理教授。早在 2017 年,他和他的同時(shí)開源了著名深度學(xué)習(xí)框架 TVM,對(duì)業(yè)界產(chǎn)生了深遠(yuǎn)的影響。利用這一工具,機(jī)器學(xué)習(xí)算法可以自動(dòng)編譯成可供下層硬件執(zhí)行的機(jī)器語言,從而可以利用多種類型的算力。


在人們的努力下,我們或許很快就能看到云 + 端側(cè)分別部署大模型的下一代應(yīng)用。


來源:學(xué)術(shù)頭條


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 陳天奇

技術(shù)專區(qū)

關(guān)閉