Base de datos de vectores ¡Una guía para principiantes!

Guía básica de vectores en bases de datos

En la era de la creciente complejidad de datos e información de alta dimensionalidad, las bases de datos tradicionales a menudo se quedan cortas cuando se trata de manejar y extraer significado de conjuntos de datos complicados de manera eficiente. Entran en escena las bases de datos vectoriales, una innovación tecnológica que ha surgido como una solución a los desafíos planteados por el siempre creciente panorama de datos.

Comprendiendo las Bases de Datos Vectoriales

Las bases de datos vectoriales han adquirido una importancia significativa en diversos campos debido a su capacidad única para almacenar, indexar y buscar eficientemente puntos de datos de alta dimensionalidad, a menudo denominados vectores. Estas bases de datos están diseñadas para manejar datos donde cada entrada se representa como un vector en un espacio multidimensional. Los vectores pueden representar una amplia gama de información, como características numéricas, incrustaciones de texto o imágenes, e incluso datos complejos como estructuras moleculares.

Representemos la base de datos vectorial utilizando una cuadrícula 2D donde un eje representa el color del animal (marrón, negro, blanco) y el otro eje representa el tamaño (pequeño, medio, grande).

En esta representación:

  • Imagen A: Color marrón, tamaño medio
  • Imagen B: Color negro, tamaño pequeño
  • Imagen C: Color blanco, tamaño grande
  • Imagen E: Color negro, tamaño grande

Puedes imaginar cada imagen como un punto trazado en esta cuadrícula en función de sus atributos de color y tamaño. Esta cuadrícula simplificada captura la esencia de cómo una base de datos vectorial podría representarse visualmente, aunque los espacios vectoriales reales podrían tener muchas más dimensiones y utilizar técnicas sofisticadas para la búsqueda y recuperación.

Explicar las Bases de Datos Vectoriales como si Tuviera Cinco Años

Imagina que tienes diferentes tipos de frutas, como manzanas, naranjas, plátanos y uvas. Te encanta el sabor de las manzanas y quieres encontrar otras frutas que tengan un sabor similar a las manzanas. En lugar de ordenar las frutas por sus colores o tamaños, decides agruparlas según lo dulces o ácidas que sean.

Entonces, pones todas las frutas dulces juntas, como las manzanas, las uvas y los plátanos maduros. Pones las frutas ácidas en otro grupo, como las naranjas y los plátanos verdes. Ahora, cuando quieres encontrar frutas que tengan un sabor similar al de las manzanas, solo tienes que buscar en el grupo de frutas dulces porque es más probable que tengan un sabor similar.

Pero ¿qué pasa si estás buscando algo específico, como una fruta que sea tan dulce como una manzana pero también tenga un sabor ácido como una naranja? Podría ser un poco difícil de encontrar en tus grupos, ¿verdad? Ahí es cuando le preguntas a alguien que sabe mucho sobre diferentes frutas, como un experto en frutas. Ellos pueden sugerirte una fruta que se ajuste a tu solicitud de sabor única porque conocen los sabores de muchas frutas.

En este caso, esa persona conocedora actúa como una “base de datos vectorial”. Tienen mucha información sobre diferentes frutas y pueden ayudarte a encontrar una que se ajuste a tu gusto especial, incluso si no se basa en cosas habituales como colores o formas.

De manera similar, una base de datos vectorial es como este experto útil para las computadoras. Está diseñada para recordar muchos detalles sobre cosas, como alimentos, de una manera especial. Entonces, si estás buscando un alimento que sea similar en sabor a algo que te gusta o un alimento con una combinación de sabores que disfrutes, esta base de datos vectorial puede encontrar rápidamente las opciones correctas para ti. Es como tener un experto en sabores para las computadoras que sabe todo sobre los gustos y puede sugerir excelentes opciones según lo que estés deseando, así como esa persona conocedora con las frutas.

¿Cómo Almacenan los Datos las Bases de Datos Vectoriales?

