微软再放LLM量化大招!原生4bit量化,成本暴减,性能几乎0损失
【导读】原生1bit大模型BitNet b1.58 2B4T再升级!微软公布BitNet v2,性能几乎0损失,而占用内存和计算成本显著降低。
还没过几天,原班人马带着第二代BitNet v2来了!
这次性能几乎0损失,但占用内存和计算成本显著降低!
论文链接:https://arxiv.org/abs/2504.18415
先前的开创性研究,如BitNet b1.58,已经证明:
即使将权重量化到1.58位,也能在极大降低推理成本(延迟、内存占用、吞吐量、能耗)的同时,保持与全精度模型相当的性能。
然而,激活值异常点让1比特大语言模型部署变得复杂。
BitNet v2框架,首次实现对1比特LLMs的原生4比特激活值量化。
针对注意力机制和前馈网络中激活值的异常分布问题,在激活值量化前,H-BitLinear模块施加在线Hadamard变换(Hadamard transformation)。
图1上半部分:BitNet v2整体架构以及H-BitLinear模块的概览
这种变换能将尖锐的激活值分布转化为更接近高斯形态的平滑分布,从而适配低比特表示。
原生4比特计算
得益于下一代GPU(如GB200)等硬件的进步,深度学习领域正迅速采用量化和低比特推理技术。
新硬件原生支持4比特计算,为大规模模型带来显著的效率提升。
计算机中32、16、8比特浮点数不同的表示方法
然而,尽管BitNet b1.58将权重量化为1.58比特,缓解了内存带宽瓶颈,但它的激活值仍保持8比特精度。
模型无法充分利用新硬件的4比特计算能力。
实现更低比特宽度的激活值对于最大化硬件利用率至关重要,尤其是在批处理推理场景中,高效的内核设计尤为重要。
关键问题在于LLM内部激活值的不均匀分布。
虽然注意力机制和前馈网络(FFN)层的输入通常呈现类高斯分布,适合量化,但中间状态(最终投影前的输出)往往包含显著的离群值,阻碍了激进的低比特量化。
图1下半部分:注意力层中输出投影Wo和前馈网络中下投影Wdown的激活分布情况
对输入采用4比特量化和对中间状态使用8比特稀疏化,可以解决这一问题。
尽管性能损失较小,但稀疏化并不适合批处理推理场景的最大吞吐量需求,因为硬件更倾向于密集计算以提升效率。
为弥合这一差距并充分发挥1.58比特LLM在4比特计算中的潜力,研究团队提出了BitNet v2框架,实现了模型全流程的原生4比特激活值,框架核心创新是H-BitLinear。
BitNet v2:原生4位激活
BitNet v2模型基于类似LLaMA的组件构建,包括RMS归一化、SwishGLU激活函数,并完全移除了偏置项(bias)。
BitNet v2的整体架构
与先前的BitNet相比,BitNet v2在注意力模块的输出投影Wo和前馈网络(FFN)的下投影Wdown中,引入了H-BitLinear模块,以专门处理中间状态中出现的异常通道(outlier channels)。
BitNet v2的训练流程分为两阶段:
首先,从零开始使用1.58位权重和8位激活(INT8)进行预训练;
随后,在保持权重量化不变的基础上,将所有线性层(除输入/输出embedding外)进一步微调为4位激活(INT4)。
H-BitLinear模块
BitNet v2采用逐张量平均绝对值量化(per-tensor absmean)策略对权重进行三值量化(也就是{-1, 0, 1}):
关于低比特激活的问题,已有研究指出:
注意力层和前馈网络中前置线性变换的输入激活,通常呈现高斯分布,较适合量化;
而注意力输出(Wo)和FFN下投影(Wdown)的中间状态激活,则往往包含大量离群通道(outlier channels),且大部分值集中于0附近,严重影响低位量化精度。
H-BitLinear可以取代注意力机制输出投影和FFN下投影的标准线性层。
H-BitLinear在激活量化前应用在线哈达玛变换),把中间状态中尖锐、易产生离群值的分布重塑为更易处理的类高斯分布,显著减少1.58比特模型中离群值的影响。
Hadamard变换定义如下:
其中的矩阵乘法采用快速Hadamard变换算法(Fast Hadamard Transform,FHT),其计算复杂度为O(nlogn)。
Hadamard矩阵是一类特殊的正交矩阵。
它的特点是每个元素只能是+1或-1,并且每行(或每列)之间的内积为0,表示彼此正交。
阿达马矩阵的命名来自于法国数学家Jacques Solomon Hadamard。
法国数学家:Jacques Solomon Hadamard
如图2和图3所示,引入Hadamard变换后,中间状态的分布更加接近高斯形态。
这显著减少了离群值数量,使其更适合进行4位激活量化(INT4)。
图2:在使用8位激活时,BitNet b1.58与BitNet v2的激活分布对比。
图3:采用8比特激活值时,BitNet b1.58与BitNet v2在前馈网络Wdown层和注意力机制Wo层的激活值分布对比。
对于8位激活(INT8)和4位激活(INT4)量化策略,分别采用下列策略:
综上,H-BitLinear层的整体矩阵运算可表示为:
其中,LN(⋅)表示层归一化(LayerNorm)。
研究团队从头开始使用8比特激活值训练BitNet v2,与BitNet b1.58相比性能损失微乎其微。
随后,通过少量数据高效微调,模型即可适配原生4比特激活值。
实验结果
实验表明,4比特BitNet v2变体在性能上与BitNet a4.8相当,但在批处理推理场景中提供更高的计算效率。
此外,与后训练量化方法SpinQuant和QuaRot,则几乎全面领先。
比BitNet b1.58更快
BitNet V2与BitNet b1.58比,性能几乎0损失。
BitNet v2及其基线模型的详细实验结果,如表1所示。
在注意力机制和前馈网络(FFN)层的量化前引入哈达玛变换后,模型的困惑度(perplexity)下降极小。
对于8比特激活值,BitNet v2相较于BitNet b1.58表现出更高的性能,在1.3B、3B和7B模型规模上,终端任务的平均准确率分别提升了0.16%、0.49%和0.61%。
此外,BitNet v2支持所有线性层的原生4比特激活值,从而显著提升了批处理推理的效率。
在使用INT4(4比特整数)激活值时,BitNet v2的困惑度与BitNet a4.8相当,同时在3B和7B模型的下游任务中展现出更优的性能。
表1:BitNet v2、BitNet a4.8与BitNet b1.58在终端任务上的困惑度及性能表现
表2和表3分别总结了BitNet v2(8比特激活,a8)和BitNet v2(4比特激活,a4)在低比特注意力机制下的详细结果。
研究人员对QKV状态采用了RoPE(旋转位置编码)后的量化方法。
QKV头通过absmax函数直接量化为无符号整数,无需任何校准数据集。
如表2和表3所示,采用3比特KV缓存的BitNet v2在3B和7B模型上的准确率与使用全精度KV缓存的模型相当。
表2:BitNet v2在终端任务上的零样本准确率,其中激活使用8位,而QKV状态的位宽则有所不同。
表3:BitNet v2在终端任务上的零样本准确率,其中激活使用4位,而QKV状态的位宽则有所不同。
与其他后训练量化方法的对比
BitNet v2 (a4)与主流的后训练量化基线方法进行了对比,包括SpinQuant和QuaRot,在1.3B参数规模的模型上进行了评测。
QuaRot通过引入随机Hadamard变换以缓解特征离群问题,SpinQuant则使用了可学习的旋转矩阵(rotary matrix)。
随后,这两种方法分别采用GPTQ和absmax策略,将权重和激活量化到4位。
由于BitNet b1.58沿用训练时使用的absmean函数进行权重量化,而非使用GPTQ。
在各项指标上,BitNet v2稳拿第一,具体结果见表4。
表4:BitNet v2、QuaRot和SpinQuant在各项下游任务上的困惑度(Perplexity)与零样本准确率(Zero-shot Accuracy)对比
另外,在Hadamard变换对不同模型尺寸(1.3B和3B)影响的实验(见表5)中,研究者发现:
没有旋转处理(No rotation)时,模型直接发散,无法正常训练;
引入Hadamard旋转(无论是权重+激活,还是仅激活),都能显著稳定低位训练,并提高最终准确率。
表5:不同规模下H-BitLinear的Hadamard变换的消融研究。
模型训练、消融实验等其他内容和细节,请参阅原文。
参考资料:
https://arxiv.org/abs/2504.18415
声明:本文转载自新智元,转载目的在于传递更多信息,并不代表本社区赞同其观点和对其真实性负责,本文只提供参考并不构成任何建议,若有版权等问题,点击这里。

游客
- 鸟过留鸣,人过留评。
- 和谐社区,和谐点评。