当前位置: 首页 > 工具软件 > pipedream > 使用案例 >

GPipe和PipeDream:全方位扩展AI培训

沈茂
2023-12-01

数据科学是艰苦的工作,而不是魔咒。 一个AI模型的性能是否如所宣传的取决于其训练的程度,并且没有“一刀切”的方法来训练AI模型。

分布式AI培训的必要弊端

缩放是训练AI模型时最棘手的考虑之一。 当模型变得过于资源匮乏而无法在任何单个计算平台上进行整体处理时,培训将尤其具有挑战性。 模型可能增长得很大,超过了单个处理平台的内存限制,或者加速器需要开发特殊的算法或基础结构。 训练数据集可能会变得如此庞大,以至于训练花费了非常长的时间,并且变得非常昂贵。

[ 也在InfoWorld上:2020年的人工智能预测 ]

如果我们不要求模型特别擅长于其分配的任务,那么缩放就可以轻而易举。 但是,随着我们提高推理准确性的水平,培训过程可能会花费更长的时间并消耗更多的资源。 解决此问题不仅仅是解决问题的能力更强的硬件。 与许多应用程序工作负载一样,随着AI模型复杂性的增加,不能仅依靠更快的处理器来维持线性扩展。

可能需要进行分布式培训。 如果可以将模型的组件划分并分发到优化的节点以进行并行处理,则可以大大减少训练模型所需的时间。 但是,考虑到统计模型的构造有多脆弱,并行化本身本身就是一件繁琐的工作。

如果图形中一些看似很小的更改(例如,图层,节点,连接,权重,超参数等)破坏了模型进行准确推断的能力,则该模型可能会严重失败。 即使我们保持基础图完整无缺,并尝试将模型的各层划分为分布式组件,也需要将其结果重新组合为一个整体。

如果我们不小心,可能会导致重组模型在执行其指定任务时以某种方式出现偏差。

分布式AI培训的新行业框架

在整个数据科学专业中,我们继续看到AI模型训练方面的创新,其中大部分着重于如何在多云和其他分布式环境中有效地做到这一点。

在这方面,谷歌和微软最近发布了用于训练深度学习模型的新框架: 谷歌的GPipe微软的PipeDream 。 这些框架遵循类似的扩展原则。

尽管在某些方面有所不同,但是GPipe和PipeDream在分布式AI模型训练方面有着共同的愿景。 该愿景涉及以下需求:

  • AI开发人员无需确定如何在给定硬件部署的情况下拆分特定模型。
  • 在任何规模和格式的数据集上以不依赖于预期推理任务的方式训练任何规模,类型和结构的模型。
  • 进行分区模型,以使并行化训练不会扭曲旨在表示的领域知识(例如,如何识别人脸)。
  • 以与分布式目标环境的拓扑无关的方式进行并行训练。
  • 在复杂的分布式培训管道中并行化模型和数据。
  • Boost GPU(图形处理单元)为各种培训工作负载计算速度。
  • 在培训过程中有效利用硬件资源。
  • 在云基础架构上进行培训时,可大规模降低通信成本。

[ 也在InfoWorld上:人工智能,机器学习和深度学习:您需要知道的一切 ]

当模型和网络变得极为复杂时进行扩展培训

这两个框架的区别在于,它们在多大程度上支持具有连续层的模型(总是很难并行化)以及在更复杂的目标环境(例如多云,网格和云到边缘)中训练工作流的性能。场景。

Google的GPipe非常适合对包含多个顺序层的深度神经网络进行快速并行训练。 它会自动执行以下操作:

  • 分区模型并将分区模型移动到不同的加速器,例如GPU或TPU(张量处理单元),它们具有针对不同训练工作负载进行了优化的特殊硬件。
  • 将训练示例的小批量分成较小的微型批次,这些微型批次可以由加速器并行处理。
  • 通过在分布式机器学习库上使用同步随机梯度下降和管道并行性来启用节点间分布式学习。

