编者按:Hillery Hunter 是 IBM T.J. Watson Research Center 加速认知基础设施小组的负责人,他在本文中就如何解决深度学习的生产力问题进行了分析,并介绍了 IBM 在面对深度学习系统中功能性差距问题所进行的研究。
从消费者移动应用程序到图像识别,深度学习在各个领域都取得了突破性发展成果。然而,要运行深度学习基础上的 AI 模型也存在着许多的挑战,最有难度的障碍之一就是训练模型所需的时间仍然太长。对于大量数据的处理需求以及构建深度学习基础上 AI 模型的计算复杂性也会降低整个过程的准确性以及深度学习规模部署的可行性。而训练所需的时间通常是几天,有时也会达到几个周,这会降低深度学习部署的速度。
为了缩短创建高精度深度学习模型所需要的时间,我们需要将深度学习训练时间从几天缩短到几小时,再缩短到几分钟或者几秒钟。
要想了解深度学习研究者们正在试图解决的问题,我们可以想一下盲人摸象的故事。在盲人摸象这一寓言故事中,每位盲人都能触碰到大象的一个不同的部位,但每个人只能触碰一个部位,比如身体侧面或者象牙。然后他们根据自己这一有限的经验对大象的样子展开了争论。
如果给他们一些时间,他们就可以共享到足够的信息,来拼凑出一副相当准确的大象图片。对于图形处理器(GPU)来说也是一样的道理,GPU是与中央处理器(CPU)一起被用于加速深度学习、分析和计算的运行。
如果系统中的计算芯片反应慢,那很容易就可以与他们的学习进度保持同步。但是现在,GPU 变得越来越聪明,也越来越快,它们能够非常快速的通过学习来处理数据,因此也就需要一种更好的交流方式,否则就无法实现同步。那它们就会浪费很多时间等待对方的结果,也就是说,使用更多、速度更快的 GPU 并不会提升速度,甚至可能会导致性能下降。
为了实现快速的模型训练,数据科学家和研究人员需要在大量服务器上对深度学习进行分发。但是,现在大多数流行的深度学习框架可以在一个服务器内的 GPU 或学习者之间进行扩展,但多个服务器之间则无法进行扩展。其中所面临的挑战在于,在多个服务器之间协调并优化深度学习是一件困难的事情,因为因为 GPU 运行速度越快,学习速度就越快。GPU 同时也需要与所有其他的 GPU 来共享他们的学习,但传统软件根本无法满足他们的速度要求。
最近,IBM 的一个研究团队就深度学习系统中的这种功能性差距展开了研究,他们开发了开发分布式深度学习(DDL)软件和算法,可以对连接到数十台服务器的数百个 GPU 加速器之间大型、复杂的计算任务进行自动并行处理和优化。研究人员为了这一软件也开发了一个定制的通信库,能够帮助系统内的所有学习者(GPU)以最接近的、最优速度和带宽来互相通信。并且,这一通信库并非只是被硬编码到一个深度学习软件包,因此也就可以与包括 TensorFlow、Caffe 和 Torch 等在内的框架进行集成。
这一研究项目中所使用的 GPU 之间的互相通信对于打破图像识别能力的培训记录来说具有至关重要的意义。研究人员能够将神经网络的 ResNet-50 模型训练时间缩短到 50 分钟,而对于另一个网络模型ResNet-101,他们使用 750 万张训练图像,达到了 33.8% 的准确性,创造了新纪录。这些训练图像都来自于大型数据集 ImageNet,其中包含超过 1500 万张标记、高分辨率图像,分属于大约 22000 个不同的类别。
数据科学家和机器学习研究人员通过这种方法,可以快速提高准确性,并且训练神经网络模型以及模拟人脑和神经系统的计算机软件。经过高精度训练的神经网络模型未来能够完成例如检测医学图像中的癌细胞这样的一些特定任务。他们的准确性可以通过再培训进一步提高,而再培训的过程只需要几秒钟。
无论怎样,目标当然是让 AI 算法和软件以及其他机器学习技术能够尽可能快速地运行。像上文提到的这样的 DDL 软件通过系统设计和系统创新,就可以解决深度学习的生产力问题。你如果能够更快地开始创建新的AI功能,消费者也就可以更快的体验到图片标签或语音识别方面的高准确度。
人工智能现在已经变得更快、更智能、功能也更强大。但是要想让深度学习走出象牙塔, 训练时间和准确度就需要进一步提高。要做到这一点,我们必须加快创新成果从研究人员手中到消费者手中的转化速度。研究人员需要找到新方法,利用新框架来更快的处理深度学习,解决长久以来存在的挑战性 AI 问题。
原文链接:https://venturebeat.com/2017/11/22/its-time-to-solve-deep-learnings-productivity-problem/
编译组出品。编辑:郝鹏程