关于 Qwen2_VL-2B 微调时显存不足的问题
您好, 我在使用自己的图文数据集尝试微调 Qwen2_VL-2B,训练时设置了使用 default-zero2 ,出现显存占用不均,单张显卡显存不足报error的情况。下面我运行的完整sh:
SIZE_FACTOR=8 MAX_PIXELS=602112 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 NPROC_PER_NODE=8 swift sft \
--model_type qwen2-vl-2b-instruct \
--model_id_or_path /projects/Qwen2_VL/Qwen2-VL-2B-Instruct \
--sft_type lora \
--lora_target_modules ALL \
--tuner_backend peft \
--deepspeed default-zero2
我在微调时设置 --lora_target_modules ALL,当其设置为 DEFAULT 时,可以正常运行但训练结果指标较差,与相同模型量级的 InternVL2-2B 相差较大ACC在10个点以上,为了寻找差距原因想尝试将VIT部分一起微调,对于上述问题请问是否有好的解决建议。
这里的ACC是指什么, train_acc还是 评估时候的acc
这里的ACC是指什么, train_acc还是 评估时候的acc
感谢回复,是指在validation上的 sentence-ACC。token-ACC为0.98左右,但对应sentence-acc 为0.76(internvl2-2B 中token-ACC为0.98, sentence-ACC约为0.90,我所用数据集文本描述比较简单且格式固定)。 将 Qwen2_VL-2B 和 Internvl2-1B 对比,在验证集上的 sentence-ACC 也低了9个点左右,请问您对这样差异的原因有什么理解吗
这里的ACC是指什么, train_acc还是 评估时候的acc
感谢回复,是指在validation上的 sentence-ACC。token-ACC为0.98左右,但对应sentence-acc 为0.76(internvl2-2B 中token-ACC为0.98, sentence-ACC约为0.90,我所用数据集文本描述比较简单且格式固定)。 将 Qwen2_VL-2B 和 Internvl2-1B 对比,在验证集上的 sentence-ACC 也低了9个点左右,请问您对这样差异的原因有什么理解吗
都是ms-swift跑的吗
这里的ACC是指什么, train_acc还是 评估时候的acc
感谢回复,是指在validation上的 sentence-ACC。token-ACC为0.98左右,但对应sentence-acc 为0.76(internvl2-2B 中token-ACC为0.98, sentence-ACC约为0.90,我所用数据集文本描述比较简单且格式固定)。 将 Qwen2_VL-2B 和 Internvl2-1B 对比,在验证集上的 sentence-ACC 也低了9个点左右,请问您对这样差异的原因有什么理解吗
都是ms-swift跑的吗
是的,为了统一比较将 internvl2-2B也设置了--lora_target_modules DEFAULT 微调lora,验证集上得到的 sentence-acc 为0.87,相较于--lora_target_modules ALL 下降了一些(0.90),但也远高于Qwen2_VL-2B的 0.76 的sentence-acc。
我使用的数据集是简单的图文单轮对话,文本描述是图像类型的英文直译。在微调Qwen2_VL-2B时还遇到下面两个问题:
- 在验证集上的推理结果中会出现回复包含中英文的混合情况,但微调数据集中不包含中文描述。
- 推理结果并没有按照微调数据集中的固定格式输出,会存在语序调换、某个词语替换或自行添加标点符号的情况。
后续尝试设置了 SIZE_FACTOR=8 MAX_PIXELS=301056,降低 MAX_PIXELS 后可以解决显存不足的问题,但不确定对模型效果是否有影响
我在V100上微调Qwen2-VL-2B也碰到了同样的问题。
[INFO:swift] Setting resized_height: None. You can adjust this hyperparameter through the environment variable: RESIZED_HEIGHT.
[INFO:swift] Setting resized_width: None. You can adjust this hyperparameter through the environment variable: RESIZED_WIDTH.
[INFO:swift] Setting min_pixels: 3136. You can adjust this hyperparameter through the environment variable: MIN_PIXELS.
[INFO:swift] Setting max_pixels: 12845056. You can adjust this hyperparameter through the environment variable: MAX_PIXELS.
这些值的设置有什么讲究吗?
使用--lora_target_modules=DEFAULT时,loss为0,使用--lora_target_modules=ALL时,内存不够,设置MAX_PIXELS=301056后,显存不会不够,但是loss依然是0
使用bf16或者fp32, 不要用fp16
使用bf16或者fp32, 不要用fp16
您好,想问下我在微调时开启 --deepspeed default-zero2 后发现验证集上 acc 与不开时相比会有掉点的情况(3个点以上),会是什么原因呢