FlagEmbedding icon indicating copy to clipboard operation
FlagEmbedding copied to clipboard

reranker为什么对大小写这么敏感!

Open LinXin04 opened this issue 1 year ago • 6 comments

from FlagEmbedding import FlagReranker reranker = FlagReranker('/bge-reranker-v2-m3/bge-reranker-v2-m3', use_fp16=True) score = reranker.compute_score(['Jc Sweet House', 'Candy House'], normalize=True) print(score)#0.14354750671079064

score = reranker.compute_score(['jc sweet house', 'candy house'], normalize=True) print(score)#0.8033281311678119

LinXin04 avatar Apr 17 '24 04:04 LinXin04

@staoxiao 辛苦给看一下是不是用的有问题呢?

LinXin04 avatar Apr 17 '24 05:04 LinXin04

而且对于一些特殊符号也非常敏感,比如['K Coffee Kot Kaeo', 'So K Cafe']#0.8971559208377049 ['K-Coffee Kot Kaeo', 'So-K Cafe'] #0.1759624741797008

LinXin04 avatar Apr 17 '24 08:04 LinXin04

可以将模型换成bge-reranker-large,或者将文本全部转换成小写,我们后续会重点关注这个问题 bge-reranker-large的结果:

reranker.compute_score(['Jc Sweet House', 'Candy House'], normalize=True) # 0.9874236517231209
reranker.compute_score(['jc sweet house', 'candy house'], normalize=True) # 0.992988204618503

545999961 avatar Apr 17 '24 13:04 545999961

在我的场景,类似'Jc Sweet House', 'Candy House' 这种case,相似度不应该这么高的。而且bge-reranker-large的结果跟之前的bge-m3的差别非常大,bge-m3看上去稍微合理点

LinXin04 avatar Apr 18 '24 08:04 LinXin04

优化后的几个版本,关于文本相似度计算的结果都比较离谱,不知道什么原因

LinXin04 avatar Apr 18 '24 09:04 LinXin04

可以拿领域相关的数据继续对bge-reranker-v2-m3进行微调,效果应该会更好点

545999961 avatar Apr 18 '24 10:04 545999961