Chengru-Song / awesome-MultiModal-LLM-SFT-Guide

Apache License 2.0
3 stars 1 forks source link

多图片训练方式的问题 #1

Open CrushDemo01 opened 4 months ago

CrushDemo01 commented 4 months ago

您好,请教您一下,您对训练数据json修改的方式的是否是多张相同的图片? 因为我看只有一个。 如果要实现两个不同的图片,是不是构建数据集应该要这种形式?

ps:纯小白,刚开始看MLLM,像迁移到自己的任务上。见谅!

Chengru-Song commented 4 months ago

不是多张相同的图片,数据集是多张不同的图片,具体的代码可以参考这个我修改的这个repo: https://github.com/Chengru-Song/LLaVA/tree/feature/multi_image_training

Chengru-Song commented 4 months ago

数据集需要使用多张不同的图片,不过可以Follow他们最新的工作:interleaved LLaVA,他们应该已经实现了多图的训练。不过感觉方法是类似的 https://llava-vl.github.io/blog/2024-06-16-llava-next-interleave/

CrushDemo01 commented 4 months ago

[ { "conversations": [ {"from": "human", "value": "Please tell me what's unusual about this image: <image1><image2>"}, {"from": "gpt", "value": "A man is ironing his clothes on a vehicle. "}, {"from": "human", "value": "What's funny about this?"}, {"from": "gpt", "value": "Because people don't usually do this at home."} ], "image": "llava/image_folder(local image path)" }, { "conversations": [ {"from": "human", "value": "Please tell me what's unusual about this image: <image1><image2>"}, {"from": "gpt", "value": "A man is ironing his clothes on a vehicle. "}, {"from": "human", "value": "What's funny about this?"}, {"from": "gpt", "value": "Because people don't usually do this at home."} ], "image": "llava/image_folder(local image path)" } ] 谢谢您的回答。 LLaVA-interleaved我看了一点点,他们的构建的数据集类似也是两个不同的image token,就像上面这样。感觉会合理一些?但我看您的数据集样例还是只有一个。 他们似乎没有给出训练代码,而且整体太复杂了,我的任务似乎并不需要。

另外您的博客一直无法直接评论,如图 Snipaste_2024-07-05_11-35-58 再次感谢您的回答!

Chengru-Song commented 4 months ago

谢谢你的指出,我刚支持了博客的comment功能。

prompt里面的或者是本身只是一个placeholder,最终还要看是否在代码里面更改为了不同的Image token,token_id是否是一样的,如果没有改的话,placeholder是无所谓的。如果进行了更改,则会有差别。

但我不认为他们会根据位置不一样设置不同的image_token_id,原因在于

  1. 最终什么样的token_id都会变成embedding,不会因为token_id不同而有所差异;
  2. input地方有positional embedding layer,图片的位置信息是可以capture到的,所以不需要什么额外设置保证图片顺序;
  3. 其他模型也有Interleaved的数据集,他们并没有区分这个placeholder,原因正如我上面两点所说。