crossencoder-camembert-large-mmarcoFR
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