¿Qué es una base de datos vectorial?

¿Qué es una base de datos vectorial?

Una base de datos vectorial es una base de datos especializada que almacena, gestiona y realiza la búsqueda de incrustaciones vectoriales de alta dimensión para permitir la búsqueda de similitud semántica.

Estas representaciones, generadas por modelos de Machine Learning, capturan las relaciones semánticas dentro de datos no estructurados, como texto, imágenes o audio, y sitúan los elementos conceptualmente relacionados más cerca unos de otros en el espacio vectorial, de modo que el sistema pueda clasificar los resultados por relevancia. Las bases de datos vectoriales indexan y almacenan las incrustaciones densas y dispersas para una recuperación rápida, y comúnmente sirven como una base de conocimiento externa que un modelo de lenguaje grande (LLM) puede consultar para basar sus respuestas en datos confiables y mitigar el riesgo de alucinación.


Incrustaciones de vectores

¿Qué son las incrustaciones de vectores y cómo se crean?

Las incrustaciones de vectores son matrices numéricas de valores de punto flotante que representan datos como palabras, frases o documentos completos. Se generan por modelos de machine learning, como modelos de lenguaje grande, que transforman los medios digitales en puntos dentro de un espacio de alta dimensión. Este proceso captura el significado semántico subyacente y las relaciones de los datos originales. Por ejemplo, una imagen de un “golden retriever jugando en un parque” podría convertirse en una incrustación numéricamente próxima a la incrustación del texto “perro feliz afuera”. Es importante tener en cuenta que las incrustaciones creadas por el modelo de un proveedor no pueden entenderse por otro; por ejemplo, una incrustación de un modelo OpenAI no es compatible con una de otro proveedor.

¿Qué son los vectores densos (incrustaciones)?

Los vectores densos son incrustaciones numéricas de alta dimensión en las que casi todos los elementos son valores distintos de cero. Una característica crítica de los vectores densos es que todos los vectores generados por un modelo particular deben tener el mismo número fijo de dimensiones, lo que es un requisito previo para medir la similitud. Por ejemplo, las incrustaciones de modelos de Azure OpenAI tienen 1536 dimensiones. Por lo general, se generan por modelos de transformadores, capturan un significado semántico rico y matizado, lo que las hace ideales para la búsqueda de similitud semántica. Un vector denso para la palabra “gato”, por ejemplo, podría ser: [0,135, -0,629, 0,327, 0,366, ...].

¿Qué son los vectores dispersos (incrustaciones)?

Los vectores dispersos son incrustaciones numéricas de alta dimensión en las que la mayoría de los elementos son cero, una estructura que optimiza tanto el almacenamiento como la eficiencia computacional. A diferencia de los recuperadores densos, los recuperadores dispersos emplean técnicas de búsqueda tradicionales como la frecuencia de términos-frecuencia inversa de documentos (TF-IDF) o BM25 para hacer coincidir las búsquedas con los documentos en función de las palabras clave. Por ejemplo, una búsqueda de “refrigerio saludable” podría producir un vector disperso que se expande y asigna pesos a términos relacionados como [“manzana” (3,0), “zanahoria” (2,5), “vitamina” (1,2)], mientras que todos los demás términos en el vocabulario tienen un peso de cero. Esta estructura es altamente compatible con los índices invertidos tradicionales, lo que permite una recuperación eficiente.

Medición de similitud

¿Cómo se miden la similitud y la distancia de los vectores?

