Docs Menu
Docs Home
/ /

Cómo crear incrustaciones vectoriales manualmente

Puedes almacenar Incrustaciones vectoriales junto con otros datos de MongoDB. Estas incrustaciones capturan relaciones significativas en sus datos y le permiten realizar búsquedas semánticas e implementar RAG.

Utiliza el siguiente tutorial para aprender a crear incrustaciones vectoriales y consultarlas mediante la búsqueda vectorial. En concreto, realizas las siguientes acciones:

  1. Define una función que utiliza un modelo de incrustación para generar incrustaciones vectoriales.

    Seleccione si desea usar un modelo propietario o de código abierto. Para incrustaciones de última generación, utilizar Voyage IA.

  2. Cree incrustaciones a partir de sus datos y almacénelas en MongoDB.

    Seleccione si desea crear incrustaciones a partir de datos nuevos o de datos existentes que ya tiene en una colección de MongoDB.

  3. Crea incrustaciones a partir de tus términos de búsqueda y ejecuta las query de la búsqueda vectorial.

Para aplicaciones de producción, normalmente se escribe un script para generar incrustaciones vectoriales. Se puede empezar con el código de muestra de esta página y personalizarlo según el caso de uso.

Para completar este tutorial, debes tener lo siguiente:

En esta sección, se crearán incrustaciones vectoriales a partir de los datos utilizando la función que se definió, y luego se almacenarán estas incrustaciones en una colección de MongoDB.

En esta sección, se debe indexar las incrustaciones vectoriales en la colección y se debe crear una incrustación que se usa para ejecutar una query de búsqueda vectorial de muestra.

La búsqueda vectorial devuelve documentos cuyas incrustaciones son las más cercanas en distancia a la incrustación de la query. Esto indica que son similares en significado.

Considere los siguientes factores al crear embeddings vectoriales:

Para crear incrustaciones vectoriales, se debe utilizar un modelo de incrustación. Los modelos de incrustación son algoritmos que se utilizan para generar representaciones numéricas de los datos. Elegir una de las siguientes maneras de acceder a un modelo de incrustación:

Método
Descripción

Carga un modelo de código abierto

Si no tienes una Clave API para un modelo de incrustación propietario, cargue un modelo de incrustación de código abierto localmente desde su aplicación.

Utilice un modelo propietario

La mayoría de los proveedores de IA ofrecen APIpara sus modelos de incrustación patentados, que permiten crear incrustaciones vectoriales. Para incrustaciones de vanguardia, utilice Voyage AI.

Aproveche una integración

Puedes integrar MongoDB Vector Search con frameworks de código abierto y servicios de IA para conectarte rápidamente a modelos de incrustación tanto de código abierto como propietarios y generar incrustaciones vectoriales para MongoDB Vector Search.

Para obtener más información, consulta Integraciones de IA de MongoDB.

El modelo de incrustación que se elija afecta a los resultados de la query y determina el número de dimensiones que se especifican en el índice de MongoDB Vector Search. Cada modelo ofrece diferentes ventajas dependiendo de los datos y el caso de uso. Para incrustaciones de última generación, incluidos modelos de incrustación multimodales y específicos de dominio, se debe usar Voyage IA.

Cuando elija un modelo embebido para la búsqueda vectorial de MongoDB, considere las siguientes métricas:

  • Dimensiones de la incrustación: La longitud de la incrustación de vector.

    Las incrustaciones más pequeñas son más eficientes en almacenamiento, mientras que las más grandes pueden capturar relaciones más matizadas en sus datos. El modelo que elijas debe lograr un equilibrio entre eficiencia y complejidad.

  • Max Tokens: El número de tokens que se pueden comprimir en una sola incrustación.

  • Tamaño del modelo: El tamaño del modelo en gigabytes.

    Aunque los modelos más grandes rinden mejor, requieren más recursos informáticos a medida que escalas MongoDB Vector Search a producción.

  • Promedio de recuperación: una puntuación que mide el rendimiento de los sistemas de recuperación.

    Una puntuación más alta indica que el modelo es mejor para clasificar los documentos relevantes en posiciones más altas en la lista de resultados recuperados. Esta puntuación es importante al elegir un modelo para aplicaciones de RAG.

Si tiene una gran cantidad de vectores flotantes y desea reducir el almacenamiento y el espacio ocupado por WiredTiger (como el uso de disco y memoria) en mongod, comprima sus incrustaciones convirtiéndolas en vectores binData.

BinData es un tipo de datos BSON que almacena datos binarios. El tipo por defecto para las representaciones vectoriales es un arreglo de números flotantes de 32bits (float32). Los datos binarios son más eficientes en almacenamiento que el formato de arreglo predeterminado y, por lo tanto, requieren tres veces menos espacio en disco.

Almacenar vectores binData mejora el rendimiento de las query, ya que se necesitan menos recursos para cargar un documento en el conjunto de trabajo. Esto puede mejorar significativamente la velocidad de las query para realizar query vectoriales en las que se devuelven más de 20 documentos. Si comprimes tus incrustaciones float32, puedes crear las query con vectores float32 o binData.

El tutorial en esta página incluye una función de ejemplo que puedes utilizar para convertir tus vectores float32 a vectores binData.

BSON Los vectores BinData son compatibles con los siguientes controladores:

Los vectores de punto flotante suelen ser difíciles de comprimir porque cada elemento del arreglo tiene su propio tipo (a pesar de que la mayoría de los vectores son de tipo uniforme). Por esta razón, convertir la salida del vector de punto flotante de un modelo de incrustación en un vector binData con subtipo float32 es un esquema de serialización más eficiente. Los vectores binData almacenan un único descriptor de tipo para todo el vector, lo que reduce la sobrecarga de almacenamiento.

Considera las siguientes estrategias para asegurarte de que tus incrustaciones sean correctas y óptimas:

Una vez que hayas aprendido a crear incrustaciones y a realizar las query en las incrustaciones con MongoDB Vector Search, comienza a desarrollar aplicaciones de IA generativa implementando la generación de recuperación aumentada (RAG):

También puedes cuantificar tus incrustaciones vectoriales de 32 bits en menos bits para reducir aún más el consumo de recursos y mejorar la velocidad de las query. Para obtener más información, consulta Cuantificación de vectores.

Volver

Automatizado

Obtén una insignia de habilidad

¡Domina "RAG con MongoDB" gratis!

Más información

En esta página