最新一期(2017年1月12日)O’Reilly数据秀播客:大型计算如何为深度学习火箭助力。
专家们把深度学习比喻成一艘宇宙飞船。它需要很强大的发动机(模型)和非常多的燃料(数据)来推动它飞到任何想去的地方。为了能更好地理解为深度学习建造计算系统这个问题,我采访了这个领域的最前沿专家之一,百度公司的资深研究员Greg Diamos。Diamos长期致力于结合软硬件的先进科技来让计算机跑的更快。近年来,他专注于扩展深度学习来帮助提升一些前沿的领域,比如语音识别。
大的模型加上海量数据,必然需要大型计算系统,或者至少是在AI领域的尖端系统。研究人员已经倾向于使用高性能计算(HPC)或是类似于超级计算机的系统。而大部分从业人员则是使用多GPU(ASIC或是FPGA)的系统,和一些能让快速深度学习模型在其上运行的易用的软件库。
除了很多企业都会面对的如何平衡方便易用和性能的辩论,现在还有另外一些关于使用大数据技术而非HPC的努力。在下面这个博客里,我将重点介绍一些工程师和数据科学家的工作。他们已经开始使用这些技术并开发软件,从而在大数据领域常见的软硬件基础设施上运行深度学习。
到目前为止设计什么样的系统才能够使用海量数据来训练深度学习的模型?下面是一些深度学习研究领域出现的模式:
- 使用多GPU的密集计算硬件。尽管GPU是出了名的难编程,但是深度学习却相对比较容易。因为它的计算一般都是海量、密集和线性的代数运算。
- 部署高速的计算网络系统,并结合可以利用高速网络的软件和算法(比如MPI)。也可以使用诸如异步SGD这样的算法来降低计算节点之间的通信总量。
- 利用为算法和专门的计算(例如深度学习所需的线性代数、快速傅里叶变换和卷积神经网络)优化过的库。英伟达和英特尔都为此发布了一些开源的库。但很多研究组织也各自开发了他们自己的工具。
- 考虑使用专门的IO系统来满足大型深度学习负荷所需要的海量随机数据读取。
- 也可以尝试在训练模型时使用低精度浮点数(一个热门研究领域),或者是降低模型大小(研究显示在模型被训练后,对模型进行压缩和正则化并不影响模型的效果)
ASIC(专用集成电路)还是GPU
在采访中,Diamos曾对一个问题有过插话。即是否有可能建造比GPU更加有效率的ASIC(来推进深度学习)。
这是一个很有趣的问题。硬件设计人员还在努力解决这个问题。我不觉得现在有一个清晰的答案。我个人认为是有可能制造比GPU更好的硬件,但是这需要有不少前瞻性的研究结果来完成最终的落地,其中很多都和制造的流程有关。所以我认为现在讨论为深度学习制造ASIC还是一个赌博。但这并不意味着不值得去尝试。我真心希望能成功,因为它的影响是很深远的。
我认为他们必须非常有创造力。对于大家来说,一个比GPU更好的ASIC会是什么样并不明晰。我觉得大家对此只有一点想法。目前流行的一个大的想法是降低精度。但问题是GPU也能加入对这个功能的支持。而ASIC对比GPU的优点也仅仅只是降低运行时间。
这个问题的另外一方面则是硬件设计已经变的非常复杂和昂贵了。即使你想到了一个ASIC的好点子,那也需要非常巨大的资金投入(来实现这个想法)。风险非常大,这是因为这需要非常多的不同的技术都能成功地被实现,并真正能去和使用尖端流程(比如14纳米或10纳米)的高速处理器来竞争。因此即便能有一个非常好的想法,综合上面所有的因素来看,风险也是非常高的。
在研究领域已经有一些制造ASIC的想法和提议了。我最喜欢的是一个基于3D集成的方法。它某种程度上是把内存和处理器用非常紧密的方法“粘”在一起。但这个方法的问题是它只对于支持这个方式的处理器才有用,才能提升性能。但据我所知,这种技术非常昂贵。可以认为这是一个需要投资10亿美元并要经过多年研发的事情。
相关资料:
- 在即将开始的圣何塞Strata+Hadoop世界2017大会上有很多关于应用深度学习的讲座。
- 《HPC在深度学习里的机会》——Greg Diamos在斯坦福大学的一个演讲。
- 《对速度的需求:衡量深度学习负载的基准线》:Greg Diamos在2016 O’Reilly人工智能大会上的一个演讲。
- 《深度神经网络的压缩和正则化》。
订阅O’Reilly数据秀播客,探索推动大数据、数据科学及人工智能的机遇和技术。可以在 iTunes, Stitcher, TuneIn, SoundCloud, RSS 找到我们。
PS, 在微信中浏览此页面可能不能点击超链接,请从微信右上角选取手机浏览器来浏览。