陳天奇等人新作引爆AI界:手機原生跑大模型,算力不是問(wèn)題了
從此,大模型可以在任何設備上編譯運行。
「我把大語(yǔ)言模型下到我的 iPhone 上,它神奇地跑起來(lái)了!」
五一假期還沒(méi)過(guò)半,大模型領(lǐng)域的技術(shù)就已經(jīng)發(fā)展到了這種程度。
對于陳天奇等人開(kāi)源的新技術(shù),大家一致的評論是「Amazing」。
最近人們都在研究 ChatGPT,大語(yǔ)言模型(LLM)徹底改變了科技領(lǐng)域的格局,但對于 AI 開(kāi)發(fā)者來(lái)說(shuō),并不是人人都有上萬(wàn)塊 A100 的。為了跑得起大模型,就要尋找各種優(yōu)化方法。
在讓大模型變小這條路上,人們做了很多嘗試,先是 Meta 開(kāi)源了 LLaMA,讓學(xué)界和小公司可以訓練自己的模型。隨后斯坦福研究者啟動(dòng)了 Lamini,為每個(gè)開(kāi)發(fā)者提供了從 GPT-3 到 ChatGPT 的快速調優(yōu)方案。
最近這個(gè)叫 MLC LLM 的項目可謂一步登天,因為它能讓你「在任何設備上編譯運行大語(yǔ)言模型。
MLC LLM 為我們在各類(lèi)硬件上原生部署任意大型語(yǔ)言模型提供了解決方案,可將大模型應用于移動(dòng)端(例如 iPhone)、消費級電腦端(例如 Mac)和 Web 瀏覽器。
該項目是由 TVM、MXNET、XGBoost 作者,CMU 助理教授,OctoML CTO 陳天奇等多位研究者共同開(kāi)發(fā)的,參與者來(lái)自 CMU、華盛頓大學(xué)、上海交通大學(xué)、OctoML 等院校機構,同時(shí)也獲得了開(kāi)源社區的支持。
項目地址:https://github.com/mlc-ai/mlc-llm
Demo:https://mlc.ai/mlc-llm/
借助 MLC LLM 方案,我們可以在移動(dòng)端部署和運行大型語(yǔ)言模型,例如在 iPhone 上運行聊天機器人:
在 Web 瀏覽器上運行聊天機器人:
當然,在 Windows 和 Linux 上本地運行也是肯定可以的,聊天機器人應用程序能通過(guò) Vulkan 平臺在 GPU 上運行:
MLC-LLM 推出不到兩天,GitHub 的 Star 量已經(jīng)接近一千。在社交網(wǎng)絡(luò )上人們紛紛點(diǎn)贊,表示 MLC-LLM 讓我領(lǐng)教了低精度跑 AI 的可怕程度:
也有人曬出了自己的使用體驗,iPhone 飛行模式本地跑大語(yǔ)言模型:
簡(jiǎn)單來(lái)說(shuō),MLC LLM 是一種通用解決方案,它允許將任何語(yǔ)言模型本地部署在各種硬件后端和本地應用程序上。此外,MLC LLM 還提供了一個(gè)高效的框架,供使用者根據需求進(jìn)一步優(yōu)化模型性能。
MLC LLM 旨在讓每個(gè)人都能在個(gè)人設備上本地開(kāi)發(fā)、優(yōu)化和部署 AI 模型,而無(wú)需服務(wù)器支持,并通過(guò)手機和筆記本電腦上的消費級 GPU 進(jìn)行加速。具體來(lái)說(shuō),MLC LLM 支持的平臺包括:
iPhone
Metal GPU 和英特爾 / ARM MacBook;
在 Windows 和 Linux 上支持通過(guò) Vulkan 使用 AMD 和 NVIDIA GPU;
在 Windows 和 Linux 上 通過(guò) CUDA 使用 NVIDIA GPU;
瀏覽器上的 WebGPU(借助 MLC LLM 的配套項目 Web LLM)。
項目概覽
為了實(shí)現在各類(lèi)硬件設備上運行 AI 模型的目標,研究團隊首先要解決計算設備和部署環(huán)境的多樣性問(wèn)題,主要挑戰包括:
支持不同型號的 CPU、GPU 以及其他可能的協(xié)處理器和加速器;
部署在用戶(hù)設備的本地環(huán)境中,這些環(huán)境可能沒(méi)有 python 或其他可用的必要依賴(lài)項;
通過(guò)仔細規劃分配和積極壓縮模型參數來(lái)解決內存限制。
MLC LLM 提供可重復、系統化和可定制的工作流,使開(kāi)發(fā)人員和 AI 系統研究人員能夠以 Python 優(yōu)先的方法實(shí)現模型并進(jìn)行優(yōu)化。MLC LLM 可以讓研究人員們快速試驗新模型、新想法和新的編譯器 pass,并進(jìn)行本地部署。
原生部署
為了實(shí)現原生部署,研究團隊以機器學(xué)習編譯(MLC)技術(shù)為基礎來(lái)高效部署 AI 模型。MLC LLM 借助一些開(kāi)源生態(tài)系統,包括來(lái)自 HuggingFace 和 Google 的分詞器,以及 LLaMA、Vicuna、Dolly 等開(kāi)源 LLM。
MLC LLM 的主要工作流基于 Apache TVM Unity,通過(guò)擴展 TVM 后端使模型編譯更加透明和高效。
Dynamic shape:該研究將語(yǔ)言模型烘焙(bake)為具有原生 Dynamic shape 支持的 TVM IRModule,避免了對最大輸入長(cháng)度進(jìn)行額外填充的需要,并減少了計算量和內存使用量。
可組合的 ML 編譯優(yōu)化:MLC LLM 可以執行許多模型部署優(yōu)化,例如更好的編譯代碼轉換、融合、內存規劃和庫卸載(library offloading),并且手動(dòng)代碼優(yōu)化可以很容易地合并為 TVM 的 IRModule 轉換,成為一個(gè) Python API。
量化:MLC LLM 利用低位量化來(lái)壓縮模型權重,并利用 TVM 的 loop-level TensorIR 為不同的壓縮編碼方案快速定制代碼生成。
運行時(shí)(Runtime):TVM 編譯生成的庫能夠通過(guò) TVM runtime 在設備的原生環(huán)境中運行,TVM runtime 支持 CUDA/Vulkan/Metal 等主流 GPU 驅動(dòng)以及 C、JavaScript 等語(yǔ)言的綁定。
此外,MLC 還為 CUDA、Vulkan 和 Metal 生成了 GPU shader,并通過(guò) LLVM 支持多種 CPU,包括 ARM 和 x86。通過(guò)改進(jìn) TVM 編譯器和運行時(shí),使用者可以添加更多支持,例如 OpenCL、sycl、webgpu-native。
MLC-LLM 的發(fā)布讓我們再次感受到了陳天奇 TVM 的力量。
陳天奇是機器學(xué)習領(lǐng)域知名青年學(xué)者,2019 年任卡耐基梅隆大學(xué)機器學(xué)習、計算機科學(xué)系助理教授。早在 2017 年,他和他的同時(shí)開(kāi)源了著(zhù)名深度學(xué)習框架 TVM,對業(yè)界產(chǎn)生了深遠的影響。利用這一工具,機器學(xué)習算法可以自動(dòng)編譯成可供下層硬件執行的機器語(yǔ)言,從而可以利用多種類(lèi)型的算力。
在人們的努力下,我們或許很快就能看到云 + 端側分別部署大模型的下一代應用。
來(lái)源:學(xué)術(shù)頭條
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。