🚀 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},
}