西風(fēng) 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
微軟以小搏大,發(fā)布首個(gè)開(kāi)源2B參數(shù)規(guī)模“原生1bit”LLM——
BitNet b1.58 2B4T,單CPU就能跑,性能與同規(guī)模全精度開(kāi)源模型相當(dāng)。

它采用三進(jìn)制{-1, 0, 1}存儲(chǔ)權(quán)重,相較于傳統(tǒng)的16位浮點(diǎn)數(shù)可大幅降低顯存需求。
只需0.4GB內(nèi)存即可運(yùn)行。
基于4T token語(yǔ)料訓(xùn)練,BitNet b1.58 2B4T在保持性能的同時(shí),計(jì)算效率突出。
單個(gè)CPU即可達(dá)到“與人類(lèi)閱讀速度”相當(dāng)?shù)乃俣龋棵?-7個(gè)token,CPU端解碼延遲29ms,能耗低至0.028J。
這種效率使其可在普通筆記本電腦甚至邊緣設(shè)備上實(shí)時(shí)運(yùn)行。
例如在蘋(píng)果M2 CPU上快速運(yùn)行:
另外值得一提的是,BitNet b1.58 2B4T具有原生訓(xùn)練優(yōu)勢(shì),與訓(xùn)練后量化(PTQ)模型對(duì)比,避免了PTQ常見(jiàn)的性能衰減
BitNet b1.58 2B4T剛發(fā)布就吸引了大量網(wǎng)友點(diǎn)贊關(guān)注,作者們也當(dāng)起了自己個(gè)兒的自來(lái)水。

如何實(shí)現(xiàn)原生1bit?話(huà)不多說(shuō),一起來(lái)看看技術(shù)詳情。
權(quán)重映射為三元值{-1, 0, +1}
BitNet b1.58 2B4T模型基于Transformer架構(gòu),對(duì)核心組件進(jìn)行了系統(tǒng)性改造。
傳統(tǒng)LLM依賴(lài)16bit或32bit浮點(diǎn)數(shù)存儲(chǔ)權(quán)重,而B(niǎo)itNet b1.58 2B4T采用一種稱(chēng)為absmean的量化方案,將權(quán)重映射為三元值{-1, 0, +1},平均每個(gè)權(quán)重僅需1.58bit(log?3≈1.58)來(lái)表示。
模型內(nèi)存占用驟降至0.4GB,僅為同類(lèi)全精度模型的1/5-1/12。

另外,線(xiàn)性投影中的激活值被量化為8bit整數(shù),采用基于每token的absmax量化策略,團(tuán)隊(duì)還引入subln歸一化,增強(qiáng)量化訓(xùn)練穩(wěn)定性。
其它關(guān)鍵設(shè)計(jì)包括:
- 激活函數(shù):前饋網(wǎng)絡(luò)(FFN)子層采用ReLU2替代常見(jiàn)的SwiGLU,通過(guò)提升模型稀疏性,優(yōu)化了1bit環(huán)境下的計(jì)算特性。
- 位置編碼:使用旋轉(zhuǎn)位置嵌入(RoPE)。
- 偏置消除:與Llama等架構(gòu)一致,所有線(xiàn)性層和歸一化層均移除偏置項(xiàng),減少參數(shù)量并簡(jiǎn)化量化流程。
訓(xùn)練方面,BitNet b1.58 2B4T采用三階段訓(xùn)練:大規(guī)模預(yù)訓(xùn)練監(jiān)督微調(diào)(SFT)和直接偏好優(yōu)化(DPO)。
先是大規(guī)模預(yù)訓(xùn)練,模型經(jīng)歷了兩階段學(xué)習(xí)率調(diào)度:得益于1bit模型的訓(xùn)練穩(wěn)定性,初期采用高學(xué)習(xí)率快速收斂;中期驟降至低水平,使模型能在高質(zhì)量數(shù)據(jù)上精細(xì)化調(diào)整。配合動(dòng)態(tài)權(quán)重衰減策略,模型在保持泛化能力的同時(shí)避免過(guò)擬合。
監(jiān)督微調(diào)(SFT)階段,值得注意的是,訓(xùn)練中采用損失函數(shù)求和而非平均策略,并延長(zhǎng)了訓(xùn)練輪次,這一調(diào)整被證明對(duì)低精度模型的收斂至關(guān)重要。
直接偏好優(yōu)化(DPO)階段,基于UltraFeedback、MagPie等人類(lèi)偏好數(shù)據(jù)集,模型通過(guò)無(wú)獎(jiǎng)勵(lì)模型的直接優(yōu)化,提升了回答的安全性與用戶(hù)滿(mǎn)意度,避免了傳統(tǒng)RLHF的高計(jì)算成本。
實(shí)驗(yàn)效果方面,BitNet b1.58 2B4T內(nèi)存占用僅為0.4GB,CPU端解碼延遲29ms,能耗低至0.028J。
在數(shù)學(xué)推理任務(wù)GSM8K中,BitNet以58.38的準(zhǔn)確率遠(yuǎn)超Llama 3.2-1B(38.21)和Qwen2.5-1.5B(56.79);在常識(shí)推理任務(wù)WinoGrande中,BitNet 71.90的得分超同類(lèi)模型均值(63.55)。

