Puedes configurar la búsqueda vectorial de MongoDB para generar y gestionar automáticamente los vector embeddings de los datos de texto en tu clúster de Atlas. Cuando habilites el Embedding Automatizado, MongoDB búsqueda vectorial generará automáticamente las incrustaciones utilizando el embedding model de Voyage AI especificado en el índice para el campo de texto especificado en tu colección y en el momento de la query para el string en tu query.
Incrustación automática simplifica el proceso de construcción de búsqueda semántica. No es necesario que generes, almacenes ni gestiones vector embeddings tú mismo. Atlas gestiona la generación de incrustaciones, actualizaciones y consultas de manera nativa.
Nota
La incrustación automatizada es compatible con los clústeres gratuitos (M0), flexibles y dedicados (M10+).
Para usar la incrustación automatizada en los clústeres dedicados (M10+), tú debes habilitar el escalado automático de almacenamiento y nivel de clúster. Es necesario el escalado automático para escalar recursos durante la creación de índices inicial en grandes datasets. Después de que se completen las creaciones de índices, el clúster vuelve a escalar hacia abajo a tu nivel de computación original, ya que el nuevo tamaño del índice no requiere mayores recursos de almacenamiento.
Configura los ajustes de escalado automático de la siguiente manera:
Si el nivel actual del clúster es
M10oM20(instancias con CPU que se pueden aumentar), establezca un tamaño máximo de instancia deM30o superior.Si el nivel de su clúster actual es
M30o superior, establezca el tamaño máximo de la instancia a un nivel superior al nivel actual.Para clústeres que utilizan almacenamiento NVMe, selecciona la opción de nivel de clúster NVME de escala cuando el almacenamiento esté bajo.
Puedes implementar MongoDB Vector Search y habilitar una búsqueda semántica inteligente potenciada por IA en tus datos de texto mediante la incrustación automatizada en los índices de MongoDB Vector Search. Las capacidades automatizadas de Embedded de MongoDB transforman el proceso tradicionalmente complejo de implementación de búsqueda vectorial en una solución de un solo paso. En lugar de gestionar infraestructura de embedding por separado, elección de modelos y código de integración, ahora puedes implementar una búsqueda semántica mediante la simple configuración de campos.
Cuando configuras los índices de MongoDB Vector Search, este genera automáticamente incrustaciones vectoriales para los datos de texto de tu colección, utilizando tu selección de un modelo de incrustación de vanguardia de Voyage AI, mantiene las incrustaciones sincronizadas a medida que cambian tus datos y también soporta el uso de consultas de texto en lenguaje natural. Estos embeddings vectoriales capturan relaciones significativas en tus datos y permiten búsquedas basadas en la intención en lugar de palabras clave.
Habilitar y usar incrustación automatizada
Para activar la Incrustación automatizada, cree un índice MongoDB de búsqueda vectorial utilizando el tipo autoEmbed. El tipo autoEmbed especifica el campo para el cual deseas habilitar la incrustación automatizada y el embedding model que deseas utilizar. También puede incluir uno o más campo para pre-filtro sus datos utilizando el tipo filter.
1 { 2 "fields": [ 3 { 4 "type": "autoEmbed", 5 "modality": "text", 6 "path": "<field-to-index>", 7 "model": "<embedding-model>" 8 }, 9 { 10 "type": "filter", 11 "path": "<field-to-index>" 12 }, 13 ... 14 ] 15 }
Para obtener más información sobre la sintaxis y los campos de índices, consulta Cómo indexar campos para la búsqueda vectorial.
MongoDB Vector Search genera automáticamente incrustaciones para document existentes y nuevos que insertes o actualices.
Una vez que hayas creado el índice, puedes ejecutar tus consultas. MongoDB búsqueda vectorial genera automáticamente incrustaciones para su query text utilizando el mismo embedding model que especificó en el índice. Opcionalmente, puedes especificar un embedding model diferente utilizando la opción model en la etapa del pipeline $vectorSearch, pero el embedding model especificado debe ser compatible con el embedding model utilizado en la indexación.
1 [ 2 { 3 "$vectorSearch": { 4 "index": "<index-name>", 5 "path": "<field-to-index>", 6 "query": "<query-text>", 7 "model": "<embedding-model>" 8 } 9 }, 10 { 11 "$project": { 12 "_id": 0, 13 "<field-to-index>": 1, 14 "score": { "$meta": "vectorSearchScore" } 15 } 16 } 17 ]
Para obtener más información, consulte Ejecutar consultas de Vector Search.
Nota
La funcionalidad está disponible para MongoDB Search y MongoDB búsqueda vectorial implementaciones usando Docker, tarball o un administrador de paquete y para implementaciones usando los MongoDB Controllers para Kubernetes operador con MongoDB 8.2 o una versión Community Edition posterior. La funcionalidad de incrustación automatizada aún no está disponible para MongoDB Enterprise Edition.
Con un simple cambio de configuración puedes habilitar la búsqueda semántica, RAG y la memoria para agentes de IA, sin crear código de incrustación, sin gestionar la infraestructura de model ni encargarte de pipelines de vectores. Es decir, cuando se despliega la MongoDB Community Edition con el proceso de MongoDB Search y búsqueda vectorial, mongot, se pueden proporcionar las claves de la API Voyage AI para generar incrustaciones, idealmente una para operaciones de indexación y otra para operaciones de query desde diferentes proyectos.
Después de la implementación:
Desde tu colección, elige el campo de texto para el que deseas habilitar la búsqueda semántica.
De la lista de modelos de incrustación disponibles, selecciona un modelo de incrustación.
En tu definición de índice de MongoDB Vector Search, configura Embedding Automatizado usando el tipo
autoEmbed.
Para obtener más información sobre cómo configurar el índice de búsqueda vectorial de MongoDB para la incrustación automatizada, consulta Cómo indexar campos para la búsqueda vectorial.
MongoDB búsqueda vectorial genera automáticamente embeddings para los documentos existentes y nuevos que insertes o actualices utilizando las claves API especificadas durante la inicialización de MongoDB Community Edition.
Para consultas, utilice la opción query.text en la etapa de la pipeline $vectorSearch. MongoDB Vector Search genera incrustaciones para la consulta de texto utilizando el mismo embedding model en la definición del índice. Puedes especificar un `embedding model` diferente usando la opción model en la etapa del pipeline $vectorSearch, pero el `embedding model` especificado debe ser compatible con el utilizado durante el tiempo de índice. MongoDB búsqueda vectorial utiliza la clave de API de consulta que proporcionaste durante la inicialización de MongoDB Community para generar las incrustaciones en tiempo de query. Para obtener más información, consulte Ejecutar consultas de búsqueda vectorial.
Se incurren cargos por generar incrustaciones utilizando las claves API. Para obtener más información, consulta Gestión de facturación.
Para automatizar las incrustaciones y ejecutar una consulta de ejemplo, consulte el tutorial de inicio rápido de MongoDB Vector Search.
Voyage IA API Claves
Si bien puede usar una única clave de API para generar embeddings tanto en el momento de indexación como en el momento de query, le recomendamos que use claves de API separadas para evitar que las operaciones de query afecten negativamente las operaciones de indexación.
Puedes generar claves API de las siguientes formas:
(Recomendado) Utilizar tu cuenta de Atlas, lo que te permite gestionar tu clave API del modelo de embeddings Voyage IA desde la Interfaz de Usuario de Atlas.
Para aprender más sobre la generación y gestión de claves API, incluida la configuración de los límites de velocidad (que es una combinación de TPM y RPM) y la supervisión del uso de la clave API, consulta Claves API del modelo.
Para obtener más información sobre la gestión de las claves API creadas en Voyage IA, consulta Clave API.
Después de crear las claves, debes especificar las claves que deseas utilizar para la incrustación automatizada al configurar mongot durante la implementación con MongoDB Community Edition. MongoDB Vector Search utiliza la clave de la API de Voyage IA que proporcionaste durante la implementación de mongot para generar automáticamente incrustaciones para tus datos en el índice y para tu texto de query en tiempo de query.
Almacenamiento de incrustación
Los índices de incrustación automatizados generan vector embeddings de manera asíncrona y se almacenan en el clúster de MongoDB en una base de datos de reserva independiente. Cada índice de incrustación automatizada tiene exactamente una colección generada de incrustaciones correspondiente. La colección de incrustaciones generadas se almacena en una base de datos interna dedicada en el mismo clúster.
Para **aprender** más, consulta Colección de incrustaciones Generadas.
Modelos disponibles
MongoDB Vector Search se integra con los modelos de incrustaciones de última generación de Voyage AI, cada uno optimizado para un caso de uso específico:
Modelo de incrustación | Descripción | Precio por 1M de tokens |
|---|---|---|
| Optimizados para aplicaciones de alto volumen y sensibles al costo. | $0.02 |
| (Recomendado) Rendimiento equilibrado para búsqueda de texto general. | $0.06 |
| Máxima precisión para relaciones semánticas complejas. | $0.12 |
| Especializado en búsqueda de código y documentación técnica. | $0.18 |
Para obtener más información, consulte Modelos para incrustación automática.
Conceptos clave
- modelo de incrustación
embedding models son algoritmos que convierten datos en vector embeddings que capturan el significado semántico o subyacente de sus datos. Estos vectores habilitan la búsqueda vectorial.
Para obtener más información sobre los embedding models para Incrustación automatizada, consulta embedding models disponibles.
- embeddings vectoriales
Una incrustación vectorial es un arreglo de números, siendo cada dimensión la representación de una funcionalidad o atributo diferente de sus datos. Los vectores se pueden utilizar para representar cualquier tipo de datos, desde texto, imágenes y videos hasta datos no estructurados. Crea representaciones vectoriales pasando tus datos por un modelo de representaciones, y puedes almacenar estas representaciones en una base de datos que soporte representaciones vectoriales como MongoDB.
Para **aprender** más sobre el **almacenamiento** de **incrustaciones** para la incrustación automatizada, consulta **Colección** de **incrustaciones** generadas.
- tokens
En el contexto de los modelos de embebido y los LLM, los tokens son las unidades fundamentales de texto, como palabras, subpalabras o caracteres, que el modelo procesa para crear embebidos o generar texto. Los tokens son la forma en que se le factura por el uso de modelos de incrustación y LLMs.
Para obtener más información sobre tokens para incrustación automatizada, consulta Gestionar facturación para incrustación automatizada.
- límites de velocidad
Los límites de tasa son restricciones impuestas por los proveedores de API respecto a la cantidad de solicitudes que un usuario puede realizar en un período de tiempo específico, a menudo medidos en tokens por minuto (TPM) o solicitudes por minuto (RPM). Estos límites garantizan un uso equitativo, previenen abusos y mantienen la estabilidad y el rendimiento del servicio para todos los usuarios.
Para aprender más información sobre los límites de tasa para la incrustación automatizada, consulta Límites de tasa
- cuantización
Quantization reduce la precisión de los vector embeddings para disminuir el uso de memoria y almacenamiento, con compensaciones en la precisión de búsqueda. Para la incrustación automatizada, MongoDB búsqueda vectorial admite los siguientes tipos de quantization:
Tipo de quantizationDescripciónfloatAlmacena los vector embeddings como valores float de 32bits.
scalarReduce cada dimensions del vector de un float de 32bits a un número entero de 8bits.
binaryReduce cada dimensions vectorial a un solo bit y vuelve a puntuar los mejores resultados.
binaryNoRescoreReduce cada dimensions del vector a un solo bit sin necesidad de reasignar puntuaciones.
Para obtener más información sobre la quantization para la incrustación Automática, consulta Sobre la Quantization.
- número de dimensiones
El número de dimensions especifica la longitud del vector de incrustaciones para cada document (cuántos números hay en el arreglo). Las Higher dimensions capturan más detalles semánticos y, por lo general, mejoran la precisión de la recuperación, pero aumentan los costos de almacenamiento y cálculo (tamaño del índice, uso de RAM y, a veces, latencia).
Para obtener más información, consulta
numCandidatesSelección.- similitud
La función de similitud se utiliza para medir la similitud entre dos vectores o la cercanía de un vector de consulta con los vectores en el índice. MongoDB búsqueda vectorial es compatible con las siguientes funciones de similaridad:
cosine- mide la similitud basándose en el ángulo entre vectores.dotProduct- mide la similitud comocosine, pero tiene en cuenta la magnitud del vector. Recomendamos esta función de similitud para una quantization de fidelidad total oscalar.euclidean- mide la distancia entre los extremos de los vectores. Recomendamos esta función de similitud para la quantizationbinaryobinaryNoRescore, donde los vectores se comprimen y la distancia en el espacio Hamming o Euclidiano es la señal adecuada.
Para obtener más información sobre las funciones de similitud para la incrustación automatizada, consulte Acerca de las funciones de similitud.