首頁  >  文章  >  科技週邊  >  讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

WBOY
WBOY轉載
2024-03-11 12:04:15977瀏覽

对大模型进行量化、剪枝等压缩操作,是部署时最常见不过的一环了。

不过,这个极限究竟有多大?

清华大学和哈工大的一项联合研究给出的答案是:

90%。

他们提出了大模型1bit极限压缩框架OneBit,首次实现大模型权重压缩超越90%并保留大部分(83%)能力。

可以说,玩儿的就是“既要也要”~

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

一起来看看。

大模型1bit量化方法来了

从剪枝、量化,到知识蒸馏、权重低秩分解,大模型已经可以实现压缩四分之一权重而几乎无损。

权重量化通常是将大型模型的参数转换为低位宽的表示形式。这可以通过对经过充分训练的模型进行转换(PTQ)或在训练过程中引入量化步骤(QAT)来实现。这种方法有助于减少模型的计算和存储需求,从而提高模型的效率和性能。通过量化权重,可以显著减少模型的大小,使其更适合在资源受限的环境中部署,同时也有

然而,现有量化方法在低于3bit时面临严重的性能损失,这主要是由于:

  1. 现有的参数低位宽表示方法在1bit时存在严重的精度损失。基于Round-To-Nearest方法的参数以1bit表示时,其转换的缩放系数s和零点z会失去实际意义。
  2. 现有的1bit模型结构没有充分考虑到浮点精度的重要性。浮点参数的缺失可能影响模型计算过程的稳定性,严重降低其本身的学习能力。

为了克服1bit超低位宽量化的阻碍,作者提出一种全新的1bit模型框架:OneBit,它包括全新的1bit线性层结构、基于SVID的参数初始化方法和基于量化感知知识蒸馏的深度迁移学习。

这种新的1bit模型量化方法能够以极大的压缩幅度、超低的空间占用和有限的计算成本,保留原模型绝大部分的能力。这对于实现大模型在PC端甚至智能手机上的部署意义非凡。

整体框架

OneBit框架总体上可以包括:全新设计的1bit模型结构、基于原模型初始化量化模型参数的方法以及基于知识蒸馏的深度能力迁移。

这种全新设计的1bit模型结构能够有效克服以往量化工作在1bit量化时严重的精度损失问题,并且在训练、迁移过程中表现出出色的稳定性。

量化模型的初始化方法能为知识蒸馏设置更好的起点,加速收敛的同时获得更加的能力迁移效果。

1、1bit模型结构

1bit要求每个权重值只能用1bit表示,所以最多只有两种可能的状态。

作者选用±1作为这两种状态,好处就是,它代表了数字系统中的两种符号、功能更加完备,同时可以通过Sign(·)函数方便地获得。

作者的1bit模型结构是通过把FP16模型的所有线性层(嵌入层和lm_head除外)替换为1bit线性层实现的。

这里的1bit线性层除通过Sign(·)函数获得的1bit权重之外,还包括另外两个关键组件—FP16精度的值向量。

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

△FP16线性层与OneBit线性层的对比

这种设计不仅保持了原始权重矩阵的高秩,而且通过值向量提供了必要的浮点精度,对保证稳定且高质量的学习过程很有意义。

从上图可以看出,只有值向量g和h保持FP16格式,而权重矩阵则全部由±1组成。

作者通过一个例子可以一观OneBit的压缩能力。

假设压缩一个40964096的FP16线性层,OneBit需要一个40964096的1bit矩阵和两个4096*1的FP16值向量。

这里面总的位数为16,908,288,总的参数个数为16,785,408,平均每个参数占用仅仅约1.0073 bit。

这样的压缩幅度是空前的,可以说是真正的1bit LLM。

2、参数初始化和迁移学习

为了利用充分训练好的原模型更好地初始化量化后的模型,作者提出一种新的参数矩阵分解方法,称为“值-符号独立的矩阵分解(SVID)”。

这一矩阵分解方法把符号和绝对值分开,并把绝对值进行秩-1近似,其逼近原矩阵参数的方式可以表示成:

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

秩-1近似可以透過常用矩陣分解方法實現,例如奇異值分解(SVD)和非負矩陣分解(NMF)。

