🚀 crossencoder-mdebertav3-base-mmarcoFR
這是一個用於法語的交叉編碼器模型。它能在問題 - 段落對之間執行交叉注意力機制,並輸出相關性得分。該模型可作為語義搜索的重排器:給定一個查詢和一組由高效的第一階段檢索系統(如 BM25 或經過微調的密集單向量雙編碼器)檢索出的潛在相關段落,對每個查詢 - 段落對進行編碼,並根據模型預測的得分按相關性降序對段落進行排序。
🚀 快速開始
本模型可結合 Sentence-Transformers、FlagEmbedding 或 Huggingface Transformers 進行使用,以下是具體示例。
📦 安裝指南
使用 Sentence-Transformers
首先安裝 庫:
pip install -U sentence-transformers
使用 FlagEmbedding
首先安裝 庫:
pip install -U FlagEmbedding
使用 Huggingface Transformers
首先安裝 庫:
pip install -U transformers
💻 使用示例
使用 Sentence-Transformers
from sentence_transformers import CrossEncoder
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
model = CrossEncoder('antoinelouis/crossencoder-mdebertav3-base-mmarcoFR')
scores = model.predict(pairs)
print(scores)
使用 FlagEmbedding
from FlagEmbedding import FlagReranker
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
reranker = FlagReranker('antoinelouis/crossencoder-mdebertav3-base-mmarcoFR')
scores = reranker.compute_score(pairs)
print(scores)
使用 HuggingFace Transformers
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
pairs = [('Question', 'Paragraphe 1'), ('Question', 'Paragraphe 2') , ('Question', 'Paragraphe 3')]
tokenizer = AutoTokenizer.from_pretrained('antoinelouis/crossencoder-mdebertav3-base-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-mdebertav3-base-mmarcoFR')
model.eval()
with torch.no_grad():
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
📚 詳細文檔
評估
該模型在 mMARCO-fr 的較小開發集上進行評估,該開發集包含 6980 個查詢,需要對包含正例和 ColBERTv2 硬負例 的 1000 個段落集合進行重排。我們報告了平均倒數排名(MRR)和不同截斷點的召回率(R@k)。若想了解該模型與其他法語神經檢索器的對比情況,請查看 DécouvrIR 排行榜。
訓練
數據
我們使用 mMARCO 數據集中的法語訓練樣本,這是 MS MARCO 的多語言機器翻譯版本,包含 880 萬個段落和 53.9 萬個訓練查詢。我們未使用官方數據集提供的 BM25 負例,而是使用 msmarco-hard-negatives 蒸餾數據集,從 12 個不同的密集檢索器中挖掘出更難的負例。最終,我們採樣了 260 萬個形式為(查詢、段落、相關性)的訓練三元組,正例與負例的比例為 1(即 50% 的對相關,50% 的對不相關)。
實現
該模型從 microsoft/mdeberta-v3-base 檢查點進行初始化,並通過二元交叉熵損失進行優化(如 monoBERT 中所述)。使用 AdamW 優化器在一塊 80GB 的 NVIDIA H100 GPU 上進行 20000 步的微調,批量大小為 128,恆定學習率為 2e - 5。我們將拼接後的問題 - 段落對的最大序列長度設置為 256 個標記。使用 sigmoid 函數獲得 0 到 1 之間的得分。
模型信息
屬性 |
詳情 |
模型類型 |
交叉編碼器模型 |
基礎模型 |
microsoft/mdeberta-v3-base |
訓練數據 |
mMARCO 數據集中的法語訓練樣本 |
評估指標 |
Recall@500、Recall@100、Recall@10、MRR@10 |
評估結果
任務類型 |
數據集 |
評估指標 |
值 |
文本分類(段落重排) |
mMARCO - fr(驗證集) |
Recall@500 |
97.4 |
文本分類(段落重排) |
mMARCO - fr(驗證集) |
Recall@100 |
87.41 |
文本分類(段落重排) |
mMARCO - fr(驗證集) |
Recall@10 |
62.52 |
文本分類(段落重排) |
mMARCO - fr(驗證集) |
MRR@10 |
36.16 |
📄 許可證
本模型使用 MIT 許可證。
📖 引用
@online{louis2024decouvrir,
author = 'Antoine Louis',
title = 'DécouvrIR: A Benchmark for Evaluating the Robustness of Information Retrieval Models in French',
publisher = 'Hugging Face',
month = 'mar',
year = '2024',
url = 'https://huggingface.co/spaces/antoinelouis/decouvrir',
}