微軟、國(guó)科大開啟1Bit時(shí)代:大模型轉(zhuǎn)三進(jìn)制,速度快4倍能耗降至1/41
把大模型的權(quán)重統(tǒng)統(tǒng)改成三元表示,速度和效率的提升讓人害怕。
今天凌晨,由微軟、國(guó)科大等機(jī)構(gòu)提交的一篇論文在 AI 圈里被人們爭(zhēng)相轉(zhuǎn)閱。該研究提出了一種 1-bit 大模型,實(shí)現(xiàn)效果讓人只想說兩個(gè)字:震驚。
如果該論文的方法可以廣泛使用,這可能是生成式 AI 的新時(shí)代。
對(duì)此,已經(jīng)有人在暢想 1-bit 大模型的適用場(chǎng)景,看起來很適合物聯(lián)網(wǎng),這在以前是不可想象的。
人們還發(fā)現(xiàn),這個(gè)提升速度不是線性的 —— 而是,模型越大,這么做帶來的提升就越大。
還有這種好事?看起來英偉達(dá)要掂量掂量了。
近年來,大語(yǔ)言模型(LLM)的參數(shù)規(guī)模和能力快速增長(zhǎng),既在廣泛的自然語(yǔ)言處理任務(wù)中表現(xiàn)出了卓越的性能,也為部署帶來了挑戰(zhàn),并引發(fā)人們擔(dān)憂高能耗會(huì)對(duì)環(huán)境和經(jīng)濟(jì)造成影響。
因此,使用后訓(xùn)練(post-training)量化技術(shù)來創(chuàng)建低 bit 推理模型成為上述問題的解決方案。這類技術(shù)可以降低權(quán)重和激活函數(shù)的精度,顯著降低 LLM 的內(nèi)存和計(jì)算需求。目前的發(fā)展趨勢(shì)是從 16 bits 轉(zhuǎn)向更低的 bit,比如 4 bits。然而,雖然這類量化技術(shù)在 LLM 中廣泛使用,但并不是最優(yōu)的。
最近的工作提出了 1-bit 模型架構(gòu),比如 2023 年 10 月微軟研究院、國(guó)科大和清華大學(xué)的研究者推出了 BitNet,在降低 LLM 成本的同時(shí)為保持模型性能提供了一個(gè)很有希望的技術(shù)方向。
BitNet 是第一個(gè)支持訓(xùn)練 1-bit 大語(yǔ)言模型的新型網(wǎng)絡(luò)結(jié)構(gòu),具有強(qiáng)大的可擴(kuò)展性和穩(wěn)定性,能夠顯著減少大語(yǔ)言模型的訓(xùn)練和推理成本。與最先進(jìn)的 8-bit 量化方法和全精度 Transformer 基線相比,BitNet 在大幅降低內(nèi)存占用和計(jì)算能耗的同時(shí),表現(xiàn)出了極具競(jìng)爭(zhēng)力的性能。
此外,BitNet 擁有與全精度 Transformer 相似的擴(kuò)展法則(Scaling Law),在保持效率和性能優(yōu)勢(shì)的同時(shí),還可以更加高效地將其能力擴(kuò)展到更大的語(yǔ)言模型上, 從而讓 1 比特大語(yǔ)言模型(1-bit LLM)成為可能。
BitNet 從頭訓(xùn)練的 1-bit Transformers 在能效方面取得了有競(jìng)爭(zhēng)力的結(jié)果。來源:https://arxiv.org/pdf/2310.11453.pdf
如今,微軟研究院、國(guó)科大同一團(tuán)隊(duì)(作者部分變化)的研究者推出了 BitNet 的重要 1-bit 變體,即 BitNet b1.58,其中每個(gè)參數(shù)都是三元并取值為 {-1, 0, 1}。他們?cè)谠瓉淼?1-bit 上添加了一個(gè)附加值 0,得到二進(jìn)制系統(tǒng)中的 1.58 bits。
BitNet b1.58 繼承了原始 1-bit BitNet 的所有優(yōu)點(diǎn),包括新的計(jì)算范式,使得矩陣乘法幾乎不需要乘法運(yùn)算,并可以進(jìn)行高度優(yōu)化。同時(shí),BitNet b1.58 具有與原始 1-bit BitNet 相同的能耗,相較于 FP16 LLM 基線在內(nèi)存消耗、吞吐量和延遲方面更加高效。
- 論文地址:https://arxiv.org/pdf/2402.17764.pdf
- 論文標(biāo)題:The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits
此外,BitNet b1.58 還具有兩個(gè)額外優(yōu)勢(shì)。其一是建模能力更強(qiáng),這是由于它明確支持了特征過濾,在模型權(quán)重中包含了 0 值,顯著提升了 1-bit LLM 的性能。其二實(shí)驗(yàn)結(jié)果表明,當(dāng)使用相同配置(比如模型大小、訓(xùn)練 token 數(shù))時(shí),從 3B 參數(shù)規(guī)模開始, BitNet b1.58 在困惑度和最終任務(wù)的性能方面媲美全精度(FP16)基線方法。
如下圖 1 所示,BitNet b1.58 為降低 LLM 推理成本(延遲、吞吐量和能耗)并保持模型性能提供了一個(gè)帕累托(Pareto)解決方案。
BitNet b1.58 介紹
BitNet b1.58 基于 BitNet 架構(gòu),并且用 BitLinear 替代 nn.Linear 的 Transformer。BitNet b1.58 是從頭開始訓(xùn)練的,具有 1.58 bit 權(quán)重和 8 bit 激活。與原始 BitNet 架構(gòu)相比,它引入了一些修改,總結(jié)為如下:
用于激活的量化函數(shù)與 BitNet 中的實(shí)現(xiàn)相同,只是該研究沒有將非線性函數(shù)之前的激活縮放到 [0, Q_b] 范圍。相反,每個(gè) token 的激活范圍為 [?Q_b, Q_b],從而消除零點(diǎn)量化。這樣做對(duì)于實(shí)現(xiàn)和系統(tǒng)級(jí)優(yōu)化更加方便和簡(jiǎn)單,同時(shí)對(duì)實(shí)驗(yàn)中的性能產(chǎn)生的影響可以忽略不計(jì)。
與 LLaMA 類似的組件。LLaMA 架構(gòu)已成為開源大語(yǔ)言模型的基本標(biāo)準(zhǔn)。為了擁抱開源社區(qū),該研究設(shè)計(jì)的 BitNet b1.58 采用了類似 LLaMA 的組件。具體來說,它使用了 RMSNorm、SwiGLU、旋轉(zhuǎn)嵌入,并且移除了所有偏置。通過這種方式,BitNet b1.58 可以很容易的集成到流行的開源軟件中(例如,Huggingface、vLLM 和 llama.cpp2)。
實(shí)驗(yàn)及結(jié)果
該研究將 BitNet b1.58 與此前該研究重現(xiàn)的各種大小的 FP16 LLaMA LLM 進(jìn)行了比較,并評(píng)估了模型在一系列語(yǔ)言任務(wù)上的零樣本性能。除此之外,實(shí)驗(yàn)還比較了 LLaMA LLM 和 BitNet b1.58 運(yùn)行時(shí)的 GPU 內(nèi)存消耗和延遲。
表 1 總結(jié)了 BitNet b1.58 和 LLaMA LLM 的困惑度和成本:在困惑度方面,當(dāng)模型大小為 3B 時(shí),BitNet b1.58 開始與全精度 LLaMA LLM 匹配,同時(shí)速度提高了 2.71 倍,使用的 GPU 內(nèi)存減少了 3.55 倍。特別是,當(dāng)模型大小為 3.9B 時(shí),BitNet b1.58 的速度是 LLaMA LLM 3B 的 2.4 倍,消耗的內(nèi)存減少了 3.32 倍,但性能顯著優(yōu)于 LLaMA LLM 3B。
表 2 結(jié)果表明,隨著模型尺寸的增加,BitNet b1.58 和 LLaMA LLM 之間的性能差距縮小。更重要的是,BitNet b1.58 可以匹配從 3B 大小開始的全精度基線的性能。與困惑度觀察類似,最終任務(wù)( end-task)結(jié)果表明 BitNet b1.58 3.9B 優(yōu)于 LLaMA LLM 3B,具有更低的內(nèi)存和延遲成本。
內(nèi)存和延遲:該研究進(jìn)一步將模型大小擴(kuò)展到 7B、13B 和 70B 并評(píng)估成本。圖 2 顯示了延遲和內(nèi)存的趨勢(shì),隨著模型大小的增加,增長(zhǎng)速度(speed-up)也在增加。特別是,BitNet b1.58 70B 比 LLaMA LLM 基線快 4.1 倍。這是因?yàn)?nn.Linear 的時(shí)間成本隨著模型大小的增加而增加,內(nèi)存消耗同樣遵循類似的趨勢(shì)。延遲和內(nèi)存都是用 2 位核測(cè)量的,因此仍有優(yōu)化空間以進(jìn)一步降低成本。
能耗。該研究還對(duì) BitNet b1.58 和 LLaMA LLM 的算術(shù)運(yùn)算能耗進(jìn)行了評(píng)估,主要關(guān)注矩陣乘法。圖 3 說明了能耗成本的構(gòu)成。BitNet b1.58 的大部分是 INT8 加法計(jì)算,而 LLaMA LLM 則由 FP16 加法和 FP16 乘法組成。根據(jù) [Hor14,ZZL22] 中的能量模型,BitNet b1.58 在 7nm 芯片上的矩陣乘法運(yùn)算能耗節(jié)省了 71.4 倍。
該研究進(jìn)一步報(bào)告了能夠處理 512 個(gè) token 模型的端到端能耗成本。結(jié)果表明,隨著模型規(guī)模的擴(kuò)大,與 FP16 LLaMA LLM 基線相比,BitNet b1.58 在能耗方面變得越來越高效。這是因?yàn)?nn.Linear 的百分比隨著模型大小的增加而增長(zhǎng),而對(duì)于較大的模型,其他組件的成本較小。
吞吐量。該研究比較了 BitNet b1.58 和 LLaMA LLM 在 70B 參數(shù)體量上在兩個(gè) 80GB A100 卡上的吞吐量,使用 pipeline 并行性 [HCB+19],以便 LLaMA LLM 70B 可以在設(shè)備上運(yùn)行。實(shí)驗(yàn)增加了 batch size,直到達(dá)到 GPU 內(nèi)存限制,序列長(zhǎng)度為 512。表 3 顯示 BitNet b1.58 70B 最多可以支持 LLaMA LLM batch size 的 11 倍,從而將吞吐量提高 8.9 倍。
更多技術(shù)細(xì)節(jié)請(qǐng)查看原論文。