Comparación de la profundidad de las bases de datos vectoriales: Weaviate, Milvus y Qdrant

En el campo de la inteligencia artificial y el aprendizaje automático, especialmente cuando se crean aplicaciones como los sistemas RAG (Retrieval Augmented Generation) y la búsqueda semántica, resulta crucial procesar y recuperar eficientemente datos masivos no estructurados. Las bases de datos vectoriales han surgido como tecnología básica para afrontar este reto. No sólo son bases de datos especializadas para almacenar datos vectoriales de alta dimensión, sino también una infraestructura clave para impulsar la próxima generación de aplicaciones de IA.

En este artículo, trataremos los conceptos, principios y escenarios de aplicación de las bases de datos vectoriales, y compararemos y analizaremos las principales bases de datos vectoriales de código abierto Weaviate, Milvus y Qdrant, con el objetivo de proporcionar a los lectores una guía completa y en profundidad sobre las bases de datos vectoriales, que les ayude a comprender el valor de las bases de datos vectoriales y a tomar decisiones técnicas fundamentadas en proyectos reales.

 

¿Qué es una base de datos vectorial? De las bases de datos tradicionales a la búsqueda vectorial

Para entender qué hace únicas a las bases de datos vectoriales, primero tenemos que entender qué son los vectores y por qué las bases de datos tradicionales se ven desbordadas cuando tratan con datos vectoriales.

Vectores: representación matemática de datos

En pocas palabras, un vector es una herramienta matemática utilizada para representar una característica o atributo de los datos y puede considerarse como un punto en un espacio multidimensional. En el contexto de las bases de datos vectoriales, solemos hablar delvector de alta dimensiónlo que significa que estos vectores tienen un gran número de dimensiones, que van de decenas a miles de dimensiones, dependiendo de la complejidad de los datos y de la granularidad de la representación requerida.

Incrustación vectorial: representación estructurada de datos no estructurados

¿Cómo se generan estos vectores de alta dimensión? La respuesta esfunción integradaque convierte los datos brutos no estructurados (por ejemplo, texto, imágenes, audio, vídeo, etc.) en vectores. Este proceso de conversión, denominadoIncrustación vectorialLa compresión de la información semántica o las características de los datos en un espacio vectorial compacto se consigue mediante métodos como los modelos de aprendizaje automático, las técnicas de incrustación de palabras o los algoritmos de extracción de características.

Por ejemplo, para datos textuales, podemos utilizar una herramienta como Word2Vec, GloVe, FastText o Transformador Los modelos (por ejemplo, BERT, Sentence-BERT) y otras técnicas convierten cada palabra, frase o incluso todo el texto en un vector. En el espacio vectorial, los textos que son semánticamente similares tendrán sus vectores más próximos.

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

 

El punto fuerte de las bases de datos vectoriales: la búsqueda de similitudes

Las bases de datos tradicionales, como las relacionales (por ejemplo, PostgreSQL, MySQL) y las NoSQL (por ejemplo, MongoDB, Redis), están diseñadas principalmente para almacenar y consultar datos estructurados o semiestructurados, y destacan en la recuperación de datos basada en coincidencias exactas o criterios predefinidos. Sin embargo, cuando se trata de recuperar datos basados ensimilitud semánticatal vezSignificado contextualLa búsqueda de datos hace ineficaces las bases de datos tradicionales.

Las bases de datos vectoriales han surgido para llenar este vacío. Su principal ventaja es la capacidad deRealiza eficazmente búsquedas y recuperaciones de similitudes basadas en la distancia vectorial o la similitud.. Esto significa que podemos encontrar datos basándonos en su similitud semántica o de características sin tener que hacer una concordancia exacta de palabras clave.

Principales diferencias entre las bases de datos vectoriales y las bases de datos tradicionales

Para entender mejor la singularidad de las bases de datos vectoriales, resumimos a continuación las principales diferencias entre ellas y las bases de datos tradicionales:

caracterizaciónbase de datos vectorialBase de datos tradicional (relacional/NoSQL)
tipo de datosIncrustación vectorial (vectores de alta dimensión)Datos estructurados (Datos tabulares, documentos JSON, etc.)
operación principalBúsqueda de similitudes (cálculo de similitudes vectoriales)Consulta de coincidencia exacta, consulta de rango, análisis de agregación, etc.
Tipo de índiceÍndices vectoriales (índices RNA, etc.)Índices B-tree, índices hash, índices invertidos, etc.
Método de consultaBasado en distancias vectoriales (distancia coseno, distancia euclídea, etc.)Consulta basada en SQL, consulta clave-valor, búsqueda de texto completo, etc.
escenario de aplicaciónBúsqueda semántica, Sistemas de recomendación, Sistemas de recomendación RAGrecuperación de imágenes, audio y vídeoProcesamiento de transacciones, análisis de datos, gestión de contenidos, caché
modelo de datosmodelo de espacio vectorialModelo relacional, modelo documental, modelo clave-valor, modelo gráfico, etc.

El valor de las bases de datos vectoriales: piedra angular de las aplicaciones de IA

Las bases de datos vectoriales desempeñan un papel cada vez más importante en el campo de la inteligencia artificial y el aprendizaje automático, especialmente en los siguientes ámbitos:

  • Motores de búsqueda de nueva generación: Implementar la búsqueda semántica para comprender la intención de la consulta del usuario y devolver resultados de búsqueda más relevantes y contextuales, no sólo coincidentes con palabras clave.
  • Sistemas inteligentes de recomendación: Recomendaciones personalizadas basadas en el comportamiento histórico del usuario y las características de los artículos para mejorar la precisión de las recomendaciones y la experiencia del usuario.
  • Aplicaciones de modelización de grandes lenguajes (LLM): Proporciona a LLM memoria a largo plazo y capacidades eficientes de recuperación contextual, apoyando la construcción de chatbots, sistemas de preguntas y respuestas y aplicaciones de generación de contenidos más potentes.
  • Recuperación multimodal de datos: Permitir la búsqueda de similitudes intermodales, por ejemplo, buscar imágenes o vídeos relacionados mediante descripciones textuales.

En resumen, las bases de datos vectoriales son la infraestructura clave para procesar y recuperar datos no estructurados en la era de la IA, y permiten a las máquinas comprender la semántica y razonar sobre similitudes, impulsando así numerosas aplicaciones innovadoras de IA.

 

Bases de datos vectoriales y RAG: creación de un potente sistema de generación de mejoras de búsqueda

Los sistemas RAG (Retrieval-Augmented Generation) son actualmente una orientación popular en el área de aplicación de la modelización de grandes lenguajes. La idea central de RAG es recuperar información relevante de una base de conocimiento externa antes de generar el texto y, a continuación, utilizar la información recuperada como contexto para guiar el modelo lingüístico con el fin de generar respuestas más precisas y fiables.

El papel central de las bases de datos vectoriales en el sistema GAR

En el sistema RAG, la base de datos de vectores desempeña el papel delrepositorioEl sistema RAG se encarga de almacenar y recuperar de forma eficiente representaciones vectoriales de documentos de conocimiento masivo. El flujo de trabajo del sistema RAG es, a grandes rasgos, el siguiente:

  1. Creación de una base de conocimientos:
    • Incrustación vectorial de documentos de conocimiento (por ejemplo, texto, páginas web, PDF, etc.) en representaciones vectoriales.
    • Almacene estos vectores y sus correspondientes metadatos de documentos en una base de datos de vectores.
  2. Recuperación de consultas:
    • Recibe la consulta del usuario y el vector incrusta la consulta también para obtener el vector de consulta.
    • Se realiza una búsqueda de similitudes en una base de datos vectorial utilizando el vector de consulta para recuperar el vector de documentos más similar al vector de consulta.
    • Obtener el documento original o el fragmento de documento correspondiente al vector de documentos recuperado.
  3. Generación de textos:
    • Los fragmentos de documentos recuperados se introducen en el Modelo de Lenguaje Amplio (LLM) como contexto junto con la consulta del usuario.
    • LLM genera la respuesta final o el texto basándose en la información contextual.
向量数据库深度对比:Weaviate、Milvus 与 Qdrant

Búsqueda semántica de imágenes con Milvus

 

¿Por qué las bases de datos vectoriales son ideales para los sistemas GAR?

  • Capacidades eficientes de recuperación semántica: Las bases de datos vectoriales son capaces de recuperar documentos basándose en la similitud semántica, lo que encaja a la perfección con los sistemas RAG que necesitan encontrar información contextual de la base de conocimientos que sea relevante para la consulta del usuario.
  • Manejar archivos de conocimiento masivos: Los sistemas RAG suelen tener que tratar con un gran número de documentos de conocimiento, y las bases de datos vectoriales pueden almacenar y recuperar con eficacia datos vectoriales masivos para satisfacer los requisitos de escalabilidad de los sistemas RAG.
  • Respuesta rápida a las consultas de los usuarios: La búsqueda de similitudes en la base de datos vectorial es muy rápida y garantiza que el sistema RAG responda rápidamente a las consultas de los usuarios.

Selección de bases de datos vectoriales: decisiones clave para los sistemas GAR

Elegir la base de datos vectorial adecuada es fundamental para el rendimiento y la eficacia de un sistema GAR. Las distintas bases de datos vectoriales difieren en cuanto a rendimiento, funcionalidad y facilidad de uso. En los siguientes capítulos, analizaremos los factores de selección de las bases de datos vectoriales y compararemos y analizaremos tres excelentes bases de datos vectoriales de código abierto, a saber, Weaviate, Milvus y Qdrant, para ayudarle a elegir la piedra angular más adecuada para su sistema GAR.

 

Selección de bases de datos vectoriales: concéntrese en estos factores clave, no sólo en el rendimiento

Antes de sumergirnos en la comparación de productos específicos, identifiquemos las principales preocupaciones a la hora de seleccionar una base de datos vectorial. Estos factores repercutirán directamente en el rendimiento, la escalabilidad, la estabilidad y el coste del sistema GAR o la aplicación de IA que cree.

