这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@xinyanghuang7
Copy link
Contributor

非常感谢您实现了这个精彩的仓库。

我希望在您的基础上添加一些小功能,共同维护这个仓库,同时也推动我了解和学习多模态大模型的知识。

这次更新添加了在新的数据集上进行多图训练和推理的过程

主要就是添加了dataloader和修改了模型替换图像标识符的策略

虽然效果很一般,但我希望能为多图推理训练提供一种思路。

后续也希望和您一起不断完善这个仓库,共同维护和优化

如果您对我有任何建议,您可以随时联系我,我会给你及时的回复。

@xinyanghuang7
Copy link
Contributor Author

训练数据集以及部分文件已放入Huggingface。后续也会持续更新。

@jingyaogong
Copy link
Owner

jingyaogong commented Oct 30, 2024

@xinyanghuang7
谢谢您的贡献,很不错的尝试!!!

由于体量不小,review了一大会儿
花时间debug过了,确认了代码逻辑没有问题
由于model.py, dataset.py, vision_utils.py 代码做了兼容处理,因此完全不会影响以前的全部功能。

现在有几个地方需要确认一下:

1.

注意到 4-sft_multi_vlm.py2-sft_vlm.py 基本一致
是否可以在 2-sft_vlm.py 添加可选 multi 参数配置的方式,放到一个脚本中完成。
image
(希望简洁轻量,用更小的修改完成更大的功能)
同样的,5-eval_chat_multi.py 新增部分是否也可以放到 3-eval_chat.py

2.

model.py 的386行开始一小段,做了小修改(无逻辑变化):

      # 如果此时有图像编码
      if image_encoders is not None:
            vision_proj = self.vision_proj(image_encoders)
            vision_proj = vision_proj.unsqueeze(0) if len(vision_proj.shape) == 3 else vision_proj
            if image_indices is not None:
                # 创建一个新的张量来存储拼接后的结果
                new_h = []
                for i in range(h.size(0)):
                    # i即为current_batch_idx索引
                    img_idx = 0
                    for batch_idx, start_idx, end_idx in image_indices:
                        if batch_idx == i:
                            # 插入vision_proj特征
                            before = h[i][:start_idx, :]
                            after = h[i][end_idx + 1:, :]
                            # 拼接 before, vision_proj, after
                            h[i] = torch.cat((before, vision_proj[i][img_idx], after), dim=0)[:seqlen]
                            img_idx += 1
                    new_h.append(h[i])
                # 将所有拼接后的结果重新堆叠起来
                new_h = torch.stack(new_h, dim=0)  # torch.Size([32, 511, 512])
                return new_h

3.

① readme中有一些冲突标记可能忘记被解决
② eval_multi_images 是否没有添加(如果我没有遗漏的话)
image

4.

由于PR包含新模型的训练,因此训练过程/数据集/效果评估等我不做新的复现
我会将xinyanghuang7分支和 minimind-v_multi_image 附在说明中。

完成以上后会马上merge此PR,期待进一步交流,谢谢!!!

@xinyanghuang7
Copy link
Contributor Author

非常感谢您的及时回复以及建议!

multi-images training 1.0目前已经根据您的建议修改了大部分内容,辛苦您再次审阅。

后续会逐步添加预训练的权重和更详细的评估分析。

感谢您的认可!

期待和您以后更多的交流!

Copy link
Owner

@jingyaogong jingyaogong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good

@jingyaogong jingyaogong merged commit bf0730a into jingyaogong:master Oct 31, 2024
Misaki-Akeno pushed a commit to Misaki-Akeno/minimind-v-vla that referenced this pull request Sep 19, 2025
添加多图训练和推理过程
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants