依靠早期 BNN 工作 XNOR-Net 起家的 XNOR.AI 被苹果公司收购,大家曾畅想过这种低功耗、高效能的二值神经网络技术会不会即将开启广阔的应用前景。

在过去的两年时间,我们很难从对技术严格保密的苹果公司获得关于 BNN 技术应用的更多信息,而不论是学界和业界也未出现其他特别亮眼的应用案例。另一方面,随着终端设备数量的暴涨,边缘 AI 应用和市场正在迅速增长: 预计到 2030 年将产生 500 到 1250 亿台边缘设备,边缘计算市场将暴涨到 600 亿美元规模。

这其中有几个目前热门的应用领域:AIoT、元宇宙和机器人终端设备。相关业界正在加速发力技术落地,与此同时 AI 能力已经嵌入到以上领域的诸多核心技术环节中,如 AI 技术在三维重建、视频压缩以及机器人实时感知场景中的广泛应用。在这样的背景下,业界对基于边缘的高能效、低功耗 AI 技术、软件工具以及硬件加速的需求变的日益迫切。

目前,制约 BNN 应用的瓶颈主要有两方面:首先,无法有效缩小和传统 32-bit 深度学习模型的精度差距;第二则是缺乏在不同硬件上的高性能算法实现。机器学习论文上的加速比通常无法体现在你正在使用的 GPU 或 CPU 上。第二个原因的产生可能正是来自于第一个原因,BNN 无法达到令人满意的精度,因此无法吸引来自系统和硬件加速、优化领域的从业者的广泛关注。而机器学习算法社区通常无法自己开发高性能的硬件代码。因此,想要同时获得高精度和强加速效果,BNN 应用或加速器无疑需要来自这两个不同领域的开发者进行协作。

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

BNN 为什么对于计算和内存高效

举个例子,Meta 推荐系统模型 DLRM 使用 32-bit 浮点数来储存权重和激活参数,它的模型大小约为 2.2GB。而一个少量精度下降 (<4%) 的二值版本模型的大小仅为 67.5MB,由此可见二值神经网络可以节省 32 倍的模型大小。这对于储存受限的边缘设备来说具备了非常强的优势。此外,BNN 也非常适合应用在分布式 AI 场景中,例如联邦学习常常对模型权重进行传输和聚合操作,因此模型大小和带宽受限往往成为整个系统的瓶颈。常用的手段是通过增加模型本地优化迭代次数来换取权重传输频率的降低,用这种折中的方法来提升整体效率,如著名的谷歌 FedAvg 算法。但增大本地计算量的策略对端侧用户并不友好,这里,如果采用 BNN 就可以很轻易的降低几十倍的数据传输量。

BNN 的第二个显著的优势是计算方式极度高效。它只用 1bit 也就是两种 state 来表示变量。这意味着所有运算只靠位运算就能完成,借助与门、异或门等运算,可以替代传统乘加运算。位运算是电路中的基础单元,熟悉电路设计的同学应该明白,有效减小乘加计算单元的面积以及减少片外访存是降低功耗的最有效手段,而 BNN 从内存和计算两个方面都具备得天独厚的优势,WRPN[1]展示了在定制化 FPGA 和 ASIC 上,BNN 对比全精度可获得 1000 倍的功耗节省。更近期的工作 BoolNet [2]展示了一种 BNN 结构设计可以几乎不使用浮点运算并保持纯 binary 的信息流,它在 ASIC 仿真中获得极佳的功耗、精度权衡。

第一个精度上 80% 的 BNN 是什么样子的?

来自德国 Hasso Plattner 计算机系统工程研究院的 Nianhui Guo 和 Haojin Yang 等研究者提出了 BNext 模型,成为第一个在 ImageNet 数据集上 top1 分类准确率突破 80% 的 BNN:

 

图 1 基于 ImageNet 的 SOTA BNN 性能对比

What next? 

BNext 作者在论文中提到的,他们和合作者们正积极在 GPU 硬件上实现并验证这个高精度 BNN 架构的运行效率,未来计划扩展到其他更广泛的硬件平台上。然而在编者看来,让社区对 BNN 重拾信心,被更多系统和硬件领域的极客关注到,也许这个工作更重要的意义在于重塑了 BNN 应用潜力的想象空间。从长远来看,随着越来越多的应用从以云为中心的计算范式向去中心化的边缘计算迁移,未来海量的边缘设备需要更加高效的 AI 技术、软件框架和硬件计算平台。而目前最主流的 AI 模型和计算架构都不是为边缘场景设计、优化的。因此,在找到边缘 AI 的答案之前,相信 BNN 始终都会是一个充满技术挑战又蕴涵巨大潜力的重要选项。

本文转自公众号机器之心,更多内容请查阅 https://mp.weixin.qq.com/s/CePooEhCdIxpedEbGn0ujQ

 

 

 

 

内容中包含的图片若涉及版权问题,请及时与我们联系删除