1. Código abierto frente a comercialización: autonomía frente a facilidad de uso

  • Bases de datos vectoriales de código abierto (por ejemplo, Milvus, Weaviate, Qdrant, Vespa):
    • Ventaja: Mayor autonomía y flexibilidad para la personalización libre y el desarrollo secundario, mejor control de la seguridad de los datos y la arquitectura del sistema. Respaldado por una comunidad activa de código abierto, con iteración rápida y resolución rápida de problemas. Suelen ser de bajo coste o incluso gratuitos.
    • Desafío: El despliegue, el funcionamiento y el mantenimiento, así como la resolución de problemas, requieren ciertos conocimientos técnicos. El apoyo comercial puede ser relativamente escaso, lo que obliga a confiar en la comunidad o a resolver los problemas por iniciativa propia.
    • Escenarios aplicables: Proyectos que requieren un alto grado de autonomía y control, cuentan con el apoyo de un equipo técnico, desean reducir costes y pueden participar activamente en la co-construcción comunitaria.
  • Bases de datos vectoriales comerciales (por ejemplo, bases de datos vectoriales alojadas en proveedores en la nube como Pinecone, etc.):
    • Ventaja: Normalmente proporciona servicios gestionados completos y asistencia técnica, simplifica la implantación y la complejidad de O&M, y es fácil de poner en marcha y utilizar. El rendimiento y la estabilidad están probados comercialmente y la calidad del servicio está garantizada.
    • Desafío: Costes más elevados y posibilidad de incurrir en gastos importantes a lo largo del tiempo. Posible riesgo de dependencia del proveedor, personalización limitada y desarrollo secundario.
    • Escenarios aplicables: Proyectos que buscan facilidad de uso y estabilidad, quieren empezar rápidamente, reducir la carga de O&M, tienen un buen presupuesto y no son sensibles a los riesgos de dependencia de un proveedor.

2. Soporte CRUD: datos dinámicos frente a datos estáticos

  • Soporte CRUD (Crear, Leer, Actualizar, Borrar):
    • Importancia: Crítico para los sistemas RAG y muchas aplicaciones de datos dinámicos. Si los datos deben actualizarse, eliminarse o modificarse con frecuencia, es importante elegir una base de datos vectorial que admita operaciones CRUD completas.
    • Impacto: Una base de datos que admita operaciones CRUD facilita la gestión de datos que cambian dinámicamente y mantiene la base de conocimientos en tiempo real y con precisión.
  • Escenarios de datos estáticos:
    • Demanda: Si los datos son estáticos, como una base de conocimientos preconstruida, y los datos se actualizan con muy poca frecuencia, una biblioteca vectorial de sólo lectura o una base de datos que no admita CRUD completo también podrían encajar.
    • Selecciona: En este caso, se pueden considerar algunas bibliotecas de vectores ligeras, o algunas bases de datos de vectores que se centran en la recuperación de alto rendimiento con una función de actualización de datos débil.

3. Arquitectura distribuida y escalabilidad: hacer frente a datos masivos y alta concurrencia

  • Arquitectura distribuida:
    • Necesidad: Los sistemas RAG y muchas aplicaciones de Inteligencia Artificial a menudo necesitan manejar cantidades masivas de datos y peticiones altamente concurrentes. Las arquitecturas distribuidas son fundamentales para superar estos retos.
    • Ventaja: Las bases de datos vectoriales distribuidas pueden almacenar datos dispersos en varios servidores y soportar consultas paralelas, mejorando así la capacidad de procesamiento de datos y el rendimiento de las consultas.
  • Escalabilidad:
    • Expansión horizontal: Una buena base de datos vectorial debe poder escalarse horizontalmente con facilidad, añadiendo nodos para hacer frente al crecimiento del volumen de datos y peticiones.
    • Estiramiento elástico: Es deseable soportar un escalado elástico para ajustar dinámicamente los recursos en función de la carga real y optimizar así los costes y el rendimiento.

4. Replicación de datos y alta disponibilidad: garantizar la seguridad de los datos y la estabilidad del servicio

  • Copia de datos:
    • Papel: El mecanismo de copia de datos es un medio importante para garantizar la seguridad de los datos y una alta disponibilidad del sistema.
    • Realización: Al almacenar copias idénticas de los datos en varios servidores, el sistema sigue funcionando normalmente sin pérdida de datos aunque falle alguno de los nodos.
  • Alta disponibilidad:
    • Importancia: La alta disponibilidad es fundamental para los sistemas RAG y las aplicaciones en línea que requieren una gran estabilidad del servicio.
    • Salvaguardias: Mecanismos como la copia de datos, la transferencia automática de fallos y la supervisión y alarma funcionan conjuntamente para garantizar el funcionamiento continuo y estable del sistema.

5. Rendimiento: velocidad de búsqueda y precisión

  • Latencia:
    • Indicadores: Latencia de la consulta, es decir, el tiempo transcurrido entre el inicio de una consulta y la obtención de resultados.
    • Factores que influyen: algoritmos de indexación, recursos de hardware, tamaño de los datos, complejidad de las consultas, etc.
    • Demanda: Para aplicaciones con elevados requisitos de tiempo real, es necesario elegir una base de datos vectorial con una velocidad de recuperación rápida.
  • Recall, Precision:
    • Indicadores: Recall y Precision, que miden la precisión de los resultados de búsqueda de similitudes.
    • Pesar: Suele haber un equilibrio entre la velocidad de recuperación y la precisión, que debe elegirse en función de la aplicación. Por ejemplo, para un sistema GAR, la recuperación puede ser más importante para garantizar que se recupera el mayor número posible de documentos relevantes.

6. Mantenimiento continuo y apoyo comunitario: garantía de funcionamiento estable a largo plazo

  • Mantenimiento continuo:
    • Importancia: La tecnología de las bases de datos vectoriales evoluciona rápidamente, por lo que su mantenimiento y actualización continuos son fundamentales.
    • Puntos de preocupación: Si la base de datos es mantenida y actualizada continuamente por un equipo de desarrollo activo, que corrige errores a tiempo y se mantiene al día de las últimas tendencias tecnológicas.
  • Apoyo comunitario:
    • Valor: Una comunidad activa proporciona abundante documentación, tutoriales, ejemplos de código y respuestas a preguntas, lo que reduce las barreras de aprendizaje y uso.
    • Evaluación: El apoyo de la comunidad puede evaluarse observando métricas como la actividad en los repositorios de GitHub, el bullicio en los foros de la comunidad, el número de usuarios, etc.

7. Consideraciones sobre costes: código abierto frente a comercialización, autoconstrucción frente a alojamiento

  • Código abierto frente a costes de comercialización:
    • Fuente abierta: El software de la base de datos es gratuito, pero hay que tener en cuenta los costes de hardware, de funcionamiento y mantenimiento, de mano de obra, etc.
    • Comercialización: Hay que pagar licencias de software o servicios en la nube, pero los costes de explotación y mantenimiento son potencialmente menores y la asistencia técnica es mejor.
  • Costes de autoconstrucción frente a costes de alojamiento:
    • Autoconstrucción: Hay que responsabilizarse de la adquisición de hardware, la instalación, el funcionamiento y mantenimiento, la supervisión, etc. La inversión inicial y los costes de funcionamiento y mantenimiento a largo plazo son elevados.
    • Alojamiento: Utilizar un servicio alojado de base de datos vectorial de un proveedor en la nube no requiere preocuparse por la infraestructura subyacente, es de pago por uso y tiene una estructura de costes más flexible, pero puede ser más caro de usar a largo plazo.

Síntesis:

En la selección de una base de datos vectorial, hay que tener en cuenta los siete factores clave mencionados y hacer concesiones y elecciones basadas en escenarios de aplicación, necesidades y presupuestos específicos. No existe una base de datos óptima, sino la más adecuada para cada situación.

 

Comparación de distintos tipos de soluciones de bases de datos vectoriales: panorama de la selección de tecnologías

Ante las numerosas soluciones de bases de datos vectoriales que existen en el mercado, conocer sus tipos y características le ayudará a acotar sus opciones y a encontrar más rápidamente la solución adecuada para usted. A grandes rasgos, clasificamos las soluciones de bases de datos vectoriales en las cinco categorías siguientes:

1. Bibliotecas vectoriales (FAISS, HNSWLib, ANNOY): índices ligeros, herramientas de aceleración de datos estáticos

Bibliotecas vectoriales como FAISS (Facebook AI Similarity Search), HNSWLib (Hierarchical Navigable Small World Graphs Library) y ANNOY (Approximate Nearest Neighbors Oh Yeah), que son esencialmenteBibliotecas de software para construir índices vectoriales y realizar búsquedas de similitudes. Suelen ejecutarse como bibliotecas integradas en la aplicación, en lugar de como servicios de base de datos independientes.

vanguardia::

  • Alto rendimiento: Se centra en algoritmos de indexación vectorial y búsqueda por similitud optimizados para una recuperación extremadamente rápida.
  • Ligero: Requiere pocos recursos, es fácil de implantar y de integrar en las aplicaciones existentes.
  • Maduro y estable: Tras un largo periodo de desarrollo y amplia aplicación, la tecnología es madura y fiable y cuenta con un buen apoyo comunitario.

limitaciones::

  • Predominan los datos estáticos: Se utiliza principalmente para almacenar datos estáticos, y no es fácil actualizar los datos una vez construido el índice. Excepto HNSWLib, la mayoría de las bibliotecas vectoriales no admiten operaciones CRUD, lo que dificulta la actualización y eliminación de datos.
  • Funcionalidad limitada: Por lo general, sólo proporcionan índice vectorial básico y función de búsqueda por similitud, carecen de distribución, copia de datos, gestión de derechos, operaciones de supervisión y mantenimiento y otras funciones avanzadas de bases de datos.
  • Costes de funcionamiento y mantenimiento elevados: Tiene que construir su propio ecosistema de despliegue, gestionar la replicación de datos y la tolerancia a fallos, y carece de herramientas completas de O&M e interfaces de gestión.

