剪枝需有的放矢,快手&罗切斯特大学提出基于能耗建模的模型压缩
编者按:本文来自“机器之心”,36氪经授权发布。 作者:思源 最近,快手 Y-Tech 西雅图 AI lab 联合罗切斯特大学等研究者提出了一种基于能耗建模的压缩方法,他们一脉相承的两篇论文分别被 ICLR 2019 和 CVPR 2019 接收。在这篇文章中,我们将介绍这种新型模型压缩的核心思想及主要做法,神经网络压缩也许该走向有目标的前进之路了。 模型压缩的应用 目前快手的手机端应用,基本上都会进行模型压缩,因为不管是能耗、效率,还是推断速度,都需要满足很多条件才能投入使用。不管是将深度学习模型部署到云端还是移动端,模型压缩都必不可少。 快手 Y-Tech 西雅图 AI 团队的负责人刘霁教授表示部署到手机端的模型,例如美颜相机、视频的人脸识别、姿态识别等应用都会经过模型压缩,其重点在于减小模型体积、降低模型能耗,以及保证推断效率。 部署到服务器也面临类似问题,因为每一秒都会有成千上万条调用请求,而这些请求需要在规定时间内得到响应。例如更新一次推荐视频,快手的服务器在接到请求以后需要立即计算,把最合适的 Top-N 视频反馈到客户端,这种响应甚至要控制在几毫秒才能满足用户良好的体验。 正因为有很多实际需求,快手尝试构建更高效和有目的性的模型压缩算法。在本文介绍的这两篇论文中,他们以能耗为约束构建更高效和合理的压缩方法。虽然论文以能耗为目标,但实际上可以把它换成推断时间等不同的度量,因此这类神经网络压缩方法有更广泛的应用。 除了这种适用于各种任务的模型压缩,快手还会提出新方法以构建更紧凑的神经网络,这本质上也是一种模型压缩。例如在 Interspeech 2018 的 oral 论文中,语音组提出了一种能使用下文信息的门控循环单元,该模型能在极低延迟的情况下为快手提供语音识别、语音特效和语音评论等应用。 神经网络压缩新观点 在模型压缩方法中,最常见的就是剪枝、量化和知识蒸馏等,我们认为当参数和运算量减少时,模型的能耗和推断延迟等也都会下降。但实际上,它们与能耗等度量并非简单的正比关系,因此这种「想当然」的做法并非是最优方案。 例如模型剪枝,我们希望删除单个不重要的神经元连接,或者直接删除一组不重要的连接(channel 级的剪枝)。通常情况下,这种剪枝只关注减少参数量(或者模型大小)和运算量,并不考虑硬件条件或具体能耗等约束。刘霁表示经典的模型压缩有一个隐含的假设:「在不同层删除一条边所节省的能量,或者说所提升的效率是等价的。」然而,由于物理硬件的复杂性,这个基本假设实际上并不绝对正确。有时候大模型可能比小模型的能量消耗更少或者推断时间更短。 物理硬件实际上很复杂,如果我们用能耗作为约束,它会由几部分组成:计算和数据加载等产生的能耗。算法工程师一般只关注计算复杂度,且通常不太关注数据加载的能耗。因此刘霁表示:「以前的研究工作对硬件本身缺乏足够的关注,不同的硬件都是用同一个压缩的模型,现在我们需要在充分理解硬件的基础上,设计符合各种硬件的模型。」 刘霁等研究者认为目前的模型压缩缺少一种导向,即为某个明确的目的进行压缩,这种导向对当前模型压缩研究很重要。他表示:「与标准剪枝或量化等压缩方法相比,我们的研究重点在于找到指导模型进行剪枝或量化的目标。标准方法只需要模型变小变瘦就行了,但我们需要一种约束来引导优化模型,例如降低能耗或减少模型推断时间等。」 也就是说,我们应该在给定能耗或延迟的约束下,找到满足约束的最「精准」的模型。为了引入这种约束,我们需要解决两大问题:如何对模型能耗或延迟建模;如何解这种带约束的最优化问题。 针对这两个问题,快手 Y-Tech 联合罗切斯特大学近来提出了两套解决方案,它们一脉相承且分别被 ICLR 2019 和 CVPR 2019 两大顶会接收。以能耗为约束,表明这种模型压缩框架能更有效地剪枝,从而满足各种不同的应用。 基于能耗的模型压缩 总的而言,这两篇论文都在思考如何设计一种深度神经网络,它能在满足给定能耗的情况下最大化准确率。这两篇论文都将这种能耗约束加入到最优化过程,并通过端到端的方法学习如何进行更高效的剪枝。
|