数据科学是艰苦的工作,而不是魔咒。 一个AI模型的性能是否如所宣传的取决于其训练的程度,并且没有“一刀切”的方法来训练AI模型。
缩放是训练AI模型时最棘手的考虑之一。 当模型变得过于资源匮乏而无法在任何单个计算平台上进行整体处理时,培训将尤其具有挑战性。 模型可能增长得很大,超过了单个处理平台的内存限制,或者加速器需要开发特殊的算法或基础结构。 训练数据集可能会变得如此庞大,以至于训练花费了非常长的时间,并且变得非常昂贵。
如果我们不要求模型特别擅长于其分配的任务,那么缩放就可以轻而易举。 但是,随着我们提高推理准确性的水平,培训过程可能会花费更长的时间并消耗更多的资源。 解决此问题不仅仅是解决问题的能力更强的硬件。 与许多应用程序工作负载一样,随着AI模型复杂性的增加,不能仅依靠更快的处理器来维持线性扩展。
可能需要进行分布式培训。 如果可以将模型的组件划分并分发到优化的节点以进行并行处理,则可以大大减少训练模型所需的时间。 但是,考虑到统计模型的构造有多脆弱,并行化本身本身就是一件繁琐的工作。
如果图形中一些看似很小的更改(例如,图层,节点,连接,权重,超参数等)破坏了模型进行准确推断的能力,则该模型可能会严重失败。 即使我们保持基础图完整无缺,并尝试将模型的各层划分为分布式组件,也需要将其结果重新组合为一个整体。
如果我们不小心,可能会导致重组模型在执行其指定任务时以某种方式出现偏差。
在整个数据科学专业中,我们继续看到AI模型训练方面的创新,其中大部分着重于如何在多云和其他分布式环境中有效地做到这一点。
在这方面,谷歌和微软最近发布了用于训练深度学习模型的新框架: 谷歌的GPipe和微软的PipeDream 。 这些框架遵循类似的扩展原则。
尽管在某些方面有所不同,但是GPipe和PipeDream在分布式AI模型训练方面有着共同的愿景。 该愿景涉及以下需求:
这两个框架的区别在于,它们在多大程度上支持具有连续层的模型(总是很难并行化)以及在更复杂的目标环境(例如多云,网格和云到边缘)中训练工作流的性能。场景。
Google的GPipe非常适合对包含多个顺序层的深度神经网络进行快速并行训练。 它会自动执行以下操作:
微软的PipeDream也利用模型和数据并行性,但它更适合于提高分布式环境中复杂的AI训练工作流的性能。 PipeDream是Microsoft Research的Project Fiddle计划中的AI培训项目之一,它会自动完成此任务,因为它可以:
有关这两个框架的更多详细信息,请参见各自的研究论文: GPipe和PipeDream 。
培训是AI成功的关键特征,越来越多的AI专业人员正在将这些工作流分布在多云,网格和分布式边缘上。
展望未来,Google和Microsoft应该将各自的框架调整为行业共识方法,以进行分布式AI培训。 他们可能希望考虑在这方面与Uber合作。 乘车共享公司已经在分布式培训框架中赢得了更多的市场先声。 三年前,它开源了Horovod项目。 该项目由Linux Foundation的AI Foundation托管,已与TensorFlow,PyTorch,Keras和Apache MXNet等领先的AI建模环境集成。
可伸缩性应该是所有此类框架的核心考虑因素。 目前,Horovod在这方面具有一些有用的功能,但缺乏Google和Microsoft已将其内置到各自项目中的敏锐扩展关注点。 在可伸缩性方面,Horovod可以在单个或多个GPU上运行,甚至可以在多个分布式主机上运行而无需更改代码。 它能够批量执行小批量操作,自动执行分布式调整,并交错通信和计算管道。
对可伸缩性的关注将取决于您考虑的培训方案。 无论哪种框架成为主流(GPipe,PipeDream,Horovod或其他),都可以很好地看到参考工作流的行业发展情况,这些工作流可以分布式部署以下专业培训方案:
该列表甚至都没有开始暗示将来会流行的分布式AI培训工作流的多样性。 就我们在2020年建立标准参考框架的程度而言,数据科学家将为推动AI革命朝各个方向发展奠定坚实的基础。