上周五,新开源的一个嵌入模型,Kalm-embedding 主张通过优质训练数据带来更强的嵌入模型。
相比于之前的SOTA模型,用到了更多的数据。
- model: https://huggingface.co/HIT-TMG/KaLM-embedding-multilingual-mini-instruct-v1.5
- code: https://github.com/HITsz-TMG/KaLM-Embedding
- paper: https://arxiv.org/pdf/2501.01028
相比于正常模型,以bge-m3更小一点的参数量,在MTEB和CMTEB上,获得了不错的score。
微调除了常见的高质量训练集,还用qwen2 72B合成了550k数据,包含6个任务类型,40k个独特的指令(类似于instruction embedding)。
排名一致性过滤,避免难负例的挖掘,产生噪声,会丢弃掉正例不在topk中的那些样本。
训练策略,以前一般会尽可能让一个batch中都是一个任务的数据,提高难度,提高训练效率。但是带来的问题可能是会产生FN样本,所以这里平衡了一下,有概率会来自不同任务的,如下图。