百科问答小站 logo
百科问答小站 font logo



pytorch ddp训练中一个node fail,导致整个训练失败,有可能解决吗? 第1页

  

user avatar   liustein 网友的相关建议: 
      

其实我从来没有想过要去挽救一个挂掉的训练。。。毕竟人家要是挂了,还是要尽量搞清楚怎么回事。俗话说的好,如果你发现了一只蟑螂,一定在暗处还藏着一万只。。。所以,与其学习和蟑螂共存,不如把他干掉啊。

不过我还是挺好奇的,就搜索了一番,感觉有点价值,就稍微贡献一下我的搜索成果。

Torch Elastic自然是可以,一般做法是经常保存模型,然后出问题Torch Elastic会重启所有节点,重启的时候恢复之前保存的最近的模型和训练状态然后继续训练。

还有一个技巧是使用nccl的超时功能,如果什么都不做,nccl是没有超时功能的。但把NCCL_ASYNC_ERROR_HANDLING的环境变量设置成1,然后在初始化进程的时候这么设置:

       import torch.distributed as dist  dist.init_process_group(          backend=nccl,     timeout=timedelta(seconds=5) )     

nccl就会在节点超时5秒的时候抛出异常。nccl的超时功能加上Torch Elastic,就可以处理因为超时而挂掉的节点了。

一点微小的贡献哈


user avatar   xiaohuzc 网友的相关建议: 
      

补充一点:torch新出的Join可以处理DDP中数据不均匀的情况,本质上就是忽略那些已经join的node,所以可以在每个node中catch异常,发现异常可以提前join,也是一种处理方式吧。


user avatar   shaoziqi 网友的相关建议: 
      

Torch Elastic


user avatar   ding-ming-55-55 网友的相关建议: 
      

各种弹性训练适用范围有限。。。例如用zero之类的训练有点挂了神仙难救,还是勤存ckpt是王道。




  

相关话题

  学习python中的pandas有没有好的教程推荐? 
  在文本分类任务中,有哪些论文中很少提及却对性能有重要影响的tricks? 
  Python 有哪些黑魔法? 
  自监督学习(Self-supervised Learning)有什么比较新的思路? 
  CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别? 
  神经网络的万能逼近定理已经发展到什么地步了? 
  如何评价AWS的图神经网络框架DGL? 
  python中的模块、库、包有什么区别? 
  如何看待KDD'21的文章,异质图神经网络的效果不如简单的GCN、GAT? 
  如果百年后深度学习最终有了公认的数学理论作为基础,能解释实验中的各类玄学,那这个理论会长什么样子? 

前一个讨论
什么叫文化素养?
下一个讨论
为什么说大模型训练很难?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利