OpenLMLab/LOMO

adalomo 试图在 llama 2 70b 模型训练时出现 NCCL communicator 这类超时的错误

Opened this issue · 5 comments

您好,再次感谢 lomo 这一出色的系列工作。目前我正在尝试使用 collie 这里面的框架进行训练,使用的是最新的 dev 分支代码。在训练时我使用 llama 2 13b 这种规模的模型是没有问题的,但是在 70b 一直会出现
image
我是用的脚本就是您这个项目了 adalomo 中直接提供的 instruction tuning 的脚本 其他参数只是设置 tp=2 模型我自己给了个路径。请问您这个有遇到过或者该如何设置呢?我的机器环境是 8*A100 的配置。
感谢~~

你好,adalomo和lomo现在只支持纯dp或者纯tp。使用8卡的话,建议把dp_size改成8,tp_size设置为1

您好,我重新设置了tp_size=1 目前感觉加载完模型还是卡在这里,最后 nccl timeout掉了
image
还是会有如下这种报错:
RuntimeError: NCCL communicator was aborted on rank 1. Original reason for failure was: [Rank 1] Watchdog caught collective operation timeout: WorkNCCL(SeqNum=727, OpType=BROADCAST, Timeout(ms)=1800000) ran for 1803629 milliseconds before timing out.
WARNING:torch.distributed.elastic.multiprocessing.api:Sending process 95936 closing signal SIGTERM
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 1 (pid: 95937) of binary: /root/anaconda3/envs/trl/bin/python

但是对于 13B 这种就不会存在什么问题,就可以正常训练起来。

你好,我这里试了是能跑起来的,应该是机器的原因,或者需要加长nccl timeout的时间
image
也可能是deepspeed版本原因?我的版本是0.10.0

你好,我这里试了是能跑起来的,应该是机器的原因,或者需要加长nccl timeout的时间 image 也可能是deepspeed版本原因?我的版本是0.10.0

你好,可以提供一下训练脚本和ds的配置信息么,我这边也是70B的跑不起来,用的dev分支

你好,我这里试了是能跑起来的,应该是机器的原因,或者需要加长nccl timeout的时间 image 也可能是deepspeed版本原因?我的版本是0.10.0

你好,可以提供一下训练脚本和ds的配置信息么,我这边也是70B的跑不起来,用的dev分支

文件:https://github.com/OpenLMLab/LOMO/blob/main/adalomo/instruction-tuning/train.py 模型改为llama2-70b
torchrun --nproc_per_node 8 train.py