Escenarios aplicables::

  • Búsqueda de similitudes en conjuntos de datos estáticos: Por ejemplo, escenarios en los que los datos se actualizan con poca frecuencia, como bases de conocimiento construidas fuera de línea, bibliotecas de productos, bibliotecas de rostros, etc.
  • Escenarios con requisitos de rendimiento muy elevados pero baja frecuencia de actualización de datos: Algunos ejemplos son la construcción de índices fuera de línea para motores de búsqueda y la indexación de características fuera de línea para sistemas de recomendación a gran escala.
  • como componente de aceleración de índices vectoriales para otras bases de datos: Por ejemplo, el uso de bibliotecas vectoriales junto con bases de datos como Redis, MySQL, etc. acelera la búsqueda de similitudes.

Productos representativos:

  • FAISS (Facebook AI Similarity Search): Desarrollado por Facebook AI Research, ampliamente utilizado en el mundo académico y la industria. Ofrece diversos algoritmos de indexación eficientes, como IVF, PQ, HNSW, etc., y es especialmente bueno en el manejo de conjuntos de datos a gran escala.
  • HNSWLib (Biblioteca de gráficos de mundos pequeños navegables jerárquicamente): Basado en el algoritmo HNSW (Hierarchical Navigable Small World) , conocido por su alto rendimiento y eficiencia . HNSWLib en comparación con otras librerías vectoriales , más flexible , soporte para operaciones CRUD y lectura y escritura concurrentes .
  • ANNOY (Approximate Nearest Neighbors Oh Yeah): Desarrollado por Spotify para centrarse en la búsqueda rápida aproximada del vecino más cercano. Conocido por su diseño limpio y eficiente, es adecuado para escenarios de aplicaciones sensibles a la latencia.

2. Bases de datos de búsqueda de texto completo (ElasticSearch, OpenSearch): complementarias a las búsquedas vectoriales, capacidad no esencial.

Las bases de datos de búsqueda de texto completo, como ElasticSearch y OpenSearch, están diseñadas principalmente para ser utilizadas paraBúsqueda de texto completo y por palabras claveSe basan en la tecnología de indexación invertida y son potentes en la recuperación de textos y el análisis avanzado. En los últimos años, también han empezado a añadir funciones de búsqueda vectorial, pero ésta no es su punto fuerte.

vanguardia::

  • Potentes funciones de búsqueda de texto completo: Soporte para consultas de texto complejas, división de palabras, sinónimos, corrección ortográfica, clasificación por relevancia (p. ej. BM25) y otras funciones.
  • Análisis ricos: Proporciona agregación, estadísticas, informes y visualización de datos para el análisis de datos y la visión empresarial.
  • Ecosistemas maduros: Con una amplia base de usuarios y un ecosistema bien establecido, es fácil de integrar y utilizar, con abundantes herramientas periféricas y plug-ins.

limitaciones::

  • El rendimiento de la recuperación vectorial es débil: En comparación con las bases de datos vectoriales dedicadas, el rendimiento de la búsqueda de similitudes vectoriales es bajo, especialmente en datos de alta dimensión y conjuntos de datos a gran escala, donde la latencia de la consulta es alta y la precisión puede ser insuficiente.
  • Elevado consumo de recursos: Para dar soporte a funciones como la búsqueda y el análisis de texto completo, el consumo de recursos es elevado, y los costes de implantación y de explotación y mantenimiento son altos.
  • No es bueno en la búsqueda semántica: Se basa principalmente en la concordancia de palabras clave y la indexación invertida, con una comprensión semántica limitada, lo que dificulta satisfacer las necesidades de búsqueda semántica compleja.

Escenarios aplicables::

  • La búsqueda por palabras clave es la aplicación principal, complementada por la recuperación vectorial: Por ejemplo, la búsqueda de productos en sitios web de comercio electrónico y la búsqueda de artículos en sitios web de noticias utilizan principalmente la búsqueda por palabras clave, y la búsqueda vectorial se utiliza como función auxiliar para mejorar la relevancia semántica de la búsqueda.
  • Escenarios de búsqueda híbrida que requieren una combinación de búsqueda de texto completo y búsqueda vectorial: Por ejemplo, el sistema inteligente de atención al cliente, que admite tanto búsquedas por palabras clave como semánticas, satisface las diversas necesidades de consulta de los usuarios.
  • Análisis de registros, supervisión de alarmas y otros escenarios que requieren potentes funciones de análisis: Utilice la potente capacidad de análisis de la base de datos de búsqueda de texto completo para el análisis de registros, supervisión y alerta, auditoría de seguridad, etc.

producto representativo::

  • ElasticSearch: Basado en Lucene, es uno de los motores de búsqueda de texto completo de código abierto más populares, ampliamente utilizado en búsquedas, análisis de registros, visualización de datos y otros campos.
  • OpenSearch: Bifurcación de AWS basada en ElasticSearch y Kibana, mantiene la compatibilidad con ElasticSearch y añade nuevas características y mejoras a ElasticSearch.

Conclusión: Aunque ElasticSearch y OpenSearch proporcionan capacidades de recuperación vectorial, su rendimiento y funcionalidad siguen estando por debajo de las bases de datos vectoriales dedicadas. Para los sistemas RAG o las aplicaciones de IA que se centran en la recuperación vectorial, las bases de datos vectoriales dedicadas son una mejor opción. Las bases de datos de búsqueda de texto completo son más adecuadas como complemento de la recuperación vectorial que como alternativa.

3. Bases de datos SQL vectoriales (pgvector, Supabase, StarRocks): extensiones vectoriales de las bases de datos tradicionales, para aplicaciones ligeras.

Las bases de datos SQL, como PostgreSQL, admiten tipos de datos vectoriales y capacidades de búsqueda de similitudes mediante extensiones (por ejemplo, pgvector). Esto permite a los usuarios almacenar y consultar datos vectoriales en bases de datos relacionales existentes sin tener que introducir un nuevo sistema de bases de datos.

vanguardia::

  • Fácil integración: La perfecta integración con las bases de datos SQL existentes reduce la complejidad de la pila tecnológica y los costes de aprendizaje y migración.
  • Maduro y estable: La tecnología de bases de datos SQL es madura y estable, con sólidas capacidades de gestión de datos y procesamiento de transacciones, y garantías de coherencia y fiabilidad de los datos.
  • Bajo coste de aprendizaje: Para los desarrolladores que estén familiarizados con SQL, el coste de aprendizaje es bajo y podrán empezar a utilizar la funcionalidad de recuperación de vectores rápidamente.

limitaciones::

  • El rendimiento de la recuperación vectorial es limitado: Las bases de datos relacionales, cuya arquitectura no está diseñada para la recuperación vectorial, no funcionan tan bien como las bases de datos vectoriales dedicadas, especialmente cuando se trata de datos vectoriales a gran escala y de alta dimensión, donde la latencia de la consulta es alta.
  • La escalabilidad es limitada: Las bases de datos relacionales tienen una escalabilidad relativamente débil, lo que dificulta su uso con datos vectoriales masivos y consultas altamente concurrentes, y una escalabilidad horizontal limitada.
  • Restricciones de dimensión vectorial: Por ejemplo, el límite superior de dimensión vectorial soportado por pgvector es de 2000 dimensiones, que es inferior al de las bases de datos vectoriales dedicadas y puede no ser capaz de satisfacer las necesidades de datos vectoriales de alta dimensión.

Escenarios aplicables::

  • Aplicaciones con pequeños volúmenes de datos vectoriales (por debajo del nivel 100.000): Por ejemplo, los pequeños sistemas de recomendación, las búsquedas sencillas de imágenes, las bases de conocimientos personales, etc., tienen pequeñas cantidades de datos vectoriales y bajos requisitos de rendimiento.
  • Aplicación de datos vectoriales como función auxiliar: Por ejemplo, si se añade un campo vectorial de productos a la base de datos de productos de un sitio de comercio electrónico para la recomendación de productos o la búsqueda de productos similares, la recuperación vectorial no es más que una función auxiliar de la base de datos.
  • Aplicaciones que ya disponen de bases de datos SQL maduras y desean añadir rápidamente funciones de recuperación de vectores: En proyectos que ya utilizan bases de datos SQL como PostgreSQL y desean introducir rápidamente la funcionalidad de recuperación de vectores, considere el uso de extensiones como pgvector.

producto representativo::

  • pgvector: Extensión para PostgreSQL, desarrollada por Crunchy Data, que proporciona tipos de datos vectoriales (vector) e índices (IVF, HNSW), así como capacidades de búsqueda de similitud vectorial.
  • Supabase: Plataforma PaaS de código abierto basada en PostgreSQL , pgvector integrado , fácil para los usuarios construir rápidamente aplicaciones que soportan la recuperación de vectores .
  • StarRocks: Una base de datos MPP orientada a OLAP que también añade funcionalidad de recuperación vectorial, pero la recuperación vectorial no es su nicho central y se utiliza principalmente en escenarios de análisis OLAP.

Conclusión: Las bases de datos SQL que soportan vectores, como pgvector, son más adecuadas para escenarios de aplicaciones ligeras donde la cantidad de datos vectoriales es pequeña, los requisitos de rendimiento no son altos y los datos vectoriales sólo se utilizan como una característica complementaria de la aplicación. Si los datos vectoriales son el núcleo de la aplicación, o si hay una alta demanda de escalabilidad, una base de datos vectorial dedicada sería una mejor elección.

4. Bases de datos NoSQL con vectores (Redis, MongoDB): un esfuerzo emergente, con potencial y desafíos.

Las bases de datos NoSQL, como Redis y MongoDB, también están empezando a experimentar con la adición de soporte vectorial, como Redis Vector Similarity Search (VSS) y MongoDB Atlas Vector Search, que proporciona a las bases de datos NoSQL la capacidad de manejar también datos vectoriales.

vanguardia::

  • Ventajas inherentes a las bases de datos NoSQL: Por ejemplo, Redis por su almacenamiento en caché de alto rendimiento, baja latencia y alto rendimiento; y MongoDB por su modelo de documento flexible, facilidad de escalabilidad y ricas capacidades de manipulación de documentos.
  • Novedad técnica: Representa la tendencia de desarrollo de la tecnología de bases de datos, incorporando la capacidad de búsqueda vectorial a bases de datos NoSQL maduras, con cierto potencial de innovación y desarrollo.

