🚀 跨編碼器-Electra基礎法語-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-electra-base-french-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-electra-base-french-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-electra-base-french-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-electra-base-french-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 負樣本,而是從 12 個不同的密集檢索器中挖掘出更難的負樣本,使用 msmarco-hard-negatives 蒸餾數據集。最終,我們採樣了 260 萬個形式為(查詢、段落、相關性)的訓練三元組,正樣本與負樣本的比例為 1(即 50% 的對是相關的,50% 是不相關的)。
實現
該模型從 dbmdz/electra-base-french-europeana-cased-discriminator 檢查點初始化,並通過二元交叉熵損失進行優化(如 monoBERT 中所述)。使用 AdamW 優化器在一個 80GB 的 NVIDIA H100 GPU 上進行 20000 步的微調,批量大小為 128,恆定學習率為 2e - 5。我們將連接後的問題 - 段落對的最大序列長度設置為 256 個標記。使用 sigmoid 函數獲得 0 到 1 之間的分數。
📄 許可證
本模型採用 MIT 許可證。
🔧 技術細節
屬性 |
詳情 |
模型類型 |
跨編碼器模型 |
訓練數據 |
mMARCO 數據集中的法語訓練樣本 |
基礎模型 |
dbmdz/electra-base-french-europeana-cased-discriminator |
評估指標 |
Recall@500、Recall@100、Recall@10、MRR@10 |
📚 引用
如果您使用了本模型,請引用以下文獻:
@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',
}