MiniCPM-V icon indicating copy to clipboard operation
MiniCPM-V copied to clipboard

利用video_chatgpt finetune minicpm报错

Open zhaoyangwei123 opened this issue 1 year ago • 12 comments

显卡用的是4张3090,由于显存不够所以设置了--quantization_bit 4 ,下面是命令参数: CUDA_VISIBLE_DEVICES=5,6,7,8 NPROC_PER_NODE=4 swift sft --model_type minicpm-v-v2_6-chat --model_id_or_path OpenBMB/MiniCPM-V-2_6 --sft_type lora --quantization_bit 4 --dataset video-chatgpt --deepspeed default-zero3 在训练的时候报下面错误,且更新了ffmpeg之后仍然报错,报完这个错误之后GPU一直卡在显卡占用率100%,但是log文件没有后续,应该是没有训练起来: Parameter Offload: Total persistent parameters: 8318704 in 734 params Train: 0%| | 0/198 [00:00<?, ?it/s][h264 @ 0x559ba07e2640] mmco: unref short failure [h264 @ 0x55e2f48ee700] mmco: unref short failure [h264 @ 0x559bbe772b80] mmco: unref short failure [h264 @ 0x559bbe772b80] mmco: unref short failure [h264 @ 0x559bbe772b80] mmco: unref short failure [h264 @ 0x55c3c885eb40] mmco: unref short failure [h264 @ 0x55c3c885eb40] mmco: unref short failure [h264 @ 0x55c3c885eb40] mmco: unref short failure [h264 @ 0x55c3c885eb40] mmco: unref short failure

+-----------------------------------------+------------------------+----------------------+ | 4 NVIDIA GeForce RTX 3090 On | 00000000:88:00.0 Off | N/A | | 30% 53C P0 160W / 350W | 10259MiB / 24576MiB | 100% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 5 NVIDIA GeForce RTX 3090 On | 00000000:89:00.0 Off | N/A | | 35% 56C P0 147W / 350W | 10939MiB / 24576MiB | 100% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ 6 NVIDIA GeForce RTX 3090 On | 00000000:B1:00.0 Off | N/A | | 41% 56C P0 156W / 350W | 10991MiB / 24576MiB | 100% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ | 7 NVIDIA GeForce RTX 3090 On | 00000000:B2:00.0 Off | N/A | | 42% 57C P0 157W / 350W | 10963MiB / 24576MiB | 100% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ 请问这是什么原因导致的呢,是因为--quantization_bit 4与--deepspeed default-zero3不兼容吗?

zhaoyangwei123 avatar Sep 02 '24 09:09 zhaoyangwei123

您好,如果要进行qlora请按照这个教程进行吧https://modelbest.feishu.cn/wiki/HvfLwYzlIihqzXkmeCdczs6onmd?from=from_copylink

LDLINGLINGLING avatar Sep 02 '24 09:09 LDLINGLINGLING

您好,如果要进行qlora请按照这个教程进行吧https://modelbest.feishu.cn/wiki/HvfLwYzlIihqzXkmeCdczs6onmd?from=from_copylink

您好,我看这个教程里面https://modelbest.feishu.cn/wiki/HvfLwYzlIihqzXkmeCdczs6onmd?from=from_copylink 似乎是全量微调vlm,用lora微调llm,在swift里面的话用lora微调应该是只微调llm吗,感觉教程里面的finetune和swift是不一样的

zhaoyangwei123 avatar Sep 03 '24 13:09 zhaoyangwei123

教程里是官方微调代码

LDLINGLINGLING avatar Sep 03 '24 14:09 LDLINGLINGLING

教程里是官方微调代码

您好,教程里面的微调代码是不是只支持图片微调呢,我按照教程利用图片微调是可以的,但是使用视频微调就报错了data fetch error,该数据集是处理过的,利用swift框架的话是可以进行视频微调的

zhaoyangwei123 avatar Sep 03 '24 14:09 zhaoyangwei123

您好,如果要进行qlora请按照这个教程进行吧https://modelbest.feishu.cn/wiki/HvfLwYzlIihqzXkmeCdczs6onmd?from=from_copylink

您好,我在利用多图finetune的时候,即使利用官方的微调教程,但是当设置--deepspeed default-zero3,训练过程也会像我第一个问题那样,显卡占用率全部卡在100%, 而且等了很久训练进度还是卡在0,请问这是为什么呢?

zhaoyangwei123 avatar Sep 04 '24 08:09 zhaoyangwei123

应该是deepspeed的问题,zero3问题确实比较多,但是我跟许多小伙伴都是没问题的,现在给出我的环境https://modelbest.feishu.cn/docx/G9avduC9voFbdFxvOkXcIoLvnRm?from=from_copylink

LDLINGLINGLING avatar Sep 04 '24 08:09 LDLINGLINGLING

我也遇到训练进度卡在0的问题,直接pip install deepspeed训练会卡住,从源码安装deepspeed解决,deepspeed版本0.14.2

hangzh2012 avatar Sep 04 '24 09:09 hangzh2012

我也遇到训练进度卡在0的问题,直接pip install deepspeed训练会卡住,从源码安装deepspeed解决,deepspeed版本0.14.2

