¿Qué es una base de datos vectorial?

Una base de datos vectorial almacena la información en forma de vectores. Las bases de datos vectoriales agrupan elementos relacionados, lo que permite realizar búsquedas de similitud y construir modelos de IA potentes.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Explicar los vectores y las bases de datos vectoriales
  • Comprender las integraciones
  • Enumerar los usos de las bases de datos vectoriales

Copiar enlace del artículo

¿Qué es una base de datos vectorial?

Una base de datos vectorial es una colección de datos que se almacenan como representaciones matemáticas. Las bases de datos vectoriales hacen que sea más fácil para los modelos de aprendizaje automático recordar entradas anteriores, lo que permite utilizar el aprendizaje automático para potenciar la búsqueda, las recomendaciones y los casos de uso de generación de texto. Los datos pueden identificarse con base en métricas de similitud en lugar de hacerlo con base en coincidencias exactas, lo que hace posible que un modelo informático comprenda los datos contextualmente.

Cuando uno visita una zapatería, un vendedor puede sugerirle zapatos que se parezcan al par que se prefiere. Del mismo modo, al comprar en una tienda de comercio electrónico, la tienda puede sugerir artículos similares bajo un encabezado como "Los clientes también compraron..." Las bases de datos vectoriales permiten a los modelos de aprendizaje automático identificar objetos similares, al igual que el vendedor puede encontrar zapatos similares y la tienda de comercio electrónico puede sugerir productos relacionados. (De hecho, la tienda de comercio electrónico podría utilizar un modelo de aprendizaje automático de este tipo para hacerlo).

En resumen, las bases de datos de vectores permiten a los programas informáticos establecer comparaciones, identificar relaciones y entender el contexto. Esto permite crear programas avanzados de inteligencia artificial (IA), tales como los modelos lingüísticos de gran tamaño (LLM).

Integraciones: documentos agrupados en un espacio vectorial

En esta base de datos vectorial simple, los documentos de la parte superior derecha son probablemente similares entre sí.

¿Qué es un vector?

Un vector es una serie de valores numéricos que expresa la ubicación de un punto flotante a lo largo de varias dimensiones.

En un lenguaje más cotidiano, un vector es una lista de números, tales como: {12, 13, 19, 8, 9}. Estos números indican una ubicación dentro de un espacio, igual que un número de fila y columna indica una determinada celda en una hoja de cálculo (por ejemplo "B7").

¿Cómo funcionan las bases de datos vectoriales?

Cada vector en una base de datos vectorial corresponde a un objeto o elemento, ya sea que se trate de una palabra, una imagen, un vídeo, una película, un documento o cualquier otro dato. Es posible que estos vectores sean largos y complejos, y que expresen la ubicación de cada objeto a lo largo de docenas o incluso cientos de dimensiones.

Por ejemplo, una base de datos vectorial de películas puede ubicar películas según dimensiones como la duración, el género, el año de estreno, la clasificación de orientación parental, el número de actores en común, el número de espectadores en común, etc. Si estos vectores se crean con precisión, es posible que películas similares acaben agrupadas en la base de datos vectorial.

¿Cómo se usan las bases de datos vectoriales?

  • Búsquedas semánticas y de similitud: las bases de datos vectoriales permiten que la aplicación conecte elementos pertinentes entre sí. Los vectores que se agrupan son similares y probablemente relevantes entre sí. Esto puede ayudar a los usuarios a buscar información relevante (por ejemplo, una búsqueda de imágenes), pero también ayuda a las aplicaciones:
    • Recomendar productos similares
    • Sugerir canciones, películas o programas
    • Sugerir imágenes o vídeos
  • Aprendizaje automático y aprendizaje profundo: la capacidad de conectar elementos relevantes de información permite construir modelos de aprendizaje automático (y aprendizaje profundo) que pueden realizar tareas cognitivas complejas.
  • Modelos lingüísticos de gran tamaño (LLM) e IA generativa: los LLM, como aquel sobre el que están construidos ChatGPT y Bard, se basan en el análisis contextual del texto que es posible gracias a las bases de datos vectoriales. Al asociar palabras, frases e ideas entre sí, los LLM pueden comprender el lenguaje humano natural e incluso generar texto.

¿Qué son las integraciones?

Las integraciones son vectores generados por redes neuronales. Una base de datos vectorial típica para un modelo de aprendizaje profundo se compone de integraciones. Una vez que una red neuronal está bien afinada, puede generar integraciones por sí misma, de modo que no sea necesario crearlas manualmente. Estas integraciones se pueden utilizar después para búsquedas de similitud, análisis contextuales, IA generativa, etc., como se ha descrito anteriormente.

¿Cuáles son las ventajas de utilizar una base de datos vectorial?

Consultar un modelo de aprendizaje automático por sí solo, sin una base de datos vectorial, no es ni rápido ni rentable. Los modelos de aprendizaje automático no pueden recordar nada más allá de aquello en lo que se les entrenó. Tienen que ser el contexto cada vez (que es como funcionan muchos bot de chat simples).

Pasar el contexto de una consulta al modelo cada vez es muy lento, ya que es probable que sean muchos datos. Además, es caro, ya que los datos tienen que moverse, y hay que gastar potencia informática de manera repetida para que el modelo analice los mismos datos. Y, en la práctica, la mayoría de las API de aprendizaje automático están, de todos modos, probablemente limitadas en cuanto a la cantidad de datos que pueden aceptar a la vez.

Aquí es donde resulta útil una base de datos vectorial: un conjunto de datos pasa por el modelo una sola vez (o de forma periódica, a medida que cambia) y las integraciones del modelo de esos datos se almacenan en una base de datos vectorial.

Esto ahorra una enorme cantidad de tiempo de procesamiento. Hace posible la creación de aplicaciones orientadas al usuario en torno a la búsqueda semántica, la clasificación y la detección de anomalías, porque los resultados se obtienen en decenas de milisegundos, sin tener que esperar a que el modelo analice todo el conjunto de datos.

Para consultas, los desarrolladores piden al modelo de aprendizaje automático una representación (integración) solo de esa consulta. Entonces, la integración puede pasarse a la base de datos vectorial y esta puede devolver integraciones similares, que ya han pasado por el modelo. Esas integraciones se pueden volver a asignar a su contenido original: ya sea la URL de una página, un enlace a una imagen o las referencias de un producto.

En resumen, las bases de datos vectoriales funcionan a escala, de manera rápida y son más rentables que la consulta de modelos de aprendizaje automático sin ellas.

¿Ofrece Cloudflare la posibilidad de utilizar bases de datos vectoriales?

Vectorize es una base de datos vectorial de distribución global y ofrecida por Cloudflare. Las aplicaciones construidas sobre Cloudflare Workers pueden utilizar Vectorize para consultar documentos almacenados en Workers KV, imágenes almacenadas en R2 o perfiles de usuario almacenados en D1. Del mismo modo que Workers permite a los desarrolladores crear aplicaciones sin necesidad de una infraestructura de backend, Vectorize permite a los desarrolladores incorporar capacidades de IA a sus aplicaciones sin tener que construir su propia infraestructura de base de datos vectorial. Y para crear incrustaciones, Cloudflare ofrece Workers AI.

Aprende a crear aplicaciones basadas en IA en Cloudflare.