Las bases de datos vectoriales almacenan datos utilizando incrustaciones vectoriales. Las incrustaciones vectoriales en las bases de datos vectoriales se refieren a una forma de representar objetos, como elementos, documentos o puntos de datos, como vectores en un espacio multidimensional. A cada objeto se le asigna un vector que captura diversas características o atributos de ese objeto. Estos vectores están diseñados de tal manera que los objetos similares tienen vectores que están más cerca entre sí en el espacio vectorial, mientras que los objetos diferentes tienen vectores que están más distantes.

Imagina las incrustaciones vectoriales como un código especial que describe los aspectos importantes de un objeto. Imagina que tienes diferentes animales y quieres representarlos de una manera en la que los animales similares tengan códigos similares. Por ejemplo, los gatos y los perros podrían tener códigos bastante cercanos, ya que comparten características comunes como tener cuatro patas y tener pelo. Por otro lado, los animales como los peces y las aves tendrían códigos más distantes, reflejando sus diferencias.

En una base de datos vectorial, estas incrustaciones se utilizan para almacenar y organizar objetos. Cuando quieres encontrar objetos que sean similares a una consulta dada, la base de datos examina las incrustaciones y calcula las distancias entre la incrustación de la consulta y las incrustaciones de otros objetos. Esto ayuda a la base de datos a identificar rápidamente los objetos más similares a la consulta.

Por ejemplo, en una aplicación de streaming de música, las canciones podrían representarse como vectores utilizando embeddings que capturan características musicales como el tempo, el género y los instrumentos utilizados. Cuando buscas canciones similares a tu canción favorita, la base de datos de vectores de la aplicación compararía los embeddings para encontrar canciones que se ajusten estrechamente a tus preferencias.

Los embeddings vectoriales son una forma de convertir objetos complejos en vectores numéricos que capturan sus características, y las bases de datos vectoriales utilizan estos embeddings para buscar y recuperar de manera eficiente objetos similares o relevantes en función de su posición en el espacio vectorial.

¿Cómo funcionan las bases de datos vectoriales?

Créditos de la imagen: VoAGI

Consulta del usuario:

  • Ingresas una pregunta o solicitud en la aplicación ChatGPT.

Creación de embeddings:

  • La aplicación convierte tu entrada en una forma numérica compacta llamada embedding vectorial.
  • Este embedding captura la esencia de tu consulta en una representación matemática.

Comparación de la base de datos:

  • El embedding vectorial se compara con otros embeddings almacenados en la base de datos vectorial.
  • Las medidas de similitud ayudan a identificar los embeddings más relacionados en función de su contenido.

Generación de resultados:

  • La base de datos genera una respuesta compuesta por embeddings que se ajustan estrechamente al significado de tu consulta.

Respuesta del usuario:

  • La respuesta, que contiene información relevante vinculada a los embeddings identificados, se te envía de vuelta.

Consultas de seguimiento:

  • Cuando haces consultas posteriores, el modelo de embedding genera nuevos embeddings.
  • Estos nuevos embeddings se utilizan para encontrar embeddings similares en la base de datos, conectándose de nuevo con el contenido original.

¿Cómo saben las bases de datos vectoriales qué vectores son similares?

Una base de datos vectorial determina la similitud entre vectores utilizando diversas técnicas matemáticas, siendo una de los métodos más comunes la similitud coseno.

Cuando buscas “Mejor jugador de cricket en el mundo” en Google, y muestra una lista de los mejores jugadores, se realizan varios pasos, siendo la similitud coseno el principal.

La representación vectorial de la búsqueda se compara con las representaciones vectoriales de todos los perfiles de jugadores en la base de datos utilizando la similitud coseno. Cuanto más similares sean los vectores, mayor será la puntuación de similitud coseno.

Nota: Bueno, esto es solo para el ejemplo. Es importante tener en cuenta que los motores de búsqueda como Google utilizan algoritmos complejos que van más allá de la simple similitud de vectores. Consideran diversos factores como la ubicación del usuario, el historial de búsqueda, la autoridad de las fuentes y más, para proporcionar los resultados de búsqueda más relevantes y personalizados.

Capacidades de las bases de datos vectoriales

La importancia de las bases de datos vectoriales radica en sus capacidades y aplicaciones:

Las bases de datos vectoriales destacan en la realización de búsquedas de similitud, donde puedes recuperar vectores que son más similares a un vector de consulta dado. Esto es crucial en diversas aplicaciones como sistemas de recomendación (para encontrar productos o contenido similares), recuperación de imágenes y videos, reconocimiento facial y recuperación de información.

  • Datos de alta dimensionalidad

