Cuando hablamos de Inteligencia Artificial y modelos de lenguaje (LLMs), solemos pensar en el modelo en sí. Sin embargo, gran parte de las aplicaciones modernas de IA dependen de otro componente fundamental: las bases de datos vectoriales.
¿Por qué son necesarias?
Los LLMs poseen conocimiento general, pero no conocen nuestros documentos, manuales, correos o información específica de una empresa.
Si queremos construir un chatbot que responda preguntas sobre nuestra propia información, necesitamos una forma eficiente de almacenar y buscar ese conocimiento.
Aquí es donde entran las bases de datos vectoriales.
¿Qué es un vector?
Un vector es una representación numérica de un texto, una imagen o cualquier otro dato.
Por ejemplo:
"Java es un lenguaje orientado a objetos"
↓
[0.24, -0.81, 0.53, 0.17, ...]
Este proceso se realiza mediante un modelo de embeddings.
La idea es que textos con significados similares tendrán vectores cercanos entre sí.
Por ejemplo:
"¿Cómo crear una API REST con Spring?"
"Tutorial de Spring Boot para servicios REST"
Sus vectores estarán próximos en el espacio vectorial, aunque las frases sean distintas.
¿Cómo funciona una búsqueda vectorial?
Supongamos que almacenamos miles de documentos.
Cuando el usuario realiza una pregunta:
¿Cómo conectarse a una base de datos con Spring Boot?
1. La pregunta se convierte en un vector.
2. Se buscan los vectores más cercanos.
3. Se recuperan los documentos más relevantes.
4. Esa información se envía al LLM.
5. El modelo genera una respuesta basada en esos documentos.
Este patrón se conoce como RAG (Retrieval-Augmented Generation).
Usuario
↓
Pregunta
↓
Embedding
↓
Base de datos vectorial
↓
Documentos relevantes
↓
LLM
↓
Respuesta
¿Cómo se mide la similitud?
Las bases de datos vectoriales utilizan diferentes métricas:
Similitud del coseno
Mide qué tan parecidos son dos vectores según el ángulo entre ellos.
Coseno = 1
→ Muy similares
Coseno = 0
→ Sin relación
Coseno = -1
→ Opuestos
Es una de las métricas más utilizadas en NLP.
Distancia Euclidiana
Mide la distancia entre dos puntos.
Menor distancia
→ Mayor similitud
Producto escalar (Dot Product)
Evalúa la relación entre vectores considerando tanto dirección como magnitud.
¿Por qué no usar una base de datos relacional?
En una base de datos tradicional podríamos hacer:
SELECT *
FROM documentos
WHERE contenido LIKE '%Spring%'
Pero esto presenta limitaciones:
- Solo encuentra coincidencias literales.
- No comprende el significado.
- No detecta sinónimos.
- Escala mal con millones de embeddings.
Una búsqueda vectorial permite consultas semánticas:
Pregunta:
¿Cómo consumir una API REST?
Documento encontrado:
Guía para invocar servicios web HTTP con Spring.
Aunque las palabras sean distintas, el significado es similar.
Comparar un vector con millones de otros puede ser costoso.
Por ello, las bases de datos vectoriales utilizan algoritmos como:
- HNSW (Hierarchical Navigable Small World)
- IVF (Inverted File Index)
- PQ (Product Quantization)
Estos algoritmos permiten encontrar los vecinos más cercanos de manera eficiente sin tener que recorrer todos los vectores.
Bases de datos vectoriales populares
Pinecone
Servicio administrado diseñado específicamente para IA.
Características:
- Escalabilidad automática.
- API sencilla.
- Alta disponibilidad.
Milvus
Proyecto open source muy popular.
Características:
- Alto rendimiento.
- Soporte para miles de millones de vectores.
- Compatible con GPU.
Qdrant
Base de datos open source escrita en Rust.
Características:
- Excelente rendimiento.
- Filtros avanzados.
- API REST y gRPC.
Weaviate
Incluye capacidades de búsqueda híbrida y soporte para GraphQL.
Chroma
Muy utilizada en proyectos pequeños y prototipos.
PostgreSQL + pgvector
Permite agregar capacidades vectoriales a PostgreSQL.
Ideal cuando ya se utiliza PostgreSQL y no se necesita una solución especializada.
¿Siempre necesito una base de datos vectorial?
No necesariamente.
Para muchos proyectos pequeños, PostgreSQL con la extensión pgvector puede ser suficiente.
Una base vectorial especializada comienza a mostrar ventajas cuando:
- Existen millones de embeddings.
- Se requieren búsquedas muy rápidas.
- Hay múltiples usuarios concurrentes.
- Se necesita alta escalabilidad.
Las bases de datos vectoriales se han convertido en uno de los componentes fundamentales de las aplicaciones modernas de IA.
Su objetivo no es reemplazar a las bases de datos tradicionales, sino complementar a los LLMs proporcionando una forma eficiente de almacenar y recuperar información basada en significado y no únicamente en palabras exactas.
En otras palabras, si los LLMs son el cerebro de una aplicación de IA, las bases de datos vectoriales actúan como su memoria externa, permitiendo implementar asistentes, chatbots y sistemas RAG capaces de trabajar con conocimiento actualizado y específico.