En la búsqueda vectorial, la similitud se cuantifica al calcular la distancia o el ángulo entre dos vectores en un espacio de alta dimensión; los vectores que están más cerca se consideran semánticamente más similares. Las métricas comunes empleadas para medir esta proximidad incluyen la similitud del coseno, la distancia euclidiana, el producto punto, la distancia de Hamming y la distancia de Manhattan.

  • La distancia L2 (distancia euclidiana) es la métrica más común y representa la distancia en línea recta “a vuelo de pájaro” entre dos puntos vectoriales.
  • La distancia L1 (distancia de Manhattan) mide la distancia sumando las diferencias absolutas de los componentes vectoriales, como si se navegara en una cuadrícula urbana.
  • La distancia de Linf (distancia de Chebyshev) es la diferencia máxima a lo largo de cualquier dimensión.
  • La similitud del coseno mide el coseno del ángulo entre dos vectores para determinar si apuntan en una dirección similar, independientemente de su magnitud. Una puntuación de 1 significa vectores idénticos, y –1 significa que son opuestos. Esta es una opción común para espacios de incrustación normalizados, como los de los modelos de OpenAI.
  • La similitud del producto punto considera tanto el ángulo como la magnitud de los vectores. Es equivalente a la similitud del coseno para vectores normalizados, pero a menudo es más eficiente desde el punto de vista computacional.
  • La distancia de Hamming calcula el número de dimensiones en las que dos vectores difieren.
  • El producto interno máximo (MaxSim) es una métrica de similitud que se usa cuando un solo dato (como un documento) está representado por múltiples vectores (por ejemplo, un vector para cada palabra). Calcula la similitud al comparar cada vector en un documento con el vector más similar en el otro documento y luego agrega los resultados.

Algoritmos de búsqueda eficientes

¿Qué es una búsqueda por etapas en los sistemas de búsqueda vectorial?

Un sistema de recuperación multietapa o marco de trabajo del recuperador (para simplificar, también podemos llamarlo pipeline de búsqueda) es un flujo de trabajo orquestado que define la secuencia de pasos para procesar una búsqueda. Esto, por lo general, incluye pasos como el análisis de búsquedas, la recuperación inicial de uno o más índices (por ejemplo, combinar la búsqueda léxica y vectorial para un enfoque híbrido), el filtrado de resultados y una etapa final de reclasificación antes de devolver los resultados al usuario.


¿Cuáles son los beneficios de usar el marco de trabajo del recuperador para crear pipelines de búsqueda?

El principal beneficio es la modularidad y la flexibilidad. Permite a los desarrolladores combinar fácilmente diferentes estrategias de búsqueda y clasificación (como la búsqueda híbrida) y construir pipelines de recuperación complejos y de varias etapas adaptados a necesidades específicas sin tener que construir todo el sistema desde cero.

¿Qué es el reranking semántico?

La reclasificación semántica es un proceso de segunda etapa que mejora la relevancia de los resultados de búsqueda. Después de que una etapa inicial de recuperación rápida obtiene un amplio conjunto de documentos candidatos, se utiliza un modelo más intensivo desde el punto de vista computacional, pero más preciso para reordenar este conjunto más pequeño y producir una clasificación final más precisa.

¿Cómo funciona un proceso multietapa de “recuperación y reclasificación”?

Un pipeline de “recuperación y reclasificación” opera en dos etapas distintas:

  1. Recuperación: se usa un método de recuperación eficiente y escalable (como la búsqueda vectorial ANN o la búsqueda léxica BM25) para obtener un conjunto inicial de documentos candidatos de la indexación completa.
  2. Reclasificación: este conjunto más pequeño de candidatos se pasa a un modelo más potente (como un codificador cruzado) que realiza un análisis más profundo de la relación semántica entre la consulta y cada documento, y los reordena para mejorar la relevancia final.

¿Cuál es la diferencia entre las arquitecturas de un bi-encoder y un cross-encoder para la reclasificación?

  • Un bi-encoder genera incrustaciones separadas para la búsqueda y los documentos de forma independiente. Debido a que las incrustaciones de documentos se pueden calcular de forma previa e indexar, esta arquitectura es muy rápida y se utiliza para la etapa inicial de recuperación.
  • Un cross-encoder procesa la búsqueda y un documento juntos como una sola entrada. Esto le permite captar interacciones contextuales mucho más profundas, lo que lo hace muy preciso, pero también mucho más lento. Debido a su costo computacional, solo es adecuado para la etapa de reclasificación en un conjunto pequeño de resultados candidatos.

Almacenamiento y optimización de bases de datos vectoriales

¿Cómo se almacenan normalmente los vectores en una base de datos vectorial y qué desafíos de almacenamiento surgen?