limitaciones::

  • La funcionalidad aún no está madura: La funcionalidad del soporte vectorial está aún en sus primeras fases, con características y prestaciones por perfeccionar y validar, y el ecosistema relativamente inmaduro.
  • Ecosistemas pobres: Hay una relativa escasez de herramientas, bibliotecas y ecosistemas pertinentes, cuyo uso y mantenimiento pueden resultar costosos, y el apoyo de la comunidad es relativamente escaso.
  • Rendimiento a tener en cuenta: Aunque Redis VSS presume de un rendimiento excelente, los resultados reales deben verificarse en más escenarios y puede que no funcionen tan bien como las bases de datos vectoriales dedicadas en datos de alta dimensión y conjuntos de datos a gran escala.

Escenarios aplicables::

  • Escenarios con requisitos de alto rendimiento y pequeñas cantidades de datos vectoriales: Por ejemplo, los sistemas de recomendación en tiempo real basados en Redis, la recuperación de anuncios en línea, etc., requieren una recuperación de vectores de baja latencia y alto rendimiento.
  • Escenarios en los que desea probar nuevas tecnologías y está dispuesto a asumir algún riesgo: Para los catadores de tecnología, pruebe a utilizar las funciones de soporte vectorial de las bases de datos NoSQL para explorar su potencial.
  • Ya utilizo una base de datos NoSQL y me gustaría añadirle funciones de recuperación de vectores: En proyectos que ya utilizan Redis o MongoDB y desean introducir rápidamente la funcionalidad de recuperación de vectores sobre ellos, considere la posibilidad de utilizar su módulo de extensión de vectores.

producto representativo::

  • Búsqueda por similitud vectorial Redis (VSS): Un módulo para Redis que proporciona indexación vectorial (HNSW) y funcionalidad de búsqueda por similitud con un énfasis en el alto rendimiento y baja latencia para escenarios exigentes en tiempo real.
  • Búsqueda vectorial en Atlas MongoDB: Una nueva función de Atlas, el servicio en la nube de MongoDB, está diseñada para integrar la búsqueda vectorial en la base de datos de documentos de MongoDB, lo que proporciona unas capacidades de procesamiento de datos más completas.

Conclusión: Las nuevas funciones de soporte vectorial de las bases de datos NoSQL aún se encuentran en las primeras fases de desarrollo, y su madurez y estabilidad deben seguir verificándose. Aunque tienen cierto potencial, todavía pueden ser menos maduras y potentes que las bases de datos vectoriales dedicadas en términos de funcionalidad y rendimiento. Es necesario evaluar cuidadosamente su elección y tener plenamente en cuenta sus limitaciones.

5. Bases de datos vectoriales específicas (Pinecone, Milvus, Weaviate, Qdrant, Vespa, Vald, Chroma, Vearch): creadas para vectores, son la primera opción para los sistemas RAG y las aplicaciones de IA.

Las bases de datos vectoriales dedicadas, como Pinecone, Milvus, Weaviate, Qdrant, Vespa, Vald, Chroma, Vearch, etc., están diseñadas desde cero para centrarse en laAlmacenamiento, indexación y recuperación de datos vectorialesestán intrínsecamente bien equipados para manejar datos vectoriales de alta dimensión. Son la solución preferida para construir aplicaciones de IA como sistemas RAG, búsqueda semántica, sistemas de recomendación, etc.

vanguardia::

  • Excelente rendimiento en la recuperación de vectores: Está profundamente optimizado para la búsqueda de similitudes vectoriales, con una velocidad de recuperación rápida y una gran precisión, y puede manejar eficazmente datos vectoriales de alta dimensión a gran escala.
  • Potente escalabilidad: Suele adoptar una arquitectura distribuida, que es fácil de escalar horizontalmente y puede hacer frente a datos masivos y consultas concurrentes elevadas para satisfacer las necesidades de las aplicaciones a gran escala.
  • Características de gran funcionalidad: Suele ofrecer una perfecta gestión de datos vectoriales, construcción de índices, optimización de consultas, supervisión y funciones de operación y mantenimiento, así como ricos algoritmos de búsqueda por similitud y métricas de distancia.
  • Opciones de indexación flexibles: Admite múltiples algoritmos de indexación vectorial (por ejemplo, IVF, HNSW, PQ, indexación en árbol, etc.), lo que permite elegir la estrategia de indexación óptima según los distintos escenarios de aplicación y las características de los datos.
  • Ecosistema maduro (algunos productos): Algunos de los productos cuentan con comunidades activas y ecosistemas bien establecidos, que proporcionan abundante documentación, herramientas y soluciones de integración fáciles de usar e integrar.

limitaciones::

  • Mayores costes de aprendizaje: En comparación con las bases de datos tradicionales, las bases de datos vectoriales dedicadas pueden tener una curva de aprendizaje más pronunciada y requerir la comprensión de conceptos relacionados con la indexación de vectores, la búsqueda de similitudes, etc.
  • La selección de tecnología es compleja: Hay muchos productos con funciones y características diferentes, y la selección requiere una evaluación cuidadosa para comparar las ventajas y desventajas de los distintos productos.
  • Comercialización parcial de productos: Algunas de las mejores bases de datos vectoriales dedicadas son productos comerciales (por ejemplo, Pinecone), que son más caros de usar y pueden correr el riesgo de dependencia del proveedor.

Escenarios aplicables::

  • Aplicaciones centradas en la recuperación de vectores: Por ejemplo, los sistemas RAG, la búsqueda semántica, la búsqueda de imágenes, la búsqueda de audio, la búsqueda de vídeo, los sistemas de recomendación, el análisis bioinformático, etc., la recuperación vectorial es la función central de la aplicación.
  • Aplicaciones que necesitan tratar cantidades masivas de datos vectoriales de alta dimensión: Por ejemplo, los grafos de conocimiento a gran escala, las bibliotecas masivas de productos y el análisis de datos sobre el comportamiento de los usuarios requieren el tratamiento de datos vectoriales de alta dimensión a gran escala.
  • Aplicaciones con elevados requisitos de rendimiento y precisión de la recuperación: Por ejemplo, el control de riesgos financieros, la supervisión de la seguridad y la recomendación precisa tienen requisitos estrictos de velocidad y precisión de recuperación.
  • Aplicaciones que requieren escalabilidad flexible y alta disponibilidad: Por ejemplo, los servicios en línea a gran escala y las plataformas en nube deben soportar el escalado horizontal y la alta disponibilidad para garantizar la estabilidad y fiabilidad de los servicios.

producto representativo::

  • Pinecone: Base de datos vectorial en la nube disponible comercialmente, mantenida por un equipo de profesionales, proporciona servicios de recuperación de vectores fáciles de usar y altamente escalables. Conocida por su facilidad de uso y alto rendimiento, es representativa de las bases de datos vectoriales en la nube. Sin embargo, presenta limitaciones en cuanto a su naturaleza de código abierto y personalización, y la versión gratuita tiene una funcionalidad limitada.
  • Milvus: Base de datos vectorial distribuida de código abierto , liderada por la empresa Zilliz , potente rendimiento , rica en características , comunidad activa , es el punto de referencia de la base de datos vectorial de código abierto . Soporta una variedad de tipos de índice , métricas de distancia y métodos de consulta , puede ser flexible para hacer frente a una variedad de escenarios de aplicación.
  • Weaviate: La base de datos vectorial gráfica de código abierto, desarrollada por la empresa alemana SeMI Technologies, combina la búsqueda vectorial con la tecnología de base de datos gráfica para proporcionar capacidades únicas de modelado y consulta de datos. Admite el lenguaje de consulta GraphQL para facilitar la consulta y el análisis de datos complejos.
  • Qdrant: Base de datos vectorial de código abierto , desarrollado por un equipo ruso , escrito en lenguaje Rust , centrándose en el rendimiento y la facilidad de uso , arquitectura ligera , bajo consumo de recursos . Popular por su alto rendimiento , baja latencia y facilidad de despliegue .
  • Vespa: Desarrollado por Yahoo y motor de búsqueda de código abierto y base de datos vectorial , potente , excelente rendimiento , pero la arquitectura es más compleja , empinada curva de aprendizaje . Adecuado para escenarios con requisitos muy altos de rendimiento y funcionalidad.
  • Vald: Base de datos vectorial distribuida de código abierto , desarrollada por un equipo japonés , centrada en la recuperación de vectores de alta precisión y fiabilidad . Énfasis en la alta precisión y baja latencia, adecuado para escenas con requisitos muy altos de precisión. Sin embargo, hay deficiencias en la integración con Langchain, y el tamaño de la comunidad es pequeño.
  • Vearch: Base de datos vectorial distribuida de código abierto, desarrollada por un equipo chino, que proporciona servicios de recuperación vectorial de alto rendimiento y disponibilidad. Se centra en la facilidad de uso y la escalabilidad, y es adecuada para proyectos que necesitan crear rápidamente aplicaciones de recuperación de vectores. Hay deficiencias en la integración con Langchain y la comunidad es pequeña.
  • Chroma: Chroma es una base de datos vectorial embebida de código abierto que se centra en la ligereza y la facilidad de uso, utilizando SQLite como almacén de documentos. Adecuada para el desarrollo local, la creación de prototipos o pequeñas aplicaciones, con una escalabilidad y eficiencia relativamente limitadas, Chroma está diseñada específicamente para datos de audio, pero no está optimizada para manejar datos de texto, y hay escasez de información exhaustiva de evaluación comparativa de rendimiento.

Conclusión: Para los sistemas RAG y la mayoría de las aplicaciones de IA, las bases de datos vectoriales dedicadas son la mejor opción. Son mejores en términos de rendimiento, funcionalidad y escalabilidad para satisfacer mejor las necesidades de estas aplicaciones. Entre las numerosas bases de datos vectoriales dedicadas, Weaviate, Milvus, Qdrant y Vespa son algunas de las más populares y utilizadas en la actualidad.

