yfzhang114 / SliME

✨✨Beyond LLaVA-HD: Diving into High-Resolution Large Multimodal Models
Apache License 2.0
128 stars 7 forks source link

使用siglip替换clip 训练时会出现问题 #4

Closed AIaimuti closed 1 month ago

AIaimuti commented 1 month ago

image

我对代码做了以下修改 image

1.将train部分进行了修改,将image_processor.crop_size改成image_processor.size,因为siglip没有cropsize 2.data_dict['image_size'] = (336, 336)修改为data_dict['image_size'] = (384, 384),因为siglip训练时图片大小为384

请问我该如何继续调整代码呢

yfzhang114 commented 1 month ago

大概率是position embedding的维度不对的问题,这一行定义了position embedding的大小,你也可以直接把position embedding comment掉,看看是不是会出问题,这块对最终性能的影响不会特别大

https://github.com/yfzhang114/SliME/blob/25988bb965320bbf5ff88646a1a793bb854e4131/llava/model/multimodal_resampler/sampler.py#L146

AIaimuti commented 1 month ago

感谢您的回复,确实是这里的问题 image 我使用的siglip 384的patch大小是27 27,去除分类层,特征数是27 27-1= 728, 这行代码将tgt_size 变成了26*26=676, 然后我将这行注释掉之后,再对pos_embed采用和特征处理一样的方法,去掉第0层,这样代码可以正常运行,请问这样修改是否合适呢?

yfzhang114 commented 1 month ago

这是comment的这一段是因为global特征和local特征需要的position embedding不一样,所以需要特别判断一下,只要代码能正常跑通说明就没什么问题。