Los vectores suelen almacenar como matrices de números de punto flotante de 32 bits (float32). El principal desafío es la inmensa huella de almacenamiento; un solo vector de 384 dimensiones consume aproximadamente 1,5 KB. Por lo tanto, un índice de 100 millones de documentos puede aumentar su tamaño siete veces con solo agregar un campo de vector. Debido a que los algoritmos de búsqueda de vectores como HNSW requieren que la indexación se cargue en la RAM para el rendimiento, esto crea desafíos significativos relacionados con el costo de la memoria y la escalabilidad.

¿Qué es la cuantización vectorial?

La cuantización vectorial es una técnica de compresión con pérdida que reduce los requisitos de memoria y cálculo de un modelo al representar sus parámetros con menos bits. Esto es especialmente útil para los LLM, que pueden tener miles de millones de parámetros. Al convertir números float32 de alta precisión en enteros de menor precisión como int8 o int4, la cuantización puede reducir significativamente el tamaño del modelo y acelerar la inferencia con un impacto mínimo en la precisión.

¿Qué es la cuantificación escalar (SQ)?

La cuantificación escalar comprime los vectores asignando el rango continuo de valores float32 a un conjunto discreto de valores enteros de menor precisión (por ejemplo, int8). Esto puede lograr una reducción de hasta 4 veces en el tamaño del almacenamiento mientras se conserva una cantidad significativa de la información de magnitud del vector, lo que es importante para la relevancia.

¿Qué es la cuantificación binaria (BQ)?

La cuantización binaria es una técnica de compresión más agresiva que convierte cada componente de un vector float32 en una representación binaria (p. ej., de 1 bit). Esto puede lograr una compresión de hasta 32 veces, lo que ofrece el máximo ahorro de memoria y permite cálculos más rápidos al emplear operaciones basadas en enteros, a menudo a costa de cierta pérdida de precisión.

¿Cuáles son los beneficios de una base de datos vectorial?

Las bases de datos vectoriales ofrecen varias ventajas con respecto a las bases de datos tradicionales cuando se trabaja con datos no estructurados y aplicaciones de IA:

La búsqueda semántica trasciende la coincidencia de palabras clave: las bases de datos vectoriales recuperan resultados basándose en el significado, en vez de en coincidencias exactas de palabras. Una consulta para "laptops asequibles para estudiantes" puede mostrar productos descritos como "notebooks económicos para la universidad" porque las incrustaciones subyacentes capturan la similitud conceptual en vez de la superposición literal del texto.

Búsqueda de similitud rápida a escala: cuando se combina el indexado de vectores con algoritmos de vecino más cercano aproximado como HNSW, las bases de datos vectoriales arrojan resultados relevantes de miles de millones de vectores en milisegundos, haciendo factibles las aplicaciones de IA en tiempo real.

Compatibilidad con datos no estructurados: el texto, las imágenes, el audio, el video y otros formatos no estructurados se pueden representar como vectores y buscar a través de un único sistema unificado, lo que elimina la necesidad de pipelines separados para cada tipo de dato.

Base para grandes modelos de lenguaje: las bases de datos vectoriales sirven como capa de recuperación en las arquitecturas de Retrieval-Augmented Generation (RAG), proporcionando a los LLM un contexto relevante y actualizado de fuentes confiables y reduciendo las alucinaciones.

Capacidades de búsqueda híbrida: las bases de datos vectoriales modernas combinan la búsqueda vectorial densa, la búsqueda vectorial dispersa y la búsqueda tradicional por palabras clave (BM25) en una sola consulta, lo que ofrece resultados más precisos que cualquier método por sí solo.

Escalabilidad y rendimiento: las estructuras de indexación especialmente diseñadas, la cuantización y las arquitecturas distribuidas permiten que las bases de datos vectoriales manejen sets de datos crecientes y altos volúmenes de consultas sin una degradación significativa en la latencia.

