项目介绍:roberta-base-bne-finetuned-msmarco-qa-es-mnrl-mn
roberta-base-bne-finetuned-msmarco-qa-es-mnrl-mn 是一个强大的机器学习模型,隶属于句子转化器(sentence-transformers)家族。这个模型的主要功能是将句子或段落映射到一个768维的密集向量空间中,这使得它在聚类或语义搜索等任务中表现出色。简单来说,它可以帮助用户找到与特定问题关系紧密的信息,从而提升搜索和理解效率。
模型使用方法
要使用这个模型,首先需要安装句子转化器库(sentence-transformers),可以通过以下命令进行安装:
pip install -U sentence-transformers
安装完成后,用户可以通过简单的Python代码来进行模型调用,如下所示:
from sentence_transformers import SentenceTransformer, util
# 加载模型
model = SentenceTransformer('dariolopez/roberta-base-bne-finetuned-msmarco-qa-es-mnrl-mn')
# 示例语料库,包含若干人物信息
corpus = [
"Napoleón I Bonaparte (1769-1821) 是法国的军事家和政治家,革命期间担任共和派将军。",
"路易十六 (1754-1793) 是法国国王,法国大革命期间的君主。",
"费利佩六世 (1968- ) 是现任西班牙国王,自父亲胡安·卡洛斯一世退位后继位。",
"莱昂内尔·梅西 (1987-) 是阿根廷足球运动员,被认为是历史上最出色的球员之一。"
]
# 用户的问题
query = "列出曾在法国掌权的人物"
# 编码语料库和查询
corpus_embeddings = model.encode(corpus)
query_embedding = model.encode(query)
# 在语料库中找到最相关的两个结果
hits = util.semantic_search(query_embedding, corpus_embeddings, top_k=2)[0]
for hit in hits:
print(f"corpus_id: {hit['corpus_id']}, score: {hit['score']}, text: {corpus[hit['corpus_id']][0:100]}...")
在这个例子中,用户可以输入一个问题,模型会在语料库中寻找最相关的人物描述,并按相关性排序返回结果。
模型训练
该模型是在 PlanTL-GOB-ES/roberta-base-bne 的基础上进行微调的,微调的目的是为了提高模型在问答场景下的表现。训练数据集由翻译成西班牙语的 MS-MARCO 数据集 组成,其中包括正样本和负样本,使用的是 MultipleNegativesRankingLoss
损失函数。
训练配置
{
"model_name": "PlanTL-GOB-ES/roberta-base-bne",
"max_seq_length": 512,
"epochs": 10,
"warmup_steps": 1000,
"batch_size": 16,
"optimizer_params": {
"lr": 2e-05
},
"loss": "mnrl",
"dataset_train_size": 481335,
"dataset_name": "IIC/ms_marco_es",
"seed": 42,
"length_embedding": 768
}
完整的训练代码可以在这个 Github 链接 中找到。
使用注意事项
该模型专门为处理西班牙语中的问答任务而设计,并支持最大输入长度为512个词片(word pieces),超出部分将被截断。
版权信息
此模型遵循 Apache 许可协议 2.0。