FlagEmbedding icon indicating copy to clipboard operation
FlagEmbedding copied to clipboard

bge训练切换左右塔

Open zhaobinNF opened this issue 2 years ago • 3 comments

您好,想问下在训练bge-embedding模型的时候,我在训练用passage去召回相关的query任务后,在使用微调后模型时,用query召回passage,发现效果不佳。但是从原理上来看,bge只是一个embedding模型,左右塔应该是对称的。想问一下这是什么原因啊

zhaobinNF avatar Nov 21 '23 02:11 zhaobinNF

embedding只训练了q到p的损失,没有计算p到q到损失,可能不太具备双向检索的能力,因此建议q和p训练任务与下游任务保持一致。或者修改loss,改为像clip那样的双向loss。

staoxiao avatar Nov 21 '23 08:11 staoxiao

embedding只训练了q到p的损失,没有计算p到q到损失,可能不太具备双向检索的能力,因此建议q和p训练任务与下游任务保持一致。或者修改loss,改为像clip那样的双向loss。

但是我训练时构造训练数据集也是{query:passage, pos:[q1,q2,q3], neg:[q5, q6,...,qm]},理论上这样计算的应该是计算p到q到损失啊

zhaobinNF avatar Nov 21 '23 10:11 zhaobinNF

embedding只训练了q到p的损失,没有计算p到q到损失,可能不太具备双向检索的能力,因此建议q和p训练任务与下游任务保持一致。或者修改loss,改为像clip那样的双向loss。

但是我训练时构造训练数据集也是{query:passage, pos:[q1,q2,q3], neg:[q5, q6,...,qm]},理论上这样计算的应该是计算p到q到损失啊

是的,但建议训练和推理保持一致。训练使用什么作为query,测试就使用什么。

staoxiao avatar Nov 22 '23 03:11 staoxiao