对于DeepMind研究人员Peter Buchlovsky及其同事来说,选择的目的是提高学习速度,超过理论准确度。
研究人员表示,他们在本周发布了一项名为“TF-Replicator”的新技术,他们使用32个谷歌的Tensor处理器芯片,在半小时内就熟悉的ImageNet竞赛达到了顶级基准测试结果的准确性。并行运作。Replicator的首次亮相是谷歌本周预览了TensorFlow的2.0版本。
作者声称,使用TF-Replicator的结果接近了使用更多GPU的其他一些项目的最佳结果,包括使用了1,024个Nvidia的“Tesla P100”GPU的先前工作。
TF-Replicator项目的含义是,现在可以通过几行Python代码实现这种GPU的史诗工程,这些代码没有针对任何特定的硬件配置进行专门调整。
如果愿意的话,诀窍基本上就是为傻瓜做并行分布式计算。一系列新功能已被添加到Google的TensorFlow框架中,DeepMind声称,“通过让研究人员自然地定义他们的模型并根据单机设置运行循环”,“使建立分布式机器学习系统的过程变得无足轻重”。
该系统比先前的TensorFlow方法更灵活,称为“估计器”,它对模型的构建方式施加了限制。虽然该系统倾向于生产环境,但Google方法适用于研发实验室,用于制作新型网络,因此它的设计更加灵活。
它的编程也比以前的并行尝试要简单得多,比如去年由Google的Brain部门引入的“Mesh-TensorFlow”作为指定分布式计算的单独语言。
研究“TF-Replicator:分布式机器学习研究人员”发布在arXiv预打印服务器上,还有一篇DeepMind的博客文章。
本文中的工作假设是,他们希望快速获得最先进的结果,而不是试图在准确性方面突破极限。正如作者所指出的那样,“不是试图提高分类准确性,而是最近的许多论文都集中在减少达到某些性能阈值所需的时间(通常约为-75%Top-1准确度),”使用ImageNet基准测试,并且,在大多数情况下,案例,训练常见的“ResNet-50”神经网络。
这种急于获得良好结果的行为被称为“弱扩展”,其中网络被“以更少的步骤和非常大的批次”进行训练,将数据分组成数千个示例。
因此,需要并行化模型以便能够跨多个核心和多个GPU或TPU同时处理这些批次。
作者着手构建一个分布式计算系统,该系统可以处理从分类到通过生成对抗网络(GAN)制作伪图像到强化学习等任务,同时更快地达到胜任性能的门槛。
作者写道,研究人员不需要了解有关分布式计算的任何信息。研究人员将他们的神经网络指定为“复制品”,这是一种设计用于在一台计算机上运行的东西。该副本可以自动乘以在多台计算机上并行运行的单独实例,前提是作者在其TensorFlow代码中包含两个Python函数,称为“input_fn”和“step_fn”。第一个调用数据集来填充神经网络的每个“步骤”。这使得跨不同机器的数据工作并行化成为可能。另一个函数指定要执行的计算,并且可以用于跨多个机器并行化神经网络操作。
作者指出他们必须克服一些有趣的限制。例如,计算节点之间的通信对于诸如收集跨多个机器发生的所有梯度下降计算之类的事情可能是重要的。
这对工程师来说可能具有挑战性如果神经网络的单个“图形”分布在许多计算机上,即所谓的“图形内复制”,则可能会出现问题,因为计算图形的某些部分可能尚未构建,这会阻碍计算机之间的依赖关系。“一个副本的step_fn可以调用原始的中间图形结构,”他们写道,指的是通信原语。“这需要引用来自另一个本身尚未构建的副本的数据。”
他们的解决方案是将“占位符”代码放在每台机器的计算图中,“一旦所有副本子图最终确定,就可以重写”。
作者描述了各种基准测试的结果。在ResNet-50 ImageNet任务的情况下,“我们能够在不到30分钟的训练中匹配公布的75.3%Top-1准确度,”他们写道,并补充说“这些结果是使用标准TF-Replicator获得的实施,没有任何特定于ImageNet分类的系统优化。“
在GAN任务中,生成图像,“我们利用TF-Replicator在比单个GPU上更大的批次上进行训练,并发现这会导致样本质量的大幅提升。”
在强化学习领域,他们训练了一个可移动关节的模拟“代理”来导航各种任务。“与8个NVLink连接的Tesla V100 GPU相比,单个TPUv2设备(4个芯片中的8个内核)提供了极具竞争力的性能,”他们写道。
对于这种分布式计算的神经网络的未来设计,存在一些有趣的含义。例如,在强化学习的情况下,他们写道,“而不是构建机器人关节的高级表示及其”速度“,TF-Replicator的可扩展性使我们能够完全从像素观察中快速解决这些任务。”
“大规模的可扩展性”,作者写道,在神经网络中有数十万层,在深度学习中将变得越来越重要。TF-Replicator是Google对于研究人员如何能够更快速地开发和迭代这些大型网络的问题的回答,从他们的工作台笔记本电脑开始,并以最少的麻烦传播到分布式系统。