Una base de datos vectorial es un sistema para almacenar, indexar y consultar grandes cantidades de vectores de alta dimensionalidad, típicamente incrustaciones producidas por un modelo de aprendizaje automático, de modo que un vector de consulta pueda emparejarse con los vectores almacenados más cercanos por distancia, en lugar de por coincidencia exacta de palabra clave o clave. Las bases de datos relacionales y documentales tradicionales se basan en coincidencias exactas y consultas de rango sobre campos estructurados; no son adecuadas para la pregunta que una base de datos vectorial responde bien, a saber: "¿cuál de estos millones de elementos es el más similar en significado a este?"
Por qué surgieron
La necesidad de búsqueda vectorial dedicada surgió directamente del auge del Transformer (architecture) y de los modelos de lenguaje grandes construidos sobre él. A medida que las organizaciones comenzaron a incrustar documentos, imágenes y otros contenidos para búsqueda semántica y generación aumentada por recuperación, la búsqueda de similitud ingenua, que compara un vector de consulta con cada vector almacenado uno por uno, se volvió computacionalmente inviable más allá de unas decenas de miles de elementos. Los algoritmos de vecinos más cercanos aproximados (ANN), sobre todo los grafos de mundo pequeño navegables jerárquicos (HNSW) y los índices de archivos invertidos combinados con cuantización de producto, hicieron posible buscar millones o miles de millones de vectores en milisegundos a costa de una pequeña pérdida ajustable en la precisión de recuperación.
Las bases de datos vectoriales creadas específicamente para este fin, como Pinecone, Weaviate, Milvus y Qdrant, surgieron a principios de la década de 2020 para empaquetar estos algoritmos ANN con las características operativas esperadas de una base de datos: persistencia, replicación, filtrado por metadatos y escalado horizontal. Al mismo tiempo, las bases de datos establecidas añadieron la búsqueda vectorial como una característica en lugar de un producto independiente, incluido pgvector para PostgreSQL e índices vectoriales en Elasticsearch, Redis y MongoDB, difuminando la línea entre "base de datos vectorial" como categoría distinta y la búsqueda vectorial como una capacidad añadida a la infraestructura existente.
Cómo funcionan
Un flujo de trabajo típico incrusta cada elemento de un corpus usando un modelo de incrustación, almacena el vector resultante junto con un identificador y metadatos opcionales, y construye un índice ANN sobre la colección de vectores. En el momento de la consulta, el texto o la imagen entrantes se incrustan con el mismo modelo, y el índice devuelve los k vectores más cercanos según una métrica de distancia elegida, más comúnmente la similitud de coseno, el producto punto o la distancia euclidiana. Muchos sistemas admiten búsqueda híbrida, combinando la similitud vectorial con el filtrado tradicional por palabras clave o restricciones de metadatos, como limitar los resultados a documentos de un rango de fechas o categoría particular.
Papel en aplicaciones de IA
Las bases de datos vectoriales se convirtieron en una pieza central de la infraestructura de IA con el crecimiento de la generación aumentada por recuperación, donde los pasajes relevantes recuperados de un índice vectorial se insertan en el contexto de un LLM para fundamentar sus respuestas en documentos específicos y reducir la alucinación. También sustentan sistemas de recomendación, búsqueda de similitud de imágenes y audio, pipelines de deduplicación y detección de anomalías, en cualquier lugar donde "encontrar cosas similares a esto" sea la consulta operativa.
Limitaciones y compensaciones
La búsqueda ANN intercambia una pequeña cantidad de precisión por grandes ganancias de velocidad, y la elección del tipo de índice y sus parámetros implica compensaciones reales entre latencia de consulta, huella de memoria y recuperación. La calidad de la incrustación limita la calidad de la recuperación: una base de datos vectorial solo puede ser tan buena como el modelo de incrustación que la alimenta, y un desajuste entre el modelo de incrustación usado para indexar un corpus y el usado en el momento de la consulta degrada silenciosamente los resultados. A mediados de la década de 2020, las bases de datos vectoriales enfrentan presión competitiva de los LLM de contexto largo, que pueden ingerir grandes cantidades de texto sin procesar directamente, reduciendo pero no eliminando la necesidad de recuperación en algunas aplicaciones, y de las bases de datos de propósito general que absorben la búsqueda vectorial como una característica integrada en lugar de un sistema separado que operar.