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.
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.
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.
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:
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.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.