ICLR2018|阿里巴巴论文:基于交替方向法的循环神经网络多比特量化
消息来源:baojiabao.com 作者: 发布时间:2024-03-29
机器之心发布
作者:徐晨等
ICLR 2018 将于 4 月 30 日在加拿大温哥华开幕,之前机器之心对此届大会的三篇获奖论文分别进行了介绍。在这篇文章中,我们介绍了阿里巴巴的一篇 ICLR 2018论文。
论文原文地址:https://arxiv.org/abs/1802.00150
引言
循环神经网络 (RNN) 在语言模型、机器翻译、语音识别、生成图像标题等很多应用上都取得了非常好的效果。然而,这些模型常常是建立在高维的嵌入 (embedding) 或者多层的循环单元中,包含了大量的参数,使得无法在资源有限的移动端部署。此外,RNN 的计算依赖于与当前的隐状态,只能被顺序执行,因此在执行推断时会造成比较大的延时。在拥有大规模并发请求的服务器端,比如语音识别或者机器翻译等应用,为了满足线上苛刻的响应时间要求,需要部署大量的机器。在这项工作中,我们考虑通过量化参数到二值 {-1,+1} 上来解决上述问题。考虑将模型的权重量化成 1 比特,相对于全精度,直接带来 32 倍的内存压缩。而对 1 比特参数的矩阵乘法,如果不考虑具体实现,相对于全精度乘法,理论上也会带来 32 倍的加速。然而,如果把模型的权重和激活都量化成 1 比特,在循环神经网络中,会带来很大的精度损失。因此,很自然的折中方案就是采用多比特量化(如图 1 所示)。
Figure 1 多比特量化乘法示意
现有的多比特量化方法
1) 均匀 (Uniform) 量化采用下列的 k 比特量化方案:
这样基于规则的量化方法非常容易实现, 但是对于非均匀数据的量化效果很差,而非均匀分布数据在深度神经网络却更为常见。
2) 均衡 (Balanced) 量化通过数据预处理来解决均匀量化的弊端。该方法首先产生 2^k 个间隔,每个间隔大致包含等量的数据。然后该方法将每个间隔的中心线性映射到对应的量化编码中。尽管看起来更有效,但是该方法还是基于规则,而这种规则并不能保证对所有的数据分布都起效果。
3) 贪婪法 (Greedy) 近似通过去解下面的带离散约束的分解问题来实现量化:
对于 k=1, 上述问题存在闭式解。贪婪近似通过逐步量化余量 (residue) 并将其推广到 k 比特 (k>1) 的情形:
每个子步都有最优解
贪婪法非常高效,尽管不能得到一个高精度的解,但是将量化问题建模成一个优化问题的形式还是非常具有启发性的。
4) 改进版 (Refined) 贪婪近似进一步拓展贪婪法以降低量化误差。在上述第 j 步最小化问题中,该方法加上额外一步最小二乘来修正系数
在原文量化卷积神经网络权重的实验中,修正版贪婪法被证实比原始的贪婪法更有效。然而,正如我们下面要讲的,修正版的贪婪法在量化精度方面仍然不能令人满意。
除了上述通用的多比特量化方案以外,还有文章还提出了三值量化,与 1 比特的二值量化相比,三值量化多了可行状态 0。三值量化通过解如下问题
来实现编码。然而,原文并未提出一种高效的解法,相反,作者通过经验,将小于
的元素设成 0, 并对剩余元素采用如上所述的二值量化。三值量化其实本质上等价于此处的 2 比特量化,唯一不同的地方在于多了一个
的约束。当二值编码被固定以后,最优系数
(或者
) 类似地可以通过最小二乘得到。
基于交替方向法的多比特量化方案
接下来将介绍本文提出的量化方法,同样我们也是通过解上述的优化问题来实现量化。为了简单起见,首先考虑 k = 2 的情形,如果
和
已知且满足
≥
,那么可行编码即被限制为以下四种情况
。对于 w 中的任意元素 w, 其编码都是通过最小二乘来确定。我们相应地可以将整个坐标轴分成四份,落在某个区间上的 w 分别对应其中一个量化编码。由最近邻条件可得区间的边界即为量化编码的中间值,也就是
、0 以及
。下图给出一个示意。
Figure 2 当实系数固定时,最优 2 比特编码示意
对于任意 k 比特量化问题,假设
已知,我们可以类似地将整个坐标轴分成
个区间,其边界同样通过相邻可行编码的中点来划分。如果直接将待量化的实数 w 与所有区间边界进行比较以确定对应编码,总共需要
次,当 k 比较大,这种操作非常不经济。事实上,我们可以利用可行编码全集 v 中元素单调递增的性质,将 v 均匀分成两个子集:
和
, 其中 m 表示 v 的长度。如果
, 其可行编码即被限制在子集
上。相反如果
, 其可行编码即被限制在子集
上。通过递归地将可行编码子集均匀划分,我们只需要 k 次比较就可以得到最优编码。该过程可以看成是一个二叉搜索树,我们在下图中给出了一个 k=2 时的简单示意。一旦得到量化编码,即可将其一一映射到对应的二值向量
。
Figure 3 二叉搜索树将
次比较降为 k 次比较
基于上面的发现,我们重新来考虑上一节中介绍的改进版贪婪近似。经过最小二乘修正实系数之后,二值编码
不再是最优,而该方法却仍将其固定。为了进一步改进,交替最小化实系数和二值编码变成了一个很自然的选择。一旦用二叉搜索树得到最优的
, 可以将其固定,并采用最小二乘更新
。在真实实验中,以贪婪法得到的解作初始化,我们发现只需要两步交替迭代就足以得到高精度的解。
实验结果
Table 1 不同方法近似 PTB 数据集上训练好的 LSTM 的权重。其中 FP 表示全精度
Table 2 不同方法近似 PTB 数据集上训练好的 GRU 的权重
我们在语言模型上进行量化实验,分别测试了 LSTM 和 GRU 两种架构。因为
实验是去预测下一个单词,其效果采用单字复杂度来衡量 (perplexity per word, 简写成 PPW)。为了检验所有的算法量化精度,我们首先对训练好的全精度权重做近似 (没有量化激活或者重训练),结果如表 1 和表 2 所示。注意到均匀量化和均衡量化是基于规则的,其目标并不在于最小化误差,因此这两种方法会得到差很多的结果。我们还在其他数据集上重复了上述实验,对于两种循环神经网络结构 LSTM 和 GRU,结果都与此处相似。Table 3 PTB 数据集上多比特量化 LSTM 和 GRU 的测试 PPW,其中均匀量化和均衡量化为现有论文中的结果,改进版贪婪法为我们自己实现的结果。
Table 4 WikiText-2 数据集上多比特量化 LSTM 和 GRU 的测试 PPW。
Table 5 Text-8 数据集上多比特量化 LSTM 和 GRU 的测试 PPW
我们还进行了权重和激活同时量化的实验,结果如表 3、4 和 5 所示。从中可以看到,本文提出的交替方向法明显好过现有其他量化方法。即使与表现最好的改进版贪婪法相比,交替方向法实现类似的精度大概可以少用一个比特。
我们还在 CPU 中实现了矩阵向量的二值乘法,其结果如表 6 所示。
Table 6 CPU 中二值乘法与全精度乘法的时间比较
小结
在这个工作中,我们主要考虑神经网络的多比特量化压缩加速问题。我们发现,如果编码的实系数固定,那么离散的二值编码 {-1,+1} 可以通过二叉搜索树高效的求解。基于这个发现,我们相应地提出交替方向法。我们将该方法用于量化语言模型中的 LSTM 和 GRU 结构,与全精度模型相比,通过 2 比特量化,我们可以减少约 16 倍的内存消耗,以及在 CPU 上实现约 6 倍的真实推断加速,而只产生少量的准确率损失。通过 3 比特量化,该方法在准确率上可以实现几乎没有损失甚至超过原始模型,并减少约 10.5 倍的内存消耗,以及在 CPU 上实现约 3 倍的真实推断加速。这些结果都远远优于现有量化方法的结果。
本文为机器之心发布,
转载请联系本公众号获得授权
。?------------------------------------------------
加入机器之心(全职记者/实习生):hr@jiqizhixin.com
投稿或寻求报道:editor@jiqizhixin.com
广告&商务合作:bd@jiqizhixin.com
相关文章
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状
2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因
2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓
2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?
2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元
2023-02-17 18:58:09
- 科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯
2023-02-17 18:46:15
- 华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比
2023-02-17 18:42:49
- 小米MAX4手机上市日期首发价格 骁龙720打造大屏标准
2023-02-17 18:37:22
- 武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱
2023-02-16 15:53:18
- 谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠
2023-02-16 13:34:45
- 巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注
2023-02-13 16:49:06
- 人手不足 韵达快递客服回应大量包裹派送异常没有收到
2023-02-07 15:25:20
- 资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东
2023-02-02 09:24:38
- 三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办
2023-01-24 10:10:02
- 华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone14
2023-01-06 20:27:09
- 芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?
2022-12-02 17:25:17
- 华为暂缓招聘停止社招了吗?官方回应来了
2022-11-19 11:53:50
- 热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全
2022-11-16 16:59:09
- 东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?
2022-10-22 15:21:55
- 苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次
2022-10-03 22:13:45