作者在數學上給出,這種SVID方法可以透過交換運算次序來和1bit模型框架相匹配,進而實現參數初始化。

此外,符號矩陣在分解過程中對近似原矩陣的貢獻也被證明,詳見論文。

作者認為,解決大模型超低位寬量化的有效途徑可能是量化感知訓練QAT。

因此,在SVID給出量化模型的參數起點後,作者把原模型當作教師模型並透過知識蒸餾從中學習。

具體而言,學生模型主要接受教師模式的logits和hidden state的指導。

訓練時,值向量和參數矩陣的值會被更新,而在部署時,則可以直接使用量化後的1bit參數矩陣來計算。

模型越大,效果越好

作者選擇的基線是FP16 Transformer、GPTQ、LLM-QAT和OmniQuant。

後三個都屬於量化領域中經典的強基線,特別是OmniQuant是自作者之前最強的2bit量化方法。

由於目前還沒有1bit權重量化的研究,作者只對OneBit框架使用1bit權重量化,而對其他方法採取2bit量化設定。

對於蒸餾數據,作者仿照LLM-QAT利用教師模型自採樣的方式產生數據。

作者從1.3B到13B不同大小、OPT和LLaMA-1/2不同系列的模型來證明OneBit的有效性。在評估指標上,使用驗證集的困惑度和常識推理的Zero-shot準確度。詳情見論文。

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%
讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

上表展示了OneBit比起其他方法在1bit量化時的優勢。 值得注意的是,模型越大時,OneBit效果往往越好。

隨著模型規模增加,OneBit量化模型降低的困惑度比FP16模型降低的困惑度要多。

以下是幾個不同小模型的常識推理、世界知識和空間佔用情況:

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%
讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%
讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

#作者也比較了幾種不同類型小模型的大小和實際能力。

作者發現,儘管OneBit-7B平均位寬最小、佔用的空間最小、訓練的步數也相對少,但它在常識推理能力上不遜於其他模型。

同時作者也發現,OneBit-7B模型在社會科學領域出現較嚴重的知識遺忘。

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

△FP16線性層與OneBit線性層的對比一個OneBit-7B指令微調後的文本生成範例

上圖也展示了一個OneBit- 7B指令微調後的文本生成範例。可見,OneBit-7B有效地受到了SFT階段的能力增益,可以比較流暢地生成文本,儘管總參數只有1.3GB(與FP16的0.6B模型相當)。總的來說,OneBit-7B展示了其實際應用價值。

分析與討論

作者展示了OneBit對不同規模LLaMA模型的壓縮比,可以看出,OneBit對模型的壓縮比均超過驚人的90%。

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

特別是,隨著模型增加,OneBit的壓縮比越高。

這顯示出作者方法在更大模型上的優勢:以更高的壓縮比獲得更大的邊際收益(困惑度)。此外,作者的方法在大小和性能之間做到了很好的權衡。
讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

1bit量化模型在計算上有優勢,意義十分重大。參數的純二進位表示,不但可以節省大量的空間,還能降低矩陣乘法對硬體的需求。

高精度模型中矩陣乘法的元素相乘可以被變成高效率的位元運算,只需位元賦值和加法就可以完成矩陣乘積,非常有應用前景。

此外,作者的方法在訓練過程中保持了出色的穩定學習能力。

事實上,二值網路訓練的不穩定問題、對超參數的敏感度和收斂困難一直受到研究人員關注。

作者分析了高精度值向量在促進模型穩定收斂過程中的重要意義。

有前人工作提出過1bit模型架構並用於從頭訓練模型(如BitNet[1]),但它對超參數敏感且難以從充分訓練的高精度模型中遷移學習。作者也嘗試了BitNet在知識蒸餾的表現,發現其訓練還不夠穩定。

讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%

總結

作者提出了一個用於1bit權重量化的模型結構和對應的參數初始化方法。

在各種大小和系列的模型上進行的廣泛實驗表明,OneBit在代表性的強基線上具有明顯的優勢,並實現了模型大小與性能之間的良好折中。

此外,作者進一步分析了這種極低位元量化模型的能力和前景,並為未來的研究提供了指導。

論文網址: https://arxiv.org/pdf/2402.11295.pdf

#

以上是讓大模型「瘦身」90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時保留83%的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除