Para poder comparar más visualmente tres excelentes bases de datos vectoriales de código abierto, Weaviate, Milvus y Qdrant, hemos resumido la tabla a continuación:

amplia base de datosQdrantWeaviateMilvus
Código abierto y autoalojamientoseaseasea
protocolo de código abiertoApache-2.0BSDApache-2.0
lenguaje de desarrolloÓxidoVaya aGo, C++
Github Stars (a partir de 2024)17k+9.2k+26.2k+
Primera fecha de publicación202120192019
SDKPython, JS, Go, Java, .Net, RustPython, JS, Java, GoPython, Java, JS, Go
Servicios alojados en la nubeseaseasea
Incorporación de textoFastEmbedseasea
búsqueda híbridaseaRRF*+RSF*Mezcla multivectorial en mesa
Filtrado de metainformaciónseaseasea
Soporte BM25seaseasea
Búsqueda de textoseaseasea
multivector de un punto (matem.)seaseasea
Búsqueda tensorialseaseasea
Integración de Langchainseaseasea
Integración del Índice Llamaseaseasea
Búsqueda de información geográficaseaseasea
Soporte multiusuarioa través de colecciones/metadatosseasea
向量数据库深度对比:Weaviate、Milvus 与 Qdrant

 

Resumen:

  • Qdrant: Arquitectura ligera , baja sobrecarga de recursos , excelente rendimiento , fácil de implantar y utilizar , desarrollo en lenguaje Rust , centrado en el rendimiento y la eficiencia .
  • Weaviate: Funciones completas, integración de búsqueda vectorial, almacenamiento de objetos e índice invertido, compatibilidad con consultas GraphQL, capacidades de modelado de datos, desarrollo del lenguaje Go, comunidad activa.
  • Milvus: Gran rendimiento, gran funcionalidad, comunidad activa, compatibilidad con una gran variedad de tipos de índices y métodos de consulta, puede hacer frente con flexibilidad a una gran variedad de escenarios complejos, desarrollo en lenguajes Go y C++, perfección ecológica.

Puede elegir la base de datos vectorial que mejor se adapte a sus necesidades, preferencias tecnológicas y capacidades del equipo.

 

Explicación de los métodos de búsqueda en bases de datos vectoriales: desentrañar las múltiples posibilidades de la recuperación de vectores

La función principal de las bases de datos vectoriales es la búsqueda de similitudes, y las diferentes bases de datos vectoriales proporcionan una variedad de métodos de búsqueda para satisfacer las diferentes necesidades de las aplicaciones. Comprender estos métodos de búsqueda le ayudará a hacer un uso más eficaz de las bases de datos vectoriales para crear aplicaciones de IA más potentes.

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

6. Comparación de métodos de búsqueda en bases de datos vectoriales

Nos centraremos en los principales métodos de búsqueda de tres bases de datos, Milvus, Weaviate y Qdrant:

6.1 Milvus: estrategias de búsqueda flexibles y variadas para distintos escenarios

Milvus proporciona una estrategia de búsqueda rica y flexible, puede elegir el método de búsqueda adecuado según las diferentes estructuras de datos y requisitos de consulta.

  • Búsqueda de un solo vector: Esta es la forma más básica de buscar, utilizando la función search() que compara un vector de consulta con los vectores existentes en la colección, devolviendo los ID de entidad más similares y sus distancias. Puede elegir los valores del vector y los metadatos de los resultados devueltos. Ideal para escenarios de búsqueda de similitudes simples, por ejemplo, encontrar el producto más similar a un determinado artículo, encontrar la imagen más similar a una determinada imagen, etc.
  • Búsqueda multivectorial: para colecciones que contienen múltiples campos vectoriales, mediante hybrid_search() método. El método ejecuta simultáneamente múltiples peticiones de búsqueda de vecinos más próximos aproximados (RNA) y fusiona y reordena los resultados para devolver las coincidencias más relevantes.La última versión 2.4.x de Milvus admite búsquedas utilizando hasta 10 vectores. La búsqueda multivectorial es especialmente adecuada para situaciones complejas en las que se requiere una gran precisión, por ejemplo:
    • Los mismos datos se procesan utilizando distintos modelos de incrustación: Por ejemplo, una misma frase puede generarse con diferentes representaciones vectoriales utilizando distintos modelos como BERT, Sentence-BERT, GPT-3, etc. La búsqueda multivectorial puede fusionar las representaciones vectoriales de estos distintos modelos para mejorar la precisión de la búsqueda.
    • Fusión de datos multimodales: Por ejemplo, la información de múltiples modalidades, como imágenes, huellas dactilares y huellas vocales de individuos, se convierte en diferentes formatos vectoriales para realizar una búsqueda exhaustiva. La búsqueda multivectorial puede fusionar la información vectorial de estas distintas modalidades para lograr una búsqueda de similitudes más exhaustiva.
    • Aumentar los índices de recuerdo: Al asignar pesos a distintos vectores y utilizar la información de múltiples vectores en una estrategia de "recuperación múltiple", la capacidad de recuperación y la eficacia de los resultados de la búsqueda pueden mejorarse significativamente para evitar que se pierdan resultados relevantes.
  • Operaciones básicas de búsqueda: Además de las búsquedas univectoriales y multivectoriales, Milvus proporciona un rico conjunto de operaciones básicas de búsqueda, entre las que se incluyen:
    • Búsqueda vectorial por lotes: Enviar varios vectores de consulta a la vez mejora la eficiencia de la búsqueda y es adecuado para escenarios que requieren el procesamiento por lotes de consultas.
    • Búsqueda de particiones: Búsqueda en la partición especificada, estrechando el ámbito de búsqueda y mejorando la velocidad de búsqueda, adecuado para escenarios de gran volumen de datos, puede almacenar los datos por partición para mejorar la eficiencia de la consulta.
    • Especifique los Campos de Salida a buscar: Devuelve sólo los campos especificados, reduce la cantidad de transferencia de datos, mejora la eficiencia de la búsqueda y es adecuado para escenarios en los que sólo se necesita parte de la información de campo.
  • Filtrar búsqueda: Condiciones de filtrado basadas en campos escalares para refinar los resultados de la búsqueda, por ejemplo, filtrado basado en condiciones como el precio del producto, la edad del usuario, la categoría del producto, etc., filtrando además los resultados basados en la búsqueda por similitud para mejorar la precisión de la búsqueda.
  • Búsqueda por rango: Encontrar vectores cuya distancia al vector de consulta se encuentre dentro de un rango específico, por ejemplo, encontrar productos con una similitud de 0,8 o más con el producto objetivo, lo que resulta adecuado para escenarios en los que es necesario limitar el rango de similitud.
  • Búsqueda agrupada: La agrupación de los resultados de búsqueda en función de campos específicos garantiza la diversidad de resultados y evita la concentración excesiva de los mismos, por lo que es adecuada para escenarios que requieren diversidad de resultados, por ejemplo, sistemas de recomendación que quieren recomendar diferentes categorías de productos.

6.2 Weaviate: una potente capacidad de búsqueda híbrida que incorpora múltiples técnicas de búsqueda

Weaviate proporciona una potente capacidad de búsqueda híbrida, que puede combinar de forma flexible la búsqueda por similitud vectorial, la búsqueda por palabras clave, la búsqueda generativa y otros métodos de búsqueda para satisfacer requisitos de consulta complejos y proporcionar una solución de recuperación más completa.

  • Búsqueda por similitud vectorial: Proporcionar múltiples métodos de búsqueda por proximidad para encontrar el objeto más similar al vector de consulta es la principal capacidad de búsqueda de Weaviate.
  • Búsqueda de imágenes: Admite el uso de imágenes como entrada para la búsqueda de similitudes para realizar la función de búsqueda de imágenes, que es adecuada para escenarios de recuperación de imágenes.
  • Búsqueda por palabra clave: Los resultados se clasifican mediante el algoritmo BM25F, que permite una recuperación eficaz de palabras clave en situaciones de búsqueda tradicionales.
  • Búsqueda híbrida: La combinación de la búsqueda de palabras clave BM25 y la búsqueda de similitud vectorial para la clasificación por fusión de resultados, teniendo en cuenta la relevancia semántica y la coincidencia de palabras clave, es adecuada para escenarios de búsqueda híbridos en los que es necesario tener en cuenta tanto la información de palabras clave como la semántica.
  • Búsqueda Generativa: Utilizar los resultados de búsqueda como pistas para que LLM genere respuestas que se ajusten mejor a la intención del usuario, combinando la búsqueda con la tecnología de IA generativa para ofrecer una experiencia de búsqueda más inteligente.
  • Nueva clasificación: La calidad de los resultados de búsqueda se optimiza aún más utilizando el módulo de reordenación (Re-rank) para reordenar los resultados de búsqueda recuperados con el fin de mejorar su precisión y pertinencia.
  • Agregación: Agregue datos de la recopilación de resultados, realice análisis estadísticos, proporcione capacidad de análisis de datos y ayude a los usuarios en la extracción y el análisis de datos.
  • Filtros: Aplique filtros condicionales a las búsquedas, por ejemplo, basados en campos de metadatos, para mejorar la precisión de la búsqueda y admitir condiciones de filtrado complejas.

6.3 Qdrant: centrado en la búsqueda vectorial, tiene en cuenta el filtrado de texto completo, es ligero y eficiente

Qdrant se centra en ofrecer servicios de búsqueda vectorial de alto rendimiento con un equilibrio de filtrado de texto completo, y es conocido por su ligereza, alto rendimiento y facilidad de uso.

