wangyuxinwhy / uniem

unified embedding model
Apache License 2.0
826 stars 64 forks source link

负采样 #113

Open AugustLHHHHHH opened 10 months ago

AugustLHHHHHH commented 10 months ago

🐛 bug 说明

请问“M3E 使用 in-batch 负采样的对比学习的方式在句对数据集进行训练,为了保证 in-batch 负采样的效果,我们使用 A100 80G 来最大化 batch-size,并在共计 2200W+ 的句对数据集上训练了 1 epoch。”里描述的负采样对比学习具体是怎么做的呢?对应到代码里是在哪个部分呢,谢谢

Python Version

None

wangyuxinwhy commented 10 months ago

https://github.com/wangyuxinwhy/uniem/blob/main/uniem/criteria.py

可以查看 Loss 的计算方式,Loss 的计算实现了 In-Batch 的负采样

AugustLHHHHHH commented 10 months ago

您好,感谢您的回复。我对于对比学习的batch内采样还不太熟悉,所以麻烦再请教下:

criteria.py里的PairInBatchNegSoftmaxContrastLoss对应的负样本采样是69-76行的步骤吗

image
wangyuxinwhy commented 10 months ago

嗯嗯,对的~