欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

AAAI 2020 | 超低精度量化 BERT,加州大学伯克利分校提出用二阶信息压缩神经网络

最编程 2024-04-02 22:26:25
...

研究者探索了混合精度量化,即对敏感度较高的层分配更多 bit,以保持性能。为此研究者开发了 Hessian AWare Quantization (HAWQ)。由于每个层 Hessian 矩阵的大小为 7M × 7M,因此存在一个常见的误解:计算二阶信息并不可行。但是,Hessian 谱可以通过矩阵无关的幂迭代方法来计算,该方法无需显式信息。

为方便读者理解,这里以第一个编码器层为例。将该层的梯度标注为 g_1,对于和 g_1 具备相同维度的随机向量 v,存在

网络异常,图片无法展示
|


其中 H_1 是第一个编码器层的 Hessian 矩阵。第二个方程来自于「v 独立于 W_1」这一事实。然后利用幂迭代计算 top 特征值,如附录中算法 1 所示。λ_i 表示第 i 个编码器层的 top 特征值。

网络异常,图片无法展示
|

幂迭代算法。


图 2 展示了 BERT_BASE 中不同层的 top Hessian 特征值的分布情况。不同层的特征值数量不同,尽管所有层的结构和大小均相同。

网络异常,图片无法展示
|

图 2:从 (a) 到 (d):不同编码器层在 SST-2、MNLI、CoNNL-03、SQuAD 任务上的 top 特征值分布情况。

对于 top 特征值较小的层(图 1 中比较平坦的损失分布),会执行更具攻击性的量化。但是,研究者发现,仅基于平均 top 特征值来分配 bit 的做法不适用于很多 NLP 任务。

网络异常,图片无法展示
|

图 1:不同层在 MNLI 和 CoNNL-03 任务上的损失分布,该分布图是通过沿着 Hessian 矩阵的前两个主要特征值扰动参数绘制而成的。铜球表示参数空间中 BERT 模型的收敛点。这些层表明较平坦的曲率会被量化为较低精度。


为了解决此问题,研究者使用以下度量指标来替代仅使用均值的方法:

网络异常,图片无法展示
|


其中 λ_i 是 H_i top 特征值的分布,基于 10% 的训练数据集计算得到。接下来,研究者基于选择的精度设置执行量化感知的微调(quantization-aware fine-tuning)。

研究者强调了一个重要的技术点:该方法预计,在执行量化前,训练模型已收敛至局部极小值。必要的最优性条件是零梯度和正曲率(即正 Hessian 特征值)。

根据分析,研究者发现,在 MNLI、CoNLL-03 和 SST-2 这三项任务中,top Hessian 特征值确实为正值。但针对 SQuAD 微调后的 BERT 模型无法收敛至局部极小值,参见图 2d 中的 Hessian 特征值,那里存在非常大的负特征值。直接可视化损失分布也可以证明这一点,详见下图 3:

网络异常,图片无法展示
|

图 3:不同层在 SQuAD 任务上的损失分布,该分布图是通过沿着 Hessian 矩阵的前两个主要特征值扰动参数绘制而成的。铜球表示参数空间中 BERT 模型的收敛点。