自从15年前引入深度学习以来,人工智能(AI)的计算需求大幅增长。连续的实验表明,深度神经网络(DNN)越大,它能做的事情就越多。反过来,开发人员利用多处理器硬件的可用性来构建模型,现在纳入了数十亿个可训练参数。
DNN容量的增长现在超过了摩尔定律,在一个依赖硅尺度来降低成本不像以前那么确定的时代。根据芯片制造商AMD的数据,在最近几代中,连续节点的晶圆成本以更快的速度增长,抵消了将晶体管更密集地组装在一起所节省的成本图1).加州大学伯克利分校(University of California, Berkeley)电子工程与计算机科学系助理教授邵雅坤(Yakun Sophia Shao)表示:“我们再也不能从摩尔定律中免费获得午餐了。”
虽然云服务器可以支持巨大的DNN模型,但规模的快速增长给边缘计算机和嵌入式设备带来了问题。智能音箱和类似产品已经证明,推理功能可以卸载到云服务器上,而且看起来仍然响应迅速,但消费者越来越担心自己的谈话内容会通过互联网传输到运营商的数据库中。对于自动驾驶汽车和其他机器人,移动原始数据产生的往返延迟使实时控制几乎不可能。
专门的加速器可以提高低功耗处理器支持复杂模型的能力,使在智能手机上运行图像识别模型成为可能。然而,研发的一个主要重点是设法使核心模型比基于服务器的同类产品更小、更节能。这项工作开始于DNN架构的开发,如ResNet和Mobilenet。Mobilenet的设计者认识到,卷积层中使用的滤波器是许多图像识别dnn共同使用的,需要许多冗余的乘法加运算应用,这些运算构成了这些算法的主干。Mobilenet的创建者表明,通过将这些过滤器分割成更小的二维卷积,他们可以将所需的计算次数减少80%以上。
进一步的优化是层融合,连续的操作通过一层以上的权值计算和激活操作漏斗数据。虽然这不会减少计算的次数,但它有助于避免重复地从主存加载值;相反,它们可以暂时存储在本地寄存器或缓存中,这可以大大提高能源效率。
十多年前,斯坦福大学的一个团队在2010年国际计算机架构研讨会上发表的一项研究表明,执行计算的逻辑电路所消耗的能量远远少于主存进出所需要的能量。深度学习依赖于大量的参数和数据样本,使得记忆的效果比许多早期的算法更加明显。
与主存相比,访问缓存和本地暂存盘在能量和延迟方面的开销要小一些,但是很难充分利用这些本地内存。由Shao和同事开发的基准测试系统Gemmini显示,即使是在多个并行核之间分割执行的决定也会影响硬件设计的选择。在ResNet-50的一次测试中,Shao指出,卷积层“可以从更大的刮板中获得大量好处”,但在8个或更多核在同一层上并行工作的情况下,模拟表明更大的二级缓存更有效。
降低决定每个神经元对输出贡献的计算精度,同时也减少了计算所需的内存带宽和能量。现在,大多数边缘ai处理器都并行使用许多8位整数单元,而不是专注于加速训练期间使用的32位浮点运算。一个32位浮点单元所占用的空间可以容纳10多个8位乘数。
深度学习依赖于大量的参数和数据样本,使得记忆的效果比早期的算法更加明显。
为了进一步减少内存带宽,像Cadence Design Systems这样的核心开发者已经将压缩引擎放到了他们的产品中。Cadence的业务发展集团总监普林•德赛(Pulin Desai)表示:“我们非常关注重量压缩,但也有大量数据输入,所以我们压缩张量,并将其发送到执行单元。”数据在移动到执行管道之前会被动态解压。
压缩和精确还原技术试图保持每一层的结构。更激进的技术试图利用在许多大型模型中发现的冗余。通常,单个神经元对一层输出的影响接近于零;其他神经元对最终结果的影响要大得多。许多边缘ai处理器利用这一点来剔除那些在到达算术单元之前涉及到零权重的操作。一些修剪技术将对神经元输出影响很小的权值强制为零,以提供更大的节省空间。
非结构化剪枝使得很难有效地为许多处理器的单指令多数据(SIMD)管道提供数据。即使为了节省能源而剔除了零权重计算,它们也会导致执行单元处于空闲状态。软件编译和在运行时使用硬件地址生成器的组合会重新排序操作,以便将尽可能多的有用计算打包到每个SIMD组中。任何涉及零操作数的操作都将保持不变,但硬件将保持管道的满状态。
如果在任何情况下都不运行DNN,还可以进一步节约成本。高通(Qualcomm)驻阿姆斯特丹研究小组的高级工程师伯特•穆恩斯(Bert Moons)表示,一种方法是观察视频连续帧之间的差异:DNN只对发生变化的部分起作用。另一种方法是在使用主神经网络之前,使用预处理层来确定图像的哪些部分是重要的。例如,预处理层可以过滤掉天空等区域,在这些区域中,很少有对目标检测任务重要的视觉信息。
知识蒸馏提供了在大型模型中寻找节约的另一种途径。在本例中,原始模型充当更紧凑的学生模型的教师,该学生模型不仅使用原始输入数据,还使用来自教师神经网络内部的信息进行训练。对于图像识别任务,一种常见的技术是让教师给学生它生成的训练图像在不同类别中的概率,而不是它将提供给用户的最终预测。有了这些额外的信息,学生网络的表现通常比那些只接受教师分类训练的学生表现得更好。
知识蒸馏提供的压缩量变化很大。在某些情况下,节省的成本是最小的,但在语言方面,学生制作的模型比老师制作的模型小18倍,而且在准确性上也只遭受了很小的损失。
到目前为止,在许多使用蒸馏进行的实验中,大小和结构对较小的学生网络接近教师准确性的能力有重大影响。这一观察结果有助于推动自动神经体系结构搜索的工作,其中使用机器学习和进化算法试图找到给定精度水平和计算开销的模型参数的最佳组合。
在他们的工作中,来自暗物质人工智能研究和莫纳什大学的一个团队决定专注于提取训练有素的DNN内部的块,而不是整个网络,试图找到给定尺寸和精度的最佳结构组合。使用目前的蒸馏方法,教师的选择可能不会产生太大的差异。暗物质人工智能小组发现,他们可以切换到一个比原来小10倍的老师,并构建一个学生,其精度与从更大的模型中得出的学生相同。
安德鲁·戈登·威尔逊(Andrew Gordon Wilson)在纽约大学的团队和谷歌Research在2021年夏天发表的一项研究质疑了教师是否会传递人们期望的知识。学生网络通常可以根据他们接受的训练表现良好,但在测试中,即使教师和学生网络具有相同的结构和能力,他们给老师提供的答案也不同。
“这意味着我们不能期望学生表现得像老师一样。所以,如果我们相信老师是一个很好的榜样,那么我们就很难对学生有同样的信心。”“我觉得很有趣的是,很难实现良好的蒸馏损失。这是一个比我们通常在分类中遇到的更困难的优化问题。这表明,当我们脱离标准损失函数时,训练现代深度网络可能会困难得多。”
与世界上大部分的dnn一样,需要做更多的工作来了解这些系统是如何一般化的,以及如何转化为更好的压缩。然而,研究已经发现了许多方法来避免加入正在云服务器上训练运行的dnn的参数军备竞赛。
进一步的阅读
Howard, a.g., Zhu, M, Chen, B., Kalenichenko, D., Wang, W., Weyand, T., Andreetto, M., and Adam, H.。
Mobilenets:用于移动视觉应用的高效卷积神经网络arXiv预印本arXiv: 1704.04861, 2017年
H.等。
Gemmini:通过全栈集成实现系统深度学习架构评估58年会议纪要th年度设计自动化会议(DAC), 2021年12月
李晨,彭杰,袁璐,王庚,梁歆,林璐,常歆。
基于知识蒸馏的块智慧监督神经结构搜索IEEE/CVF计算机视觉与模式识别会议论文集(CVPR),2020年
斯坦顿·S.,伊斯梅洛夫,P.,基里琴科,P.,阿莱米,A.A.和威尔逊,A.G.
知识蒸馏真的有用吗?arXiv预印本arXiv: 2106.05945,2021年
©2022 0001 - 0782/22/1 ACM
如果您不是为了盈利或商业利益而制作或分发本作品的部分或全部,并在第一页注明本通知和完整引用,则允许您免费制作本作品的部分或全部数字或纸质副本,供个人或课堂使用。本作品的组成部分必须由ACM以外的其他人享有版权。信用文摘是允许的。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org或传真(212)869-0481。
数字图书馆是由计算机协会出版的。版权所有©2022 ACM股份有限公司
没有发现记录