点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者 秦浩桐
量子位 转载 | 公众号 QbitAI

近年来,预训练语言模型在自然语言处理上表现出色,但其庞大的参数量阻碍了它在真实世界的硬件设备上的部署。

近日,机器学习顶会ICLR 2022接收论文结果已经正式公布,至少有9项工作展示了神经网络量化方向的相关进展。

本文将介绍首个用于自然语言任务的全二值量化BERT模型——BiBERT,具有高达56.3倍和31.2倍的FLOPs和模型尺寸的节省。

这项研究工作由北京航空航天大学刘祥龙教授团队、南洋理工大学和百度公司共同完成。

预训练语言模型在自然语言处理上表现出色,但其庞大的参数量阻碍了它在真实世界的硬件设备上的部署。

现有的模型压缩方法包括参数量化、蒸馏、剪枝、参数共享等等。

其中,参数量化方法高效地通过将浮点参数转换为定点数表示,使模型变得紧凑。

研究者们提出了许多方案例如Q-BERT[1]、Q8BERT[2]、GOBO[3]等,但量化模型仍旧面临严重的表达能力有限和优化困难的问题。

幸运的是,知识蒸馏作为一种惯用的辅助优化的手段,令量化模型模仿全精度教师模型的特征表达,从而较好地解决精度损失问题。

在本文中,来自北航、NTU、百度的研究人员提出了BiBERT,将权重、激活和嵌入均量化到1比特(而不仅仅是将权重量化到1比特,而激活维持在4比特或更高)。

这样能使模型在推理时使用逐位运算操作,大大加快了模型部署到真实硬件时的推理速度。

我们研究了BERT模型在二值化过程中的性能损失,作者在信息理论的基础上引入了一个高效的Bi-Attention(二值注意力)机制,解决前向传播中二值化后的注意力机制的信息退化问题;提出方向匹配蒸馏(Direction-Matching Distillation)方法,解决后向传播中蒸馏的优化方向不匹配问题。

图 1 BiBERT的整体框架图

BiBERT首次证明了BERT模型全二值化的可行性,在GLUE数据集上的准确性极大地超越了现有的BERT模型二值化算法,甚至超过了更高比特表示的模型。

在模型计算量和体积上,BiBERT理论上能够带来56.3倍31.2倍的FLOPs和模型尺寸的减少。

方法

Bi-Attention:二值化注意力机制

我们的研究表明,在BERT模型的注意力机制中,softmax函数得到的归一化注意力权重被视为遵循一个概率分布,而直接对其进行二值化会导致完全的信息丧失,其信息熵退化为0(见图2)。

图 2 直接对softmax函数应用二值化导致完全的信息丧失

一个缓解这种信息退化的常用措施是,在应用sign函数之前对输入张量的分布进行移位,可以表示为:

其中,移位参数也被认为是二值化的阈值,希望能使二值化后的熵达到最大。

我们注意到,softmax函数是保序的,这意味着存在一个固定的阈值使二值化表示的信息熵最大化。

受到Hard Attention的启发[4],作者用bool函数来二值化注意力权重A:

通过应用bool函数,注意权重中值较低的元素被二值化为0,因此得到的熵值最大的注意权重可以过滤出关键部分的元素。

最终二值注意力机制可以被表示为:

其中,BV是通过sign函数二值化得到的value值,BA是二值化注意力权重,是一个精心设计的Bitwise-Affine矩阵乘法 (BAMM)运算器,由和位移组成,用于对齐训练和推理表征并进行有效的位计算。

DMD: 方向匹配蒸馏

作者发现,由于注意力权重是两个二值化的激活直接相乘而得。

因此,处于决策边缘的值很容易被二值化到相反一侧,从而直接优化注意力权重常常在训练过程中发生优化方向失配问题。(见图3)

图 3 优化方向失配

因此,作者设计了新的蒸馏方案,即针对上游的Query、Key和Value矩阵,构建相似性矩阵进行对激活的蒸馏:

其中,||·||表示L2正则化。之前的研究工作表明,以这种方式构建的矩阵被认为能够反映网络对于特定模式的语义理解,并无视尺度和数值大小影响,能够更加稳定地表示特征之间的内生相关性,更适合二值和全精度网络之间的知识传递。

因此,蒸馏损失可以表示为对隐藏层、预测结果和上述激活相似性矩阵的损失之和:

其中L表示transformer的层数,

实验

作者的实验证明了所提出的BiBERT能够出色地解决二值化BERT模型在GLUE基准数据集的部分任务上精度崩溃的问题,使模型能够稳定优化。

表1表明所提出的Bi-Attention和DMD均可以显著提升模型在二值化后的表现。

表 1 消融实验

表2和表3中,作者展示了BiBERT优于其他BERT二值化方法,甚至优于更高比特的量化方案:

表 2 基于BERT的二值化方法对比(无数据增强)

表 3 基于BERT的二值化方法对比(有数据增强)

其中,50%表示要求二值化后有一半的注意力权重为0,且表中无特殊说明均采用12层的BERT模型进行量化。

此外,作者测量了在训练过程中的信息熵(见图4),作者提出的方法有效地恢复了注意力机制中完全损失的信息熵。

图 4 训练过程中的信息熵

同时,作者绘制了训练时的loss下降曲线和准确率,BiBERT相比于基线明显更快收敛、准确性更高。

图 5 训练时的Loss和准确率曲线

总结

作者提出的BiBERT作为第一个BERT模型的全二值化方法,为之后研究BERT二值化建立了理论基础,并分析了其性能下降的原因,针对性地提出了Bi-Attention和DMD方法,有效提高模型的性能表现。

BiBERT超过了现有的BERT模型二值化方法,甚至优于采用更多比特的量化方案,理论上BiBERT能够带来56.3倍的FLOPs减少和31.2倍的模型存储节省。

希望该的工作能够为未来的研究打下坚实的基础。

BiBERT即将基于百度飞桨开源深度学习模型压缩工具PaddleSlim开源,尽情期待。

PaddleSlim:https://github.com/PaddlePaddle/PaddleSlim

传送门
会议论文:https://openreview.net/forum?id=5xEgrl_5FAJ

Reference
[1] Sheng Shen, Zhen Dong, Jiayu Ye, Linjian Ma, Zhewei Yao, Amir Gholami, Michael W. Mahoney, and Kurt Keutzer. Q-BERT: hessian based ultra low precision quantization of BERT. In AAAI, 2020.
[2] Ofir Zafrir, Guy Boudoukh, Peter Izsak, and Moshe Wasserblat. Q8BERT: quantized 8bit BERT. In NeurIPS, 2019.
[3] Ali Hadi Zadeh, Isak Edo, Omar Mohamed Awad, and Andreas Moshovos. GOBO: quantizing attention-based NLP models for low latency and energy efficient inference. In MICRO, 2020.
[4] Kelvin Xu, Jimmy Ba, Ryan Kiros, Kyunghyun Cho, Aaron Courville, Ruslan Salakhudinov, Rich Zemel, and Yoshua Bengio. Show, attend and tell: Neural image caption generation with visual attention. In ICML, 2015.

*本文系量子位获授权刊载,观点仅为作者所有。

—  —

点个在看 paper不断!

