由于用量化的模型效果不佳,尝试用的fp16训,在8*v100出现,第一张卡报oom,但其他卡显存占用不高,有什么好的解决方式
v100 是否上可以训 fp16
run train.sh
Environment8*v100
cuda 11.2
batch size 1
由于用量化的模型效果不佳,尝试用的fp16训,在8*v100出现,第一张卡报oom,但其他卡显存占用不高,有什么好的解决方式
v100 是否上可以训 fp16
run train.sh
Environment8*v100
cuda 11.2
batch size 1
第一张卡应该有很多进程,看网上说是torch.load的锅,但是改了之后,依然这样,是框架哪里问题?
同问,我有8张V100的卡,用nvlink互联的,目前训练只能用一张卡,大于两张卡就报错,什么原因?是否需要开启nvlink功能?若是,如何开启? 补充:前面基于两张pcie的v100卡训练,两张可以运行,但是训练性能因为有两卡之间的通讯开销反而不如一张卡。 谢谢!
如果第一张卡有太多进程占用显存,检查下你是不是从git安装的transformers,不能装最新的4.29.0.dev,这个版本就会出现核0多出来3个进程
同问,我有8张V100的卡,用nvlink互联的,目前训练只能用一张卡,大于两张卡就报错,什么原因?是否需要开启nvlink功能?若是,如何开启? 补充:前面基于两张pcie的v100卡训练,两张可以运行,但是训练性能因为有两卡之间的通讯开销反而不如一张卡。 谢谢!
代码的问题,可以看看lora版本的,那个项目有多卡的,也同样有p-tuning多卡版本的
@YSLLYW 谢谢大拿!
https://github.com/hiyouga/ChatGLM-Efficient-Tuning 使用上述仓库的命令即可,实测每个v100卡的显存分配大体一致 accelerate config # configure the environment accelerate launch src/finetune.py \ --do_train \ --dataset alpaca_gpt4_zh \ --finetuning_type lora \ --output_dir path_to_checkpoint \ --per_device_train_batch_size 4 \ --gradient_accumulation_steps 4 \ --lr_scheduler_type cosine \ --logging_steps 10 \ --save_steps 1000 \ --learning_rate 5e-5 \ --num_train_epochs 1.0 \ --fp16 \ --ddp_find_unused_parameters False