Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Cómo funciona la incrustación automatizada

Puedes configurar MongoDB Vector Search para generar y gestionar automáticamente incrustaciones vectoriales para los datos de texto de tu clúster. Puedes crear un índice de búsqueda semántica con IA con un solo clic en tu clúster y usar los modelos de incrustación de Voyage AI, lo que simplifica la indexación, la actualización y las consultas con vectores.

Cuando habilita la incrustación automatizada, MongoDB Vector Search genera automáticamente incrustaciones utilizando el modelo de incrustación especificado en el momento de la indexación para el campo de texto especificado en su colección y en el momento de la consulta para su cadena de texto en su consulta contra el campo indexado para las incrustaciones automatizadas.

Cuando creas un índice de MongoDB Vector Search para la incrustación automatizada, MongoDB realiza una sincronización inicial para generar incrustaciones para todos los documentos existentes en tu colección:

  1. Escanea documentos.

    La función de búsqueda vectorial de MongoDB escanea todos los documentos de la colección que contienen el campo de texto indexado.

  2. Genera incrustaciones.

    Para cada documento, MongoDB Vector Search envía el texto del campo indexado al modelo de incrustación de Voyage AI para generar incrustaciones vectoriales.

  3. Almacena elementos incrustados.

    MongoDB Vector Search almacena las incrustaciones generadas en una colección interna del sistema separada (__mdb_internal_search) en el mismo clúster para mantener las incrustaciones aisladas de los datos de su aplicación, manteniendo al mismo tiempo la localidad de los datos.

  4. Crea índice.

    Una vez generadas las incrustaciones, MongoDB Vector Search construye el índice utilizando dichas incrustaciones para habilitar la búsqueda vectorial.

Durante la sincronización inicial, MongoDB procesa los documentos en lotes y utiliza una capa especial de procesamiento de inferencia Flex para optimizar el rendimiento.

Nota

La duración de la sincronización inicial depende del número de documentos, la longitud del texto en el campo indexado y la cuota de límite de velocidad disponible. Para colecciones grandes, la sincronización inicial puede tardar varias horas.

Tras la sincronización inicial, MongoDB Vector Search mantiene las incrustaciones sincronizadas automáticamente con tus datos a medida que estos cambian.

Cuando insertas un nuevo documento con el campo de texto indexado, MongoDB Vector Search automáticamente:

  1. Detecta el nuevo documento a través de flujos de cambios.

  2. Genera incrustaciones para el campo de texto utilizando el modelo configurado.

  3. Almacena las incrustaciones en la colección del sistema.

  4. Actualiza el índice de búsqueda vectorial de MongoDB para incluir las nuevas incrustaciones.

Cuando actualizas un documento y el campo de texto indexado cambia, MongoDB Vector Search automáticamente:

  1. Detecta el cambio de campo a través de flujos de cambios.

  2. Genera nuevas incrustaciones para el texto actualizado.

  3. Reemplaza las incrustaciones antiguas en la colección del sistema.

  4. Actualiza el índice de búsqueda vectorial de MongoDB con las nuevas incrustaciones.

Nota

MongoDB Vector Search no activa la regeneración de incrustaciones para las actualizaciones de campos que no están indexados para la incrustación automatizada.

Cuando se elimina un documento, MongoDB Vector Search elimina automáticamente las incrustaciones correspondientes de la colección del sistema y actualiza el índice.

La incrustación automatizada utiliza los modelos de incrustación de Voyage AI, que están alojados y administrados por MongoDB en un entorno multiusuario:

  • Servicio alojado: Todos los modelos de incrustación están alojados y mantenidos por MongoDB. La plataforma de inferencia de modelos se ejecuta en la infraestructura de MongoDB en la nube de Google Cloud en una región de EE. UU. No necesita implementar, configurar ni administrar ninguna infraestructura de modelos.

  • Acceso basado en API: Para implementaciones autogestionadas configuradas para usar la clave API de Voyage AI, MongoDB envía texto a los puntos finales de la API de Voyage AI para generar incrustaciones. Estas incrustaciones se devuelven a MongoDB y se almacenan en su clúster.

  • Arquitectura multiusuario: El servicio de integración se comparte entre varios usuarios. Este modelo multiusuario proporciona:

    • Eficiencia de costes mediante infraestructura compartida

    • Actualizaciones y mejoras automáticas del modelo

    • Alta disponibilidad y escalabilidad

  • El texto enviado al servicio de incrustación automatizada se utiliza únicamente para generar incrustaciones y no se almacena ni se utiliza para el entrenamiento del modelo.

  • Los datos incrustados se devuelven a su clúster de MongoDB y se almacenan en su propia base de datos.

  • Toda la comunicación con el servicio de incrustación automatizada se realiza a través de conexiones cifradas.

El servicio de incrustación es multiusuario. Por lo tanto, MongoDB aplica límites de velocidad para garantizar un uso equitativo entre todos los clientes. Para obtener más información sobre los límites de velocidad y cómo afectan a las operaciones de incrustación automatizada, consulte Límites de velocidad.