应该是deepspeed的问题,zero3问题确实比较多,但是我跟许多小伙伴都是没问题的,现在给出我的环境https://modelbest.feishu.cn/docx/G9avduC9voFbdFxvOkXcIoLvnRm?from=from_copylink

真的很感谢您的建议,但是我把deepspeed卸掉用DS_BUILD_FUSED_ADAM=1 pip install .源码编译安装了0.14.0,0.14.1,0.14.2三个版本都还是会卡住,我的显卡是3090我看网上说有可能卡间通信导致的,下面是我的sh文件: export NCCL_P2P_DISABLE=1 # a100等支持nccl_p2p的显卡去掉此行 export NCCL_IB_DISABLE=1 # a100等显卡去掉此行 MODEL_MAX_Length=4096 # if conduct multi-images sft, please set MODEL_MAX_Length=4096

DISTRIBUTED_ARGS=" --nproc_per_node $GPUS_PER_NODE
--nnodes $NNODES
--node_rank $NODE_RANK
--master_addr $MASTER_ADDR
--master_port $MASTER_PORT " torchrun $DISTRIBUTED_ARGS finetune.py
--model_name_or_path $MODEL
--llm_type $LLM_TYPE
--data_path $DATA
--eval_data_path $EVAL_DATA
--remove_unused_columns false
--label_names "labels"
--prediction_loss_only false
--bf16 false
--bf16_full_eval false
--fp16 true
--fp16_full_eval true
--do_train
--do_eval
--tune_vision false
--tune_llm false
--use_lora true
--lora_target_modules "llm..*layers.\d+.self_attn.(q_proj|k_proj|v_proj|o_proj)"
--model_max_length $MODEL_MAX_Length
--max_slice_nums 9
--max_steps 10000
--eval_steps 1000
--output_dir output/output__lora
--logging_dir output/output_lora
--logging_strategy "steps"
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--gradient_accumulation_steps 1
--evaluation_strategy "steps"
--save_strategy "steps"
--save_steps 1000
--save_total_limit 10
--learning_rate 1e-6
--weight_decay 0.1
--adam_beta2 0.95
--warmup_ratio 0.01
--lr_scheduler_type "cosine"
--logging_steps 1
--gradient_checkpointing true
--deepspeed ds_config_zero3.json
--report_to "tensorboard" # wandb 我改动了MODEL_MAX_Length=4096不知道这里会不会存在一定影响

zhaoyangwei123 avatar Sep 04 '24 09:09 zhaoyangwei123

我也遇到训练进度卡在0的问题,直接pip install deepspeed训练会卡住,从源码安装deepspeed解决,deepspeed版本0.14.2

我使用源码进行了deepspeed的安装,版本和你的一样,但是目前还是卡住不能训练;能否给出一些 细节,比如安装deepspeed需要注意的地方

TAOSHss avatar Oct 09 '24 11:10 TAOSHss

我也遇到训练进度卡在0的问题,直接pip install deepspeed训练会卡住,从源码安装deepspeed解决,deepspeed版本0.14.2

我使用源码进行了deepspeed的安装,版本和你的一样,但是目前还是卡住不能训练;能否给出一些 细节,比如安装deepspeed需要注意的地方

我后来想了一下原因,我们卡住的原因都是用了deepspeedzero3,如果用zero2的话就应该不会报错,但是一般zero2站的显存会大一些,zero3实际上是利用内存来解决显存不够的问题,我特地看了一下用zero3的时候内存的消耗,我发现卡住的原因一般是内存占满了,甚至有时候使用到了交换内存,这就会使得电脑处理数据变慢或者卡住,因为没有多余的内存(内存条那种高速闪存)来供CPU处理数据,所以解决这个问题的最好办法就是换成zero2或者多加几根内存条,内存够用自然就好了,而且一般zero3只是在最开始的时候占用很大内存,有时候内存如果将将够能走过去的话后面就正常训练了,不能走过去就会卡住

zhaoyangwei123 avatar Oct 09 '24 11:10 zhaoyangwei123

我也遇到训练进度卡在0的问题,直接pip install deepspeed训练会卡住,从源码安装deepspeed解决,deepspeed版本0.14.2

我使用源码进行了deepspeed的安装,版本和你的一样,但是目前还是卡住不能训练;能否给出一些 细节,比如安装deepspeed需要注意的地方

我后来想了一下原因,我们卡住的原因都是用了deepspeedzero3,如果用zero2的话就应该不会报错,但是一般zero2站的显存会大一些,zero3实际上是利用内存来解决显存不够的问题,我特地看了一下用zero3的时候内存的消耗,我发现卡住的原因一般是内存占满了,甚至有时候使用到了交换内存,这就会使得电脑处理数据变慢或者卡住,因为没有多余的内存(内存条那种高速闪存)来供CPU处理数据,所以解决这个问题的最好办法就是换成zero2或者多加几根内存条,内存够用自然就好了,而且一般zero3只是在最开始的时候占用很大内存,有时候内存如果将将够能走过去的话后面就正常训练了,不能走过去就会卡住

明白

TAOSHss avatar Oct 09 '24 11:10 TAOSHss

@zhaoyangwei123 你好,请问下如果用官方的微调代码,数据集处理是不是和swift不一样啊,视频微调也是image吗

ransheng11 avatar Dec 21 '24 14:12 ransheng11