Base de datos vectorial
Una base de datos que busca por significado parecido y no por palabras exactas.
Una base de datos vectorial (vector database) guarda embeddings: listas de números que produce un modelo de IA para representar el significado de un texto, una imagen o un sonido. Las cosas con significado parecido reciben números parecidos, así que quedan cerca, como puntos en un mapa. 'Cachorro' cae cerca de 'perro' y de 'gatito', lejos de 'factura'. Una base de datos vectorial está hecha para responder rápido una sola pregunta: ¿qué elementos guardados están más cerca de este?
Eso es distinto de buscar en una base de datos común. Si buscás 'no puedo entrar' por palabras clave en un centro de ayuda, no aparece el artículo 'Cómo restablecer tu contraseña'. Buscando por vectores sí aparece, porque los significados están cerca aunque las palabras sean otras. Para hacer esto entre millones de elementos sin comparar contra cada uno, las bases vectoriales usan índices especiales (aparecen nombres como HNSW) que encuentran casi los más cercanos muy rápido, a cambio de resignar un poquito de precisión.
Se volvieron populares con los grandes modelos de lenguaje porque son la memoria habitual detrás de RAG: tus documentos se parten en pedazos, cada pedazo se convierte en embedding y se guarda, y cuando alguien hace una pregunta se buscan los pedazos más cercanos y se le pasan al modelo como contexto. También sirven para búsqueda semántica, recomendaciones de 'productos parecidos' y detección de duplicados. Algunas son productos dedicados; otras son funciones agregadas a sistemas que ya existían, como la extensión pgvector para PostgreSQL.
Para quedarse
- Guarda embeddings: números que representan significado.
- Encuentra lo más cercano a una consulta, no coincidencias exactas de palabras.
- Usa búsqueda aproximada para seguir siendo rápida con millones de elementos.
- Es el almacenamiento habitual detrás de RAG y de la búsqueda semántica.
Para seguir leyendo
- ¿Qué es una base de datos vectorial? (AWS)
- ¿Qué es una base de datos vectorial? (IBM)
- Vector database en Wikipedia (en inglés)