Las bases de datos relacionales tradicionales tienen dificultades con datos de alta dimensionalidad debido a la “maldición de la dimensionalidad”, donde las distancias entre los puntos de datos pierden significado a medida que aumenta el número de dimensiones. Las bases de datos vectoriales están diseñadas para manejar datos de alta dimensionalidad de manera más eficiente, lo que las hace adecuadas para aplicaciones como el procesamiento del lenguaje natural, la visión por computadora y la genómica.

  • Aprendizaje automático e IA

A menudo, las bases de datos vectoriales se utilizan para almacenar embeddings generados por modelos de aprendizaje automático. Estos embeddings capturan las características esenciales de los datos y se pueden utilizar para diversas tareas, como la agrupación, la clasificación y la detección de anomalías.

  • Aplicaciones en tiempo real

Muchas bases de datos vectoriales están optimizadas para consultas en tiempo real o casi en tiempo real, lo que las hace adecuadas para aplicaciones que requieren respuestas rápidas, como sistemas de recomendación en comercio electrónico, detección de fraudes y monitoreo de datos de sensores de IoT.

  • Personalización y perfilado de usuarios

Las bases de datos vectoriales permiten experiencias personalizadas al permitir que los sistemas comprendan y predigan las preferencias del usuario. Esto es crucial en plataformas como servicios de streaming, redes sociales y mercados en línea.

  • Datos Espaciales y Geográficos

Las bases de datos vectoriales pueden manejar datos geográficos, como puntos, líneas y polígonos, de manera eficiente. Esto es esencial en aplicaciones como sistemas de información geográfica (GIS), servicios basados en ubicación y aplicaciones de navegación.

  • Salud y Ciencias de la Vida

En genómica y biología molecular, se utilizan bases de datos vectoriales para almacenar y analizar secuencias genéticas, estructuras de proteínas y otros datos moleculares. Esto ayuda en el descubrimiento de medicamentos, el diagnóstico de enfermedades y la medicina personalizada.

  • Fusión e Integración de Datos

Las bases de datos vectoriales pueden integrar datos de diversas fuentes y tipos, lo que permite un análisis y conocimiento más completo. Esto es valioso en escenarios donde los datos provienen de múltiples modalidades, como la combinación de datos de texto, imágenes y numéricos.

Las bases de datos vectoriales se pueden utilizar para crear potentes motores de búsqueda multilingües al representar documentos de texto como vectores en un espacio común, lo que permite búsquedas de similitud entre idiomas.

  • Datos de Gráficos

Las bases de datos vectoriales pueden representar y procesar datos de gráficos de manera eficiente, lo cual es crucial en el análisis de redes sociales, sistemas de recomendación y detección de fraudes.

El Papel Crucial de las Bases de Datos Vectoriales en el Paisaje de Datos Actual

Las bases de datos vectoriales están experimentando una gran demanda debido a su papel esencial para abordar los desafíos planteados por la explosión de datos de alta dimensionalidad en aplicaciones modernas.

A medida que las industrias adoptan cada vez más tecnologías como el aprendizaje automático, la inteligencia artificial y el análisis de datos, la necesidad de almacenar, buscar y analizar de manera eficiente representaciones complejas de datos se ha vuelto primordial. Las bases de datos vectoriales permiten a las empresas aprovechar el poder de la búsqueda de similitud, las recomendaciones personalizadas y la recuperación de contenido, lo que impulsa experiencias de usuario mejoradas y una toma de decisiones mejorada.

Con aplicaciones que van desde comercio electrónico y plataformas de contenido hasta atención médica y vehículos autónomos, la demanda de bases de datos vectoriales proviene de su capacidad para manejar diversos tipos de datos y ofrecer resultados precisos en tiempo real. A medida que los datos continúan creciendo en complejidad y volumen, la escalabilidad, velocidad y precisión ofrecidas por las bases de datos vectoriales las posicionan como una herramienta crítica para extraer conocimientos significativos y aprovechar nuevas oportunidades en diversos ámbitos.