Cuando ejecutas una consulta de búsqueda vectorial utilizando la función de incrustación automatizada, MongoDB gestiona automáticamente la generación de incrustaciones para el texto de tu consulta:

  1. Envío de texto de consulta: Proporcione una cadena de texto en el query campo de la etapa $vectorSearch en lugar de un vector pregenerado.

  2. Generación de incrustaciones: MongoDB envía el texto de su consulta al servicio de incrustación automatizada para generar incrustaciones utilizando el mismo modelo especificado en el índice (o un modelo compatible si lo anula con la model opción).

  3. Búsqueda vectorial: Las incrustaciones de consulta generadas se utilizan para buscar las incrustaciones indexadas mediante la función de similitud configurada (coseno, producto escalar o euclidiana).

  4. Resultados devueltos: MongoDB devuelve documentos clasificados por similitud con su consulta.

Cada consulta que utiliza la función de incrustación automática se contabiliza dentro de los límites de uso de dicha función, ya que requiere una llamada a la API para generar las incrustaciones. Para obtener más información sobre cómo gestionar el rendimiento y los costes de las consultas, consulte la sección Límites de uso.

  • Las colecciones grandes pueden tardar bastante tiempo en completar la sincronización inicial si se alcanzan los límites de velocidad.

  • MongoDB reintenta automáticamente las solicitudes de incrustación fallidas e implementa un retroceso exponencial.

  • Puedes monitorear el progreso de la sincronización a través de Monitoreo de Atlas Search.

  • Las actualizaciones de documentos se procesan a medida que se producen, sujetas a límites de frecuencia.

  • Si las actualizaciones superan los límites de velocidad, se ponen en cola y se procesan cuando hay capacidad disponible.

  • Su aplicación continúa funcionando con normalidad; solo la generación de la incrustación podría sufrir un retraso.

  • Los límites de frecuencia de las consultas afectan a la cantidad de búsquedas simultáneas que puede realizar.

  • Si se superan los límites de frecuencia de las consultas, estas devolverán un error que indica que se ha excedido dicho límite.

  • Considere la posibilidad de almacenar en caché los resultados de las consultas de uso frecuente o de actualizar a un plan de pago para obtener un mayor rendimiento.

El método de incrustación automatizada utiliza una base de datos de reserva independiente para almacenar las incrustaciones vectoriales. Puede encontrar la colección de incrustaciones generadas para un índice y recuperar las incrustaciones de dicha colección.

Almacenamiento de incrustaciones

MongoDB almacena las incrustaciones generadas de forma asíncrona y las persiste en una colección interna de incrustaciones generadas. Esta colección reside en una base de datos interna dedicada llamada __mdb_internal_search en el mismo clúster. Cada índice de incrustación automática del clúster tiene exactamente una colección de incrustaciones generadas correspondiente dentro de esta base de datos. Para obtener más información, consulte la sección Colección de incrustaciones generadas.

Advertencia

La base de datos __mdb_internal_search es un espacio de nombres interno reservado, creado y administrado por MongoDB. No manipule esta base de datos ni sus colecciones. Si modifica este espacio de nombres reservado, podría provocar fallos en los índices y resultados de búsqueda inconsistentes.

Estructura de la colección de incrustaciones generadas

La colección de incrustaciones generada contiene un documento por cada documento de la colección de origen. Cada documento de la colección de incrustaciones generada tiene el mismo _id que el origen, copias de los campos de filtro del origen y el vector de incrustación generado para cada campo de incrustación automatizada.

Puedes ver los siguientes campos:

Campo
Tipo
Descripción

_id

ObjectId

Igual _id que el documento fuente.

<filter-field>

Any

Copia del campo de filtro del documento original.

_autoEmbed

Objeto

Contiene el vector de incrustación para cada campo de incrustación automatizada.

_autoEmbed.
<fieldPath>

Matriz de vectores de punto flotante o cuantizados

Contiene el vector de incrustación generado para el campo de incrustación automatizada.

Advertencia

La base de datos __mdb_internal_search es un espacio de nombres interno reservado, creado y administrado por MongoDB. No manipule esta base de datos ni sus colecciones. Si modifica este espacio de nombres reservado, podría provocar fallos en los índices y resultados de búsqueda inconsistentes.

Puedes consultar el tamaño de almacenamiento de las colecciones de incrustaciones generadas para comprender el consumo de espacio en disco e índice que generan. Esto resulta útil para la planificación de capacidad, la depuración de crecimientos inesperados y la validación de la limpieza tras eliminar o redefinir un índice.

Importante

Antes de comprobar el tamaño de almacenamiento, localice el nombre de su colección de incrustaciones generadas. Para obtener más información, consulte la sección «Cómo encontrar la colección de incrustaciones generadas».

Las siguientes secciones ofrecen orientación para solucionar problemas comunes relacionados con la incrustación automatizada.

No se generó ninguna colección de incrustaciones que coincida con el ID del índice.
Es posible que su índice aún se encuentre en estado :guialbel`Building` o Pending. La colección de incrustaciones generada se crea de forma diferida en la primera escritura. Compruebe el estado utilizando $listSearchIndexes.
Falta el documento para una fuente _id
La incrustación para el documento especificado aún no se ha generado, o el documento fue filtrado por la expresión de filtro del índice.
Más de una colección coincide con el ID del índice.
Se ha actualizado la configuración del campo de incrustación automática. Aunque se ha creado una nueva colección de incrustaciones generadas, la anterior podría permanecer visible brevemente hasta que se complete la limpieza.

Volver

Gestionar la facturación