USER-bge-m3项目介绍
USER-bge-m3是一个专门为俄语设计的句子转换模型,可以将句子和段落映射到1024维的密集向量空间。这个模型可以用于聚类或语义搜索等任务。
模型特点
- 专门针对俄语进行优化
- 基于TatonkaHF/bge-m3_en_ru模型进行初始化和训练
- 输出1024维的句子嵌入向量
- 适用于句子相似度计算、语义搜索等任务
使用方法
使用USER-bge-m3模型非常简单,可以通过sentence-transformers库或transformers库来调用:
- 使用sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("deepvk/USER-bge-m3")
embeddings = model.encode(texts, normalize_embeddings=True)
- 使用transformers:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("deepvk/USER-bge-m3")
model = AutoModel.from_pretrained("deepvk/USER-bge-m3")
# 对输入文本进行编码和嵌入
训练细节
USER-bge-m3的训练过程遵循了USER-base模型的算法,但做了一些调整:
- 使用TatonkaHF/bge-m3_en_ru作为初始化模型
- 基于数据对称性训练了两个不同的模型
- 应用AnglE损失函数来增强对称任务的性能
- 使用LM-Cocktail方法融合多个模型,以防止灾难性遗忘
数据集
训练过程中使用了多个数据集,包括新收集的ru-HNP和ru-WANLI数据集。总共使用了超过220万个正样本对和79万个负样本对。
性能评估
在encodechka基准测试中,USER-bge-m3在多个任务上的表现优于baai/bge-m3基础模型。在MTEB基准测试的俄语子集中,USER-bge-m3在分类、多标签分类、语义文本相似度和配对分类等任务上也表现出色。
局限性
该模型在稀疏编码和多向量编码方面的能力尚未经过全面评估。
总的来说,USER-bge-m3是一个针对俄语优化的强大句子嵌入模型,在多个自然语言处理任务中表现出色,为俄语文本处理提供了有力的工具。