bge-reranker-base

BAAI
Clasificación de texto

El modelo bge-reranker-base de BAAI es un modelo de cross-encoder optimizado para la reclasificación de documentos. Es parte de la serie BGE y está diseñado para proporcionar una mayor precisión en comparación con los modelos de embedding, aunque a un costo de tiempo de cálculo más alto. Este modelo es capaz de procesar múltiples idiomas y manejar entradas de mayor longitud, logrando un rendimiento mejorado en benchmarks como BEIR, C-MTEB y MIRACL.

Como usar

El modelo bge-reranker-base se puede utilizar a través de múltiples bibliotecas como FlagEmbedding, sentence-transformers, Langchain y HuggingFace Transformers. A continuación se muestra un ejemplo de uso con HuggingFace Transformers:

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

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

pairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]
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)

El modelo también se puede utilizar con los archivos ONNX. Aquí hay un ejemplo de uso:

from optimum.onnxruntime import ORTModelForSequenceClassification
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('BAAI/bge-reranker-base')
model_ort = ORTModelForSequenceClassification.from_pretrained('BAAI/bge-reranker-base', file_name="onnx/model.onnx")

pairs = [['what is panda?', 'hi'], ['what is panda?', 'The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China.']]
encoded_input = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
    scores_ort = model_ort(**encoded_input, return_dict=True).logits.view(-1, ).float()
    print(scores_ort)

Funcionalidades

Modelo de cross-encoder para la reclasificación de documentos
Optimizado para la precisión con un costo de tiempo de cálculo
Compatibilidad con múltiples idiomas
Mejoras significativas en el rendimiento de ranking en benchmarks como BEIR, C-MTEB y MIRACL
Soporte para entradas más largas

Casos de uso

Reclasificación de documentos para mejorar los resultados de búsqueda
Procesamiento y análisis de preguntas-respuestas
Mejora de la precisión en sistemas de recuperación de información
Clasificación de textos en múltiples idiomas