crossencoder-camembert-base-mmarcoFR

antoinelouis
Clasificación de texto

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