團(tuán)隊(duì)特別指出,BitNet b1.58 2B4T具有原生訓(xùn)練優(yōu)勢(shì)。與訓(xùn)練后量化(PTQ)模型對(duì)比,BitNet的原生1bit訓(xùn)練策略避免了PTQ常見(jiàn)的性能衰減。

參數(shù)更大的Llama3-8B模型量化至1bit后,也難打BitNet b1.58 2B4T。
和其它1bit模型相比,BitNet b1.58 2B4T也有顯著更強(qiáng)的整體性能,絕大多數(shù)基準(zhǔn)測(cè)試中取得SOTA。

有關(guān)BitNet b1.58 2B4T的具體表現(xiàn),再來(lái)看幾個(gè)例子。
讓它生成幾個(gè)笑話(huà),笑話(huà)簡(jiǎn)短但也蠻有意思:
- 稻草人為何成為成功的神經(jīng)外科醫(yī)生?回答是因?yàn)樗谧约旱念I(lǐng)域很杰出(outstanding in his field)。

單CPU生成97個(gè)token,總耗時(shí)3.452秒,每秒處理 28.1 token。
再讓它基于2000年的背景,讓一位PowerPC處理器愛(ài)好者和一位英特爾處理器愛(ài)好者進(jìn)行五行辯論。
BitNet b1.58 2B4T生成結(jié)果也很快,并且反映了那個(gè)時(shí)代科技行業(yè)的競(jìng)爭(zhēng)特性。

微軟在1 bit LLM上的探索
1 bit LLM的實(shí)現(xiàn)方法,微軟其實(shí)早在2023年就有相關(guān)研究,當(dāng)時(shí)就稱(chēng)為BitNet,用BitLinear替換了nn.Linear


之后,微軟原班人馬在上一篇論文的基礎(chǔ)之上做了優(yōu)化,提出BitNet b1.58,在原始BitNet的基礎(chǔ)上增加了一個(gè)額外的0值
也就是“The Era of 1-bit LLMs”這篇論文,用6頁(yè)研究引發(fā)網(wǎng)友廣泛關(guān)注。

這種方法發(fā)布后,也有不少人在這項(xiàng)研究的基礎(chǔ)之上進(jìn)行探索。Huggingface Transformers還曾整合了BitNet b1.58,運(yùn)用一些技巧,使得現(xiàn)有模型可以直接微調(diào)到1.58bit。
接著,微軟還開(kāi)發(fā)并開(kāi)源了針對(duì)GPU和CPU平臺(tái)的專(zhuān)用推理庫(kù)
BitNet b1.58采用獨(dú)特量化方案(1.58bit權(quán)重和8bit激活值,W1.58A8)需要專(zhuān)門(mén)的實(shí)現(xiàn),標(biāo)準(zhǔn)深度學(xué)習(xí)庫(kù)通常缺乏針對(duì)這種混合精度、低比特格式的優(yōu)化內(nèi)核,微軟開(kāi)發(fā)了專(zhuān)門(mén)針對(duì)W1.58A8矩陣乘法的自定義CUDA內(nèi)核。
另外,微軟還開(kāi)源了bitnet.cpp——一個(gè)用于1 bit LLM CPU推理的官方參考C++庫(kù),提供針對(duì)標(biāo)準(zhǔn)CPU架構(gòu)優(yōu)化的內(nèi)核,旨在高效適配模型的特定量化方案,盡可能避免通用量化庫(kù)的開(kāi)銷(xiāo)或復(fù)雜的底層位操作。
技術(shù)報(bào)告:https://arxiv.org/abs/2504.12285
抱抱臉鏈接:https://huggingface.co/microsoft/bitnet-b1.58-2B-4T
參考鏈接:https://arstechnica.com/ai/2025/04/microsoft-researchers-create-super%e2%80%91efficient-ai-that-uses-up-to-96-less-energy/
熱門(mén)跟貼