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

机器学习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,这块是需要做一些配置吗?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 对于您提到的问题,下面是一些解释和可能的解决方法:

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

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

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

  2. 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用户群”