bge模型评估过程中,embedding+rerank后的recall分数比embedding自己的recall分数低
使用的bge-m3 embedding模型,想问下跑完MultiVector and All Rerank这个评估过程以后,embedding+rerank的召回分数还降低了这个正常嘛,两个都是原本的比原embedding分数低,两个都是微调过的比微调过的embedding分数低
理论上MultiVector效果应该要比单纯dense embedding要好的。如果使用的是https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3#compute-score-for-text-pairs 这个函数的话,可以通过调整weights_for_different_modes 来控制不同分数的权重。 另外,可以直接使用reranker模型进行重排:https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker#for-normal-reranker-bge-reranker-base--bge-reranker-large--bge-reranker-v2-m3-
理论上MultiVector效果应该要比单纯dense embedding要好的。如果使用的是https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3#compute-score-for-text-pairs 这个函数的话,可以通过调整weights_for_different_modes 来控制不同分数的权重。 另外,可以直接使用reranker模型进行重排:https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker#for-normal-reranker-bge-reranker-base--bge-reranker-large--bge-reranker-v2-m3-
被训练过的数据集上score表现是很好,但我放进MKQA里去跑召回率的时候 召回率会降
被训练过的数据集上score表现是很好,但我放进MKQA里去跑召回率的时候 召回率会降
正常现象,模型在新数据上微调会遗忘原本知识。
被训练过的数据集上score表现是很好,但我放进MKQA里去跑召回率的时候 召回率会降
正常现象,模型在新数据上微调会遗忘原本知识。
那请问下因为embedding用的train data是一个,而rerank用的train data是另一个导致的吗? 期望其实应该是rerank以后的召回率前20比单独用embedding的高才正常吧
被训练过的数据集上score表现是很好,但我放进MKQA里去跑召回率的时候 召回率会降
正常现象,模型在新数据上微调会遗忘原本知识。
我的训练方式是有一个自己的类似mkqa问答对的数据集,然后切了大部分进去训练,然后难负例挖掘给rerank用来微调,结果在评测集上embedding单独的召回率比embedding+rerank的召回率高很多,后者在除sparse层以外掉非常多
我的训练方式是有一个自己的类似mkqa问答对的数据集,然后切了大部分进去训练,然后难负例挖掘给rerank用来微调,结果在评测集上embedding单独的召回率比embedding+rerank的召回率高很多,后者在除sparse层以外掉非常多
这个sparse层值得是什么?embedding召回时使用了dense+sparse?
我的训练方式是有一个自己的类似mkqa问答对的数据集,然后切了大部分进去训练,然后难负例挖掘给rerank用来微调,结果在评测集上embedding单独的召回率比embedding+rerank的召回率高很多,后者在除sparse层以外掉非常多
这个sparse层值得是什么?embedding召回时使用了dense+sparse?
https://github.com/FlagOpen/FlagEmbedding/blob/master/C_MTEB/MKQA/README.md 我使用了这里面multivector and all rerank的过程,但是rerank出来的召回结果分数比embedding print出来的召回分数低特别多 是不是因为rerank模型用的数据集小的原因?建议reranker finetune使用多大的数据集呢
https://github.com/FlagOpen/FlagEmbedding/blob/master/C_MTEB/MKQA/README.md 我使用了这里面multivector and all rerank的过程,但是rerank出来的召回结果分数比embedding print出来的召回分数低特别多 是不是因为rerank模型用的数据集小的原因?建议reranker finetune使用多大的数据集呢
这里的rerank用的还是向量模型,只是用上了三种模式:稠密+稀疏+多向量。想要同时训练三种模式需要使用该脚本: https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/unified_finetune#3-train,趣确认是否正确。 另外,建议直接使用一个专门的reranker模型,如bge-raranker-v2-m3.
https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/unified_finetune#3-train,趣确认是否正确。
是的,是根据这里面的unified finetune去训练的bge m3 embedding模型,微调效果还可以,然后hard neg数据集以后去训练bge-reranker-v2-m3,再用这两个微调过的模型,去使用multivector and all rerank,rerank召回分数很不好
是的,是根据这里面的unified finetune去训练的bge m3 embedding模型,微调效果还可以,然后hard neg数据集以后去训练bge-reranker-v2-m3,再用这两个微调过的模型,去使用multivector and all rerank,rerank召回分数很不好
bge-reranker-v2-m3的使用方式按照这里的吗:https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker#for-normal-reranker-bge-reranker-base--bge-reranker-large--bge-reranker-v2-m3-?他应该调用FlagReranker,并不是像bge-m3向量模型那样使用。
https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker#for-normal-reranker-bge-reranker-base--bge-reranker-large--bge-reranker-v2-m3-?他应该调用FlagReranker,并不是像bge-m3向量模型那样使用。
对啊,直接是normal reranker嘛,所以微调方式使用的是类似bge-reranker-large的
是的,是根据这里面的unified finetune去训练的bge m3 embedding模型,微调效果还可以,然后hard neg数据集以后去训练bge-reranker-v2-m3,再用这两个微调过的模型,去使用multivector and all rerank,rerank召回分数很不好
bge-reranker-v2-m3的使用方式按照这里的吗:https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_reranker#for-normal-reranker-bge-reranker-base--bge-reranker-large--bge-reranker-v2-m3-?他应该调用FlagReranker,并不是像bge-m3向量模型那样使用。
感觉可能是挖掘负样例的时候数据对模型有负面影响,有没有推荐的挖掘方式呀