Operaciones básicas de búsqueda soportadas por Qdrant::

  • Filtrado por puntuación: El filtrado basado en las puntuaciones de similitud vectorial devuelve sólo los resultados con mayor similitud, lo que mejora la calidad de los resultados de búsqueda.
  • Una única solicitud carga varias operaciones de búsqueda (solicitudes de búsqueda múltiple): Enviar varias solicitudes de búsqueda a la vez mejora la eficiencia de la búsqueda y es adecuado para escenarios que requieren el procesamiento por lotes de consultas.
  • Recomendar API: Proporcionar API de recomendación especiales para construir sistemas de recomendación y simplificar el proceso de desarrollo de sistemas de recomendación.
  • Operaciones de agrupación: La agrupación de los resultados de búsqueda mejora la diversidad de los resultados para los escenarios que requieren diversidad de resultados.

Otros métodos de búsqueda admitidos por Qdrant::

El posicionamiento central de Qdrant es un motor de búsqueda vectorial, que proporciona un soporte limitado de búsqueda de texto completo para satisfacer las necesidades básicas de filtrado de texto completo sin afectar al rendimiento de la búsqueda vectorial.

  • Búsqueda con filtrado de texto completo: Los datos vectoriales pueden filtrarse utilizando filtros de texto completo, por ejemplo, para encontrar datos vectoriales que contengan palabras clave específicas, lo que permite una sencilla función de búsqueda de texto completo.
  • Filtro de texto completo con búsqueda vectorial: Realiza búsquedas vectoriales en registros con palabras clave específicas para lograr búsquedas más precisas, combinando el filtrado de texto completo y las búsquedas vectoriales para mejorar la precisión de las búsquedas.
  • Búsqueda por prefijos y búsqueda semántica instantánea: Admite búsqueda prefijada y búsqueda semántica instantánea para ofrecer una experiencia más fácil de usar, búsqueda difusa y búsqueda en tiempo real.

Futuras funciones previstas de Qdrant::

  • Se admiten vectores dispersos: Por ejemplo, los vectores dispersos utilizados en SPLADE o modelos similares aumentan la capacidad de manejar datos dispersos y mejoran la eficacia y precisión de la recuperación de vectores.

Funciones no previstas para Qdrant::

  • BM25 u otras funciones de recuperación o clasificación no basadas en vectores (Non-Vector Based Retrieval): Qdrant insiste en la búsqueda vectorial como su núcleo, y no pretende soportar métodos tradicionales de recuperación basados en palabras clave, manteniendo la arquitectura simple y eficiente.
  • Ontología o grafo de conocimiento incorporados, analizador de consultas y otras herramientas de PNL (ontología o grafo de conocimiento incorporados): Qdrant se centra en la infraestructura subyacente de la búsqueda vectorial, dejando fuera de la ecuación las aplicaciones de capa superior y la funcionalidad NLP, manteniendo la funcionalidad central centrada y el rendimiento optimizado.

¿Cuál es la diferencia entre BM25 y una simple búsqueda por palabras clave? Una mirada en profundidad a la puntuación de relevancia

En el ámbito de la búsqueda por palabras clave, el algoritmo BM25 (Best Matching 25) es un método de puntuación de relevancia más avanzado y eficaz que la simple concordancia de palabras clave. Comprender la diferencia entre ambos le ayudará a elegir mejor la estrategia de búsqueda adecuada, especialmente en escenarios en los que se requiera una búsqueda por palabras clave o una búsqueda mixta.

1. Mecanismo de puntuación de la relevancia:

  • Búsqueda simple por palabra clave: La puntuación suele basarse en la frecuencia de términos (TF - Term Frequency), es decir, cuantas más veces aparece una palabra clave en un documento, más relevante es el documento. Este método es sencillo y directo, pero tiende a ignorar la longitud del documento y la importancia de las palabras clave, lo que puede dar lugar a una puntuación excesiva de los documentos largos, así como a interferencias en los resultados por palabras de uso común y desactivadas.
  • BM25 (Best Matching 25): Gracias a un algoritmo más complejo que tiene en cuenta la frecuencia de las palabras (TF), la frecuencia inversa de los documentos (IDF - Inverse Document Frequency) y la longitud de los documentos para puntuar la pertinencia de los documentos, BM25 puede medir con mayor precisión la pertinencia de un documento con respecto a una consulta, y solventar eficazmente las limitaciones de las simples búsquedas por palabras clave.

2. Tratamiento de la longitud de los documentos:

  • Búsqueda simple por palabra clave: Puede que no se tenga en cuenta la longitud del documento, lo que hace que los documentos largos tengan más probabilidades de ser considerados relevantes porque los documentos largos tienen una mayor probabilidad de contener palabras clave, lo que da lugar a un sesgo de documento largo.
  • BM25: Al introducir el factor de normalización de la longitud del documento, se resuelve el problema del sesgo de los documentos largos para garantizar la equidad de la puntuación de relevancia entre documentos largos y cortos, y evitar que los documentos largos obtengan puntuaciones demasiado altas debido a la ventaja de la longitud.

3. Importancia de los términos de consulta:

  • Búsqueda simple por palabra clave: Es habitual tratar todas las palabras clave como igualmente importantes, ignorando la rareza de las palabras clave en la colección de documentos y haciendo que las palabras comunes y desactivadas interfieran en los resultados.
  • BM25: La importancia de las palabras clave se mide mediante la Frecuencia Inversa de Documentos (FID). Las palabras clave con valores de FID más altos (es decir, palabras clave más raras en la colección de documentos) contribuyen más a la puntuación de relevancia del documento, diferenciando de forma efectiva la importancia de las palabras clave y mejorando la calidad de los resultados de búsqueda.

4. Ajustabilidad de los parámetros:

  • Búsqueda simple por palabra clave: Suele haber menos parámetros, lo que dificulta el ajuste fino y lo hace menos flexible.
  • BM25: Los parámetros ajustables (por ejemplo, k1 y b) permiten a los usuarios ajustar los algoritmos en función de los escenarios de aplicación y las características de los datos, optimizar los resultados de búsqueda y mejorar la flexibilidad y personalización de la búsqueda.

Resumen:

En comparación con la búsqueda simple por palabras clave, el algoritmo BM25 es superior en términos de puntuación de relevancia, procesamiento de la longitud de los documentos, medición de la importancia de los términos de la consulta y sintonización de parámetros, y puede proporcionar resultados de búsqueda más precisos y esperados por el usuario. Por lo tanto, el algoritmo BM25 es una mejor opción en escenarios con altos requisitos de calidad de búsqueda, especialmente en escenarios donde se requiere la búsqueda por palabra clave o la búsqueda híbrida, el algoritmo BM25 es una tecnología clave para mejorar los resultados de búsqueda.

 

7. Evaluación comparativa y métrica del rendimiento en detalle: evaluación cuantitativa de los puntos fuertes y débiles de las bases de datos vectoriales

El rendimiento es una consideración importante a la hora de seleccionar una base de datos vectorial. La evaluación comparativa es un medio eficaz para evaluar el rendimiento de las bases de datos vectoriales. Sin embargo, hay que tener en cuenta que los resultados de la evaluación comparativa se ven afectados por una serie de factores, por lo que cuando se hace referencia a los resultados de la evaluación comparativa, es necesario combinarlos con escenarios de aplicación y requisitos específicos para realizar un análisis exhaustivo.

7. Anexo

7.1 Puntos de referencia de la RNA: la plataforma autorizada de evaluación del rendimiento

ANN-Benchmarks Approximate Nearest Neighbors Benchmarks (ANN-Benchmarks) es una plataforma autorizada de evaluación del rendimiento de los algoritmos de aproximación al vecino más cercano, creada y mantenida por Erik Bernhardsson. ANN-Benchmarks constituye una referencia importante para la evaluación del rendimiento de las bases de datos vectoriales y es una herramienta importante para comprender las diferencias de rendimiento entre las distintas bases de datos vectoriales.

Factores que influyen en la evaluación comparativa:

  • Tipo de búsqueda: Búsqueda filtrada frente a búsqueda normal, los distintos tipos de búsqueda tienen un impacto diferente en el rendimiento.
  • Ajustes de configuración: Los parámetros de configuración de la base de datos, como los tipos de índice, los parámetros de índice, la configuración de la caché, etc., pueden afectar significativamente al rendimiento.
  • Algoritmos de indexación: Los distintos algoritmos de indexación (por ejemplo, IVF, HNSW, PQ) tienen características de rendimiento diferentes y son adecuados para distintos escenarios de distribución y consulta de datos.
  • Incrustación de datos: La calidad y la dimensionalidad de los datos incrustados afectan al rendimiento y la precisión de la base de datos vectorial.
  • Entorno de hardware: La CPU, la memoria, el disco, la red y otros recursos de hardware afectan directamente al rendimiento de la base de datos.

Factores clave a la hora de elegir un modelo, además de la evaluación comparativa:

  • Capacidades distribuidas: Si admite el despliegue distribuido y puede escalarse horizontalmente para hacer frente a datos masivos y una alta concurrencia.
  • Copias de datos y almacenamiento en caché: Si admite mecanismos de copia de datos y almacenamiento en caché para garantizar la seguridad de los datos y mejorar el rendimiento del sistema.
  • Algoritmos de indexación: Qué tipo de algoritmo de indexación se utiliza, las características de rendimiento y los escenarios aplicables del algoritmo, y si se admiten múltiples algoritmos de indexación.
  • Capacidad de búsqueda de similitudes vectoriales: Si admite búsqueda híbrida, filtrado, múltiples métricas de similitud y otras funciones de búsqueda avanzada para satisfacer las necesidades de consultas complejas.
  • Mecanismo de segmentación: Si se admite el troceado de datos, cómo llevarlo a cabo y mejorar la eficacia de la gestión y consulta de datos.
  • Enfoque por grupos: Cómo construir clusters, la escalabilidad y estabilidad de los clusters, garantizando una alta disponibilidad y escalabilidad del sistema.
  • Potencial de escalabilidad: El límite superior de la escalabilidad del sistema, si puede satisfacer las necesidades de crecimiento futuro de la empresa y predecir la capacidad de expansión del sistema.
  • Coherencia de los datos: Cómo garantizar la coherencia y fiabilidad de los datos, especialmente en un entorno distribuido.
  • Disponibilidad global del sistema: Estabilidad y fiabilidad del sistema, si puede garantizar un funcionamiento estable 7x24 horas y cumplir los requisitos de continuidad de la actividad.

