聲明:本文來(lái)自于微信公眾號(hào) 機(jī)器之心,授權(quán)站長(zhǎng)之家轉(zhuǎn)載發(fā)布。
(資料圖片僅供參考)
從此,大模型可以在任何設(shè)備上編譯運(yùn)行。
「我把大語(yǔ)言模型下到我的 iPhone 上,它神奇地跑起來(lái)了!」
五一假期還沒(méi)過(guò)半,大模型領(lǐng)域的技術(shù)就已經(jīng)發(fā)展到了這種程度。
對(duì)于陳天奇等人開(kāi)源的新技術(shù),大家一致的評(píng)論是「Amazing」。
最近人們都在研究 ChatGPT,大語(yǔ)言模型(LLM)徹底改變了科技領(lǐng)域的格局,但對(duì)于 AI 開(kāi)發(fā)者來(lái)說(shuō),并不是人人都有上萬(wàn)塊 A100的。為了跑得起大模型,就要尋找各種優(yōu)化方法。
在讓大模型變小這條路上,人們做了很多嘗試,先是 Meta 開(kāi)源了 LLaMA,讓學(xué)界和小公司可以訓(xùn)練自己的模型。隨后斯坦福研究者啟動(dòng)了 Lamini,為每個(gè)開(kāi)發(fā)者提供了從 GPT-3到 ChatGPT 的快速調(diào)優(yōu)方案。
最近這個(gè)叫 MLC LLM 的項(xiàng)目可謂一步登天,因?yàn)樗茏屇恪冈谌魏卧O(shè)備上編譯運(yùn)行大語(yǔ)言模型。
MLC LLM 為我們?cè)诟黝?lèi)硬件上原生部署任意大型語(yǔ)言模型提供了解決方案,可將大模型應(yīng)用于移動(dòng)端(例如 iPhone)、消費(fèi)級(jí)電腦端(例如 Mac)和 Web 瀏覽器。
該項(xiàng)目是由 TVM、MXNET、XGBoost 作者,CMU 助理教授,OctoML CTO 陳天奇等多位研究者共同開(kāi)發(fā)的,參與者來(lái)自 CMU、華盛頓大學(xué)、上海交通大學(xué)、OctoML 等院校機(jī)構(gòu),同時(shí)也獲得了開(kāi)源社區(qū)的支持。
項(xiàng)目地址:https://github.com/mlc-ai/mlc-llm
Demo:https://mlc.ai/mlc-llm/
借助 MLC LLM 方案,我們可以在移動(dòng)端部署和運(yùn)行大型語(yǔ)言模型,例如在 iPhone 上運(yùn)行聊天機(jī)器人:
在 Web 瀏覽器上運(yùn)行聊天機(jī)器人:
當(dāng)然,在 Windows 和 Linux 上本地運(yùn)行也是肯定可以的,聊天機(jī)器人應(yīng)用程序能通過(guò) 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 飛行模式本地跑大語(yǔ)言模型:
簡(jiǎn)單來(lái)說(shuō),MLC LLM 是一種通用解決方案,它允許將任何語(yǔ)言模型本地部署在各種硬件后端和本地應(yīng)用程序上。此外,MLC LLM 還提供了一個(gè)高效的框架,供使用者根據(jù)需求進(jìn)一步優(yōu)化模型性能。
MLC LLM 旨在讓每個(gè)人都能在個(gè)人設(shè)備上本地開(kāi)發(fā)、優(yōu)化和部署 AI 模型,而無(wú)需服務(wù)器支持,并通過(guò)手機(jī)和筆記本電腦上的消費(fèi)級(jí) GPU 進(jìn)行加速。具體來(lái)說(shuō),MLC LLM 支持的平臺(tái)包括:
iPhone
Metal GPU 和英特爾 / ARM MacBook;
在 Windows 和 Linux 上支持通過(guò) Vulkan 使用 AMD 和 NVIDIA GPU;
在 Windows 和 Linux 上 通過(guò) CUDA 使用 NVIDIA GPU;
瀏覽器上的 WebGPU(借助 MLC LLM 的配套項(xiàng)目 Web LLM)。
項(xiàng)目概覽
為了實(shí)現(xiàn)在各類(lèi)硬件設(shè)備上運(yùn)行 AI 模型的目標(biāo),研究團(tuán)隊(duì)首先要解決計(jì)算設(shè)備和部署環(huán)境的多樣性問(wèn)題,主要挑戰(zhàn)包括:
支持不同型號(hào)的 CPU、GPU 以及其他可能的協(xié)處理器和加速器;
部署在用戶(hù)設(shè)備的本地環(huán)境中,這些環(huán)境可能沒(méi)有 python 或其他可用的必要依賴(lài)項(xiàng);
通過(guò)仔細(xì)規(guī)劃分配和積極壓縮模型參數(shù)來(lái)解決內(nèi)存限制。
MLC LLM 提供可重復(fù)、系統(tǒng)化和可定制的工作流,使開(kāi)發(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ǔ)來(lái)高效部署 AI 模型。MLC LLM 借助一些開(kāi)源生態(tài)系統(tǒng),包括來(lái)自 HuggingFace 和 Google 的分詞器,以及 LLaMA、Vicuna、Dolly 等開(kāi)源 LLM。
MLC LLM 的主要工作流基于 Apache TVM Unity,通過(guò)擴(kuò)展 TVM 后端使模型編譯更加透明和高效。
Dynamic shape:該研究將語(yǔ)言模型烘焙(bake)為具有原生 Dynamic shape 支持的 TVM IRModule,避免了對(duì)最大輸入長(zhǎng)度進(jìn)行額外填充的需要,并減少了計(jì)算量和內(nèi)存使用量。
可組合的 ML 編譯優(yōu)化:MLC LLM 可以執(zhí)行許多模型部署優(yōu)化,例如更好的編譯代碼轉(zhuǎn)換、融合、內(nèi)存規(guī)劃和庫(kù)卸載(library offloading),并且手動(dòng)代碼優(yōu)化可以很容易地合并為 TVM 的 IRModule 轉(zhuǎn)換,成為一個(gè) Python API。
量化:MLC LLM 利用低位量化來(lái)壓縮模型權(quán)重,并利用 TVM 的 loop-level TensorIR 為不同的壓縮編碼方案快速定制代碼生成。
運(yùn)行時(shí)(Runtime):TVM 編譯生成的庫(kù)能夠通過(guò) TVM runtime 在設(shè)備的原生環(huán)境中運(yùn)行,TVM runtime 支持 CUDA/Vulkan/Metal 等主流 GPU 驅(qū)動(dòng)以及 C、JavaScript 等語(yǔ)言的綁定。
此外,MLC 還為 CUDA、Vulkan 和 Metal 生成了 GPU shader,并通過(guò) LLVM 支持多種 CPU,包括 ARM 和 x86。通過(guò)改進(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í)開(kāi)源了著名深度學(xué)習(xí)框架 TVM,對(duì)業(yè)界產(chǎn)生了深遠(yuǎn)的影響。利用這一工具,機(jī)器學(xué)習(xí)算法可以自動(dòng)編譯成可供下層硬件執(zhí)行的機(jī)器語(yǔ)言,從而可以利用多種類(lèi)型的算力。
在人們的努力下,我們或許很快就能看到云 + 端側(cè)分別部署大模型的下一代應(yīng)用。
參考鏈接:
https://zhuanlan.zhihu.com/p/625959003
https://mlc.ai/mlc-llm/
https://mlc.ai/web-llm/
https://github.com/mlc-ai/web-llm/tree/main
(舉報(bào))
上一篇:環(huán)球熱訊:自己家如何孵化小雞?簡(jiǎn)單實(shí)用四種農(nóng)村孵化小雞土方法!
下一篇:最快下個(gè)月!欠債31.4萬(wàn)億 美國(guó)史上首次債務(wù)違約?拜登急了:馬上開(kāi)會(huì)談|環(huán)球今日訊
責(zé)任編輯: