Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Migrar a un nuevo modelo de incrustación

Migrar a un nuevo modelo de incrustación de Voyage AI cuando tu modelo actual alcance el estado heredado u obsoleto, o cuando un modelo más reciente ofrezca una mejor calidad de recuperación, latencia o costo para tu caso de uso.

Las incrustaciones que generan diferentes modelos no son comparables, por lo que una migración implica más que cambiar el nombre de un modelo. Vuelva a generar siempre las incrustaciones de todo el corpus con el modelo sucesor para que los vectores almacenados y los vectores de query provengan del mismo modelo.

Regenere su corpus incluso cuando el modelo sucesor produzca incrustaciones con el mismo número de dimensiones y el mismo tipo de elemento que su modelo actual. Las dimensiones coincidentes hacen que dos conjuntos de vectores sean matemáticamente comparables, pero los modelos de Voyage AI no están entrenados para preservar la relevancia entre modelos. La comparación de incrustaciones de query de un modelo nuevo con incrustaciones almacenadas de uno anterior degrada la calidad de la recuperación y reduce los beneficios de migrar al modelo nuevo.

Los pasos que siga dependerán de cómo se generen sus incrustaciones:

Método de incrustación
Pasos de migración

Embedded Automation

MongoDB Vector Search genera y almacena las incrustaciones por ti. Cambia el modelo en la definición de tu índice y MongoDB búsqueda vectorial vuelve a incrustar tus datos. Consulte Migrar con incrustación automatizada.

Incrustaciones autogestionadas

Usted mismo genera y almacena las incrustaciones. Vuelva a incrustar su corpus con la Embedding and Reranking API, actualice su aplicación y reconstruya su índice vectorial. Ver Migrar incrustaciones autogestionadas.

Primero, comprueba el estado de tu modelo actual en la tabla Estado del modelo actual. Si el modelo es heredado/heredada o está obsoleto, migra al reemplazo recomendado que la tabla enumera para ese modelo.

Para comparar los modelos disponibles, consulte Visión general de los modelos. Para la mayoría de las migraciones, elija un sucesor de los siguientes modelos recomendados:

  • Texto de propósito general. Utilice voyage-4-large para obtener la mejor calidad de recuperación, voyage-4-lite para la latencia y el costo más bajos, y voyage-4 para lograr un equilibrio entre calidad y rendimiento. Para aprender más, consulte Incrustaciones de texto.

  • Código. Utilice voyage-code-4 para la recuperación de código y aplicaciones de codificación de agentes, como agentes de codificación y documentación de programación. Para comparar los modelos para dominios especializados, consulte Modelos específicos de dominio.

  • Documentos más largos. Utilice voyage-context-4 para incrustar fragmentos que capturen el contexto completo del documento sin metadatos manuales ni aumento del contexto. La calidad de la recuperación mejora más en documentos más largos. Sirve como reemplazo directo de las incrustaciones estándar y no requiere cambios en el flujo de trabajo posterior. Para aprender más información, consulte incrustaciones de fragmentos contextualizados.

  • Multimodal. Utilice voyage-multimodal-3.5 para insertar texto y datos visuales intercalados, como capturas de pantalla de archivos PDF, diapositivas, tablas y figuras. Para aprender más información, consulte la sección de Incrustaciones Multimodales.

Cuando elija entre estos modelos, tenga en cuenta las siguientes características del modelo:

  • Modalidad. Migra a un modelo que admita los mismos tipos de datos que tu modelo actual. Por ejemplo, migra de voyage-multimodal-3 a voyage-multimodal-3.5 en lugar de a un modelo de solo texto.

  • Dimensiones de incrustación. Tenga en cuenta el número de dimensiones que produce el modelo sucesor. Su nuevo índice de vectores debe especificar ese valor.

  • Longitud del contexto. Una longitud de contexto más corta que su modelo actual puede truncar sus documentos más largos. Verifique la longitud del contexto del modelo sucesor en Descripción general de los modelos.

Nota

Las incrustaciones de los modelos de la serie voyage-4 son compatibles entre sí, lo que las hace comparables, pero Voyage AI aún recomienda que vuelvas a generar tu corpus cuando migres entre ellos.

Después de seleccionar un modelo sucesor, evalúe su calidad de recuperación en una muestra representativa de sus propios datos antes de migrar su corpus de producción.

Si utiliza la incrustación automatizada en la búsqueda vectorial de MongoDB, MongoDB gestiona la migración por usted. Edite la definición de su índice de búsqueda vectorial de MongoDB y cambie el valor del campo model en la definición de campo de tipo autoEmbed al modelo sucesor:

{
"fields": [
{
"type": "autoEmbed",
"modality": "text",
"path": "<field-name>",
"model": "<successor-model>"
}
]
}

