crossencoder-camembert-base-mmarcoFR
Este es un modelo de cross-encoder para francés. Realiza atención cruzada entre un par de preguntas y pasajes, y genera un puntaje de relevancia. El modelo debe ser utilizado como un reranker para búsqueda semántica: dado una consulta y un conjunto de pasajes potencialmente relevantes recuperados por un sistema de recuperación de primera etapa eficiente (por ejemplo, BM25 o un bi-encoder denso de vector único afinado), codifica cada par pregunta-pasaje y ordena los pasajes en un orden decreciente de relevancia según los puntajes predichos por el modelo.
Como usar
Aquí hay algunos ejemplos de cómo usar el modelo con Sentence-Transformers, FlagEmbedding o Huggingface Transformers.
Usando Sentence-Transformers
Primero instala la biblioteca: pip install -U sentence-transformers. Luego, puedes usar el modelo así:
from sentence_transformers import CrossEncoder
pairs = [('Pregunta', 'Párrafo 1'), ('Pregunta', 'Párrafo 2'), ('Pregunta', 'Párrafo 3')]
model = CrossEncoder('antoinelouis/crossencoder-camembert-base-mmarcoFR')
scores = model.predict(pairs)
print(scores)
Usando FlagEmbedding
Primero instala la biblioteca: pip install -U FlagEmbedding. Luego, puedes usar el modelo así:
from FlagEmbedding import FlagReranker
pairs = [('Pregunta', 'Párrafo 1'), ('Pregunta', 'Párrafo 2'), ('Pregunta', 'Párrafo 3')]
reranker = FlagReranker('antoinelouis/crossencoder-camembert-base-mmarcoFR')
scores = reranker.compute_score(pairs)
print(scores)
Usando HuggingFace Transformers
Primero instala la biblioteca: pip install -U transformers. Luego, puedes usar el modelo así:
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
pairs = [('Pregunta', 'Párrafo 1'), ('Pregunta', 'Párrafo 2'), ('Pregunta', 'Párrafo 3')]
tokenizer = AutoTokenizer.from_pretrained('antoinelouis/crossencoder-camembert-base-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-camembert-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)
Funcionalidades
- Modelo de cross-encoder
- Atención cruzada entre preguntas y pasajes
- Genera puntajes de relevancia
- Utilizado para reranqueo en búsquedas semánticas
Casos de uso
- Reranqueo de pasajes en búsquedas semánticas
- Mejora de sistemas de recuperación de información
- Evaluación comparativa de modelos de recuperación en francés