Menor complejidad operativa: una base de datos vectorial integrada elimina la necesidad de unir sistemas separados para almacenamiento de información, administración de incrustaciones y búsqueda, lo que simplifica la arquitectura para aplicaciones basadas en IA.

¿Cuáles son los beneficios de una plataforma integrada de base de datos vectorial y búsqueda?

Una plataforma integrada que combina el almacenamiento y la búsqueda vectorial con las funcionalidades tradicionales de las bases de datos (como la búsqueda léxica y el filtrado) ofrece importantes beneficios. Simplifica la arquitectura al eliminar la necesidad de sincronizar datos entre sistemas separados. Lo más importante es que permite una poderosa búsqueda híbrida, donde la búsqueda léxica, la búsqueda vectorial y el filtrado de metadatos se pueden realizar en una única búsqueda unificada, lo que conduce a resultados más relevantes y a una experiencia de desarrollador más sencilla.

¿Qué es el filtrado de metadatos en una base de datos vectorial?

El filtrado de metadatos es el proceso de reducir los resultados de búsqueda de vectores basándose en los atributos estructurados asociados a cada vector, como la fecha, la categoría, el autor, el precio, el idioma o los permisos de usuario. Mientras que la búsqueda vectorial recupera resultados por similitud semántica, los filtros de metadatos aplican restricciones estrictas que los resultados deben cumplir; por lo que una consulta para "zapatillas ligeras de correr" puede restringirse a artículos que estén en stock, con un precio inferior a £100 y disponibles en la región del usuario.

Combinar la similitud vectorial con el filtrado de metadato es esencial para las aplicaciones de producción. Un sistema RAG, por ejemplo, podría necesitar limitar las respuestas a los documentos que el usuario actual tiene permiso para ver, o a los artículos publicados en los últimos seis meses. Sin filtrado de metadatos, los resultados semánticamente relevantes pero contextualmente incorrectos aparecerían de forma rutinaria.

Hay dos enfoques comunes. El prefiltrado aplica restricciones de metadato antes de la búsqueda de similitud, reduciendo el conjunto de candidatos por adelantado; esto garantiza el número solicitado de resultados pero puede ser más lento en filtros altamente selectivos. El filtrado posterior ejecuta primero la búsqueda de similitud y luego descarta los resultados que no coinciden, lo cual es más rápido pero puede devolver menos resultados de los solicitados si el filtro es restrictivo. Las bases de datos vectoriales modernas suelen combinar ambas estrategias, eligiendo dinámicamente según la selectividad del filtro para equilibrar la recuperación, la latencia y la precisión.


Capacidades de bases de datos vectoriales con Elastic

Elasticsearch es una base de datos vectorial basada en el motor de búsqueda más utilizado del mundo, que combina la búsqueda vectorial, la búsqueda léxica y el filtrado de metadatos en una sola plataforma. En vez de ejecutar un almacén de vectores dedicado junto a un sistema de búsqueda separado, los equipos pueden usar un solo motor para potenciar la búsqueda semántica, la recuperación híbrida y Retrieval-Augmented Generation a escala de producción.

Las capacidades principales incluyen las siguientes:

  • Compatibilidad con vectores densos y dispersos nativos: indexar, almacenar y consultar tanto las incrustaciones vectoriales densas como las incrustaciones dispersas (incluidas las producidas por el modelo ELSER de Elastic) dentro del mismo índice.
  • Búsqueda híbrida lista para usar: combina la búsqueda léxica BM25, la búsqueda de vectores densos kNN y la recuperación de vectores dispersos en una sola consulta utilizando el marco de trabajo del recuperador, con fusión de rango recíproco (RRF) para combinar los resultados.
  • Inferencia integrada: el tipo de campo semantic_text y la API de inferencia gestionan la segmentación de forma automática, la generación de incrustaciones y la vectorización en tiempo de consulta, eliminando la necesidad de gestionar un pipeline de incrustaciones independiente.
  • Almacenamiento eficiente en memoria: la Mejor Cuantización Binaria (BBQ) se habilita de forma predeterminada para vectores densos, reduciendo la huella de memoria hasta 32 veces mientras se conserva la recuperación, lo que reduce los costos de infraestructura a gran escala.
  • Búsqueda vectorial filtrada: aplica filtros de metadatos, restricciones geoespaciales y seguridad a nivel de documento junto con similitud vectorial en una sola consulta, eligiendo el planificador de consultas prefiltrado o posfiltrado en función de la selectividad.
  • Operaciones de nivel de producción: hereda la arquitectura distribuida de Elasticsearch, que incluye sharding, replicación, control de acceso basado en roles, snapshots y monitoreo, todos maduros y ampliamente probados en despliegues de gran escala.
  • Reclasificación semántica: el modelo Elastic Rerank proporciona un impulso de relevancia de segunda etapa sobre la recuperación inicial, mejorando la calidad de los resultados sin requerir reindexación.

Empieza con la búsqueda vectorial en Elasticsearch en la documentación de Elasticsearch Labs.

Flexibilidad de despliegue: bases de datos vectoriales locales y aislados

El lugar donde se ejecuta una base de datos vectorial es cada vez más importante que su rendimiento. La mayoría de las bases de datos vectoriales están disponibles como servicios gestionados en la nube, pero cada vez más organizaciones necesitan desplegarlas dentro de su propia infraestructura, ya sea de forma local o en entornos completamente aislados.

Despliegue local significa que la base de datos vectorial se ejecuta en hardware que la organización controla, típicamente dentro de su propio centro de datos o cloud privado. Los datos nunca salen del perímetro de la red de la organización, y el equipo de operaciones se encarga directamente de la instalación, el escalado, las actualizaciones y la seguridad. El despliegue aislado va un paso más allá: el entorno no tiene conexión alguna a Internet público. Las actualizaciones de software, los pesos del modelo y las canalizaciones de incrustación deben realizarse a través de procesos controlados y fuera de línea, y no se puede enviar telemetría ni datos.

Esto es más importante para las bases de datos vectoriales que para la mayoría de las demás infraestructuras. En una pipeline RAG, la base de datos vectorial contiene la base de conocimientos que fundamenta las respuestas del modelo de lenguaje, lo que a menudo significa que contiene el contenido más sensible que posee una organización: investigación interna, registros de clientes, documentos legales, código fuente, inteligencia clasificada o datos operativos propios. Las propias incrustaciones también pueden filtrar información sobre el contenido de origen, por lo que la capa de almacenamiento es una parte importante del modelo de amenazas, no algo secundario.

Hay varios sectores que tienen requisitos estrictos que, en la práctica, descartan el uso exclusivo de bases de datos vectoriales en el cloud público:

  • Las agencias federales, de defensa y de inteligencia suelen operar en redes clasificadas o aisladas donde no se permite la conectividad externa y donde el software debe cumplir con estándares de acreditación específicos antes de que pueda desplegarse.
  • Los proveedores de atención médica que manejan información de salud protegida deben cumplir con regulaciones estrictas sobre dónde se almacenan y procesan los datos de los pacientes, y muchos prefieren mantener las cargas de trabajo de IA dentro de la infraestructura del hospital o del pagador en lugar de enviar representaciones de notas clínicas a un servicio de terceros.
  • Las empresas de servicios financieros se enfrentan a normas de residencia de datos, requisitos de auditoría reglamentaria y políticas internas que, a menudo, exigen mantener los datos de los clientes y de las transacciones dentro de jurisdicciones específicas o en entornos controlados por la propia empresa.
  • Las empresas con requisitos de residencia o soberanía de datos, incluso cualquier organización que opere bajo regulaciones como el GDPR o marcos de trabajo regionales similares, necesitan la capacidad de fijar su base de datos vectorial a un país o región específica o ejecutarla completamente dentro de su propia infraestructura.

Elegir una base de datos vectorial que soporte todo el espectro de despliegue, cloud gestionada, cloud autogestionada, local y aislado, permite a las organizaciones estandarizar una única tecnología entre cargas de trabajo con perfiles de seguridad y cumplimiento muy diferentes, en vez de ejecutar pilas separadas para datos sensibles y no sensibles.