Glosario

Base de datos vectorial

Descubre cómo las bases de datos vectoriales revolucionan la IA al permitir la búsqueda eficiente de similitudes, la búsqueda semántica y la detección de anomalías para los sistemas inteligentes.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

Una base de datos vectorial es un tipo especializado de base de datos diseñada para almacenar, gestionar y consultar vectores de alta dimensión, a menudo denominados incrustaciones. En el contexto de la Inteligencia Artificial (IA) y el Aprendizaje Automático (AM), estos vectores son representaciones numéricas de datos no estructurados, como texto, imágenes, audio y vídeo, generados por modelos de aprendizaje profundo (AD). A diferencia de las bases de datos tradicionales, que destacan en el manejo de datos estructurados y coincidencias exactas, las bases de datos vectoriales están optimizadas para las búsquedas por similitud, permitiendo a las aplicaciones encontrar elementos basándose en la cercanía conceptual o semántica, en lugar de en la coincidencia de palabras clave. Esta capacidad es fundamental para muchas funciones modernas impulsadas por la IA.

Conceptos básicos y funcionalidad

Las bases de datos vectoriales funcionan según el principio de la búsqueda vectorial, que consiste en encontrar en la base de datos los vectores "más próximos" a un vector de consulta dado. Esta cercanía suele medirse utilizando métricas de distancia como la similitud coseno o la distancia euclídea. El flujo de trabajo básico implica:

  1. Generación de incrustación: Los datos (por ejemplo, texto, imágenes) se convierten en vectores utilizando un modelo de incrustación (como BERT para texto o un Ultralytics YOLO para imágenes). Estos vectores capturan la esencia semántica de los datos en un espacio de alta dimensión.
  2. Indexación: Los vectores generados se almacenan en la base de datos de vectores. Para permitir una recuperación rápida, la base de datos utiliza algoritmos de indexación especializados, principalmente técnicas de búsqueda de Vecino Próximo Aproximado (RNA ) como HNSW (Hierarchical Navigable Small World) o IVF (Inverted File Index). Estos índices permiten realizar búsquedas rápidas de similitudes incluso en miles de millones de vectores, cambiando una precisión perfecta por un aumento significativo de la velocidad, lo que es crucial para la inferencia en tiempo real. Las bibliotecas de RNA más populares son FAISS y ScaNN.
  3. Consulta: Cuando se recibe una consulta (convertida también en vector), la base de datos utiliza sus índices para encontrar y devolver de forma eficiente los vectores más parecidos al vector de la consulta en función de la métrica de distancia elegida.

Bases de datos vectoriales frente a bases de datos tradicionales

Las bases de datos tradicionales (como las bases de datos SQL o NoSQL) están diseñadas para datos estructurados o semiestructurados y se basan en la correspondencia exacta mediante métodos estándar de indexación de bases de datos (por ejemplo, árboles B). No están intrínsecamente equipadas para gestionar la búsqueda de similitudes que requieren los datos no estructurados representados como vectores.

Las principales diferencias son:

  • Tipo de datos: Las bases de datos tradicionales manejan datos alfanuméricos, JSON, etc. Las bases de datos vectoriales manejan vectores numéricos de alta dimensión.
  • Tipo de consulta: Las bases de datos tradicionales realizan coincidencias exactas, consultas de rango o búsquedas de palabras clave. Las bases de datos vectoriales realizan búsquedas por similitud (búsquedas por vecino más próximo).
  • Indexación: Las bases de datos tradicionales utilizan índices como los árboles B o los índices hash. Las bases de datos vectoriales utilizan índices RNA.

Aplicaciones en IA y Aprendizaje Automático

Las bases de datos vectoriales son la columna vertebral de numerosas aplicaciones de IA:

  • Búsqueda semántica: Permitir que los motores de búsqueda o las bases de conocimiento internas encuentren resultados basados en el significado y no sólo en palabras clave. Por ejemplo, la búsqueda de "ideas para almuerzos saludables" puede devolver recetas de ensaladas y cuencos de cereales, aunque no contengan los términos exactos de la búsqueda.
  • Sistemas de recomendación: Potencian plataformas como Netflix o Spotify para sugerir películas o canciones similares a las que le han gustado previamente a un usuario, basándose en incrustaciones de contenido y perfiles de usuario.
  • Reconocimiento de imágenes y búsqueda visual: Permitir a los usuarios encontrar imágenes similares(búsqueda inversa de imágenes) o posibilitar el descubrimiento de productos en el comercio electrónico mediante la carga de una imagen. Se trata de una aplicación clave en la visión por ordenador (VC). Plataformas como Ultralytics HUB podrían aprovechar las bases de datos vectoriales para gestionar y buscar en grandes conjuntos de datos visuales.
  • Procesamiento del Lenguaje Natural (PLN): Apoyo a aplicaciones como sistemas de respuesta a preguntas, chatbots y agrupación de documentos mediante la comprensión de la semántica del texto.
  • Generación mejorada por recuperación (RAG): Mejora de los Grandes Modelos Lingüísticos (LLM) recuperando información relevante y actualizada de una base de datos vectorial para fundamentar las respuestas del modelo en datos reales, reduciendo las alucinaciones.
  • Detección de anomalías: Identificación de puntos de datos inusuales (vectores) que se encuentran lejos de los conglomerados densos en el espacio vectorial, útil para la detección de fraudes o la supervisión de sistemas.
  • Herramientas de exploración de datos: Herramientas como Ultralytics Explorer utilizan incrustaciones para ayudar a los usuarios a visualizar y comprender grandes conjuntos de datos agrupando puntos de datos similares.

Bases de datos vectoriales populares

Existen varias bases de datos vectoriales comerciales y de código abierto, entre ellas:

  • Pinecone: Un popular servicio de base de datos vectorial gestionada.
  • Milvus: Una base de datos vectorial de código abierto diseñada para ser escalable.
  • Weaviate: Una base de datos vectorial de código abierto, nativa de la IA y con capacidades gráficas.
  • Chroma DB: Una base de datos de incrustación de código abierto centrada en la experiencia del desarrollador.
  • Qdrant: Una base de datos vectorial de código abierto y un motor de búsqueda de similitudes.

El auge de las bases de datos vectoriales refleja la creciente importancia de las incrustaciones y la búsqueda de similitudes en la creación de aplicaciones sofisticadas de IA, lo que impulsa un crecimiento significativo del mercado de bases de datos vectoriales. Son un componente crítico de la infraestructura para aprovechar eficazmente los conocimientos captados por los modelos modernos de aprendizaje automático.

Leer todo