Una base de datos vectorial es cualquier base de datos que te permite almacenar, indexar y consultar incorporaciones vectoriales o representaciones numéricas de datos no estructurados, como texto, imágenes o audio.
Las incorporaciones vectoriales son representaciones útiles de datos no estructurados porque asignan el contenido de tal manera que la similitud semántica se representa mediante la distancia en un espacio vectorial de n dimensiones. Esto facilita la búsqueda de similitudes, la búsqueda de contenido relevante en una base de conocimiento o la recuperación de un elemento que coincida mejor con una consulta compleja generada por el usuario.
Mientras que algunas bases de datos especializadas solo admiten incorporaciones vectoriales, otras admiten muchos otros tipos de datos y consultas además de las incorporaciones vectoriales. La compatibilidad con una amplia variedad de tipos de datos y consultas es fundamental para desarrollar aplicaciones de IA generativa a partir de datos enriquecidos del mundo real. Como los beneficios de las consultas semánticas con incorporaciones de vectores se hacen evidentes, la mayoría de las bases de datos agregan compatibilidad con los vectores. En el futuro, creemos que todas las bases de datos serán de vectores.
Descubre cómo la búsqueda de vectores de Vertex AI permite compilar aplicaciones de IA generativa de alto rendimiento. La búsqueda vectorial de Vertex AI se basa en la búsqueda escalable de vecino más próximo, o ScaNN, una tecnología de búsqueda de vectores escalable y eficiente desarrollada por Google Research, por lo que es ideal para manejar grandes conjuntos de datos y requisitos de búsqueda en tiempo real. Obtén más información sobre la búsqueda vectorial y las incorporaciones en este video, y comienza con esta guía de inicio rápido.
Como ocurre con otros tipos de datos, consultar con eficiencia un gran conjunto de vectores requiere de un índice y las bases de datos de vectores 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 de uso prácticos. El caso de uso más común es consultar los vectores k más cercanos a otro vector en términos de una métrica de distancia, como producto punto, similitud coseno o distancia euclidiana. Este tipo de consulta se conoce como consulta “k (exacto) vecinos más cercanos” o consulta “KNN”.
Por desgracia, no hay algoritmos generales para consultas KNN eficientes. Para garantizar la búsqueda de los k vecinos más cercanos a un vector determinado (q) es necesario calcular la distancia entre q y cada otro vector. Sin embargo, existen algoritmos eficientes para encontrar los k vecinos más cercanos aproximados (“ANN”). Estos algoritmos de ANN sacrifican un poco de exactitud (específicamente la recuperación, el algoritmo puede omitir algunos de los vecinos más cercanos) para obtener grandes mejoras en la velocidad. Dado que muchos casos de uso ya tratan el proceso de calcular las incorporaciones vectoriales como un poco impreciso, a menudo pueden tolerar cierta pérdida en la recuperación a cambio de grandes mejoras en el rendimiento.
Para habilitar consultas de ANN para vectores basados en la distancia desde algún otro vector, un índice vectorial se estructura de manera tal que los clústeres de vectores cercanos generalmente se agrupan. Los tipos de índices vectoriales comunes se pueden estructurar como un conjunto de listas en las que cada lista representa los vectores de un grupo determinado; un gráfico en el que cada vector está conectado a varios de sus vecinos más cercanos; árboles en los que las ramas corresponden a subconjuntos del clúster del nodo superior y más. Cada tipo de índice proporciona compensaciones entre la velocidad de búsqueda, la recuperación, el consumo de memoria, el tiempo de creación del índice y otros factores.
Sin embargo, la mayoría de las consultas de bases de datos no solo se basan en la similitud semántica. Por ejemplo, un usuario podría estar buscando un libro cuya descripción sea similar a "una conmovedora historia sobre un niño y un perro", pero también podría querer limitarlo a los libros por menos de USD 20 que estén disponibles en formato de bolsillo. Las bases de datos vectoriales de propósitos especiales pueden proporcionar una capacidad de filtrado adicional limitada (a veces denominada “restricciones”), mientras que las bases de datos de uso general pueden componer predicados enriquecidos con lenguajes estándar como SQL, que se pueden combinar con orden de similitud de vectores para permitir consultas muy expresivas y potentes.
La capacidad de los embeddings de vector de representar el significado semántico de los datos no estructurados combinada con la capacidad de las bases de datos de vectores de buscar de manera eficiente vectores cercanos permite descubrir muchos casos de uso importantes:
Las bases de datos de vectores son importantes porque se pueden utilizar para resolver una variedad de problemas que son difíciles o imposibles de resolver solo con predicados relacionales o técnicas de búsqueda de texto.
Las bases de datos de vectores son adecuadas para las aplicaciones de IA generativa porque facilitan la recuperación de contextos críticos empresariales y de aplicaciones, como un historial de chat pertinente o contenido no estructurado específico de la empresa, para ayudar a los LLM a responder a una consulta compleja del usuario.
También pueden facilitar la búsqueda de contenido con lenguaje natural o las consultas con ejemplos.
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.