¿Qué es una base de datos vectorial?

Una base de datos vectorial es cualquier base de datos que permita almacenar, indexar y consultar incrustaciones de vectores o representaciones numéricas de datos no estructurados, como texto, imágenes o audio.

¿Qué son las incrustaciones de vectores?

Las incrustaciones de vectores son representaciones útiles de datos no estructurados, ya que asignan contenido de tal forma que la similitud semántica queda representada por la distancia en el espacio vectorial n. De esta forma, es más fácil buscar similitudes, encontrar contenido pertinente en una base de conocimientos o recuperar un elemento que coincida mejor con una consulta compleja generada por un usuario. 

Mientras que algunas bases de datos especializadas solo admiten las inserciones de vectores, otras admiten muchos otros tipos de datos y de consultas además de las incrustaciones de vectores. La compatibilidad con una amplia variedad de tipos de datos y de consultas es fundamental para crear aplicaciones de IA generativa a partir de datos reales y enriquecidos. A medida que queden claras las ventajas de las consultas semánticas con incrustaciones de vectores, la mayoría de las bases de datos añadirán compatibilidad con vectores. En el futuro, creemos que todas las bases de datos serán bases de datos vectoriales.

Descubre cómo admite la búsqueda de vectores de Vertex AI la creación de aplicaciones de IA generativa de alto rendimiento. La búsqueda de vectores de Vertex AI se basa en la búsqueda de Nearest Neighbor escalable o ScaNN, una tecnología de búsqueda de vectores escalable y eficiente desarrollada por Google Research, por lo que es ideal para gestionar grandes conjuntos de datos y requisitos de búsqueda en tiempo real. Obtén más información sobre la búsqueda y las inserciones de vectores en este vídeo y empieza con esta guía de inicio rápido

¿Cómo funciona una base de datos vectorial?

Al igual que ocurre con otros tipos de datos, la consulta eficiente de un gran conjunto de vectores requiere un índice. Las bases de datos vectoriales admiten índices especializados para vectores. A diferencia de muchos otros tipos de datos (como texto o números), que tienen un único orden lógico, los vectores no tienen un orden natural que corresponda a casos prácticos. En su lugar, el caso práctico más habitual consiste en consultar los k vectores más próximos a otro vector en términos de una métrica de distancia, como el producto escalar, la similitud del coseno o la distancia euclídea. Este tipo de consulta se conoce como "los k vecinos más cercanos (exactamente)" o "KNN".

Por desgracia, no existen algoritmos generales para consultas KNN eficientes. Para poder garantizar la búsqueda de los k vecinos más cercanos a un vector determinado, q, es necesario calcular la distancia entre q y todos los demás vectores. Sin embargo, hay algoritmos eficientes para encontrar los k vecinos más cercanos aproximadamente ("ANN"). Estos algoritmos de ANN sacrificar algo de precisión (en concreto, recuperación, ya que el algoritmo puede omitir algunos de los vecinos más cercanos) para obtener grandes mejoras en la velocidad. Dado que en muchos casos de uso ya se trata el proceso de cálculo de incrustaciones de vectores como algo impreciso, a menudo pueden tolerar cierta pérdida de memoria a cambio de grandes mejoras en el rendimiento.

Para habilitar las consultas de ANN de vectores basadas en la distancia de algún otro vector, el índice vectorial se estructura de forma que los clústeres de vectores cercanos se agrupen generalmente. Los tipos de índices de vectores comunes se pueden estructurar como un conjunto de listas en las que cada lista representa los vectores de un determinado clúster; un gráfico en el que cada vector está conectado a varios de sus vecinos más cercanos, árboles en los que las ramas se corresponden con subconjuntos del clúster del nodo principal, y más. Cada tipo de índice hace sacrificios entre la velocidad de búsqueda, la recuperación, el consumo de memoria y el tiempo de creación del índice, entre otros factores.

Sin embargo, la mayoría de las consultas a bases de datos no se basan únicamente en la similitud semántica. Por ejemplo, es posible que un usuario busque un libro cuya descripción sea similar a "una historia conmovedora sobre un niño y un perro", pero también quiera limitarlo a libros por menos de 20 USD, que están disponibles en formato de bolsillo. Las bases de datos de vectores de uso especial pueden proporcionar una capacidad de filtrado adicional limitada (a veces denominadas "restricciones"), mientras que las bases de datos de uso general pueden crear predicados detallados con lenguajes estándar como SQL, que se pueden combinar con el orden de similitud de vectores para realizar consultas expresivas y muy potentes.

Casos prácticos de bases de datos vectoriales

La capacidad de las inserciones de vectores para representar el significado semántico de los datos no estructurados junto con la capacidad de las bases de datos de vectores para buscar de forma eficiente los vectores cercanos desencadena muchos casos prácticos importantes:

  • Buscar mensajes del historial de chat que sean pertinentes para la conversación actual. Así, los bots de chat basados en IA podrán usar la "memoria"
  • Buscar vídeos de un amplio archivo de emisiones deportivas que coincidan con una descripción sencilla como "saltar por encima de un defensa para coger el balón y anotar un touchdown"
  • Buscar productos similares a los que haya comprado un usuario anteriormente y que se ajusten a sus preferencias de precio y de estilo
  • Buscar documentos pertinentes para una tarea como "cambiar el filtro en una aspiradora" para que un asistente basado en IA pueda darte una respuesta objetiva oportuna

Ventajas de las bases de datos vectoriales

Las bases de datos vectoriales son importantes porque se pueden utilizar para resolver una serie de problemas que son difíciles o imposibles de resolver solo con predicados relacionales o con técnicas de búsqueda de texto.

Las bases de datos vectoriales son ideales para las aplicaciones de IA generativa, ya que permiten obtener fácilmente contexto empresarial y de aplicaciones críticos, como el historial de chat pertinente o el contenido sin estructurar de un negocio específico, para ayudar a los LLMs a responder a consultas complejas de los usuarios.

También pueden facilitar la búsqueda de contenido utilizando lenguaje natural o la consulta por ejemplo.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud y explícale tu reto único al detalle.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud