您好,如果是想得到一个中英双语的向量模型该如何去处理呢?是否直接用中英双语的预料微调reranker就能直接得到呢?
是的,两个训练数据的格式是一样的,可以直接使用同一份训练数据。
建议的流程是,训练完向量模型后,用向量模型挖掘出难负样本,再去训练reranker,让reranker能更好区分向量返回的top-k结果。
Originally posted by @staoxiao in https://github.com/FlagOpen/FlagEmbedding/issues/157#issuecomment-1754223604
您好,使用双语语料微调reranekr是可以的。
那请问,reranker本身是输出两个句子的相似度,能否通过修改reranker的代码得到中或者英两种语言的向量表示呢?另外,中英两种语言在同一空间的向量表示性能的提升是通过对比学习的微调来解决的吗?
那请问,reranker本身是输出两个句子的相似度,能否通过修改reranker的代码得到中或者英两种语言的向量表示呢?另外,中英两种语言在同一空间的向量表示性能的提升是通过对比学习的微调来解决的吗?
reranker的模型结构和embedding模型是一样的,按照该例子https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune使用中英数据微调,然后就可按照向量模型的方式进行加载。
您好,还有几个问题,请您赐教。 1、微调的中英双语的reranker,对于跨语言的文本的向量表示的优劣的评测标准是什么呢? 2、如何得知不同语言在同一个向量空间中是否进行了准确表示(即不同语言或同一语言的语义相近的空间距离很相近,反之不同语言或同一语言的语义相近的空间距离很远)? 3、向量表示的提升是否直接来自于微调数据的质量,微调数据的难负例挖掘的越好,模型的跨语言表示能力越好?
- 需要一个跨语言的检索数据集进行测试,最好是依据您的下游任务进行构建。我们在C-mteb中也构建了一个中英跨语言的测试集,可以参考:https://github.com/FlagOpen/FlagEmbedding/blob/master/C_MTEB/eval_C-MTEB.py 设置task_langs=['zh2en', 'en2zh']进行测试。
- 通过测试数据进行测试。
- 是的,微调数据质量很重要:正样本和负样本。模型的跨语言表示能力还是需要依据下游任务的测试进行判断,所以用一个让下游任务效果更好的setting即可。