BAAI/bge-reranker-v2-m3

BAAI
Clasificación de texto

Modelo de reranking multilingüe ligero, fácil de desplegar, con capacidades multilingües robustas y rápida inferencia.

Como usar

Instalación y uso del modelo:

pip install -U FlagEmbedding

from FlagEmbedding import FlagReranker
reranker = FlagReranker('BAAI/bge-reranker-v2-m3', use_fp16=True) # Configurar use_fp16 a True acelera el cálculo con una ligera degradación del rendimiento

score = reranker.compute_score(['consulta', 'pasaje'])
print(score) # -5.65234375

# Se pueden mapear los puntajes en un rango de 0 a 1 configurando "normalize=True", lo cual aplicará la función sigmoide al puntaje
score = reranker.compute_score(['consulta', 'pasaje'], normalize=True)
print(score) # 0.003497010252573502

scores = reranker.compute_score([['qué es un panda?', 'hola'], ['qué es un panda?', 'El panda gigante (Ailuropoda melanoleuca), a veces llamado oso panda o simplemente panda, es una especie de oso endémica de China.']])
print(scores) # [-8.1875, 5.26171875]

# Se pueden mapear los puntajes en un rango de 0 a 1 configurando "normalize=True", lo cual aplicará la función sigmoide al puntaje
scores = reranker.compute_score([['qué es un panda?', 'hola'], ['qué es un panda?', 'El panda gigante (Ailuropoda melanoleuca), a veces llamado oso panda o simplemente panda, es una especie de oso endémica de China.']], normalize=True)
print(scores) # [0.00027803096387751553, 0.9948403768236574]

# Uso del modelo con Huggingface transformers

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-v2-m3')
model = AutoModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-v2-m3')
model.eval()

pares = [['qué es un panda?', 'hola'], ['qué es un panda?', 'El panda gigante (Ailuropoda melanoleuca), a veces llamado oso panda o simplemente panda, es una especie de oso endémica de China.']]
con torch.no_grad():
    inputs = tokenizer(pares, padding=True, truncation=True, return_tensors='pt', max_length=512)
    scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)

Funcionalidades

Reranker ligero
Capacidades multilingües
Fácil despliegue
Rápida inferencia

Casos de uso

Reclasificación de resultados relevantes
Mejorar la puntuación de relevancia entre consulta y pasaje
Adecuado para contextos multilingües
Despliegue eficiente y rápido