是时候解决深度学习的生产力问题了
2017年11月23日 由 yining 发表
992555
0
深度学习正在推动从消费者的手机应用到图像识别等各个领域的突破。然而,运行基于深度学习的人工智能模型带来了许多挑战。最困难的障碍之一是训练模型所需的时间。
需要处理大量的数据和构建基于深度学习的人工智能模型的计算复杂性,同时也降低了精确度和实用性。训练时间通常要花费几天,有时是几周的时间。为了缩短创建深度学习模型的时间,我们需要减少与深度学习训练相关的时间,从几天到几小时,再到几分钟或几秒钟。
GPU速度过快
为了理解深度学习研究者们正在努力解决的问题,不妨考虑一下盲人和大象的简单故事。在寓言中,每个盲人都能感觉到大象的不同部分。然后,他们会根据自己有限的经验,争论整只大象的长相。
如果你给盲人一段时间,他们可以分享足够的信息,拼凑出一张相当准确的大象图片。它与GPU(图形处理器)是一样的,它与CPU(中央处理器)一起使用,以加快深度学习、分析和计算的速度。
如果你在一个系统中有比较缓慢的计算芯片,你可以很容易地同步它们的学习进度。
但是,随着GPU变得越来越智能和迅速,它们会变得不同步。然后它们就会花很多时间等待对方的结果。
深度学习系统中的功能缺口
为了实现改进的快速模型训练,数据科学家和研究人员需要在大量服务器上进行深度学习。然而,大多数流行的深度学习框架都是在一个服务器上,而不是在许多服务器上使用GPU。
挑战在于,在许多服务器上编排和优化一个深度学习问题是很困难的,因为GPU运行得越快,它们学习的速度就越快。GPU也需要与其他GPU共享它们的学习,但在传统软件中,这是不可能的。
最近,深度学习系统中的这种功能缺口促使IBM研究团队开发了分布式深度学习(DDL)软件和算法,这些软件和算法可以在数十台服务器上的数百个GPU加速器中实现大型的和复杂的计算任务的并行化。
对于这个软件,研究人员开发了一个定制的通信库,它可以帮助系统中的所有学习者(GPU)以非常接近于最优的速度和带宽的方式相互通信。而且,这个库并不是硬编码到一个深度学习软件包中,因此它可以与诸如TensorFlow、Caffe和Torch这样的框架集成在一起。
在这个项目中使用的GPU之间的通信对于打破图像识别能力的训练记录至关重要。研究人员能够将神经网络的训练时间减少到50分钟,即“ResNet-50”。在另一个网络,ResNet-101中,他们通过750万张的训练图像得到了33.8%的新精确度记录。这些图像来自ImageNet,一个包含了超过1500万张有标签的、属于22000种不同的类别的高分辨率图像大数据集。
采用这种方法,数据科学家和机器学习研究人员可以快速提高精确度,并训练神经网络模型,计算机软件建模于人脑和神经系统。训练有素的神经网络模型能够完成特定的任务,比如在医学图像中检测癌细胞。它们的准确性可以通过再次训练来进一步提高,这需要几秒钟的时间。
将深入学习搬出“象牙塔”(指脱离现实生活的小天地)
当然,我们的目标是让人工智能算法和软件以及其他机器学习技术尽可能快地运行。通过系统设计和系统创新,像这样的分布式深度学习软件可以解决深度学习的生产力问题。你越快开始创造新的人工智能能力,消费者在图片标签或语音识别等事情上的准确度就越高。
人工智能已经变得更快、更智能、功能更完善。但我们需要从“象牙塔”中深入学习,那里的训练时间和精确度仍有待进一步提高。为此,我们必须加快从研究人员手中获得创新的时间,并投入到客户的手中,他们需要几分钟或几秒钟的时间来取得商业成果。研究人员需要找到新的方法来更快地处理深度学习,用正确的框架,来解决持续的和具有挑战性的人工智能问题。