Ucas-HaoranWei / Vary

[ECCV2024] Official code implementation of Vary: Scaling Up the Vision Vocabulary of Large Vision Language Models.
1.65k stars 150 forks source link

pretrain阶段是否训练LLM #87

Open xudou3 opened 3 months ago

xudou3 commented 3 months ago

您好, 请问在pretrain阶段是否需要训练LLM部分呢? 按我的理解,论文中的意思是在pretrain和SFT阶段都需要训练LLM,但是在LLaVA中一般pretrain阶段只训练projector,请问vary中为什么在pretrain时也要训练LLM呢?

Ucas-HaoranWei commented 3 months ago

freeze住LLM的模型不可能认图,LLM是text训练的,之所以基于CLIP的VLM能“认图”,是因为CLIP本身就是偏向于text latent,LLaVA后来sft数据越来越多的原因猜测是只有sft打开了LLM

lucasjinreal commented 3 months ago

我用论文里面提到的方法训练tiny模型,根本无法复现鸭。

他仅能识别固定模式的图片,例如论文、招股书,但是文字完全是不对的。

40W的数据,请问是否遗漏了什么?数据量可有一个最低可复现值?

Ucas-HaoranWei commented 3 months ago

训练tiny你用deepspeed了吗?

lucasjinreal commented 3 months ago

用了,就是默认的 zero2 config,跟deepspeed会啥关联么

41passerby commented 3 months ago

freeze住LLM的模型不可能认图,LLM是text训练的,之所以基于CLIP的VLM能“认图”,是因为CLIP本身就是偏向于text latent,LLaVA后来sft数据越来越多的原因猜测是只有sft打开了LLM

搭车同问,这里可以理解代码里面的 “freeze_lm_model” 开关选项一直都是 False,即 LLM 一直都有参与训练的吗?

作者帮忙看看以下训练方式对不对,不对帮忙纠正一下:

  1. 冻住 llm 权重,通过 opt-125m 训练 sam 和 projector,得到 Vary-tiny 模型。
  2. 从 Vary-tiny 模型中把 sam 和 projector 的权重提取出来,放到 Vary-base 中,冻住 sam 权重,训练 projector 和 llm,得到整体 Vary-base 模型。
xudou3 commented 3 months ago

freeze住LLM的模型不可能认图,LLM是text训练的,之所以基于CLIP的VLM能“认图”,是因为CLIP本身就是偏向于text latent,LLaVA后来sft数据越来越多的原因猜测是只有sft打开了LLM

感谢解答,主要疑问是按照LLaVA的训练流程,在pretrain阶段只训练projector。所以vary在pretrain阶段也是需要训练LLM的吗? 还有一个疑问是输入的embeding,在pretrain和finetune的时候,是否需要训练呢?

Ucas-HaoranWei commented 3 months ago

freeze住LLM的模型不可能认图,LLM是text训练的,之所以基于CLIP的VLM能“认图”,是因为CLIP本身就是偏向于text latent,LLaVA后来sft数据越来越多的原因猜测是只有sft打开了LLM

搭车同问,这里可以理解代码里面的 “freeze_lm_model” 开关选项一直都是 False,即 LLM 一直都有参与训练的吗?

作者帮忙看看以下训练方式对不对,不对帮忙纠正一下:

  1. 冻住 llm 权重,通过 opt-125m 训练 sam 和 projector,得到 Vary-tiny 模型。
  2. 从 Vary-tiny 模型中把 sam 和 projector 的权重提取出来,放到 Vary-base 中,冻住 sam 权重,训练 projector 和 llm,得到整体 Vary-base 模型。

1.不对,llm和opt-125M不是一个模型,vary-tiny单独训练(此时opt-125M打开的),然后抽出sam 2.projector没抽,因为opt-125M和7B的维度对不上,只抽了sam