这是一个从cross-encoder/ms-marco-MiniLM-L6-v2微调而来的交叉编码器模型,使用sentence-transformers库开发。它能够计算文本对的得分,可用于文本重排序和语义搜索。
下载量 15
发布时间 : 3/30/2025
模型介绍
内容详情
替代品
模型简介
该模型是一个基于MiniLM架构的交叉编码器,专门用于文本重排序任务。它通过计算查询和文档之间的相关性得分,优化搜索结果的排序质量。
模型特点
高效重排序
专门优化用于重排序任务,能够显著提升搜索结果的相关性
多数据集验证
在GooAQ、MSMARCO、NFCorpus和NQ等多个数据集上进行了验证,表现稳定
长文本处理
支持最大512个标记的序列长度,适合处理较长的查询和文档
模型能力
文本相关性评分
搜索结果重排序
语义搜索优化
使用案例
信息检索
搜索引擎结果优化
对初步检索结果进行重排序,提高相关文档的排名
在GooAQ开发集上达到0.6822的NDCG@10分数
问答系统
对候选答案进行相关性排序,选择最匹配的答案
在NanoNQ数据集上达到0.5091的NDCG@10分数
医疗健康
医疗问答匹配
匹配用户医疗问题与专业医学解答
如示例中所示,能准确识别与左臂疼痛相关的医学解释
language:
- en license: apache-2.0 tags:
- sentence-transformers
- cross-encoder
- generated_from_trainer
- dataset_size:2223773
- loss:BinaryCrossEntropyLoss base_model: cross-encoder/ms-marco-MiniLM-L6-v2 pipeline_tag: text-ranking library_name: sentence-transformers metrics:
- map
- mrr@10
- ndcg@10 model-index:
- name: 基于GooAQ训练的ModernBERT-base模型
results:
- task:
type: 交叉编码器重排序
name: 交叉编码器重排序
dataset:
name: gooaq开发集
type: gooaq-dev
metrics:
- type: 平均精度均值(map) value: 0.638 name: 平均精度均值
- type: 前10命中率(mrr@10) value: 0.6361 name: 前10命中率
- type: 标准化折损累积增益(ndcg@10) value: 0.6822 name: 标准化折损累积增益
- task:
type: 交叉编码器重排序
name: 交叉编码器重排序
dataset:
name: NanoMSMARCO R100
type: NanoMSMARCO_R100
metrics:
- type: 平均精度均值(map) value: 0.5437 name: 平均精度均值
- type: 前10命中率(mrr@10) value: 0.5348 name: 前10命中率
- type: 标准化折损累积增益(ndcg@10) value: 0.606 name: 标准化折损累积增益
- task:
type: 交叉编码器重排序
name: 交叉编码器重排序
dataset:
name: NanoNFCorpus R100
type: NanoNFCorpus_R100
metrics:
- type: 平均精度均值(map) value: 0.3885 name: 平均精度均值
- type: 前10命中率(mrr@10) value: 0.563 name: 前10命中率
- type: 标准化折损累积增益(ndcg@10) value: 0.4077 name: 标准化折损累积增益
- task:
type: 交叉编码器重排序
name: 交叉编码器重排序
dataset:
name: NanoNQ R100
type: NanoNQ_R100
metrics:
- type: 平均精度均值(map) value: 0.4626 name: 平均精度均值
- type: 前10命中率(mrr@10) value: 0.4628 name: 前10命中率
- type: 标准化折损累积增益(ndcg@10) value: 0.5091 name: 标准化折损累积增益
- task:
type: 交叉编码器NanoBEIR评估
name: 交叉编码器NanoBEIR评估
dataset:
name: NanoBEIR R100均值
type: NanoBEIR_R100_mean
metrics:
- type: 平均精度均值(map) value: 0.4649 name: 平均精度均值
- type: 前10命中率(mrr@10) value: 0.5202 name: 前10命中率
- type: 标准化折损累积增益(ndcg@10) value: 0.5076 name: 标准化折损累积增益
- task:
type: 交叉编码器重排序
name: 交叉编码器重排序
dataset:
name: gooaq开发集
type: gooaq-dev
metrics:
基于GooAQ训练的ModernBERT-base模型
这是一个从cross-encoder/ms-marco-MiniLM-L6-v2微调而来的交叉编码器模型,使用sentence-transformers库开发。它能够计算文本对的得分,可用于文本重排序和语义搜索。
模型详情
模型描述
- 模型类型: 交叉编码器
- 基础模型: cross-encoder/ms-marco-MiniLM-L6-v2
- 最大序列长度: 512个标记
- 输出标签数量: 1个标签
- 语言: 英语
- 许可证: apache-2.0
模型来源
- 文档: Sentence Transformers文档
- 文档: 交叉编码器文档
- 代码库: GitHub上的Sentence Transformers
- Hugging Face: Hugging Face上的交叉编码器
使用方法
直接使用(Sentence Transformers)
首先安装Sentence Transformers库:
pip install -U sentence-transformers
然后可以加载此模型并进行推理。
from sentence_transformers import CrossEncoder
# 从🤗 Hub下载
model = CrossEncoder("ayushexel/reranker-ms-marco-MiniLM-L6-v2-gooaq-bce")
# 获取文本对的得分
pairs = [
['左臂突然剧痛意味着什么?', '左臂疼痛可能意味着您有骨骼或关节损伤、神经受压或心脏问题。继续阅读以了解更多关于左臂疼痛的原因以及哪些症状可能预示着严重问题。'],
['左臂突然剧痛意味着什么?', "本文中 无论是跳动、隐痛还是剧痛,每个人都经历过疼痛。这种不适感是一个危险信号。腋下疼痛可能意味着您只是拉伤了肌肉,可以通过冰敷和休息缓解。也可能是更严重情况的征兆,如感染或乳腺癌。"],
['左臂突然剧痛意味着什么?', '剧痛:当您感到突然、强烈的疼痛时,这属于"剧痛"。剧痛也可以用切割和射击等词汇描述。刺痛:像剧痛一样,刺痛突然而强烈地发生。然而,刺痛可能会消退并多次复发。'],
['左臂突然剧痛意味着什么?', '症状。颈部椎间盘突出可能导致颈部疼痛、放射至手臂的疼痛、肩部疼痛以及手臂或手部的麻木或刺痛感。疼痛的性质和类型可以从难以定位的钝痛、隐痛到容易定位的剧烈、灼烧痛不等。'],
['左臂突然剧痛意味着什么?', '手臂或肩部的任何部位的损伤或创伤,包括骨折、关节脱位以及肌肉拉伤和扭伤,是手臂疼痛的常见原因。有时影响身体其他器官的疾病,如外周血管疾病或关节炎,可能是手臂疼痛的原因。'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# 或者根据与单个文本的相似性对不同的文本进行排序
ranks = model.rank(
'左臂突然剧痛意味着什么?',
[
'左臂疼痛可能意味着您有骨骼或关节损伤、神经受压或心脏问题。继续阅读以了解更多关于左臂疼痛的原因以及哪些症状可能预示着严重问题。',
"本文中 无论是跳动、隐痛还是剧痛,每个人都经历过疼痛。这种不适感是一个危险信号。腋下疼痛可能意味着您只是拉伤了肌肉,可以通过冰敷和休息缓解。也可能是更严重情况的征兆,如感染或乳腺癌。",
'剧痛:当您感到突然、强烈的疼痛时,这属于"剧痛"。剧痛也可以用切割和射击等词汇描述。刺痛:像剧痛一样,刺痛突然而强烈地发生。然而,刺痛可能会消退并多次复发。',
'症状。颈部椎间盘突出可能导致颈部疼痛、放射至手臂的疼痛、肩部疼痛以及手臂或手部的麻木或刺痛感。疼痛的性质和类型可以从难以定位的钝痛、隐痛到容易定位的剧烈、灼烧痛不等。',
'手臂或肩部的任何部位的损伤或创伤,包括骨折、关节脱位以及肌肉拉伤和扭伤,是手臂疼痛的常见原因。有时影响身体其他器官的疾病,如外周血管疾病或关节炎,可能是手臂疼痛的原因。',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
评估
评估指标
交叉编码器重排序
- 数据集:
gooaq-dev
- 使用
CrossEncoderRerankingEvaluator
评估,参数如下:{ "at_k": 10, "always_rerank_positives": false }
指标 | 值 |
---|---|
平均精度均值(map) | 0.6380 (+0.2121) |
前10命中率(mrr@10) | 0.6361 (+0.2199) |
标准化折损累积增益(ndcg@10) | 0.6822 (+0.2001) |
交叉编码器重排序
- 数据集:
NanoMSMARCO_R100
,NanoNFCorpus_R100
和NanoNQ_R100
- 使用
CrossEncoderRerankingEvaluator
评估,参数如下:{ "at_k": 10, "always_rerank_positives": true }
指标 | NanoMSMARCO_R100 | NanoNFCorpus_R100 | NanoNQ_R100 |
---|---|---|---|
平均精度均值(map) | 0.5437 (+0.0541) | 0.3885 (+0.1275) | 0.4626 (+0.0430) |
前10命中率(mrr@10) | 0.5348 (+0.0573) | 0.5630 (+0.0632) | 0.4628 (+0.0361) |
标准化折损累积增益(ndcg@10) | 0.6060 (+0.0655) | 0.4077 (+0.0827) | 0.5091 (+0.0084) |
交叉编码器Nano BEIR评估
- 数据集:
NanoBEIR_R100_mean
- 使用
CrossEncoderNanoBEIREvaluator
评估,参数如下:{ "dataset_names": [ "msmarco", "nfcorpus", "nq" ], "rerank_k": 100, "at_k": 10, "always_rerank_positives": true }
指标 | 值 |
---|---|
平均精度均值(map) | 0.4649 (+0.0749) |
前10命中率(mrr@10) | 0.5202 (+0.0522) |
标准化折损累积增益(ndcg@10) | 0.5076 (+0.0522) |
训练详情
训练数据集
未命名数据集
- 大小: 2,223,773个训练样本
- 列:
question
,answer
, 和label
- 基于前1000个样本的近似统计:
问题 答案 标签 类型 字符串 字符串 整数 详情 - 最小: 19个字符
- 平均: 45.87个字符
- 最大: 88个字符
- 最小: 61个字符
- 平均: 253.13个字符
- 最大: 374个字符
- 0: ~86.70%
- 1: ~13.30%
- 样本:
问题 答案 标签 左臂突然剧痛意味着什么?
左臂疼痛 左臂疼痛可能意味着您有骨骼或关节损伤、神经受压或心脏问题。继续阅读以了解更多关于左臂疼痛的原因以及哪些症状可能预示着严重问题。
1
左臂突然剧痛意味着什么?
本文中 无论是跳动、隐痛还是剧痛,每个人都经历过疼痛。这种不适感是一个危险信号。腋下疼痛可能意味着您只是拉伤了肌肉,可以通过冰敷和休息缓解。也可能是更严重情况的征兆,如感染或乳腺癌。
0
左臂突然剧痛意味着什么?
剧痛:当您感到突然、强烈的疼痛时,这属于"剧痛"。剧痛也可以用切割和射击等词汇描述。刺痛:像剧痛一样,刺痛突然而强烈地发生。然而,刺痛可能会消退并多次复发。
0
- 损失函数:
BinaryCrossEntropyLoss
,参数如下:{ "activation_fn": "torch.nn.modules.linear.Identity", "pos_weight": 7 }
训练超参数
非默认超参数
eval_strategy
: stepsper_device_train_batch_size
: 2048per_device_eval_batch_size
: 2048learning_rate
: 2e-05warmup_ratio
: 0.1seed
: 12bf16
: Truedataloader_num_workers
: 12load_best_model_at_end
: True
训练日志
训练轮次 | 训练步数 | 训练损失 | gooaq-dev_ndcg@10 | NanoMSMARCO_R100_ndcg@10 | NanoNFCorpus_R100_ndcg@10 | NanoNQ_R100_ndcg@10 | NanoBEIR_R100_mean_ndcg@10 |
---|---|---|---|---|---|---|---|
-1 | -1 | - | 0.6371 (+0.1550) | 0.6686 (+0.1282) | 0.3930 (+0.0680) | 0.7599 (+0.2592) | 0.6072 (+0.1518) |
0.0009 | 1 | 2.1175 | - | - | - | - | - |
0.1842 | 200 | 1.1892 | - | - | - | - | - |
0.3683 | 400 | 0.676 | - | - | - | - | - |
0.5525 | 600 | 0.6268 | - | - | - | - | - |
0.7366 | 800 | 0.606 | - | - | - | - | - |
0.9208 | 1000 | 0.5933 | 0.6731 (+0.1910) | 0.6038 (+0.0634) | 0.4572 (+0.1321) | 0.5220 (+0.0213) | 0.5277 (+0.0723) |
1.1050 | 1200 | 0.5756 | - | - | - | - | - |
1.2891 | 1400 | 0.5625 | - | - | - | - | - |
1.4733 | 1600 | 0.5575 | - | - | - | - | - |
1.6575 | 1800 | 0.549 | - | - | - | - | - |
1.8416 | 2000 | 0.5475 | 0.6799 (+0.1977) | 0.6072 (+0.0667) | 0.4278 (+0.1028) | 0.5031 (+0.0024) | 0.5127 (+0.0573) |
2.0258 | 2200 | 0.5391 | - | - | - | - | - |
2.2099 | 2400 | 0.5276 | - | - | - | - | - |
2.3941 | 2600 | 0.5271 | - | - | - | - | - |
2.5783 | 2800 | 0.5264 | - | - | - | - | - |
2.7624 | 3000 | 0.5244 | 0.6822 (+0.2001) | 0.6060 (+0.0655) | 0.4077 (+0.0827) | 0.5091 (+0.0084) | 0.5076 (+0.0522) |
2.9466 | 3200 | 0.5235 | - | - | - | - | - |
-1 | -1 | - | 0.6822 (+0.2001) | 0.6060 (+0.0655) | 0.4077 (+0.0827) | 0.5091 (+0.0084) | 0.5076 (+0.0522) |
- 加粗行表示保存的检查点。
框架版本
- Python: 3.11.0
- Sentence Transformers: 4.0.1
- Transformers: 4.50.3
- PyTorch: 2.6.0+cu124
- Accelerate: 1.5.2
- Datasets: 3.5.0
- Tokenizers: 0.21.1
引用
BibTeX
Sentence Transformers
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}
Jina Embeddings V3
Jina Embeddings V3 是一个多语言句子嵌入模型,支持超过100种语言,专注于句子相似度和特征提取任务。
文本嵌入
Transformers

支持多种语言
J
jinaai
3.7M
911
Ms Marco MiniLM L6 V2
Apache-2.0
基于MS Marco段落排序任务训练的交叉编码器模型,用于信息检索中的查询-段落相关性评分
文本嵌入
英语
M
cross-encoder
2.5M
86
Opensearch Neural Sparse Encoding Doc V2 Distill
Apache-2.0
基于蒸馏技术的稀疏检索模型,专为OpenSearch优化,支持免推理文档编码,在搜索相关性和效率上优于V1版本
文本嵌入
Transformers

英语
O
opensearch-project
1.8M
7
Sapbert From PubMedBERT Fulltext
Apache-2.0
基于PubMedBERT的生物医学实体表征模型,通过自对齐预训练优化语义关系捕捉
文本嵌入
英语
S
cambridgeltl
1.7M
49
Gte Large
MIT
GTE-Large 是一个强大的句子转换器模型,专注于句子相似度和文本嵌入任务,在多个基准测试中表现出色。
文本嵌入
英语
G
thenlper
1.5M
278
Gte Base En V1.5
Apache-2.0
GTE-base-en-v1.5 是一个英文句子转换器模型,专注于句子相似度任务,在多个文本嵌入基准测试中表现优异。
文本嵌入
Transformers

支持多种语言
G
Alibaba-NLP
1.5M
63
Gte Multilingual Base
Apache-2.0
GTE Multilingual Base 是一个多语言的句子嵌入模型,支持超过50种语言,适用于句子相似度计算等任务。
文本嵌入
Transformers

支持多种语言
G
Alibaba-NLP
1.2M
246
Polybert
polyBERT是一个化学语言模型,旨在实现完全由机器驱动的超快聚合物信息学。
文本嵌入
Transformers

P
kuelumbus
1.0M
5
Bert Base Turkish Cased Mean Nli Stsb Tr
Apache-2.0
基于土耳其语BERT的句子嵌入模型,专为语义相似度任务优化
文本嵌入
Transformers

其他
B
emrecan
1.0M
40
GIST Small Embedding V0
MIT
基于BAAI/bge-small-en-v1.5模型微调的文本嵌入模型,通过MEDI数据集与MTEB分类任务数据集训练,优化了检索任务的查询编码能力。
文本嵌入
Safetensors
英语
G
avsolatorio
945.68k
29
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers

支持多种语言
L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers

英语
C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统
中文
R
uer
2,694
98
AIbase是一个专注于MCP服务的平台,为AI开发者提供高质量的模型上下文协议服务,助力AI应用开发。
简体中文