ICLR 2022|唯快不破!面向极限压缩的全二值化BiBERT相关推荐

  1. 天下武功唯快不破,实时分析让企业决策又快又准

    导语: 零点刚过,快递已至.尽管这背后有营销的痕迹,但不得不说双十一已不再是从前的双十一.是什么在支撑双十一变得更快?毫无疑问是技术,尤其是以内存计算为代表的实时分析技术,它正在让商业活动变得有迹可循 ...

  2. Mendix低代码平台,唯快不破

    关注我们牛年牛气冲天 6月4日,企业低代码应用开发全球领导者Mendix宣布,其业内首个一站式低代码平台Mendix 9全面上市.在"后疫情时代",为适应企业数字化转型速度不断加快 ...

  3. 天下武功,唯快不破,论推荐系统的“实时性”

    作者 | 王喆转载自知乎王喆的机器学习笔记 导读:周星驰著名的电影<功夫>里面有一句著名的台词--"天下武功,无坚不摧,唯快不破".如果说推荐系统的架构是那把" ...

  4. Redis 核心篇:唯快不破的秘密

    " 天下武功,无坚不摧,唯快不破! " 学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观.这样会很吃力,而且会出现一看好像自己会,过 ...

  5. 项目启动 ora-00942:_如何解决大型软件项目开发难题?唯快不破!

    目前多数信息管理软件可以满足行业内的通用需求,而在特殊流程和场景定制上成本很高.对于大型软件项目需求方来讲,主要面临三方面难题: l 软件行业专业性强,产品业务和技术实现衔接难: l 供应商及其输出品 ...

  6. 车主无忧:天下武功,唯快不破,神策让我们快人一步

    速度是商业竞争的必杀技.近日,车主无忧与神策数据正式签约合作,神策数据将助力其挖掘数据价值的同时提高企业运营效率.加快产品迭代速度,在商业竞争中快人一步. 车主无忧一直致力于用数据指导工作决策,帮助企 ...

  7. 天下武功无坚不破,唯快不破!

    没有天下第一的武功,但如果你的速度够快(比如接近光速),必然无敌. 11 月 20 日晚,深圳龙岗爱联爱新小区里的 54 辆私家车被刮花,等到车主们调取监控录像后才发现,竟是 4 名年龄都不超过 10 ...

  8. # 天下武功无坚不破,唯快不破!

    没有天下第一的武功,但如果你的速度够快(比如接近光速),必然无敌. 11 月 20 日晚,深圳龙岗爱联爱新小区里的 54 辆私家车被刮花,等到车主们调取监控录像后才发现,竟是 4 名年龄都不超过 10 ...

  9. 2017车载后市场年终回顾:天下武功,唯快不破

    origin: http://www.esmchina.com/news/article/201701191035 短短一年内,百变大屏车机.4G大屏车机迅速成为市场主流并演变成红海市场,速度之快令人 ...

最新文章

  1. 20T数据、百万奖金,同济和武大摘得开放数据创新应用大赛桂冠!
  2. 畅销书《简明的TensorFlow2》作者李卓桓开讲啦!
  3. 【技术综述】深度学习中的数据增强方法都有哪些?
  4. python爬虫取腾讯视频评论
  5. CodeForces 11D(状压DP 求图中环的个数)
  6. char[]:strlen和sizeof的区别
  7. java的vector是什么类_java中vector类
  8. Windows Vista SP1正式版独立安装包
  9. 谷歌将反欺诈系统绕过纳入漏洞奖励计划
  10. Android中文乱码彻底解决
  11. c语言上机字符串,二级C语言上机题库100套(最新)
  12. 十五道Python小案例,学会这些,Python基础已过关!
  13. web前端开发初学者,html的介绍及常用标签
  14. 阿里巴巴Java面试题
  15. 如何 DIY 一台属于你自己的电脑?
  16. 抛物线模拟合地对空导弹轨迹[python][抛物线][地对空导弹轨迹]
  17. Android中的占位符
  18. c++ | 尝试攥写头文件遇到的坑
  19. shell编程之sort、uniq、tr
  20. 2014年如何找到SEO流量的突破口

热门文章

  1. TCP/IP 笔记 1.3 IP:网际协议
  2. 关于C#中编译器保证变量必须初始化规则猜想
  3. 如何解决Python3写入CSV出现‘gbk‘ codec can‘t encode的错误
  4. Datawhale组队学习周报(第005周)
  5. LeetCode实战:两数之和
  6. 技术图文:如何利用C#实现Huffman编码?
  7. Mat 类常用函数用法示例
  8. 上班摸鱼,刚刚发现在 VScode 中可玩魂斗罗,超级玛丽
  9. 一文速览机器学习的类别(Python代码)
  10. 《评人工智能如何走向新阶段》后记(再续6)