Cuando cambias la configuración de model, numDimensions o quantization, MongoDB búsqueda vectorial vuelve a generar el índice y las incrustaciones, lo que conlleva costo adicional de incrustación. Mientras se vuelve a compilar el índice, puedes seguir ejecutando queries con la antigua definición del índice. Cuando finaliza la recompilación, MongoDB Búsqueda vectorial reemplaza automáticamente el índice antiguo.

Para obtener más información sobre la edición de un índice, consulte Editar un índice de búsqueda vectorial de MongoDB. Para los modelos compatibles con la incrustación automatizada, consulte Modelos para incrustación automatizada.

Nota

En las implementaciones autogestionadas, no puede modificar un campo de tipo autoEmbed después de crear el índice. Para migrar, cree un nuevo índice que especifique el modelo sucesor y, a continuación, borre el índice anterior.

Si genera incrustaciones usted mismo, complete los siguientes pasos para migrar al modelo sucesor. Para evitar el tiempo de inactividad, guarde las nuevas incrustaciones en un nuevo campo y mantenga su campo e índice existentes en su lugar hasta que se complete la migración.

Utiliza la Embedding and Reranking API para generar nuevas incrustaciones para tus documentos existentes con el modelo sucesor. Si no tienes una clave de API del modelo, consulta Crear una clave de API.

El siguiente ejemplo lee el texto de origen de cada documento de una colección, genera incrustaciones en lotes con el modelo sucesor y guarda los resultados en un nuevo campo:

import os
import voyageai
from pymongo import MongoClient, UpdateOne
SUCCESSOR_MODEL = "<successor-model>"
TEXT_FIELD = "<source-text-field>"
NEW_EMBEDDING_FIELD = "<new-embedding-field>"
BATCH_SIZE = 100
vo = voyageai.Client()
# This automatically uses the VOYAGE_API_KEY environment variable.
client = MongoClient(os.environ["MONGODB_URI"])
collection = client["<database>"]["<collection>"]
def process_batch(documents):
texts = [document[TEXT_FIELD] for document in documents]
result = vo.embed(
texts,
model=SUCCESSOR_MODEL,
input_type="document"
)
collection.bulk_write([
UpdateOne(
{"_id": document["_id"]},
{"$set": {NEW_EMBEDDING_FIELD: embedding}}
)
for document, embedding in zip(documents, result.embeddings)
])
batch = []
for document in collection.find({}, {TEXT_FIELD: 1}):
batch.append(document)
if len(batch) == BATCH_SIZE:
process_batch(batch)
batch = []
if batch:
process_batch(batch)

Agrupe sus solicitudes y supervise el uso de sus tokens, porque volver a incrustar un corpus grande puede agotar sus límites de cuota. Para obtener más información, consulte Gestionar límites de cuota y Supervisar el uso.

Cree un nuevo índice de búsqueda vectorial de MongoDB en el campo que contiene sus nuevas incrustación. Establezca numDimensions en el número de dimensiones que produce el modelo sucesor:

{
"fields": [
{
"type": "vector",
"path": "<new-embedding-field>",
"numDimensions": "<successor-model-dimensions>",
"similarity": "dotProduct"
}
]
}

Para aprender a crear el índice, consulta Crear un índice de MongoDB Vector Search. Para obtener la sintaxis completa de la definición del índice, consulta Cómo indexar campos para búsquedas vectoriales.

Tenga en cuenta el nombre que le dé al nuevo índice. Lo necesitará cuando actualice el código de su aplicación. Espere a que el índice alcance el estado READY antes de query.

Actualice su aplicación para generar incrustaciones de query con el modelo sucesor. Sus incrustaciones de query deben provenir del mismo modelo que sus incrustaciones almacenadas, así que cambie el modelo dondequiera que su aplicación llame a la Embedding and Reranking API:

result = vo.embed(
[query_text],
model="<successor-model>",
input_type="query"
)

Para la recuperación, establezca el parámetro input_type en query para las query y en document para el texto almacenado. Voyage AI antepone un prompt específico de la tarea a su entrada, lo que mejora la precisión de la recuperación.

Si establece el nombre del modelo en un archivo de configuración o una variable de entorno, actualice ese valor en su lugar. Actualice también cualquier código que dependa del número de dimensiones de incrustación, como la validación de esquema o la configuración de almacenamiento de vectores.

Actualice sus queries para usar el nuevo nombre de índice y la nueva ruta de campo de incrustación, luego verifique sus resultados de recuperación. Cuando confirme que el nuevo índice devuelve los resultados que espera, borre el índice antiguo y elimine el campo de incrustación antiguo de sus documentos.

Para obtener más información sobre la generación de incrustaciones, consulte Incrustaciones de texto.