QuIP方法量化方法的中的不相关性

QuIP方法量化方法的中的不相关性

QuIP量化方法中,有一个概念是不相关性的引入。

对于一个现成的模型参数,重新量化是将神经网络中的权重矩阵从高精度表示(如32位浮点数)转换为低精度表示(如2位或4位整数)的过程。这个过程可以显著减小模型的存储需求和计算复杂度,从而提高模型的运行效率。然而,量化过程可能会导致模型性能下降,因为低精度表示可能无法完全捕捉原始权重矩阵的信息。

QuIP方法通过引入权重矩阵和Hessian矩阵之间的不相关性来解决这个问题。不相关性意味着这两个矩阵的元素在不同坐标轴上的变化程度较小。在量化过程中,这种不相关性有助于确保量化后的权重矩阵能够更好地逼近原始权重矩阵,从而减小量化误差。

为了实现这种不相关性,QuIP方法在自适应四舍五入过程的预处理和后处理阶段使用了随机正交矩阵的Kronecker积。这种方法可以在不显著增加计算复杂度的情况下实现矩阵的不相关性,从而提高量化过程中的准确性。。

这里的不相关性,在含义上有些模糊,它实际的作用其实是将原权重矩阵扩展到了更多的不同坐标轴上的变化。

直观一点来说 ,例如在三维空间中,正交矩阵可以打比方是一个在三维坐标轴里歪着摆放的立方体,而正交矩阵可以通过对角化变成一个摆正的立方体,而这种摆正通过正交矩阵自己就可以实现,只要与自己的逆矩阵相乘即可,因为本质上正交矩阵在任意的坐标轴下它都是相互正交(垂直)的。

以三维空间为例,乘以一个三维的正交矩阵,相当于让它在三维空间中进行了旋转,而要旋转回来,只要知道乘的是什么矩阵,那么乘以它的逆矩阵。

一个三维向量乘以一个Kronecker积矩阵(A ⊗ B)相当于在原始三维空间中进行旋转和缩放,然后在这个旋转和缩放后的空间中再次进行旋转,这个过程比喻得不是非常恰当,只能说感性理解,总之,根本还是看作是对向量在两个正交空间中进行了一系列变换。

因此可以理解,由于正交性意味着随机正交矩阵的列向量是两两正交(垂直)且单位长度的,因此将一个矩阵(如权重矩阵或Hessian矩阵)与随机正交矩阵进行Kronecker积运算时,这些正交列向量会作用于原始矩阵的行和列,从而在新生成的矩阵中产生一组新的正交基,这组新的正交基可以使得新矩阵在不同坐标轴上的分布更加均匀。

另外还有一个重要因素,就是引入了随机性,随机正交矩阵的元素是随机生成的,这种随机性有助于打破原始矩阵之间的相关性,使得新生成的矩阵在不同坐标轴上的分布更加分散,这种分散性有助于实现矩阵之间的不相关性,从而提高量化过程中的准确性。

简单来说就是,产生一个随机的正交矩阵,然后将原权重与该正交矩阵进行Kronecker积运算,由于Kronecker积运算并不会改变原始矩阵的秩,新生成的矩阵仍然保留了原始矩阵的大部分信息。

如果从图像的角度来说,Kronecker积可当相当于对原始图像的每一个像素进行了扩展,如果是乘以单位矩阵,效果那么就类似于图像的缩放,而现在乘的是正交矩阵,则相当于对每一个像素进行了“多轴不变”的扩展操作。

三符风云涌

Leave a Reply