近日,深鉴科技的 ESE 语音识别引擎的论文在 FPGA 2017 获得了唯一的最佳论文 ESE: Efficient Speech Recognition Engine with Sparse LSTM on FPGA。该项工作聚焦于使用 LSTM 进行语音识别的场景,结合深度压缩以及专用处理器架构,使得经过压缩的网络在 FPGA 能够实现超越 Pascal Titan X GPU 一个数量级的能效比。论文中所描述的 ESE 语音识别引擎也是深鉴科技 RNN 处理器产品的原型。
深鉴科技是一家具备神经网络压缩编译工具链、深度学习处理器 DPU 设计、FPGA 开发与系统优化等技术能力的初创公司,团队一系列研究工作发表于 NIPS 2015,ICLR 2016,FPGA 2016,ISCA 2016,NIPS 2016 Workshop,FPGA 2017 等顶级会议,并与 DeepMind 共同获得 ICLR 2016 最佳论文、NIPS 2016 Workshop on EMDNN 最佳论文提名。
深鉴科技于 2016 年 1 月设计出一套基于 DPU 的一整套深度学习硬件解决方案,包括 DPU 的芯片架构、DPU 编译器、硬件模块(订制的 PCB 板)三部分。
针对 FPGA 2017 最佳论文以及深鉴科技,雷锋网采访了深鉴科技 CEO 姚颂。
雷锋网:绝大部分论文都是为了解决问题,深鉴科技的这篇论文的核心灵感来自于哪里?
一直以来,深度学习计算遇到的最大瓶颈其实是带宽问题,而非计算本身。为了实现高效的深度学习计算,我们必须在软硬件同时进行优化,不仅算法上压缩到更小,硬件上更要支持好压缩后的深度学习算法。
为了解决带宽问题,GPU 的 Memory 从 DDR3 ,DDR4,一直升级到了 HBM。同时,GPU 也从支持双精度与单精度,即 64 个比特或者 32 个比特表示一个参数,升级至支持 Int8 型变量,也即 8 比特表示一个变量。
我们一直在思考如何更优化和高效地解决带宽问题,韩松(该论文的第一作者,深鉴科技联合创始人)的研究方向是使用稀疏化方式让深度学习更快、更准、更轻量,该方式的优点是降低了带宽的需求。由于深度学习里的特征表示本身就是稀疏的,因此我们做一个直接的剪枝压缩来减少带宽的使用。韩松之前做过一项名为 EIE (Efficient Inference Engine)的研究并发表在 ISCA 2016 ,该项研究主要针对于卷积神经网络里的全连接层,但并不能适应语音识别这样的复杂场景。因此在结合实际应用后,我们设计出一套更为实用化的 ESE 架构,针对语音识别和 RNN 做了非常多的修改,并且将它实用化了。
这些就是该论文灵感的来源。
雷锋网:这篇论文主要在哪些方面有着较大的突破?
在软件和硬件两个方面均有着一定的突破。
软件方面,我们提出了 Load-balance-aware pruning。除了在纯算法上追求压缩率,还会考虑到最终要多核运行并行加速的时候不同核心之间的负载均衡,这种加速差其实属于最优的方式。
在硬件方面,我刚才也提到韩松有一篇论文叫做 EIE 只能运行卷积神经网络的 FC 层。我们考虑到 RNN 的状态机会整体非常复杂,因为里面会有非常多个矩阵要运转,不仅要支持多路用户,还有里面的非线性函数都有非常大的区别。所以说在整个硬件架构过程做了一个重新设计,能够支持多路用户,也能够支持 RNN,如 LSTM 内部多个矩阵的运转。这样整个系统运转的(速度)都是高得多的一个架构。
雷锋网:这个具体从几方面提高了它在语音识别中的效率?
现在 ESE 是我们语音识别方案的基础,我们在实际产品上做了不少改进。该方案的核心就是它能支持在大规模用户的情况下大幅降低延迟。我们知道,GPU 的最大问题是如果要具备非常好的性能,那就需要堆很多路的 batch。那么其实绝对的 latency 是变长的。那我们能够将 latency 部分相对于个高端的 GPU 压下来几倍。于用户而言,对方体验到的延迟也要短的多,体验就会更好。
其次,由于大规模的云计算对于成本、功耗是非常敏感的,这种情况下,我们的方案会明显使得功耗降低,对整个运行成本有着不错的影响。
另一方面,如果把延迟降低,其意味着这些实际使用的算法可以变得更加复杂。如 LSTM 原来是三层,现在我可以把它变为五层,甚至我的延迟会变得更低,使得语音识别的精确度得到更进一步提升。
雷锋网:详细讲讲 Deep Compression 和 ESE 的原理与作用
人类大脑其实是非常稀疏的,每个神经元能连接其他神经元的数量有限,而 Deep Compression 也正是受到了人类大脑的启发。做这项工作时我们发现了一些人工神经网络里对结果影响不重要的权重,针对这该问题的最简单做法就是如果这个权重的绝对值小于某个阈值,我就把它去掉,只保留绝对值较大权重对应的这些连接。
而 ESE 的原理则更多是我们设计了一个非常高效的稀疏矩阵乘的 Kernel 。在此之上,我们又设计了一套完整的调度机制,能够将 RNN 中 LSTM 的多个矩阵进行各高效调度。并且能够支持在不同矩阵高速调度时形成一个流水线。在运算当前矩阵的时候调用下一个矩阵来片上运行,并且能保持每个权重就每个矩阵的权重在片上存储待的时间足够长。这样做既可节省整个带宽的需求,也可加快运算速度。
雷锋网:刚也提到大脑的激活是非常稀疏的,当深度学习的模型越来越大,那对模型参数有什么其他的压缩办法吗?
韩松提出的 Deep Compression 其实就属于模型压缩很核心的方法。通常大家会用一些启发式的算法去发现里面不重要的权重,并将它去除,然后再使用数据来进行 re-train 时能够把它的精确度恢复起来。其中绝对的阈值,做 re-train 时权重增长的幅度均可用来作为启发式算法的判别准则。
由于神经网络中的特征表示比较稀疏,所以这样一种非规则稀疏模型压缩效果往往比大家设计一个小一些的模型效果更好:直接砍 channel 数量,或者一些数学上的分解方式。
其他模型压缩的方法有 SVD、Winograd 分解、binary network 等,但相比而言 Deep Compression 整体的性价比会更高。
雷锋网(公众号:雷锋网):如何有效结合 Compressing CNN 和 Intepretating CNN 发挥它们的势能?
对于可解释性 CNN 我们暂时还没有研究。对于压缩后的 CNN 最大好处是性能会明显变高,可把模型尺寸直接压缩十倍,权重数量可直接砍掉三倍,这也意味着性能直接以三倍的单位往上乘。与此同时,我们用于存储带宽读取的延迟会降低 10 倍,所以整体性能都有着非常大的提升。这也是我们一直提倡要在软件和硬件上协同来进行加速的原因。
雷锋网:英伟达提供的是芯片+解决方案,地平线机器人的产品定位是芯片+算法+解决方案+设备。深鉴科技的产品定位是什么?与地平线、寒武纪有哪些不同?
地平线余老师、杨铭师兄、黄畅师兄算法与软件背景比较深厚,软硬件团队整体实力非常强,因此他们可能会从系统的角度来提供一个完整的功能级产品,包括算法上的优化。
寒武纪的两位陈老师在 CPU等芯片领域有很多的积累,更多会强调在芯片层面的优化。而深鉴科技则是做软硬协同加速,侧重于 FPGA,我们希望用一些取巧的手段,比如在算法上用 Deep Compression 来做压缩,然后在硬件上针对于压缩后的神经网络做一些专用的处理架构。
我们最核心的服务其实是一个平台:平台的底层是我们的 DPU 架构,往上是由编译器以及我们整个 Deep Compression 构成的开发环境,这样用户可以用我们的环境来开发自己的算法与应用,在深鉴科技的 DPU 平台上运行,从这一点来说有些类似于英伟达。
雷锋网:最近阿里、腾讯均推出的高性能异构计算基础设施 FPGA 云服务器,这对行业的影响有哪些?
其实这方面业界最领先的是 AWS。在 2016 年 12 月的 AWS 发布会上,亚马逊公开了AWS上新的 F1 instance :他们将 Xilinx 的 FPGA 放在了云服务中,大家可通过这样的开发环境在云中使用 FPGA。而腾讯和阿里那也是受到亚马逊这个项目的影响才开始把 FPGA 部署到他的云服务中。
我们知道 FPGA 的优点在于,进行 Inference 计算能相比于 GPU 更加高效,因此云端的业务大家可用 GPU 训练,而 FPGA 做 Inference 。AWS、腾讯、阿里都为业界带了一个好头,其影响类似于当时 TPU 问世后极大地促进 FPGA 在深度学习领域的相关研究,同时也渗透到了产品开发和整个行业的方方面面。我们也已经显著地看到各大公司受到启发,开始越来越关注在能效、效率问题,而不是简简单单地满足我有这样的一个 AI 服务。
雷锋网:你们与客户的具体合作形式是什么样的?分别讲讲你们为零度智控、川大智能以及搜狗提供了哪些服务。
前面的话,其实我已经提到我们公司的定位:我们是一个平台的提供者。所以对于一系列具有自己深度学习算法研发能力的公司,我们会提供我们的 DPU平台,以及编译器与压缩这样一套开发环境,供大家能够在此基础上搭建自己的算法以及解决方案。而对于像无人机行业的客户,我们会提供针对于这个行业的算法、软件、硬件一体的解决方案,能够让大家直接集成来打造自己的应用。
雷锋网:就您所知,近一两年海内外有哪些与深鉴相似的公司和产品?在玩家逐渐变多的大环境下,如何保证自己处于有利地位?
AI 是整个半导体行业大家看到非常大的一个新增长点,所以从传统半导体行业出来,不管是做创业公司也好,还是要做往这个方向业务转型的大公司,确实非常多。
深鉴科技之前提到,传统并行计算的老工业经验并不一定能够很好的覆盖掉 AI 上面计算的事情,我们始终坚持一个观点认为带宽一定是一个最核心的问题需要解决。而传统堆带宽的方式一定会在造价和将来实际物理带宽层面遇到一些瓶颈,所以深鉴科技把软和硬结合在一起来做。先在软件上做压缩,然后在硬件上针对压缩的神经网络做一个专用体系结构的优化。
目前在这条技术路线上的公司还非常之少,但陆续开始有公司注入跟进这个领域。而我们进入很早,积累了非常多的 insight,如 FPGA2016 会议上提出来的基于嵌入式 FPGA 的 CNN 处理器方案、量化方案,已经被诸多公司f ollow,今年 FPGA2017 会议大家都在 CNN 处理方案上进行小幅优化之时,我们已经走向了 LSTM。我们希望借由这样的先发优势,能够围绕稀疏化的处理思路,从算法、软件、硬件协同设计多个方面逐渐建立起隐形的行业标准。
本文作者:亚峰 本文转自雷锋网禁止二次转载,原文链接
相关资源:垃圾分类数据集及代码