AAAI 2020 | 超低精度量化BERT,UC伯克利提出用二阶信息压缩神经网络

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: 2020 年 2 月 7 日-2 月 12 日,AAAI 2020 将于美国纽约举办。不久之前,大会官方公布了今年的论文收录信息:收到 8800 篇提交论文,评审了 7737 篇,接收 1591 篇,接收率 20.6%。为向读者们分享更多的优质内容、促进学术交流,在 AAAI 2020 开幕之前,机器之心策划了多期线上分享。

1638452800(1).png点击查看链接

上周四,加州大学伯克利分校 Zhewei Yao 博士分享了他的 AAAI 论文《Q-BERT: Hessian Based Ultra Low Precision Quantization of BERT》,本文对此论文进行了详细解读。该研究介绍了一种使用二阶信息进行模型压缩的新型系统性方法,能够在图像分类、目标检测和自然语言处理等一系列具有挑战性的任务中产生前所未有的小模型。

微信图片_20211202214836.jpg


论文地址:https://arxiv.org/pdf/1909.05840.pdf


研究贡献


该论文对基于 BERT 的模型执行超低精度量化,旨在最小化性能下降幅度,同时保持硬件效率。为此,研究者使用了多项新技术,并提出了新模型 Q-BERT。

该研究的贡献如下:


研究者对二阶信息(即 Hessian 信息)进行大量逐层分析,进而对 BERT 执行混合精度量化。研究发现,与计算机视觉领域中的神经网络相比,BERT 的 Hessian 行为存在极大的不同。因此,该研究提出一种基于 top 特征值均值和方差的敏感度度量指标,以实现更好的混合精度量化。这与仅利用均值的研究 [8] 相反。


研究者提出新的量化机制——组量化(group-wise quantization),该方法能够缓解准确率下降问题,同时不会导致硬件复杂度显著上升。具体而言,组量化机制将每个矩阵分割为不同的组,每个组拥有独立的量化范围和查找表。


研究者调查了 BERT 量化中的瓶颈,即不同因素如何影响 NLP 性能和模型压缩率之间的权衡,这些因素包括量化机制,以及嵌入、自注意力和全连接层等模块。


方法


该研究提出的 BERT 量化方法包括:基于 Hessian 信息的混合精度量化,以及用于组量化机制的技术。


和 [7] 一样,微调后的 BERT_BASE 模型包含三部分:嵌入、基于 Transformer 的编码器层、输出层。BERT_BASE 模型的参数大小为:嵌入 91MB、编码器325MB、输出 0.01MB。由于输出层的规模极小,该研究并未对这部分执行量化。也就是说,该研究用不同方式对嵌入和编码器参数执行量化。


量化过程


通用神经网络推断通常按照权重和激活的浮点数精度来执行。量化将网络权重限制为一个有限集,如下所示:

微信图片_20211202214843.jpg


其中 Q 是量化算子,z 是实数输入张量(激活或权重),(t_j , t_j+1] 表示一个区间,j 为实数 (j = 0, . . . , 2^k − 1)。

量化函数 Q 存在多种选择。该研究使用统一的量化函数,张量中的浮点值范围平分 [12, 42],可以用 0, . . . , 2^k − 1 中的无符号整数来表示。但是,研究者选择使用统一的量化函数,以便获得更高效、简便的硬件实现。为了将梯度通过不可微函数 Q 进行反向传播,研究者使用了直通估计器(Straight-through Estimator,STE)。


混合精度量化


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

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

微信图片_20211202214847.jpg


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

微信图片_20211202214850.jpg

幂迭代算法。


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

微信图片_20211202214853.jpg

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

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

微信图片_20211202214857.jpg

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


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

微信图片_20211202214901.jpg


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

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

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

微信图片_20211202214904.jpg

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

组量化

假设输入序列中有 n 个词,每个词有一个 d 维嵌入向量(BERT_BASE 中 d = 768)。在 Transformer 编码器中,每一个自注意力头具备 4 个密集矩阵,即

微信图片_20211202214909.jpg


其中 N_h 是注意力头的数量。这里,W_k、W_q、W_v 和 W_o 分别表示 key、query、值和输出权重矩阵。每个自注意力头按以下公式计算加权和:

image.gif

微信图片_20211202214912.jpg该研究针对基于注意力的模型提出组量化机制。将多头自注意力(MHSA)的密集矩阵中每个注意力头的矩阵 W 看作一个组,这样一共有 12 组。在每个组中,将多个顺序输出神经元看作一个子组,每个子组具备自己的量化范围。


W_v 的图示见下图 4,研究者将 N_h 值矩阵 W_v 连接为一个三维张量。

微信图片_20211202214915.jpg


图 4:组量化方法概览。该图使用多头自注意力层的值矩阵绘制而成。


实验


研究者在四个下游任务中评估 Q-BERT,这些任务包括情感分类、自然语言推断、命名实体识别和机器阅读理解。Q-BERT 达到了 13 倍的权重压缩率,激活大小和嵌入大小仅为原版的 1/4,且准确率损失在 2.3% 以内。

