Shitao Xiao

Results 509 comments of Shitao Xiao

Currently, the evaluation script needs a lower version of mteb. You needs to downgrade the version of mteb.

Hi, @AlphaNext , I update the script. Now you can run it with latest mteb tool.

bge使用的是余弦相似度。示例代码中,对向量进行了normlize,因此计算点积就等于余弦相似度。

1. 对的 2. 是的 3. crossEntropy目标是增大正例的概率。正例的概率是通过softmax计算得到的,负例的分数会在softmax中作为分母。因此优化正例的概率会增大正样本分数,减小负样本分数。

有的,3月中-底会计划更新reranker模型

建议查看是否有其他机器占用了显存,或者降低机器数量试试。如果一台机器能跑的话,这个代码应该在多台机器上也能跑。

input_file格式是"{"query":str, "pos":List[str], "neg":List[str]}", 包括问题和其对应的长文本(pos),neg列可以随机选择或者为空。candidate pool可以不输入,这样的话脚本会汇总pos和neg,形成candidate pool从中挖掘难样本。

Currently, the MTEB tool doesn't support hybrid retrieval. We also haven't tested the hybrid modes in MTEB tasks, and cannot provide helpful suggestions.

1. 参考https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/BGE_M3/modeling.py#L119, 训练的时候把padding乘以0了,不影响分数。 2. 不同于colbert计算向量内积,M3因为normlize了向量,算得是cosine similarity,需要一个温度系数。 除以query的长度能使得分数的scale一致,更容易训练和更可读,否则更长的query会导致分数更大,不同长度query分数大小不一致。

> 为什么colbert,在得到向量的时候,把cls给去掉了呢?(有做过不去cls的实验嘛?) 1.是因为您的colbert是和向量模型一起训练的,向量模型的训练中,cls表征整个句子的意思。担心colbert的loss干扰向量模型的表征嘛? 是的,避免过多影响单向量模型。