SingleStore como una Base de Datos Vectorial

Aproveche las sólidas capacidades de la base de datos vectorial de SingleStoreDB, diseñada para servir de manera fluida aplicaciones impulsadas por IA, chatbots, sistemas de reconocimiento de imágenes y más. Con SingleStoreDB a su disposición, la necesidad de mantener una base de datos vectorial dedicada para sus cargas de trabajo intensivas en vectores se vuelve obsoleta.

Desviándose de los enfoques convencionales de las bases de datos vectoriales, SingleStoreDB adopta un enfoque novedoso al alojar datos vectoriales dentro de tablas relacionales junto con diversos tipos de datos. Esta amalgama innovadora le permite acceder sin esfuerzo a metadatos completos y atributos adicionales relacionados con sus datos vectoriales, todo mientras aprovecha el extenso poder de consulta de SQL.

SingleStoreDB ha sido meticulosamente diseñada con un marco escalable, asegurando un soporte inquebrantable para sus crecientes requisitos de datos. Diga adiós a las limitaciones y adopte una solución que crece al mismo ritmo que sus demandas de datos.

Ejemplo de Coincidencia de Caras con SQL en SingleStore

Cargamos 16,784,377 filas en esta tabla:

create table people(
  id bigint not null primary key,
  filename varchar(255),
  vector blob
);

Cada fila representa una imagen de una celebridad y contiene un número de ID único, el nombre del archivo donde se almacena la imagen y un vector de punto flotante de 128 elementos que representa el significado de la cara. Este vector se obtuvo utilizando facenet, una red neuronal pre-entrenada para crear incrustaciones vectoriales a partir de una imagen facial.

No se preocupe; no es necesario entender la IA para utilizar este tipo de enfoque, solo necesita utilizar la red neuronal pre-entrenada de otra persona o cualquier herramienta que pueda proporcionarle vectores resumidos para un objeto.

Ahora, consultamos esta tabla usando:

select vector
into @v
from people
where filename = "Emma_Thompson/Emma_Thompson_0001.jpg";

select filename, dot_product(vector, @v) as score
from people where score > 0.1
order by score desc
limit 5;

La primera consulta obtiene un vector de consulta @v para la imagen Emma_Thompson_0001.jpg. La segunda consulta encuentra las cinco coincidencias más cercanas:

Emma_Thompson_0001.jpg es una coincidencia perfecta consigo misma, por lo que la puntuación es cercana a 1. Pero interesantemente, la siguiente coincidencia más cercana es Emma_Thompson_0002.jpg. Aquí están la imagen de consulta y la coincidencia más cercana:

Además, la velocidad de búsqueda que obtuvimos fue realmente increíble. La segunda consulta tomó solo 0.005 segundos en una máquina de 16 vcpu. Y procesó todos los 16M vectores. Esto es una tasa de más de 3.3 billones de coincidencias de vectores por segundo.

La importancia de las bases de datos de vectores radica en su capacidad para manejar datos complejos y de alta dimensionalidad al tiempo que ofrecen mecanismos eficientes de consulta y recuperación. A medida que los datos continúan creciendo en complejidad y volumen, las bases de datos de vectores se vuelven cada vez más vitales en una amplia gama de aplicaciones en diversas industrias.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Nvidia libera un chip de IA revolucionario para acelerar aplicaciones de IA generativa

En una era en la que la tecnología empuja constantemente los límites, Nvidia ha dejado una vez más su huella. La comp...

Inteligencia Artificial

Esta investigación de IA proveniente de China presenta GS-SLAM un enfoque novedoso para mejorar el mapeo y la localización en 3D.

Investigadores del Laboratorio de Inteligencia Artificial de Shanghai, la Universidad de Fudan, la Universidad Polité...

Inteligencia Artificial

40+ Herramientas de IA Geniales que Deberías Comprobar (noviembre de 2023)

DeepSwap DeepSwap es una herramienta basada en inteligencia artificial para cualquiera que quiera crear videos e imág...

Inteligencia Artificial

Aprendizaje automático con MATLAB y Amazon SageMaker

Esta publicación está escrita en colaboración con Brad Duncan, Rachel Johnson y Richard Alcock de MathWorks. MATLAB e...