FlagEmbedding icon indicating copy to clipboard operation
FlagEmbedding copied to clipboard

在运行微调脚本报错 torch.distributed.elastic.multiprocessing.api: [ERROR] failed (exitcode: 1) local_rank: 0

Open Youfenghao opened this issue 2 years ago • 13 comments

bash run.sh

下面是运行脚本内容

#!/usr/bin/env bash export OMP_NUM_THREADS=2 torchrun --nproc_per_node 2
-m .run
--output_dir ../models/bge-large-zh-medical-v2
--model_name_or_path ../BAAI/bge-large-zh-v1.5
--train_data ../data/toy_finetune_data.jsonl
--learning_rate 1e-5
--fp16
--num_train_epochs 1
--per_device_train_batch_size 1
--dataloader_drop_last True
--normlized True
--temperature 0.02
--query_max_len 64
--passage_max_len 256
--train_group_size 2
--negatives_cross_device False
--logging_steps 10
--query_instruction_for_retrieval ""

但运行报错 torch.distributed.elastic.multiprocessing.api: [ERROR] failed (exitcode: 1) local_rank: 0 (pid: 33189) 6ec9daa840514496ca57ebc14805f90

Youfenghao avatar Nov 23 '23 05:11 Youfenghao

原来是运行地方错了,需要在根目录下进行微调运行 sh 文件

Youfenghao avatar Nov 23 '23 08:11 Youfenghao

行地方错了,需要在根目录下进行微调运行 sh 文件

你好我也遇到了同样的情况,请问在根目录下微调你具体指的是什么呢,十分感谢!

MrRexy-Ling avatar Nov 24 '23 02:11 MrRexy-Ling

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

Youfenghao avatar Nov 24 '23 05:11 Youfenghao

@staoxiao , finetine 代码 是可以用多个gpu进行训练的吗?

Youfenghao avatar Nov 24 '23 08:11 Youfenghao

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

多谢,问题解决了

MrRexy-Ling avatar Nov 24 '23 08:11 MrRexy-Ling

@staoxiao , finetine 代码 是可以用多个gpu进行训练的吗?

支持的

staoxiao avatar Nov 24 '23 08:11 staoxiao

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

多谢,问题解决了

你好,我现在复现一个程序,原程序用bash启动,原来的程序用8个GPU,我用一个,好像也出现了这个问题

John122-art avatar Jan 12 '24 15:01 John122-art

原来是运行地方错了,需要在根目录下进行微调运行 sh 文件 必须要在根目录下运行对吗

John122-art avatar Jan 12 '24 15:01 John122-art

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

多谢,问题解决了

你好,我现在复现一个程序,原程序用bash启动,原来的程序用8个GPU,我用一个,好像也出现了这个问题

你好,你最后.sh 文件里指定GPU个数了吗,通常情况下八卡的DDP用单卡是可以运行的,就是world rank一直默认为0,你可以检查一下一下程序里分布式训练的部分

MrRexy-Ling avatar Jan 13 '24 04:01 MrRexy-Ling

image 作者你好,请问是这样用bash来运行吗?我这样还是报了和你一样的错误。

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

qspang avatar Jan 25 '24 13:01 qspang

image这是我的运行指令。

image 作者你好,请问是这样用bash来运行吗?我这样还是报了和你一样的错误。

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

qspang avatar Jan 25 '24 13:01 qspang

@MrRexy-Ling , 就是把微调训练的指令放到 shell脚本里,用bash来启动 run.py, 因为需要开启多个进程,所以一般用 .sh文件来执行模型的训练启动,截图上面就是我的 run.sh的内容,

我将运行的指令放到shell脚本运行,依然报这种错误,怎么解决呢?

chenchen333-dev avatar Apr 10 '24 07:04 chenchen333-dev