mxbai-rerank-large-v1

mixedbread-ai
Clasificación de texto

Este es el modelo más grande de nuestra familia de potentes modelos de reranking. Puede aprender más sobre los modelos en nuestra publicación del blog. Tenemos tres modelos: mxbai-rerank-xsmall-v1, mxbai-rerank-base-v1, mxbai-rerank-large-v1 (🍞).

Como usar

Actualmente, la mejor manera de usar nuestros modelos es con la versión más reciente de sentence-transformers.

pip install -U sentence-transformers

Supongamos que tiene una consulta y desea reorganizar un conjunto de documentos. Puede hacerlo con solo una línea de código:

from sentence_transformers import CrossEncoder

# Cargue el modelo, aquí usamos nuestro modelo del tamaño base
model = CrossEncoder('mixedbread-ai/mxbai-rerank-large-v1')

# Consulta de ejemplo y documentos
query = "¿Quién escribió 'Matar a un ruiseñor'?"
documents = [
"'Matar a un ruiseñor' es una novela de Harper Lee publicada en 1960. Fue inmediatamente exitosa, gano el Premio Pulitzer y se ha convertido en un clásico de la literatura estadounidense moderna.",
"La novela 'Moby-Dick' fue escrita por Herman Melville y publicada por primera vez en 1851. Se considera una obra maestra de la literatura estadounidense y trata temas complejos de obsesión, venganza y el conflicto entre el bien y el mal.",
"Harper Lee, una novelista estadounidense ampliamente conocida por su novela 'Matar a un ruiseñor', nació en 1926 en Monroeville, Alabama. Recibió el Premio Pulitzer de Ficción en 1961.",
"Jane Austen fue una novelista inglesa conocida principalmente por sus seis novelas principales, que interpretan, critican y comentan sobre la nobleza británica a finales del siglo XVIII.",
"La serie 'Harry Potter', que comprende siete novelas de fantasía escritas por la autora británica J.K. Rowling, es una de las series más populares y aclamadas por la crítica de la era moderna.",
"'El Gran Gatsby', una novela escrita por el autor estadounidense F. Scott Fitzgerald, fue publicada en 1925. La historia se desarrolla en la Era del Jazz y sigue la vida del millonario Jay Gatsby y su búsqueda de Daisy Buchanan."
]

# Obtengamos las puntuaciones
results = model.rank(query, documents, return_documents=True, top_k=3)

Ejemplo en JavaScript: Instalar transformers.js

npm i @xenova/transformers

Supongamos que tiene una consulta y desea reorganizar un conjunto de documentos. En JavaScript, necesita agregar una función:

import { AutoTokenizer, AutoModelForSequenceClassification } from '@xenova/transformers';

const model_id = 'mixedbread-ai/mxbai-rerank-large-v1';
const model = await AutoModelForSequenceClassification.from_pretrained(model_id);
const tokenizer = await AutoTokenizer.from_pretrained(model_id);

/**
* Realiza el ranking con el CrossEncoder en la consulta y documentos dados. Devuelve una lista ordenada con los índices de los documentos y las puntuaciones.
* @param {string} query Una consulta única
* @param {string[]} documents Una lista de documentos
* @param {Object} options Opciones para el ranking
* @param {number} [options.top_k=undefined] Devuelve los documentos top-k. Si no está definido, se devuelven todos los documentos.
* @param {number} [options.return_documents=false] Si es true, también devuelve los documentos. Si es false, solo devuelve los índices y las puntuaciones.
*/
async function rank(query, documents, {
 top_k = undefined,
 return_documents = false,
} = {}) {
 const inputs = tokenizer(
 new Array(documents.length).fill(query),
 {
 text_pair: documents,
 padding: true,
 truncation: true,
 }
 )
 const { logits } = await model(inputs);
 return logits
 .sigmoid()
 .tolist()
 .map(([score], i) => ({
 corpus_id: i,
 score,
 ...(return_documents ? { text: documents[i] } : {})
 }))
 .sort((a, b) => b.score - a.score)
 .slice(0, top_k);
}

// Uso de ejemplo:
const query = "¿Quién escribió 'Matar a un ruiseñor'?"
const documents = [
 "'Matar a un ruiseñor' es una novela de Harper Lee publicada en 1960. Fue inmediatamente exitosa, gano el Premio Pulitzer y se ha convertido en un clásico de la literatura estadounidense moderna.",
 "La novela 'Moby-Dick' fue escrita por Herman Melville y publicada por primera vez en 1851. Se considera una obra maestra de la literatura estadounidense y trata temas complejos de obsesión, venganza y el conflicto entre el bien y el mal.",
 "Harper Lee, una novelista estadounidense ampliamente conocida por su novela 'Matar a un ruiseñor', nació en 1926 en Monroeville, Alabama. Recibió el Premio Pulitzer de Ficción en 1961.",
 "Jane Austen fue una novelista inglesa conocida principalmente por sus seis novelas principales, que interpretan, critican y comentan sobre la nobleza británica a finales del siglo XVIII.",
 "La serie 'Harry Potter', que comprende siete novelas de fantasía escritas por la autora británica J.K. Rowling, es una de las series más populares y aclamadas por la crítica de la era moderna.",
 "'El Gran Gatsby', una novela escrita por el autor estadounidense F. Scott Fitzgerald, fue publicada en 1925. La historia se desarrolla en la Era del Jazz y sigue la vida del millonario Jay Gatsby y su búsqueda de Daisy Buchanan."
]

const results = await rank(query, documents, { return_documents: true, top_k: 3 });
console.log(results);

Usando API

from mixedbread_ai.client import MixedbreadAI

mxbai = MixedbreadAI(api_key="{MIXEDBREAD_API_KEY}")

res = mxbai.reranking(
 model="mixedbread-ai/mxbai-rerank-large-v1",
 query="¿Quién es el autor de Matar a un ruiseñor?",
 input=[
 "'Matar a un ruiseñor' es una novela de Harper Lee publicada en 1960. Fue inmediatamente exitosa, ganó el Premio Pulitzer y se ha convertido en un clásico de la literatura estadounidense moderna.",
 "La novela 'Moby-Dick' fue escrita por Herman Melville y publicada por primera vez en 1851. Se considera una obra maestra de la literatura estadounidense y trata temas complejos de obsesión, venganza y el conflicto entre el bien y el mal.",
 "Harper Lee, una novelista estadounidense ampliamente conocida por su novela 'Matar a un ruiseñor', nació en 1926 en Monroeville, Alabama. Recibió el Premio Pulitzer de Ficción en 1961.",
 "Jane Austen fue una novelista inglesa conocida principalmente por sus seis novelas principales, que interpretan, critican y comentan sobre la nobleza británica a finales del siglo XVIII.",
 "La serie 'Harry Potter', que comprende siete novelas de fantasía escritas por la autora británica J.K. Rowling, es una de las series más populares y aclamadas por la crítica de la era moderna.",
 "'El Gran Gatsby', una novela escrita por el autor estadounidense F. Scott Fitzgerald, fue publicada en 1925. La historia se desarrolla en la Era del Jazz y sigue la vida del millonario Jay Gatsby y su búsqueda de Daisy Buchanan."
 ],
 top_k=3,
 return_input=false
)

print(res.data)

Funcionalidades

Clasificación de texto
Transformers
ONNX
Safetensors
Transformers.js
Incorporación de endpoint de inferencia

Casos de uso

Reordenamiento de documentos según una consulta
Mejora de la búsqueda de palabras clave
Superación de sistemas de búsqueda semántica en muchos casos

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.