首個支援4-bit浮點量化的LLM來了,解決LLaMA、BERT等的部署難題
大語言模型(LLM) 壓縮一直備受關注,後訓練量化(Post-training Quantization) 是其中一種常用演算法,但是現有PTQ 方法大多都是integer 量化,且當位元數低於8 時,量化後模型的準確率會下降非常多。想較於 Integer (INT) 量化,Floating Point (FP) 量化能較好的表示長尾分佈,因而越來越多的硬體平台開始支援 FP 量化。而這篇文章給出了大模型 FP 量化的解決方案。文章發表在 EMNLP 2023 上。
- 論文網址:https://arxiv.org/abs/2310.16836
- #程式碼位址:https://github.com/nbasyl/LLM-FP4
要了解本文,必須先具備基本的有關Floating Point Format 以及Floating Point Quantization 的知識,首先Floating Point Number 可以用以下公式表示:
# #s 代表正負符號位元(sign bit),m 代表尾數位(mantissa bits),e 代表指數位(exponent bits)。 p 是介於 0 到 2^e - 1 之間的值,用來表示當前數字該被分割到哪一個指數區間,d 取 0 或 1 的值,用來表示第 i 個 mantissa bit。 b 是 bias,一個用來調整 exponent 區間的整數值。
在接下來的部分中,我們將介紹浮點數量化是如何運作的。首先,輸入值必須經過一個稱為「scale and clip」的步驟。這個步驟首先將輸入值裁切到浮點數能夠表示的最大範圍(±Qmax),具體計算公式如下:
可以看到類似integer 量化,FP 量化也會加入一個full-precision 的縮放因子(scaling factor) 來縮放input 到適當的區間。而縮放因子在運算矩陣乘法的時候,和低位元的矩陣乘法分開計算,所以並不會造成很大的 overhead。融入了這個 full-precision 的縮放因子之後,不同的 quantized tensor 能夠被相應地 clip 到不同的最大最小值區間。在實際使用過程中,會根據輸入 tensor 的值域來決定所需的量化區間,然後利用公式 (4) 推導出相對應的 bias。注意式 (4) 裡的 bias 可以被用來當作實數值的縮放因子,請參閱公式 (2)(3)。
浮點數量化的下一個步驟是將決定好的量化區間內的值分配到相應的量化區間中,這個過程被稱為比較和量化:
上圖直觀說明了量化的過程,目前的輸入值,在用公式5 比較過後,量化到不同的量化區間。
在得到量化過的activation 和weight 後,這裡的scaling factor 提到前面先計算,而達到如下的efficient matrix multiplication,完成矩陣乘法的加速:
接著本文指出FP 量化的準確度,和exponent bits 的設定以及量化的區間息息相關。
在先前的論文中,已經驗證了不同的FP格式(即浮點數的指數位/尾數位設定)之間存在巨大的量化誤差差異。只有當選擇合適的FP格式時,FP量化能夠比INT量化更好地表示長尾分佈
這篇文章提出了一個解決方案,即採用基於搜尋的浮點量化演算法,以綜合搜尋的方式確定最適合的浮點數的指數位和尾數位設定以及相應的量化區間
除此之外,在各種不同類別的Transformer模型(Bert, LLaMA, ViT)中,還存在一個現象嚴重影響量化的難度:即模型的激活中不同通道之間的數量級差異很大,而同一通道之間的數量級非常一致。先前的研究LLM.int8和SmoothQuant也發現了類似的現象,但本文指出這個現像不僅存在於LLM中,其他Transformer模型(如下所示,LLaMA、BERT和DeIT-S)的活化分佈也發現了類似的現象:
從圖中可以看到,那些異常大的channel 都比剩餘的channel 大很多,所以在量化activation tensor 的過程中,量化的精度很大程度會被這些異常值決定,從而抑制其他channel 值的量化區間,最終降低整體影響量化精度。這會導致量化的最終結果崩壞,尤其當比特數降到一定程度的時候。值得注意的是,只有 tensor-wise 和 token-wise 量化可以在 efficient matrix multipilication 的時候將 scaling factor 提取出來,而 channel-wise 量化是不支持 efficient matrix multipilication 的,見下圖。
為了同時解決問題並保持高效率的矩陣乘法,本文使用少量的校正資料集來預先計算激活每個通道的最大值,並計算縮放因子。然後將縮放因子拆分為一個針對每個張量的實數乘以每個通道的2的冪。這個2的冪可以用FP中的指數偏差來表示。整個過程可以透過以下公式表示:
進一步地,在calibration 完成之後,這個per-channel exponent bias 就不再變化,因此可以和weight quantization 一起進行預計算(pre-compute),將這個per-channel exponent bias 整合進量化後的weights 中,提高量化精度。完整的過程如以下公式:
在預偏移之後,可以觀察到原本激活函數中的每個通道的全精度偏移的位置變成了一個基於張量的實數縮放因子,同時將被分解的整數偏移移到了權重中原本整數偏移的位置,具體見公式4
從而這個方法(pre-shifted exponent bias) 能在維持efficient matrix multiplication 的原則下,更好得提高量化精度,方法的直觀展示如下圖所示:
#最後本文展示Floating Point Quantization (FPQ) 方法,在LLaMA, BERT 以及ViTs 模型上,4-bit 量化皆取得了遠超SOTA 的結果。特別是,這篇文章展示了4-bit 量化的LLaMA-13B 模型,在零樣本推理任務上達到平均63.1 的分數,只比完整精度模型低了5.8 分,且比之前的SOTA 方法平滑量高出了12.7,這是目前少數已知可行的4-bit 量化方案了。
以上是首個支援4-bit浮點量化的LLM來了,解決LLaMA、BERT等的部署難題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

