Closed lisenjie757 closed 2 months ago
这个issue里面给了一个办法, https://github.com/modelscope/ms-swift/issues/1560, 我的数据里面最多有3张图片,给url应该不是原因
我的训练代码是
CUDA_VISIBLE_DEVICES=0,1,2,3 nohup swift sft --model_type internvl2-8b --model_id_or_path /root/.cache/modelscope/hub/OpenGVLab/InternVL2-8B/ --dataset ./output/jsonl/train_dataset.jsonl --max_length 4096 --use_flash_attn true --gradient_checkpointing true --learning_rate 1e-6 --num_train_epochs=3 --gradient_accumulation_steps 64 --preprocess_num_proc 48 --batch_size=2 --device_max_memory 80GB 80GB 80GB 80GB&
但是,还是有两个问题
我想是不是因为多图片的训练数据会在之后的训练过程中增加显存,而不是在刚开始分配模型的时候,所以导致了在之后的过程中出现OOM,最开始的时候四张卡的分配大概是 43G, 11G, 11G, 20G
@ruian1 你好,没看懂这个issue里的内容,https://github.com/modelscope/ms-swift/issues/1560, 没有引用错嘛 所以解决OOM问题核心是用 --device_max_memory 来限制最大内存?
@ruian1 你好,没看懂这个issue里的内容,#1560, 没有引用错嘛 所以解决OOM问题核心是用 --device_max_memory 来限制最大内存?
是这个 --use_flash_attn true repo里面应该是什么地方有个bug,因为即使不加这个,model_config里面显示的 也是"use_flash_attn": true,加上之后 SftArguments里面use_flash_attn=None变成use_flash_attn=True, somehow就能跑起来,我的数据里面最多3张图片
我也只是试出来可以跑,没去细看哪里参数没读对
目前已经支持了deepspeed zero3,可以试一下,这个应该会减少很大的显存使用