Shitao Xiao

Results 503 comments of Shitao Xiao

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

> > embedding只训练了q到p的损失,没有计算p到q到损失,可能不太具备双向检索的能力,因此建议q和p训练任务与下游任务保持一致。或者修改loss,改为像clip那样的双向loss。 > > 但是我训练时构造训练数据集也是{query:passage, pos:[q1,q2,q3], neg:[q5, q6,...,qm]},理论上这样计算的应该是计算p到q到损失啊 是的,但建议训练和推理保持一致。训练使用什么作为query,测试就使用什么。

可以参考一些开源社区的onnx版本:https://huggingface.co/swulling/bge-reranker-large-onnx-o4

> > 可以参考一些开源社区的onnx版本:https://huggingface.co/swulling/bge-reranker-large-onnx-o4 > > 非常感谢,这太有用了。不过有个疑问,为啥会只导出部分模型的情况呢?万分感谢解答因为第一次出现这种情况,想了解学习一下。 应该使用AutoModelForSequenceClassification而不是AutoModel, AutoModel模型不会加载分类头。

其实大部分数据就就一个pos和neg。资源不足的话,可以使用一下有标签的小数据集,如t2ranking, dulreader。

MTP数据:https://data.baai.ac.cn/details/BAAI-MTP,微调数据:https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/baai_general_embedding#frequently-asked-questions

感谢您的PR!但是目前的操作看起来比较复杂,可能会导致比较大的时间消耗。这块可能还需要再好好考虑一下。

@shtdbb , 非常感谢您的PR! 有个小问题,data['pos']是一个列表,可能包含多个正样本,无法执行`sent != data['pos']`。 如果您跑通了这个代码,需要检查数据格式是否正确。data['pos']如果是一个字符串的话,训练会有很大问题(代码将随机选取一个字母作为pos)。 代码建议改为这样: ``` samples = random.sample(corpus, negative_number - len(data['neg']) + len(data['pos'])) samples = [sent for sent in samples if sent not in data['pos']] data['neg'].extend(samples[:negative_number...

您好,我们目前开源了BGE-M3所有阶段的模型:[BAAI/bge-m3-retromae](https://huggingface.co/BAAI/bge-m3-retromae), [BAAI/bge-m3-unsupervised](https://huggingface.co/BAAI/bge-m3-unsupervised), [BAAI/bge-m3](https://huggingface.co/BAAI/bge-m3),模型说明参考:https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/BGE_M3#specs