Métricas angulares frente a métricas euclidianas: métricas clave para la recuperación de textos

En el campo de la recuperación de textos, las bases de datos vectoriales enDistancia angular El rendimiento en suele ser mejor queDistancia euclidiana más importantes. Esto se debe a que las métricas angulares son más sensibles a la similitud semántica de los documentos de texto, mientras que las métricas euclidianas se centran más en la longitud y el tamaño del documento.

  • Medida angular (por ejemplo, distancia coseno): Se centra en la dirección del vector, no es sensible a la longitud del vector, más adecuado para medir la similitud semántica del texto, adecuado para la recuperación de textos, clasificación de documentos y otros escenarios.
  • Métrica euclidiana (por ejemplo, distancia euclidiana): También tiene en cuenta el tamaño y la dirección de los vectores, es sensible a la longitud de los vectores y es más adecuado para medir la distancia absoluta de los vectores, lo que resulta adecuado para escenarios como el reconocimiento de imágenes y el reconocimiento de voz.

Por lo tanto, al seleccionar el sistema RAG, debemos centrarnos en la base de datos vectorial en diferentes dimensiones delConjunto de datos de ángulosen, por ejemplo, los conjuntos de datos glove-100-angular y nytimes-256-angular.

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

Análisis del rendimiento (conjunto de datos guante-100-angular):

  • Consultas por segundo (QPS): Milvus muestra el mayor rendimiento cuando la recuperación es inferior a 0,95, lo que significa que Milvus es capaz de gestionar una mayor concurrencia de consultas con mejor rendimiento, garantizando al mismo tiempo una cierta recuperación. Cuando la recuperación es superior a 0,95, la diferencia de rendimiento entre las bases de datos se reduce, y la diferencia de rendimiento no es evidente cuando la recuperación es alta.
  • Tiempo de construcción del índice: Vespa tiene el tiempo de creación de índice más largo, Weaviate y Milvus tienen tiempos de creación similares, pero Milvus es ligeramente más largo. El tiempo de creación del índice afecta directamente a la velocidad de inicio de la base de datos y a la eficacia de la actualización de datos: cuanto más corto sea el tiempo de creación, más rápido será el inicio de la base de datos y la actualización de datos.
  • Tamaño del índice: Weaviate tiene el índice más pequeño y Milvus el más grande. El tamaño del índice afecta al coste de almacenamiento y al uso de memoria; cuanto menor sea el índice, menor será el coste de almacenamiento y el uso de memoria. Aunque el índice de Milvus es grande, para un conjunto de datos que contiene 1,2 millones de vectores de 100 dimensiones, el tamaño del índice es inferior a 1,5 GB, lo que sigue siendo aceptable, y el impacto del tamaño del índice debe evaluarse en función del tamaño de los datos en aplicaciones prácticas.

7.1.2 rendimiento del conjunto de datos nytimes-256-angular

向量数据库深度对比:Weaviate、Milvus 与 Qdrant

Análisis de rendimiento (conjunto de datos nytimes-256-angular):

El rendimiento en este conjunto de datos es similar al del conjunto de datos guante-100-angular, con una tendencia general coherente.

  • Tiempo de construcción del índice: Weaviate tiene el tiempo de construcción de índices más largo, Milvus y Qdrant son relativamente cortos, y el orden de los tiempos de construcción es coherente con el conjunto de datos glove-100-angular.
  • Tamaño del índice: El índice de Weaviate es el más pequeño, el de Milvus es el mayor, pero sólo 440 MB (un conjunto de datos que contiene 290.000 vectores de 256 dimensiones), y la ordenación del tamaño del índice es coherente con el conjunto de datos guante-100-angular.

Resumen:

Milvus destaca en rendimiento y es adecuada para escenarios de consultas altamente concurrentes; Weaviate tiene ventaja en tamaño de índice y ahorra espacio de almacenamiento; y Vespa tiene un tiempo de construcción relativamente más largo y debe tenerse en cuenta para la eficiencia de la construcción de índices.

A la hora de seleccionar realmente un modelo, es necesario combinar los escenarios de aplicación específicos, las características de los datos y los requisitos de rendimiento para realizar una evaluación exhaustiva, y no se puede confiar únicamente en los resultados de las pruebas de referencia.

7.2 Métricas de similitud vectorial: elegir la métrica adecuada para mejorar los resultados de recuperación

Las métricas de similitud vectorial se utilizan para medir el grado de similitud entre dos vectores, y las diferentes métricas de similitud son adecuadas para diferentes tipos de datos y escenarios de aplicación. La elección de la métrica de similitud adecuada afecta directamente a la precisión y el efecto de la recuperación de vectores. Las diferentes bases de datos de vectores admiten diferentes métricas de similitud, por lo que es necesario elegir la base de datos y la métrica de similitud adecuadas en función de las necesidades reales.

normadescripcionesvanguardiainferiorEscenarios aplicablesBases de datos compatibles
Distancia cosenoMedir el coseno del ángulo entre dos vectoresSe centra en la dirección del vector, no es sensible a la longitud del vector; adecuado para datos dispersos de alta dimensión.Insensible a la información sobre la longitud del vector; no aplicable a conjuntos de datos no convexos.Cálculo de similitudes textuales, clasificación de documentos, sistemas de recomendaciónpgvector, Pinecone, Weaviate, Qdrant, Milvus, Vespa
Distancia euclidiana (L2)Calcular la distancia en línea recta entre dos vectores en un espacio multidimensionalIntuitivo y fácil de entender; considera tanto la magnitud como la dirección del vector.Degradación del rendimiento en espacios de gran dimensión debido a la "catástrofe dimensional"; sensibilidad a los valores atípicos.Reconocimiento de imágenes, reconocimiento de voz, análisis de escritura a manopgvector, Pinecone, Qdrant, Milvus, Vespa
Producto de puntosCalcular la suma de los productos de las componentes correspondientes del vectorCálculo rápido; refleja tanto la magnitud como la dirección del vectorSensible a la escala vectorial; puede requerir la normalización de los datos.Sistemas de recomendación, filtrado colaborativo, descomposición matricialpgvector, Pinecone, Weaviate, Qdrant, Milvus
L2 Distancia euclídea al cuadradoDistancia de Euclides al cuadradoPenaliza las grandes diferencias entre elementos vectoriales; más eficaz en algunos casos.La operación de cuadrado puede distorsionar las distancias; más sensible a los valores atípicosTratamiento de imágenes, detección de anomalíasWeaviate
Distancia HammingMedida del número de valores diferentes correspondientes a la posición de un vector binarioAdecuado para datos binarios o categóricos; cálculos rápidosNo aplicable a datos numéricos continuosDetección y corrección de errores, comparación de secuencias de ADNWeaviate, Milvus, Vespa
Distancia a Manhattan (L1)Medir la suma de las distancias entre dos vectores en la dirección de los ejes de coordenadas.Más resistente a los valores atípicos que la distancia euclidianaLa significación geométrica es menos intuitiva que la distancia euclidiana.Cálculo de la distancia entre placas, cálculo de la distancia entre manzanasWeaviate

7.2.1 Distancia coseno: la primera opción para calcular la similitud de textos

La distancia coseno mide la similitud de los vectores calculando el coseno del ángulo entre dos vectores. Cuanto más se acerque el valor del coseno a 1, más similares son los vectores; cuanto más se acerque el valor del coseno a -1, menos similares son los vectores; y con un valor del coseno de 0, los vectores son ortogonales, lo que indica que no están relacionados.

  • vantage::
    • Céntrate en la dirección del vector e ignora su longitud: La distancia coseno se centra en la dirección del vector y no es sensible a su longitud. Esto la hace muy adecuada para procesar datos textuales, ya que la longitud de un documento no suele ser el factor clave en los cálculos de similitud textual, mientras que el tema y la dirección semántica del documento sí son importantes.
    • Para datos dispersos de alta dimensión: En escenarios de datos dispersos de alta dimensión, la distancia coseno aún puede mantener un buen rendimiento y es adecuada para el cálculo de similitud de datos dispersos de alta dimensión, como el texto y el comportamiento del usuario.
  • inconvenientes::
    • Insensible a la información sobre la longitud del vector: En algunos escenarios, la información sobre la longitud de los vectores también puede ser importante, por ejemplo, en un sistema de recomendación, el nivel de actividad del usuario (longitud del vector) puede ser una característica importante. La distancia coseno ignora esta información y puede provocar una pérdida de información.
    • No aplicable a conjuntos de datos no convexos: Si la distribución de los datos no es un conjunto convexo, es posible que la distancia coseno no proporcione una medida de similitud precisa, por lo que es necesario seleccionar una métrica de similitud adecuada en función de la distribución de los datos.
  • Escenarios aplicables::
    • Cálculo de la similitud de los textos: Por ejemplo, el cálculo de la similitud semántica de dos artículos, dos frases o dos párrafos es una métrica habitual para el cálculo de la similitud textual.
    • Categorización de documentos: Los documentos se clasifican en distintas categorías en función de la similitud de los vectores de los documentos.
    • Sistemas recomendados: Las recomendaciones se basan en el comportamiento de los usuarios o en las características de los artículos, y se calcula la similitud entre los vectores de los usuarios y los vectores de los artículos para obtener recomendaciones personalizadas.
    • Escenarios de datos dispersos de alta dimensión: Por ejemplo, el cálculo de la similitud de datos dispersos de alta dimensión, como los datos de comportamiento de los usuarios y los datos de características de los productos.

7.2.2 Distancia euclidiana (L2): intuitiva y fácil de entender, pero su rendimiento es limitado en espacios de mayor dimensión.

