1、可以通过 max_pixels 限制输入图片的最大尺寸,也可以通过直接修改 preprocessor_config.json 当中的参数来限制

processor = AutoProcessor.from_pretrained("/root/denglizhi/models_soft/Qwen2-VL-7B-Instruct", max_pixels=max_pixels)

2、llamafactory来对 qwen2vl 进行lora训练时、注意修改学习率、默认的qwen2vl lora.yml配置的是 1e-4、可以改到 2e-5;

3、建议打开日志记录,方便调优

### eval
val_size: 0.01
per_device_eval_batch_size: 4
eval_strategy: steps
eval_steps: 500
### log
report_to: tensorboard
logging_dir: /data/model/output/runs
logging_strategy: steps

4、qwen2vl lora训练时,可以设置 freeze_vision_tower为false、增加的参数量大概在 0.06%(图片限制在 512token时)/ 0.4%(图片在3300token时)

5、其他记录

The default range for the number of visual tokens per image in the model is 4-16384

可以设置图片的像素范围:比如 256-1280token
min_pixels = 2562828
max_pixels = 12802828

processor.apply_chat_template 函数作用

当图片是 2044 * 1372像素时

处理成的 token数是 73 * 49 = 3577 token、整个prompt的token是 3602个

inputs.data[‘input_ids’] 是 包含vision tokens的整个prompt tokens,通过 processor 得到

inputs.data[‘pixel_values’] 是 (14308 ,1176) 维度

前一个是 grid_t * grid_h * grid_w 14308 = 1 * 98 * 146

后一个是 channel * self.temporal_patch_size * self.patch_size * self.patch_size
1176 = 3* 2* 14 * 14

‘image_grid_thw’: tensor([[ 1, 98, 146]], device=‘cuda:0’)}} 三个维度的大小 时间、高度、宽度 grid_t, grid_h, grid_w

因为 图片和视频帧的同步、 乘以2、所以高度(即宽度) = 49 * 2 = 98

维度 转为 pixel长度 98 * 146 = 14308

14308 和 3577 的关系是?

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