开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

我在使用机器学习PAI EPL的多卡数据并行模型,batch=256吃满了单张显卡的16G显存。我?

我在使用机器学习PAI EPL的多卡数据并行模型,batch=256吃满了单张显卡的16G显存。我想继续加大batch size,请问是要改成auto_parallel吗?

展开
收起
真的很搞笑 2023-07-16 18:52:52 103 0
2 条回答
写回答
取消 提交回答
  • 如果你的单张显卡的显存已经被一个 batch size 为 256 的模型所完全使用,并且想要进一步增加 batch size,以利用多卡数据并行来训练模型,那么可以考虑使用自动并行(auto_parallel)来实现。

    在机器学习 PAI 中,auto_parallel 是一种自动并行策略,它能够自动将计算图划分为多个设备(例如多个 GPU),并在这些设备之间进行数据并行。通过 auto_parallel,你可以有效地利用多个显卡来加速训练过程,并可以增加 batch size。

    要使用 auto_parallel,你可以按照以下步骤进行操作:

    1. 导入必要的 TensorFlow 模块:

      import tensorflow as tf
      
    2. 设置自动并行策略:

      # 设置自动并行策略
      strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy(
       tf.distribute.experimental.CollectiveCommunication.NCCL
      )
      

      这里使用了 MultiWorkerMirroredStrategy 来实现数据并行。NCCL 是一种高效的分布式通信库,可加速多 GPU 之间的数据传输。

    3. 在模型构建之前设置分布式策略:

      # 设置分布式策略
      with strategy.scope():
       # 构建模型
      

      在这个 with 上下文管理器中,你可以构建和定义你的模型。

    通过以上步骤,你将设置好了自动并行策略,并确保在构建模型之前设置了合适的分布式策略。这样 TensorFlow 就能够自动进行数据并行,并将计算图划分到多个设备上以支持更大的 batch size。

    请注意,使用自动并行时,需要确保你的机器有足够的显卡和显存来容纳增加后的 batch size。此外,在 auto_parallel 中进行训练时,可能需要根据实际情况微调一些超参数,如学习率、梯度累积等,以获得最佳的训练性能和效果。

    最后,值得一提的是,auto_parallel 可能并不是适用于所有情况的最佳解决方案,具体的选择还需要结合你的硬件资源、模型复杂度和训练目标等因素进行考虑。

    2023-07-31 17:36:00
    赞同 展开评论 打赏
  • 加大batch可以使用GA,或者增加机器(增加DP并行度),此回答整理自钉群“EPL用户交流群”

    2023-07-16 19:01:38
    赞同 展开评论 打赏

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    大规模机器学习在蚂蚁+阿里的应用 立即下载
    阿里巴巴机器学习平台AI 立即下载
    微博机器学习平台架构和实践 立即下载