現在,隻需一個浏覽器,就能跑通 " 大力出奇迹 " 的大語言模型(LLM)了!
不僅如此,基于 LLM 的類 ChatGPT 也能引進來,而且還是不需要服務器支持、WebGPU 加速的那種。
例如這樣:
這就是由陳天奇團隊最新發布的項目——Web LLM。
短短數日,已經在 GitHub 上攬貨 3.2K 顆星。
一切盡在浏覽器,怎麽搞?
因爲這個開發者版本的 Chrome 是支持 WebGPU 的,否則就會出現如下的錯誤提示:
在安裝完畢後,團隊建議用 " 終端 " 輸入如下代碼啓動 Chrome Canary:
/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary — enable-dawn-features=disable_robustness
啓動之後,便可以來到官網的 demo 試玩處開始體驗了。
不過在第一次展開對話的時候,系統還會出現一個初始化的過程(有點漫長,耐心等待)。
機器學習編譯(MLC)是關鍵
接下來,我們來看一看 Web LLM 如何做到 " 一切盡在浏覽器 " 的。
根據團隊介紹,其核心關鍵技術是機器學習編譯(Machine Learning Compilation,MLC)。
整體方案是站在開源生态系統這個 " 巨人肩膀 " 上完成的,包括 Hugging Face、來自 LLaMA 和 Vicuna 的模型變體,以及 wasm 和 WebGPU 等。
并且主要流程是建立在 Apache TVM Unity 之上。
團隊首先在 TVM 中 bake 了一個語言模型的IRModule,以此來減少了計算量和内存使用。
TVM 的 IRModule 中的每個函數都可以被進一步轉換并生成可運行的代碼,這些代碼可以被普遍部署在任何最小 TVM 運行時支持的環境中(JavaScript 就是其中之一)。
其次,TensorIR是生成優化程序的關鍵技術,通過結合專家知識和自動調度程序快速轉換 TensorIR 程序,來提供高效的解決方案。
除此之外,團隊還用到了如下一些技術:
啓發式算法:用于優化輕量級運算符以減輕工程壓力。
int4 量化技術:用來來壓縮模型權重。
構建靜态内存規劃優化:來跨多層重用内存。
使用 Emscripten 和 TypeScript :構建一個在 TVM web 運行時可以部署生成的模塊。
……
上述所有的工作流程都是基于 Python 來完成的。
但 Web LLM 團隊也表示,這個項目還有一定的優化空間,例如 AI 框架如何擺脫對優化計算庫的依賴,以及如何規劃内存使用并更好地壓縮權重等等。
團隊介紹
Web LLM 背後的團隊是MLC.AI社區。
值得一提的是,該團隊此前還做過 Web Stable Diffusion,鏈接都放在下面了,趕快去體驗吧 ~
Web LLM 體驗地址:
https://mlc.ai/web-llm/
Web Stable Diffusion 體驗地址:
https://mlc.ai/web-stable-diffusion/
參考鏈接:
[ 1 ] https://twitter.com/HongyiJin258/status/1647062309960028160
[ 2 ] https://github.com/mlc-ai/web-llm