微软的PipeDream也利用模型和数据并行性,但它更适合于提高分布式环境中复杂的AI训练工作流的性能。 PipeDream是Microsoft Research的Project Fiddle计划中的AI培训项目之一,它会自动完成此任务,因为它可以:

  • 分开的节点间计算和通信,可以使分布式AI训练中的数据和模型更容易并行化。
  • 将分区AI建模为由连续的一组图层组成的阶段。
  • 将每个阶段映射到一个单独的GPU,该GPU对该阶段中的所有层执行前进和后退神经网络功能。
  • 根据在单个GPU上执行的性能分析运行,确定如何对模型进行分区。
  • 即使训练环境的分布式拓扑非常复杂,也可以平衡不同模型分区和节点之间的计算负荷。
  • 假设每个工作程序仅必须与单个其他工作程序通信,并且仅通信整个模型的梯度和输出激活的子集,则可以最大程度地减少处理各个分区的分布式工作程序节点之间的通信。

有关这两个框架的更多详细信息,请参见各自的研究论文: GPipePipeDream

需要共识和可扩展性

培训是AI成功的关键特征,越来越多的AI专业人员正在将这些工作流分布在多云,网格和分布式边缘上。

展望未来,Google和Microsoft应该将各自的框架调整为行业共识方法,以进行分布式AI培训。 他们可能希望考虑在这方面与Uber合作。 乘车共享公司已经在分布式培训框架中赢得了更多的市场先声。 三年前,它开源Horovod项目。 该项目由Linux Foundation的AI Foundation托管,已与TensorFlow,PyTorch,Keras和Apache MXNet等领先的AI建模环境集成。

[ 也在InfoWorld上:深度学习与机器学习:理解差异 ]

可伸缩性应该是所有此类框架的核心考虑因素。 目前,Horovod在这方面具有一些有用的功能,但缺乏Google和Microsoft已将其内置到各自项目中的敏锐扩展关注点。 在可伸缩性方面,Horovod可以在单个或多个GPU上运行,甚至可以在多个分布式主机上运行而无需更改代码。 它能够批量执行小批量操作,自动执行分布式调整,并交错通信和计算管道。

对可伸缩性的关注将取决于您考虑的培训方案。 无论哪种框架成为主流(GPipe,PipeDream,Horovod或其他),都可以很好地看到参考工作流的行业发展情况,这些工作流可以分布式部署以下专业培训方案:

  • 半监督学习使用少量标记的数据(可能是从移动应用中的人类用户众包而来)来加速大型,未标记的数据集的模式识别,例如通过IoT设备的摄像头,麦克风和环境传感器摄取的数据集。
  • 强化学习涉及构建AI模块(例如部署在工业机器人中的AI模块),这些模块可以在很少或没有“基础”训练数据的情况下自主学习,尽管可能需要人工指导。
  • 协作式学习分散了AI模块(可能部署在成群的无人机中),可以共同探索,交换和利用最佳超参数,从而使所有模块都可以动态收敛,以达到学习速度与准确性的最佳平衡。
  • 进化学习通过一种过程来训练一组AI驱动的实体(也许是移动和IoT端点),该过程基于实体级知识和不同程度的跨实体模型,从他们做出的一系列自利决策中学习参数共享。
  • 转移学习可重用任何相关的训练数据,特征表示,神经节点架构,超参数和现有模型的其他属性,例如在对等节点上执行的模型。
  • 设备上的培训 ,使应用程序可以提取最新感知的本地数据,并快速更新这些设备中保留的特定AI模型。
  • 机器人导航学习可与原始的感官输入配合使用,利用环境布局中的规律性,并且只需要一点训练数据。

该列表甚至都没有开始暗示将来会流行的分布式AI培训工作流的多样性。 就我们在​​2020年建立标准参考框架的程度而言,数据科学家将为推动AI革命朝各个方向发展奠定坚实的基础。

翻译自: https://www.infoworld.com/article/3539741/gpipe-and-pipedream-scaling-ai-training-in-every-direction.html

 类似资料: