我的网站

         
当前位置: 主页 > 我的网站22 >

ICML 2023 | 达成无振荡模型量化?港科,Meta 提出新的量化训练

时间:2024-02-11 02:34 来源:网络整理 转载:我的网站

随着现在模型越来越巨大,模型压缩也显得越来越重要。量化模型是模型压缩的其中一种算法,但在训练量化模型的时候,训练过程和模型训练结果会因为量化本身的离散性而产生一种模型权重振荡现象(Weight Oscillation Phenomenon)。之前只有一篇2022年高通的工作对于有对于权重振荡现象的研究,但他们的研究仅实验在了量化相对简单的CNN上。

我们的工作发现了现在主流的模型权重量化方法LSQ(Learned Step Size Quantization)会加剧权重振荡现象,导致训练过程的导数不稳定,和使得模型收敛到不好的local minima。

基于上述发现,我们在量化难度更高的Vision Transformer上研究权重振荡现象,并提出了统计权重量化方法StatsQ(Statistical Weight Quantization)去取代LSQ,和信心引导退火CGA(Confidence-Guided Annealing)算法去帮助权重逃离振荡装态,实现零振荡模型并更好的收敛。

论文地址:http://proceedings.mlr.press/v202/liu23w/liu23w.pdf

代码地址:https://github.com/nbasyl/OFQ

随着模型的规模增加,模型量化是经常用来压缩模型大小和提升神经网路运算速度的实用方法,能使得原本计算量庞大的模型,可以在有限的资源上运行。虽然模型量化的算法一直推成出新,但关于权重振荡现象和Vision Transformer量化的工作少之又少,因此我们的工作利用Vision Transformer来研究权重振荡现象背后真正的成因。

文章首先发现,现在主流的量化算法LSQ(Learned Step Size Quantization)中的learnable scaling facor会加剧模型训练时的权重振荡现象,并在下图中视觉化了learnable scaling facor在个个不同神经网路模块都有振荡的现象。

出于好奇,我们可视化了收敛后的模型,并发现模型的权重会蜷缩在量化临界点(Quantization Threshold)附近,因此在最后收敛的过程会使得权重来回在相邻的量化节点跳动,使得模型无法收敛。

我们追踪了这些靠近量化临界点的权重,并发现这些权重的组成并不是固定的,而是随着训练的过程会不段变动,换句话说,不段的有权重进入靠近临界点的区间,也不断的有权重离开。

结合了上述我们的发现,我们首先提出了StatsQ(Statistical Weight Quantization)取代LSQ,StatsQ参照了maximum information entropy theory利用了权重的统计值去计算scaling factor,借此移除了离群权重对学习scaling factor的负面影响。

除此之外,利用了我们上述发现的权重组成和收敛特性,我们提出了信心引导退火CGA(Confidence-Guided Annealing)去帮助权重逃离振荡装态并收敛到更好的局部最小值,我们在每次更新权重的时候只更新靠近量化临界值的权重,并冻结了剩余的权重。这个方法是基于我们认为远离量化临界值的权重相比于靠近量化临界值的权重已经收敛,并且有着更高的信心,所以可以不去更动他们。我们接着可视化了scaling factor在CGA的训练过程中的变化并发现经过一定的更新次数,StatsQ停止了变化,意味着所有的权重都已经成功逃离了振荡装态,也因此得到了一个收敛到更好局部极小的零振荡模型。

我们将我们提出的方法统称维Oscillation Free Quantization (OFQ) 并用于 DeiT-T, DeiT-S 以及 Swin-T的网路结构上,且都取得了远超state-of-the-art的结果。可以看出随着量化位宽的递减,量化难度的增加,OFQ的优势越发明显。

论文代码和模型已经开源,感兴趣的读者可以试用。

更多内容,点击下方关注: