金磊 發自 凹非寺
量子位 | 公衆号 QbitAI
現在,隻需一個浏覽器,就能跑通“大力出奇迹”的大語言模型(LLM)了!
不僅如此,基于LLM的類ChatGPT也能引進來,而且還是不需要伺服器支援、WebGPU加速的那種。
例如這樣:
這就是由陳天奇團隊最新釋出的項目——Web LLM。
短短數日,已經在GitHub上攬貨3.2K顆星。
一切盡在浏覽器,怎麼搞?
首先,你需要下載下傳Chrome Canary,也就是谷歌浏覽器的金絲雀版本:
因為這個開發者版本的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社群。
據了解,MLC.AI 社群成立于 2022 年 6 月,并由 Apache TVM 主要發明者、機器學習領域著名的青年學者陳天奇,帶領團隊上線了 MLC 線上課程,系統介紹了機器學習編譯的關鍵元素以及核心概念。
值得一提的是,該團隊此前還做過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
— 完 —
量子位 QbitAI · 頭條号簽約
關注我們,第一時間獲知前沿科技動态