-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
train_m3e细节 #14
Comments
这个变量有点太多了,我没仔细研究过 text2vec 的代码... 我需要去调研一下,之后做一些实验才能解答。 数据层面上,max_length 是不是一致的?我记得 text2vec 的 max_length 好像默认不是 512 |
首先感谢答复! max_length我也改成512了 此外,我还有个疑问:直接拿text2vec-base-chinese和m3e-model在我们自己的数据集上预测,m3e-model的指标明显高于text2vec-base-chinese,但是用我们的数据fintune后,m3e-model反而微弱于text2vec-base-chinese,这是为啥呀? |
这有可能是基础模型的问题,可能 hfl/roberta 没有 hfl/macbert 适合你的使用场景。另外,微调的程度不同,模型的灾难性遗忘水平也不同。如果你微调的轮数比较多,那么模型的能力可能主要就取决于架构了,之前学习到的参数分布可能就不重要了(遗忘掉了)。当然,上述都是猜测,我只是根据过往的经验来推断的。 |
背景:之前基于text2vec的代码,使用in-batch的loss方式,在自己的数据集上进行finetune。对比了和uniem的训练脚本,逻辑基本一致,且保证参数一致,比如lr、weight_decay、num_warmup_steps、temperature等
问题:finetune发现,(1)使用text2vec的效果稍微优于uniem。这里指的是训练脚本,其中pretrain model均为m3e-model(2)相同batch size的情况下,uniem占用显存更少
猜测:之前以为是混合精度的原因导致的,但后来发现这个设置默认是"no"。
所以想要请教下,导致这个差异的原因可能是什么呢?期待大佬的答复。
The text was updated successfully, but these errors were encountered: