🚀 ModernBERT交叉编码器:语义相似度(STS)
现代BERT交叉编码器是一种高性能的编码器模型,可用于比较两个文本并输出0到1之间的相似度得分。该模型在创建大语言模型(LLM)输出评估器方面非常实用,具有使用简单、速度快且准确性高的特点。
🚀 快速开始
若要将ModernCE用于语义相似度任务,可使用Hugging Face的sentence-transformers
库加载模型:
from sentence_transformers import CrossEncoder
model = CrossEncoder("dleemiller/ModernCE-large-sts")
sentence_pairs = [
("It's a wonderful day outside.", "It's so sunny today!"),
("It's a wonderful day outside.", "He drove to work earlier."),
]
scores = model.predict(sentence_pairs)
print(scores)
输出
该模型返回的相似度得分范围为[0, 1]
,得分越高表示语义相似度越强。
✨ 主要特性
- 高性能:在STS基准测试集上,皮尔逊相关系数达到0.9256,斯皮尔曼相关系数达到0.9215。
- 高效架构:基于ModernBERT-large设计(3.95亿参数),推理速度更快。
- 扩展上下文长度:可处理长达8192个标记的序列,非常适合大语言模型输出评估。
- 多样化训练:在
dleemiller/wiki-sim
上进行预训练,并在sentence-transformers/stsb
上进行微调。
📊 性能表现
模型 |
STS-B测试皮尔逊系数 |
STS-B测试斯皮尔曼系数 |
上下文长度 |
参数数量 |
速度 |
ModernCE-large-sts |
0.9256 |
0.9215 |
8192 |
3.95亿 |
中等 |
ModernCE-base-sts |
0.9162 |
0.9122 |
8192 |
1.49亿 |
快速 |
stsb-roberta-large |
0.9147 |
- |
512 |
3.55亿 |
慢 |
stsb-distilroberta-base |
0.8792 |
- |
512 |
8200万 |
快速 |
📚 详细文档
训练详情
预训练
该模型在dleemiller/wiki-sim
数据集的pair-score-sampled
子集上进行预训练。此数据集提供了带有语义相似度得分的多样化句子对,有助于模型建立对句子间关系的强大理解。
- 分类器丢弃率:采用了相对较大的分类器丢弃率0.3,以减少对教师得分的过度依赖。
- 目标:以
cross-encoder/stsb-roberta-large
的STS-B分数为目标。
微调
在sentence-transformers/stsb
数据集上进行微调。
验证结果
微调后,该模型在测试集上取得了以下性能:
- 皮尔逊相关系数:0.9256
- 斯皮尔曼相关系数:0.9215
模型卡片
属性 |
详情 |
架构 |
ModernBERT-large |
分词器 |
使用现代技术训练的自定义分词器,用于处理长上下文 |
预训练数据 |
dleemiller/wiki-sim (pair-score-sampled) |
微调数据 |
sentence-transformers/stsb |
📄 许可证
本模型采用MIT许可证。
🙏 致谢
感谢AnswerAI团队提供ModernBERT模型,以及Sentence Transformers团队在Transformer编码器模型方面的卓越贡献。
📖 引用
如果您在研究中使用了此模型,请引用:
@misc{moderncestsb2025,
author = {Miller, D. Lee},
title = {ModernCE STS: An STS cross encoder model},
year = {2025},
publisher = {Hugging Face Hub},
url = {https://huggingface.co/dleemiller/ModernCE-large-sts},
}