机器学习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,这块是需要做一些配置吗?
对于您提到的问题,下面是一些解释和可能的解决方法:
问题1:进程无法正常退出
在分布式训练中,当一个 worker 训练任务完成后,并不会自动退出。其他节点仍然会尝试连接该 worker 节点,直到达到最大重试次数或超时。这是正常行为,因为它们需要等待所有 worker 完成训练才能继续执行其他操作。
如果您想要提前结束剩余的 worker 进程,可以通过设置合适的 tf.train.StopAtStepHook
来控制训练的步数,在达到指定步数后主动停止训练,并通知其他节点结束。
问题2:chief 进程打印 conn timeout 错误日志
在分布式训练中,chief 进程会负责协调和管理整个训练过程,包括与其他节点的通信。因此,如果某个 worker 节点无法连接,chief 进程会记录连接超时的错误日志。这是提示有节点未能如预期连接的信息,不一定表示出现了严重的错误。
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用户群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。