bge-reranker-base
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