Bases de datos vectoriales: una introducción técnica [pdf]
Las bases de datos vectoriales están emergiendo como infraestructura central para la búsqueda semántica y la generación aumentada por recuperación, pero los ingenieros todavía están determinando cuándo vale la pena adoptarlas frente a opciones más simples como la búsqueda por fuerza bruta en SQLite o Postgres con pgvector. Los comentaristas intercambian recursos y benchmarks, debaten entre coseno y distancia euclidiana y varios esquemas de indexación (HNSW, IVF, ANNOY, PQ), y enfatizan que los embeddings los producen modelos de ML externos y no la base de datos en sí. Un tema recurrente es que las necesidades prácticas —escala de datos, latencia, costo y búsqueda híbrida léxica–vectorial— deberían guiar la elección entre bases de datos vectoriales “completas” y extensiones o bibliotecas más ligeras.
Curso y recursos adicionales
- El hilo se centra en un manual en PDF derivado de una clase grabada, con un curso de video asociado en Udemy (con descuento).
- Los comentaristas comparten muchos recursos complementarios: encuestas académicas sobre bases de datos vectoriales, introducciones generales a embeddings y a la búsqueda ANN, y documentación de proveedores.
Similitud del coseno vs distancia euclidiana
- Debate prolongado sobre por qué se usa comúnmente la similitud del coseno.
- Puntos a favor: la magnitud a menudo no es semánticamente significativa; la normalización simplifica a producto punto; ventajas de eficiencia.
- Escepticismo: la magnitud podría importar en algunas tareas; las explicaciones sobre el coseno a menudo parecen vagas; algunos sostienen que el verdadero objetivo es maximizar el producto interno y que la normalización es sobre todo una conveniencia.
- Otros aportan intuiciones de hiperplanos aleatorios y hashing sensible a la localidad. Consenso: la práctica favorece el coseno, pero los compromisos teóricos son matizados.
Búsqueda por fuerza bruta vs ANN / índices vectoriales
- Varios benchmarks sugieren que la fuerza bruta sobre cientos de miles a millones de vectores es sorprendentemente viable, especialmente cuando se hace en lotes y cuando la generación de LLM domina la latencia.
- Discusión sobre cuándo se “rompe” el escaneo lineal: depende de la cantidad de vectores, la dimensionalidad, las RPS y la RAM.
- Las estructuras ANN (HNSW, IVF, Annoy, LSH, etc.) se vuelven importantes a mayor escala o con QPS más altos, aunque los métodos basados en grafos tienen costos de memoria y de construcción.
Bases de datos vectoriales dedicadas vs bases de datos tradicionales
- Muchos preguntan cuándo pasar de SQLite/Postgres+pgvector a una base de datos vectorial especializada (Pinecone, Qdrant, etc.).
- Para O(100k) vectores y poco tráfico, las soluciones simples dentro de la base de datos o en memoria suelen ser “suficientemente buenas”.
- Algunos informan haber escalado motores personalizados o livianos hasta decenas de millones de vectores; otros destacan el costo y la complejidad de las bases de datos vectoriales alojadas y sugieren alternativas.
- Hay demanda de una guía más clara sobre los compromisos (velocidad de indexación, latencia de consulta, costo, operaciones).
Búsqueda híbrida y RAG
- La mayoría de los sistemas RAG actuales usan búsqueda vectorial; algunos todavía dependen de búsqueda por palabras clave/texto.
- Varios enfatizan que la búsqueda híbrida (vector + léxica) es cada vez más estándar; las bases de datos tradicionales añaden soporte vectorial y las bases de datos vectoriales añaden funciones léxicas.
Embeddings, selección de características y semántica
- Aclaración importante: las bases de datos vectoriales solo almacenan y buscan vectores; los embeddings se producen fuera por modelos de ML.
- Discusión sustancial sobre la “selección de características” y el juicio humano:
- Una postura: el aprendizaje profundo moderno junto con la atención automatiza en gran medida la extracción de características a partir de datos brutos para modalidades comunes; no se necesita un diseño manual explícito de características.
- Postura contraria: los humanos todavía deciden representaciones (por ejemplo, FFT para audio), objetivos y qué debe significar la “similitud”; las características faltantes pueden producir resultados de “similitud” sistemáticamente erróneos.
- Se señala que los embeddings no tienen que ser puramente semánticos; pueden codificar comportamiento (por ejemplo, sistemas de recomendación) o tiempo/contexto.
Casos de uso y alternativas
- Las bases de datos vectoriales se usan principalmente para búsqueda por similitud/semántica, recuperación de elementos relacionados y RAG.
- Para tareas visuales específicas (por ejemplo, reconocimiento de color de cabello/piel), los encuestados sostienen que modelos de ML especializados (CNNs, detectores de rostros, modelos multimodales) superan a la búsqueda ingenua por similitud de imágenes; las bases de datos vectoriales son un componente, no un sustituto.
Opciones incrustadas / ligeras
- Se mencionan varias opciones incrustadas o simples: SQLite con funciones personalizadas, DuckDB, Chroma, extensiones de SQLite, pequeñas bibliotecas (Faiss, HNSWlib, usearch) y modos locales/incrustados de sistemas más grandes.
Críticas al manual
- Varios señalan errores en las tablas (filas intercambiadas, tipos de índice invertidos).
- Objeciones a describir las bases de datos vectoriales como “agrupadas por significado” u “optimizadas para analítica”:
- El agrupamiento depende por completo del embedding y de la tarea.
- Las bases de datos vectoriales se presentan como sistemas de búsqueda/recuperación, más parecidos a motores de búsqueda que a almacenes analíticos.
- Algunos detalles técnicos menores: por ejemplo, PQ se caracteriza más como compresión que como una estrategia de indexación; la orientación sobre cuándo usar tipos de índice específicos es discutida.