想像一下,一個人工智慧模型,不僅擁有超越傳統運算的能力,還能以更低的成本實現更有效率的效能。這不是科幻,DeepSeek-V2[1],全球最強開源MoE模型來了。 DeepSeek-V2是一個強大的專家混合(MoE)語言模型,具有訓練經濟、推理高效的特點。它由236B個參數組成,其中21B個參數用於啟動每個標記。與DeepSeek67B相比,DeepSeek-V2效能更強,同時節省了42.5%的訓練成本,減少了93.3%的KV緩存,最大生成吞吐量提高到5.76倍。 DeepSeek是一家探索通用人工智

AI,的確正在改變數學。最近,一直十分關注這個議題的陶哲軒,轉發了最近一期的《美國數學學會通報》(BulletinoftheAmericanMathematicalSociety)。圍繞著「機器會改變數學嗎?」這個話題,許多數學家發表了自己的觀點,全程火花四射,內容硬核,精彩紛呈。作者陣容強大,包括菲爾茲獎得主AkshayVenkatesh、華裔數學家鄭樂雋、紐大電腦科學家ErnestDavis等多位業界知名學者。 AI的世界已經發生了天翻地覆的變化,要知道,其中許多文章是在一年前提交的,而在這一

谷歌力推的JAX在最近的基準測試中表現已經超過Pytorch和TensorFlow,7項指標排名第一。而且測試並不是JAX性能表現最好的TPU上完成的。雖然現在在開發者中,Pytorch依然比Tensorflow更受歡迎。但未來,也許有更多的大型模型會基於JAX平台進行訓練和運行。模型最近,Keras團隊為三個後端(TensorFlow、JAX、PyTorch)與原生PyTorch實作以及搭配TensorFlow的Keras2進行了基準測試。首先,他們為生成式和非生成式人工智慧任務選擇了一組主流

波士頓動力Atlas,正式進入電動機器人時代!昨天,液壓Atlas剛「含淚」退出歷史舞台,今天波士頓動力就宣布:電動Atlas上崗。看來,在商用人形機器人領域,波士頓動力是下定決心要跟特斯拉硬剛一把了。新影片放出後,短短十幾小時內,就已經有一百多萬觀看。舊人離去,新角色登場,這是歷史的必然。毫無疑問,今年是人形機器人的爆發年。網友銳評:機器人的進步,讓今年看起來像人類的開幕式動作、自由度遠超人類,但這真不是恐怖片?影片一開始,Atlas平靜地躺在地上,看起來應該是仰面朝天。接下來,讓人驚掉下巴

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

目標偵測在自動駕駛系統當中是一個比較成熟的問題,其中行人偵測是最早得以部署演算法之一。在多數論文當中已經進行了非常全面的研究。然而,利用魚眼相機進行環視的距離感知相對來說研究較少。由於徑向畸變大,標準的邊界框表示在魚眼相機當中很難實施。為了緩解上述描述,我們探索了擴展邊界框、橢圓、通用多邊形設計為極座標/角度表示,並定義一個實例分割mIOU度量來分析這些表示。所提出的具有多邊形形狀的模型fisheyeDetNet優於其他模型,並同時在用於自動駕駛的Valeo魚眼相機資料集上實現了49.5%的mAP

特斯拉機器人Optimus最新影片出爐,已經可以在工廠裡打工了。正常速度下,它分揀電池(特斯拉的4680電池)是這樣的:官方還放出了20倍速下的樣子——在小小的「工位」上,揀啊揀啊揀:這次放出的影片亮點之一在於Optimus在廠子裡完成這項工作,是完全自主的,全程沒有人為的干預。而且在Optimus的視角之下,它還可以把放歪了的電池重新撿起來放置,主打一個自動糾錯:對於Optimus的手,英偉達科學家JimFan給出了高度的評價:Optimus的手是全球五指機器人裡最靈巧的之一。它的手不僅有觸覺

這篇論文探討了在自動駕駛中,從不同視角(如透視圖和鳥瞰圖)準確檢測物體的問題,特別是如何有效地從透視圖(PV)到鳥瞰圖(BEV)空間轉換特徵,這一轉換是透過視覺轉換(VT)模組實施的。現有的方法大致分為兩種策略:2D到3D和3D到2D轉換。 2D到3D的方法透過預測深度機率來提升密集的2D特徵,但深度預測的固有不確定性,尤其是在遠處區域,可能會引入不準確性。而3D到2D的方法通常使用3D查詢來採樣2D特徵,並透過Transformer學習3D和2D特徵之間對應關係的注意力權重,這增加了計算和部署的
