微軟開源 1bit 大模型推理框架!
現(xiàn)在 1000 億參數(shù)大模型量化后單 CPU 可跑,速度可達(dá)每秒 5-7 個 token。
比如在蘋果 M2 新品上運(yùn)行 BitNet b1.58 3B 模型,be like:
就是今年爆火論文 The Era of 1-bit LLMs 的官方代碼實(shí)現(xiàn),開源不到一周 GitHub 已攬獲 7.9k Star。
傳統(tǒng)大模型參數(shù)以 16 位浮點(diǎn)數(shù)(如 FP16 或 BF16)形式的存儲,而 BitNet b1.58 將其統(tǒng)統(tǒng)變成了三進(jìn)制,也就是 {-1, 0, 1}。
這里的“1.58 bit”指每個參數(shù)可以用 1.58 位的信息來表示。
轉(zhuǎn)換之后,矩陣中的計(jì)算就只會涉及到加法,因此會讓大模型在保持一定精度的同時,顯著減少所需的存儲空間和計(jì)算資源,也顯著提升了在本地設(shè)備上運(yùn)行 LLM 的可能性。
這個項(xiàng)目開源后,在 X 上也受到了一波高度關(guān)注。
千億參數(shù)模型量化后單 CPU 可跑
bitnet.cpp 是 1bit LLM(例如 BitNet b1.58)的官方推理框架。
該框架配備了一系列優(yōu)化內(nèi)核,支持在 CPU 上進(jìn)行快速且無損的 1.58bit 模型推理,未來將擴(kuò)展支持 NPU 和 GPU。
bitnet.cpp 的首版主要支持 CPU 推理。
具體性能改進(jìn)方面,在 ARM CPU 上,該框架可實(shí)現(xiàn) 1.37 至 5.07 倍的加速,而且更大的模型將有更顯著的性能提升。
同時,它能將能耗降低 55.4% 至 70.0%,進(jìn)一步增強(qiáng)效率。
在 x86 CPU 上,加速效果介于 2.37 至 6.17 倍之間,能耗減少 71.9% 至 82.2%。
網(wǎng)友們也發(fā)現(xiàn)了華點(diǎn),在 x86 上的性能增益量比 ARM 更大。
此外,bitnet.cpp 能使千億參數(shù)模型量化后單 CPU 可跑,速度可達(dá)每秒 5-7 個 token,接近人類閱讀速度。
微軟還展示了使用 bitnet.cpp 推理框架支持的不同 1 bit LLM。
6 頁論文,引入 1 bit LLM
1 bit LLM 的實(shí)現(xiàn)方法,微軟在一年前就有相關(guān)研究,稱為 BitNet(一種 Transformer),用 BitLinear 替換了 nn.Linear。
今年二月,BitNet 原班人馬在上一篇論文的基礎(chǔ)之上做了優(yōu)化,提出 BitNet b1.58,在原始 BitNet 的基礎(chǔ)上增加了一個額外的 0 值。
然后這篇內(nèi)容只有 6 頁的論文引發(fā)熱議:
BitNet b1.58 模型的權(quán)重被量化為三元值 {-1, 0, 1},相當(dāng)于在二進(jìn)制系統(tǒng)中使用了 1.58 bit 來表示每個權(quán)重。
采用了 absmean 量化函數(shù)來約束權(quán)重,將權(quán)重矩陣通過其平均絕對值進(jìn)行縮放,然后四舍五入到最接近的整數(shù)值(-1、0 或 1)。
激活量化中,激活值被縮放到 [?Qb, Qb] 的范圍,以此來消除零點(diǎn)量化。
在架構(gòu)設(shè)計(jì)上,BitNet b1.58 借鑒了 Llama,使用了 RMSNorm、SwiGLU、旋轉(zhuǎn)位置編碼等組件,并移除了所有偏置項(xiàng)。這種設(shè)計(jì)使其能夠輕松集成到主流的開源框架中。
實(shí)驗(yàn)中,與 Llama 相比,BitNet b1.58 在矩陣乘法方面節(jié)省了 71.4 倍的計(jì)算能耗。
這種方法發(fā)布后,也有不少人在這項(xiàng)研究的基礎(chǔ)之上進(jìn)行探索。
其中一個問題是,BitNet b1.58 將每個參數(shù)僅用三元值表示,但是所有這些都需要從頭開始訓(xùn)練模型,并不是誰都有預(yù)算來進(jìn)行 LLM 預(yù)訓(xùn)練。
而 Huggingface Transformers 最近整合了 BitNet b1.58,運(yùn)用了一些技巧,使得現(xiàn)有模型可以直接微調(diào)到 1.58bit。
感興趣的童鞋可以自行查閱。
不過也有網(wǎng)友指出了這種方法的局限:
總之,1 bit LLM 具有巨大的潛力。
但也正如網(wǎng)友所言,1 bit LLM 關(guān)鍵還得是能在實(shí)踐中證明自己。
參考鏈接:
[1]https://github.com/microsoft/BitNet
[2]https://x.com/rohanpaul_ai/status/1847814379657462201
[3]https://x.com/rohanpaul_ai/status/1848172443258728860?s=46&t=iTysI4vQLQqCNJjSmBODPw
[4]https://huggingface.co/blog/zh/1_58_llm_extreme_quantization
本文來自微信公眾號:微信公眾號(ID:QbitAI),作者:西風(fēng),原標(biāo)題《微軟開源爆火 1.58bit 大模型推理框架!千億參數(shù)模型量化后單 CPU 可跑,速度每秒 5-7 個 token》
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。