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