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

问一个关于机器学习API的问题,使用collective模式,要怎样设置呢

使用collective模式, sok+hovorod, 不用分ps-worker角色,将group_embedding设成collective就可以了吗?还是要其它特别的设置?

展开
收起
游客242jp2lsd3dac 2023-04-18 18:57:26 430 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在使用集体通信(collective communication)模式时,你需要为每个进程分配角色,然后将它们组合成分组,以实现分布式训练。一般来说,在分布式训练中会有两种角色:PS(parameter server)和 worker。PS 角色负责组织并维护模型的参数,而 worker 角色则负责执行训练过程。

    在使用 sok+hovorod 框架时,你可以使用 horovod.tensorflow.keras.callbacks.BroadcastGlobalVariablesCallback 类将参数从 PS 广播到所有 worker。这个类使用 Tensorflow 的 tf.distribute.Strategy API 自动检测配置并处理广播操作。你只需要将 group_embedding 参数设置为 collective,就可以在 sok+hovorod 中使用集体通信了。

    需要注意的是,在使用集体通信时,同一组内的所有进程应该运行在同一台机器上,并且必须共享相同的网络。另外,你需要在 tf.distribute.experimental.MultiWorkerMirroredStrategy 中设置 communication 参数为 hierarchical_copynccl,以启用 sok+hovorod 的分布式训练功能。

    以下是一个示例代码片段,演示如何在 sok+hovorod 中设置集体通信模式:

    import horovod.keras as hvd
    from tensorflow.keras.callbacks import ModelCheckpoint
    from horovod.tensorflow.keras.callbacks import BroadcastGlobalVariablesCallback
    
    # 初始化 sok+hovorod
    hvd.init()
    
    # 设置 Tensorflow 分布式策略
    strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy(
        communication=tf.distribute.experimental.CollectiveCommunication.HIERARCHICAL_COPY)
    
    # 创建模型
    with strategy.scope():
        model = create_model()
    
        # 编译模型
        model.compile(loss='categorical_crossentropy',
                  optimizer='adam',
                  metrics=['accuracy'])
    
    # 定义 sok+hovorod 回调
    callbacks = [
        hvd.callbacks.BroadcastGlobalVariablesCallback(0),
        ModelCheckpoint(filepath='model.{epoch}.h5'),
    ]
    
    # 训练模型
    model.fit(x_train, y_train,
              batch_size=128,
              callbacks=callbacks,
              epochs=10,
              verbose=1)
    
    2023-04-30 12:55:00
    赞同 展开评论 打赏
  • 是的,不需要特别配置,参考用户文档即可,hybridbackend也正在支持类似的使用方式,5月份会推出此回答整理自钉群DeepRec用户群

    2023-04-18 19:03:45
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

    更多
    微博机器学习平台架构和实践 立即下载
    基于Spark的面向十亿级别特征的 大规模机器学习 立即下载
    基于Spark的大规模机器学习在微博的应用 立即下载