SAI990323 / TALLRec

Apache License 2.0
190 stars 31 forks source link

Early-stopping问题 #48

Closed plyplyply closed 3 months ago

plyplyply commented 6 months ago
          对于这个实验,我们尝试过在单张3090或者单张A40上运行代码,epoch数设置的比较大,但是设置了ealrystop=5(如果连续5个epoch 验证集loss不下降停止训练),每个epoch运行时间与样本数绑定,总的运行时间大约是3~4h会收敛,更多的参数细节请参照bash脚本,谢谢

Originally posted by @SAI990323 in https://github.com/SAI990323/TALLRec/issues/45#issuecomment-1926292874

plyplyply commented 6 months ago

作者您好,先前您提到您的early-stopping patience是5,但是在finetune_rec.py finetune_multi_rec.py中均是10,请问应该使用哪个值?

此外还有一个问题,您先前提到代码会在连续n个epoch验证集loss不下降停止训练,但我在运行代码后,发现训练会在n次验证的step(在sample<=128时,每10个iter进行一次验证的step)验证集loss不下降便停止训练,而不是n个epoch?

期待您的回复,非常感谢!

SAI990323 commented 6 months ago

对early stop是针对验证次数的,sample比较小的时候如果设置的是按照step验证的话就会依据这个来进行早停,sample比较大的时候一般就按照epoch来进行。另外关于=5和=10的问题,其实两个应该都可以,在llm上没有较大区别。

plyplyply commented 6 months ago

感谢您的回复!此外您是否对batchsize做过消融实验?batchsize为何要设为128呢(虽然在64-shot时应该自动变为64了)

SAI990323 commented 6 months ago

您好我们并没有调节过包括学习率和batchsize在内的参数,batchsize设置为128是考虑到,他在第一阶段利用alpaca数据训练的时候使用过小的batch可能会导致模型拟合性和泛化性较差。