据作者表示,这是首个将 BERT 以超低精度进行量化,且还能保持性能损失在可接受范围内的工作。


微信图片_20211202214918.jpg

表 1:BERT_BASE 在自然语言理解任务上的量化结果,每个层有 128 个组。出于简洁性和效用考虑,除基线以外的所有模型都使用 8-bits 激活。此外,研究者对比了 Q-BERT 和未使用混合精度量化或组量化的直接量化方法(DirectQ)。

微信图片_20211202214923.jpg

表 2:Q-BERT 组量化在三个任务上的效果。所有任务中量化 bit 的设置均为:权重 4、嵌入 8、激活 8。自上而下,组的数量逐渐增加。为了平衡准确率和硬件效率,其他实验中的组数量均为 128。

微信图片_20211202214925.jpg

表 3:不同模块的量化效果。ew-bits、ep-bits、s-bits 和 f-bits 分别表示词嵌入、位置嵌入、多头注意力层和全连接层所使用的量化 bit。(a) (b) 中,权重和激活 bit 均设置为 8。

微信图片_20211202214929.jpg

图 5:Q-BERT/DirectQ 和基线模型之间的注意力分布 KL 散度。Q-BERT 和基线之间的距离要比 DirectQ 和基线之间的距离短得多。



相关文章
|
30天前
|
安全 物联网 物联网安全
量子通信网络:安全信息交换的新平台
【10月更文挑战第6天】量子通信网络作为一种全新的安全信息交换平台,正逐步展现出其独特的优势和巨大的潜力。通过深入研究和不断探索,我们有理由相信,量子通信网络将成为未来信息安全领域的重要支柱,为构建更加安全、高效、可靠的信息社会贡献力量。让我们共同期待量子通信网络在未来的广泛应用和美好前景!
|
22小时前
|
监控 安全 测试技术
网络信息系统的整个生命周期
网络信息系统规划、设计、集成与实现、运行维护及废弃各阶段介绍。从企业需求出发,经过可行性研究和技术评估,详细设计系统架构,完成设备安装调试和系统集成测试,确保稳定运行,最终安全退役。
7 1
网络信息系统的整个生命周期
|
18小时前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
11 1
|
1天前
|
安全 网络协议 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
|
28天前
|
SQL 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的重要基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升安全意识的有效策略,为读者揭示数字时代下信息保护的核心要义。
本文聚焦网络安全与信息安全领域,详细剖析了网络安全漏洞的形成机理、常见类型及其潜在危害,强调了及时检测与修复的重要性。同时,文章系统介绍了对称加密、非对称加密及哈希算法等主流加密技术的原理、应用场景及优缺点,展现了加密技术在保障数据安全中的核心地位。此外,针对社会普遍存在的安全意识薄弱问题,提出了一系列切实可行的提升措施,如定期安全培训、强化密码管理、警惕钓鱼攻击等,旨在引导公众树立全面的网络安全观,共同构筑数字世界的安全防线。
|
2月前
|
SQL 安全 网络安全
网络安全的盾牌:漏洞防御与信息加密技术
【9月更文挑战第27天】在数字时代,网络安全和信息安全成为维护数据完整性、保密性和可用性的关键因素。本文将探讨网络安全漏洞的概念、成因及预防措施,同时深入讨论加密技术在保护信息安全中的作用。通过分析安全意识的重要性和提升方法,旨在为读者提供一套全面的网络安全知识框架,以增强个人和组织对抗网络威胁的能力。
37 5
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
106 5
|
2月前
|
传感器 物联网 人机交互
物联网:物联网,作为新一代信息技术的重要组成部分,通过智能感知、识别技术与普适计算等通信感知技术,将各种信息传感设备与互联网结合起来而形成的一个巨大网络,实现了物物相连、人物相连,开启了万物互联的新时代。
在21世纪,物联网(IoT)作为新一代信息技术的核心,正以前所未有的速度重塑生活、工作和社会结构。本文首先介绍了物联网的概念及其在各领域的广泛应用,强调其技术融合性、广泛的应用范围以及数据驱动的特点。接着,详细阐述了物联网行业的现状和发展趋势,包括政策支持、关键技术突破和应用场景深化。此外,还探讨了物联网面临的挑战与机遇,并展望了其未来在技术创新和模式创新方面的潜力。物联网行业正以其独特魅力引领科技发展潮流,有望成为推动全球经济发展的新引擎。
|
2月前
|
安全 物联网 网络安全
网络安全的盾牌:漏洞防御与信息保护策略
【9月更文挑战第25天】在数字时代的浪潮中,网络安全和信息安全的重要性日益凸显。本文旨在探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的必要性。通过深入浅出的分析,揭示网络攻防的复杂性和对策的多样性,强调个人和企业应如何构建坚固的防线以保护数据不受威胁。
|
2月前
|
缓存 运维 NoSQL
使用 psutil 获取硬件、网络以及进程信息
使用 psutil 获取硬件、网络以及进程信息
42 0