crossencoder-camembert-large-mmarcoFR

antoinelouis
Clasificación de texto

Este es un modelo de cross-encoder para francés. Realiza cross-attention entre un par de preguntas y pasajes y produce una puntuación de relevancia. El modelo debe utilizarse como reranker para la 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 ajustado finamente), codifica cada par consulta-pasaje y ordena los pasajes en orden decreciente de relevancia según las puntuaciones predichas por el modelo.

Como usar

A continuación se presentan algunos ejemplos de uso del modelo con Sentence-Transformers, FlagEmbedding o Huggingface Transformers.

Usando Sentence-Transformers

Comienza instalando la biblioteca: pip install -U sentence-transformers. Luego, puedes usar el modelo así:
```python
from sentence_transformers import CrossEncoder

pairs = [('Pregunta', 'Párrafo 1'), ('Pregunta', 'Párrafo 2'), ('Pregunta', 'Párrafo 3')]

model = CrossEncoder('antoinelouis/crossencoder-camembert-large-mmarcoFR')
scores = model.predict(pairs)
print(scores)

Usando FlagEmbedding

Comienza instalando 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-large-mmarcoFR')
scores = reranker.compute_score(pairs)
print(scores)

Usando HuggingFace Transformers

Comienza instalando 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-large-mmarcoFR')
model = AutoModelForSequenceClassification.from_pretrained('antoinelouis/crossencoder-camembert-large-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

Atención cruzada entre pares de preguntas y pasajes
Clasificación de la relevancia de los pasajes
Entrenado específicamente para la lengua francesa
Utiliza el modelo base almanach/camembert-large
Optimizado mediante pérdida de entropía cruzada binaria

Casos de uso

Reclasificación de pasajes en funciones de búsqueda semántica
Respuestas a consultas en sistemas de recuperación de información
Aplicaciones en motores de búsqueda para mejorar la relevancia de los resultados