Ask-Anything icon indicating copy to clipboard operation
Ask-Anything copied to clipboard

UserWarning: None of the inputs have requires_grad=True. Gradients will be None

Open Qnancy opened this issue 1 year ago • 8 comments

由于显卡不是很充足,我将config中的freeze_vit和freeze_qformer都设置成了True,同时添加了freeze_lora,在models/videochat_mistra/videochat2_it_mistral.py中添加

    if self.freeze_lora:
          logger.info("freeze lora")
          for _, param in self.mistral_model.named_parameters():
              param.requires_grad = False
          self.mistral_model = self.mistral_model.eval()
          self.mistral_model.train = disabled_train

也就是说,我希望我只训练线性层的参数,然而在训练过程中出现 WARNING | py.warnings : .../anaconda3/envs/videochat2/lib/python3.9/site-packages/torch/utils/checkpoint.py:31: UserWarning: None of the inputs have requires_grad=True. Gradients will be None   warnings.warn("None of the inputs have requires_grad=True. Gradients will be None") 请问这个warning下我的训练是否是有效的。

Qnancy avatar Sep 09 '24 06:09 Qnancy

It's okay~

Andy1621 avatar Sep 10 '24 17:09 Andy1621

It's okay~

感谢回复!我已经使用之前说的情况训练得到了ckpt_latest.pth,但在inference的时候出现了'San francisco, california, usa. june 2019: a man cleaning a couch. \n\nSan francisco, california, usa. june 2019: a man cleaning a couch.‘类似的乱码,可能是什么情况呢

Qnancy avatar Sep 11 '24 05:09 Qnancy

@Qnancy 如果您使用的是vicuna的语言模型,请检查一下是否是下载的delta模型并已经完成了权重的转换。 转换的过程您可以参考https://github.com/OpenGVLab/Ask-Anything/blob/main/video_chat/README_CN.md#running-%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

yinanhe avatar Sep 11 '24 06:09 yinanhe

@Qnancy 如果您使用的是vicuna的语言模型,请检查一下是否是下载的delta模型并已经完成了权重的转换。 转换的过程您可以参考https://github.com/OpenGVLab/Ask-Anything/blob/main/video_chat/README_CN.md#running-%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

感谢回复~我使用的是mistrial,且在训练前使用videochat2_mistral_7b_stage3.pth进行inference是完全没有问题的,将checkpoint_path变成训练得到的ckpt_latest.pth就输出了乱码

Qnancy avatar Sep 11 '24 13:09 Qnancy

@Qnancy 如果您使用的是vicuna的语言模型,请检查一下是否是下载的delta模型并已经完成了权重的转换。 转换的过程您可以参考https://github.com/OpenGVLab/Ask-Anything/blob/main/video_chat/README_CN.md#running-%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

感谢回复~我使用的是mistrial,且在训练前使用videochat2_mistral_7b_stage3.pth进行inference是完全没有问题的,将checkpoint_path变成训练得到的ckpt_latest.pth就输出了乱码

如果可能的话,可以贴一下log,看看会不会是新训练的权重加载不对~

yinanhe avatar Sep 11 '24 13:09 yinanhe

train.log 这是全部的train.log,非常感谢您的帮助~~

Qnancy avatar Sep 11 '24 14:09 Qnancy

Hi~ 训练后只会保存更新过的权重,考虑到你是冻结训练的,加载权重的时候,需要先加载原始的videochat2_mistral_7b_stage3.pth,再加载你的ckpt_latest.pth

Andy1621 avatar Sep 11 '24 14:09 Andy1621

Hi~ 训练后只会保存更新过的权重,考虑到你是冻结训练的,加载权重的时候,需要先加载原始的videochat2_mistral_7b_stage3.pth,再加载你的ckpt_latest.pth

原来是这样,我去尝试一下您说的操作,非常感谢!

Qnancy avatar Sep 11 '24 14:09 Qnancy

Hi,我们将关闭这个issue, 如果您还有相关问题,欢迎随时联系我们~

yinanhe avatar Oct 11 '24 07:10 yinanhe