高效與邊緣人工智慧

BitNet(三元權重)

BitNet 把量化推到極致,訓練出權重只取三個值的 Transformer:負一、零、正一。由於三種狀態約攜帶 1.58 位元的資訊,也就是以 2 為底的 3 的對數,這個做法被稱為 1.58 位元。有了這樣的權重,線性層中昂貴的「權重乘激活值」便塌縮為加法與減法,移除了大部分的乘法硬體。

與訓練後量化不同,BitNet 從頭訓練三元權重,並把量化放進迴圈:前向傳播以絕對值平均的縮放把權重三元化,梯度則以直通估計器流過,而激活值保持在 8 位元。一個可直接替換的 BitLinear 層取代了一般的線性層。在這種設定下,三元模型在語言建模上能匹敵同樣大小的全精度 Transformer,卻使用遠少的記憶體與能耗。

它的願景是讓推論硬體擺脫浮點矩陣乘法,但要實現這些收益,需要為三元權重設計的客製核心或晶片。在沒有這類支援的通用 GPU 上,大部分理論上的優勢仍無法兌現。

\tilde W = \mathrm{round\_clip}\!\Big(\tfrac{W}{\gamma},-1,1\Big)\in\{-1,0,1\},\qquad \gamma=\tfrac{1}{nm}\textstyle\sum_{ij}|W_{ij}|

權重以絕對值平均尺度 γ 三元化;其結果在推論時只需加法與減法。

又称
BitNet b1.581.58-bitternary weights三元權重