OFA-Sys / Chinese-CLIP

Chinese version of CLIP which achieves Chinese cross-modal retrieval and representation generation.
MIT License
4.5k stars 464 forks source link

finetune时 epoch的设置 #136

Closed huhuhuqia closed 1 year ago

huhuhuqia commented 1 year ago

您好,我看论文的Appendix里面,在A.3 finetune 部分,table 9 ,您对于不同的数据集(MUGE Flickr COCO)、不同的模型结构分别使用了不同的max epoch。为什么不把epoch设置的大一些呢?请问关于max epoch的设置您有什么考虑?您对于小模型反而训练了更多epoch。

我使用一个与MUGE数据集很类似的服装数据集,训练集有4.7万个caption文本,验证集有3千个caption文本,每个文本对应几个图片。我使用您预训练模型 RN50 和 ViT-B-16 进行微调,我训练了150epoch,结果来看验证集的测试指标R@1 R@5 R@10 是在小幅度上升。

然而150个epoch与您微调阶段设置的epoch相差有点大,我担心finetune结果会不会过拟合。

DtYXs commented 1 year ago

您好,您可以根据保存的ckpt通过验证及评估部分介绍的流程来测试验证集上的准确率,进而结合训练集的loss等判断是否出现了过拟合。在我们的finetune实验中的当前设置下,模型在最后根据数据集的不同会出现不同程度的过拟合现象,验证集最佳的ckpt通常不是最后的ckpt。由于训练时间跟epoch数成正比,因此我们采取了适当增加lr减少总epoch数的方法来提升finetune效率。由于小模型比大模型的拟合能力较弱一些,因此小模型训练了更多的epoch,当然具体的设置也是根据结果进行调参得到的。 具体的参数也需要根据数据来进行设置,不知道您的验证集的测试指标小幅度上升是否持续整个训练过程。可能您可以适当增大些学习率来试试看。

Huang9495 commented 1 year ago

@huhuhuqia 我也发现,我用的base模型进行finetune发现epoch要比原始设置的大很多,由于资源问题,我的bs只有32, lr3e-5,请问你得超参设置是多少,对比一下看看

xuboot commented 1 year ago

微调的时候这个可以自定义权重嘛