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

机器学习PAI使用DeepRec运行estimator分布式训练,protocol 使用star_?

机器学习PAI使用DeepRec运行estimator分布式训练,protocol 使用star_server ,tf_config:1个ps 1个chief 2个worker,其中一个worker训练正常结束,其他节点还在尝试连接该worker,进程一直不会正常退出 Seastar conn timeout for: xxx:3333, now do retry with max retry count: 100,这块是需要做一些配置吗?

展开
收起
真的很搞笑 2023-07-31 09:33:34 90 0
2 条回答
写回答
取消 提交回答
  • 对于您提到的问题,下面是一些解释和可能的解决方法:

    问题1:进程无法正常退出
    在分布式训练中,当一个 worker 训练任务完成后,并不会自动退出。其他节点仍然会尝试连接该 worker 节点,直到达到最大重试次数或超时。这是正常行为,因为它们需要等待所有 worker 完成训练才能继续执行其他操作。

    如果您想要提前结束剩余的 worker 进程,可以通过设置合适的 tf.train.StopAtStepHook 来控制训练的步数,在达到指定步数后主动停止训练,并通知其他节点结束。

    问题2:chief 进程打印 conn timeout 错误日志
    在分布式训练中,chief 进程会负责协调和管理整个训练过程,包括与其他节点的通信。因此,如果某个 worker 节点无法连接,chief 进程会记录连接超时的错误日志。这是提示有节点未能如预期连接的信息,不一定表示出现了严重的错误。

    2023-07-31 16:09:49
    赞同 展开评论 打赏
  • TF_CONFIG,worker之间的ip:port是生成出来是*,sess_config.device_filters.append("/job:ps") 如果你的规模比较小,建议先使用grpc++
    session_config = ConfigProto()
    session_config.device_filters.append("/job:ps")

    run_config = tf.estimator.RunConfig(
    model_dir=model_dir,
    log_step_count_steps=train_config.log_step_count_steps,
    save_summary_steps=train_config.save_summary_steps,
    save_checkpoints_steps=train_config.save_checkpoints_steps,
    train_distribute=distribution,
    eval_distribute=distribution,
    session_config=session_config),此回答整理自钉群“DeepRec用户群”

    2023-07-31 09:49:20
    赞同 展开评论 打赏

相关产品

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

    热门文章

    相关电子书

    更多
    阿里巴巴机器学习平台AI 立即下载
    基于Spark的面向十亿级别特征的 大规模机器学习 立即下载
    基于Spark的大规模机器学习在微博的应用 立即下载