La distancia euclidiana, también conocida como norma L2, calcula la distancia en línea recta entre dos vectores en un espacio multidimensional. Cuanto menor es la distancia, más parecidos son los vectores; cuanto mayor es la distancia, menos parecidos son los vectores.

  • vantage::
    • Intuitivo y fácil de entender: El concepto de distancia euclidiana es sencillo e intuitivo, fácil de entender y utilizar, y es una de las medidas de distancia más utilizadas por la gente.
    • Considera tanto la magnitud como la dirección del vector: La distancia euclidiana tiene en cuenta tanto la magnitud como la dirección de los vectores, lo que proporciona una imagen más completa de las diferencias entre vectores, y es adecuada para escenarios en los que es necesario tener en cuenta tanto la magnitud como la dirección de los vectores.
  • inconvenientes::
    • El rendimiento de un espacio de mayor dimensión se degrada por la "catástrofe dimensional": En espacios de alta dimensión, las distancias euclidianas entre todos los puntos tienden a ser iguales, lo que conduce a una disminución de la diferenciación, afectando a la precisión de la búsqueda de similitudes y limitando el rendimiento en escenarios de datos de alta dimensión.
    • Sensible a los valores atípicos: La distancia euclidiana es sensible a los valores atípicos, que afectan significativamente a los resultados del cálculo de la distancia y son menos robustos.
  • Escenarios aplicables::
    • Reconocimiento de imágenes: Por ejemplo, en el reconocimiento de caras, objetos, etc., la comparación de similitudes se basa en la distancia euclidiana de los vectores de características de la imagen.
    • Reconocimiento de voz: La concordancia de características del habla, por ejemplo, realiza comparaciones de similitud basadas en la distancia euclidiana de los vectores de características del habla.
    • Análisis de la escritura: Por ejemplo, reconocimiento de caracteres manuscritos, comparación de similitudes basada en la distancia euclidiana de vectores de características de caracteres manuscritos.
    • Escenarios de datos de baja dimensión: En escenarios de datos de baja dimensión, la distancia euclidiana sigue siendo una métrica de similitud eficaz para la búsqueda de similitud en datos de baja dimensión.

7.2.3 Producto de puntos: cálculo eficaz, adecuado para sistemas de recomendación

El producto interior, también conocido como producto punto, calcula la suma de los productos de los componentes correspondientes de dos vectores. Cuanto mayor es el producto interior, más parecidos son los vectores; cuanto menor es el producto interior, menos parecidos son los vectores.

  • vantage::
    • Los cálculos son rápidos: El producto interno es muy rápido, especialmente cuando la dimensión del vector es alta, la ventaja de rendimiento es más obvia, adecuada para datos a gran escala y escenarios de alta concurrencia.
    • Refleja tanto la magnitud como la dirección del vector: El producto interior tiene en cuenta tanto la magnitud como la dirección de los vectores, lo que refleja la similitud global de los vectores, y es adecuado para escenarios en los que es necesario tener en cuenta la magnitud y la dirección de los vectores.
  • inconvenientes::
    • Sensible a las escalas vectoriales: El valor del producto interior se ve afectado por la escala de los vectores, y si los vectores tienen una gran diferencia de escala, la medida de similitud del producto interior puede estar distorsionada y ser sensible a la escala de los vectores.
    • Puede ser necesario normalizar los datos: Para eliminar el efecto de las diferencias de escala de los vectores, a menudo es necesario normalizar los datos, por ejemplo, normalizando los vectores a la unidad de longitud, para garantizar la precisión de la medida de similitud del producto interior.
  • Escenarios aplicables::
    • Sistemas recomendados: Por ejemplo, para calcular la similitud entre vectores de usuarios y vectores de elementos para recomendaciones personalizadas, el producto interno es una métrica de similitud muy utilizada en los sistemas de recomendación.
    • Filtrado colaborativo: Las recomendaciones se realizan en función de la similitud de los usuarios o los elementos, utilizando el producto interior para calcular la similitud entre usuarios o elementos.
    • Descomposición de matrices: se utiliza para reducir la dimensionalidad y extraer características, y el producto interior puede utilizarse para medir la similitud entre vectores y ayudar en la aplicación de algoritmos de descomposición de matrices.
    • Escenarios que requieren computación de alto rendimiento: Por ejemplo, los sistemas de recomendación en línea a gran escala, los sistemas de recuperación en tiempo real y otros escenarios que requieren un cálculo rápido de la similitud vectorial.

7.2.4 Distancia euclídea al cuadrado L2: amplifica las diferencias, eficaz para escenas específicas.

L2 La distancia cuadrada es el cuadrado de la distancia euclídea y se calcula como el valor cuadrado de la distancia euclídea.

  • vantage::
    • Grandes diferencias entre los elementos del vector de penalización: La operación de elevar al cuadrado aumenta las diferencias entre los elementos del vector, haciendo que los valores de distancia sean más sensibles a las diferencias. En algunos casos, esta propiedad puede ser más beneficiosa para distinguir similitudes y resaltar diferencias.
    • Evitar los cálculos de raíz cuadrada mejora la eficiencia computacional: En algunos escenarios de cálculo, pueden evitarse los cálculos de raíz cuadrada para mejorar la eficiencia y simplificar el proceso de cálculo.
  • inconvenientes::
    • Las operaciones de cuadrado pueden distorsionar las distancias: La operación de elevar al cuadrado cambia la escala de la distancia, lo que puede dar lugar a un significado de la distancia menos intuitivo que el de la distancia euclidiana.
    • Más sensible a los valores atípicos: La operación de elevar al cuadrado amplifica aún más el efecto de los valores atípicos, lo que hace que la distancia L2 al cuadrado sea más sensible a los valores atípicos y menos robusta.
  • Escenarios aplicables::
    • Tratamiento de imágenes: Por ejemplo, para comparar dos imágenes a nivel de píxel, la distancia L2 al cuadrado amplía las diferencias de píxel y compara los matices de las imágenes con mayor eficacia.
    • Detección de anomalías: Amplificar el impacto de los valores atípicos facilita la detección de datos anómalos y es adecuado para escenarios de detección de anomalías sensibles a los valores atípicos.
    • Escenarios específicos en los que es necesario ampliar las diferencias: La distancia cuadrática L2 puede ser más eficaz que la distancia euclídea en determinados escenarios específicos en los que es necesario destacar la diferenciación.

7.2.5 Distancia de Hamming: una métrica exclusiva para datos binarios

La distancia de Hamming mide el número de valores diferentes en las posiciones correspondientes de dos vectores binarios de igual longitud, y se utiliza para medir el grado de diferencia entre vectores binarios.

  • vantage::
    • Para datos binarios o categóricos: La distancia de Hamming se utiliza específicamente para medir diferencias en datos binarios o categóricos y es adecuada para cálculos de similitud de vectores binarios.
    • Los cálculos son rápidos: El cálculo de la distancia de Hamming es muy sencillo y eficaz, y sólo requiere comparar las posiciones correspondientes de los vectores binarios y contar el número de valores diferentes.
  • inconvenientes::
    • No aplicable a datos numéricos continuos: La distancia de Hamming sólo puede utilizarse para datos binarios o categóricos, y no puede manejar datos numéricos continuos, por lo que su ámbito de aplicación es limitado.
  • Escenarios aplicables::
    • Detección y corrección de errores: Por ejemplo, en la codificación de comunicaciones, la distancia de Hamming se utiliza para medir la diferencia entre palabras de código para la detección y corrección de errores y es un concepto importante en la teoría de la codificación.
    • Comparación de secuencias de ADN: Las secuencias de ADN se convirtieron a representación binaria y la comparación de secuencias se realizó utilizando la distancia de Hamming para el análisis bioinformático.
    • Cálculo de la similitud de los datos del subtipo: Es adecuado para el cálculo de similitud de datos de subtipos, por ejemplo, el cálculo de similitud de datos categóricos como etiquetas de usuario, atributos de producto, etc.

7.2.6 Distancia Manhattan (L1): métrica de distancia más robusta, resistente a los valores atípicos

La distancia Manhattan, también conocida como norma L1 o distancia en manzanas, se calcula como la suma de las diferencias absolutas entre dos vectores en todas las dimensiones.

  • vantage::
    • Más resistente a los valores atípicos que la distancia euclidiana: La distancia Manhattan es menos sensible a los valores atípicos que la distancia euclidiana porque sólo calcula la diferencia absoluta, no la diferencia al cuadrado, y es más robusta y resistente a la interferencia de valores atípicos.
    • Los cálculos son relativamente rápidos: La distancia Manhattan es ligeramente más rápida que la distancia euclidiana y es adecuada para situaciones en las que la distancia debe calcularse rápidamente.
  • inconvenientes::
    • La significación geométrica es menos intuitiva que la distancia euclidiana: El significado geométrico de la distancia Manhattan es menos intuitivo que el de la distancia euclidiana, menos fácil de entender y menos interpretable geométricamente.
  • Escenarios aplicables::
    • Cálculo de la distancia del tablero: Por ejemplo, para calcular la distancia entre dos casillas de un tablero de ajedrez, se suele utilizar la distancia Manhattan.
    • Cálculo de la distancia entre barrios urbanos: Por ejemplo, para calcular la distancia entre dos puntos de una ciudad, ignorando las distancias en dirección diagonal, la distancia Manhattan también se conoce como distancia en manzanas.
    • El problema del camino más corto en la planificación logística: La distancia Manhattan puede utilizarse para evaluar la longitud de los caminos en la planificación logística y ayudar en la aplicación de algoritmos de camino más corto.
    • Escenarios menos sensibles a los valores atípicos: En situaciones en las que es necesario reducir el efecto de los valores atípicos, la distancia Manhattan es más aplicable y robusta que la distancia euclidiana.

8. Referencias

  1. https://github.com/milvus-io/milvus
  2. Potenciando Al con bases de datos vectoriales: un punto de referencia - Parte I - Datos - Blog - F-Tech
  3. Fundamentos - Qdrant
  4. Documentación de Milvus
  5. Inicio | Weaviate - Base de datos de vectores
  6. Documentación de Qdrant - Qdrant
  7. Casos de uso de bases de datos vectoriales - Qdrant
  8. Bases de datos vectoriales: introducción, casos de uso, las 5 mejores bases de datos vectoriales
  9. ANN-Benchmarks
  10. Métricas de distancia en la búsqueda vectorial - Weaviate
  11. BM25 - Enciclopedia Baidu
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...