Esta publicación es la cuarta parte de una serie de varias entregas que explora la indexación de vectores compuestos en Couchbase. Si te perdiste las publicaciones anteriores, asegúrate de ponerte al día en Parte 1, Parte 2 y Parte 3.
La serie tratará los siguientes temas:
- Por qué son importantes los índices vectoriales compuestos, incluyendo conceptos, terminología y motivación de los desarrolladores. Se utilizará un sistema inteligente de recomendación de productos alimenticios como ejemplo práctico.
- Cómo se implementan los índices vectoriales compuestos dentro del servicio de indexación de Couchbase.
- Cómo funciona ORDER BY pushdown para consultas vectoriales compuestas.
- Comportamiento real y resultados de pruebas comparativas.
Parte 4: Análisis de Rendimiento de Índices Vectoriales Compuestos
Las aplicaciones agentivas y las cargas de trabajo de IA requieren cada vez más una búsqueda vectorial eficiente. Los sistemas tradicionales de búsqueda de vecinos más cercanos aproximados (ANN) pueden tener dificultades a escala, con desafíos como el consumo de memoria, los tiempos de compilación del índice y los mecanismos de actualización en tiempo real.
Los índices vectoriales compuestos (CVI) están diseñados para cargas de trabajo ANN filtradas, donde los predicados escalares reducen el conjunto de candidatos antes de la búsqueda vectorial aproximada. Para cargas de trabajo vectoriales puras a muy gran escala, Couchbase también proporciona índices vectoriales Hyperscale. Para conocer las mejores prácticas, consulte nuestra documentación. aquí.
Esta publicación se centra en el comportamiento de rendimiento de los índices de vectores compuestos para cargas de trabajo ANN filtradas. Basándonos en los conceptos y el modelo de ejecución presentados en las Partes 1 a 3, ahora observamos cómo el rendimiento y la latencia p95 cambian a medida que varía la selectividad escalar en conjuntos de datos a gran escala.
En esta publicación, la selectividad % se refiere a cuánto del conjunto de datos permanece relevante después de que la porción escalar de la consulta restringe el espacio de búsqueda. Una menor selectividad significa una porción más pequeña del conjunto de datos que califica, lo que a su vez reduce la cantidad de trabajo vectorial que el sistema debe realizar.
Rendimiento de Construcción
En una prueba de rendimiento interna, CVI pudo construir un índice de 1000 millones de vectores de 128 dimensiones en 7 horas. Esto demuestra la arquitectura de indexación y el uso de hardware moderno.
El rendimiento de compilación se midió en la siguiente infraestructura:
Procesador AMD EPYC 7643 de 32 núcleos
Memoria: 128 GB de RAM
Almacenamiento: Samsung PM1743 SSD Empresarial 15.36TB
Conjunto de datos Datos de referencia SIFT
Esto demuestra que indexar miles de millones de vectores para cargas de trabajo de producción es práctico.
Rendimiento de Consultas: Combinando Velocidad y Precisión
CVI proporciona rendimiento de consultas con alta recuperación. Usando el conjunto de datos SIFT de 100M con cuantificación SQ8 y un campo escalar líder, CVI alcanzó% recall@10 en varios porcentajes de selectividad, con características de rendimiento y latencia medidas.
El rendimiento mejora a medida que la selectividad se estrecha

Las curvas de rendimiento y latencia cuentan la misma historia desde dos ángulos. Restricciones escalares más estrechas reducen la cantidad de trabajo que fluye a través del camino de ejecución, lo que mejora tanto el rendimiento del sistema como el comportamiento de la cola. Para aplicaciones que incluyen naturalmente restricciones estrictas como categoría, marca, inquilino, región, idioma o límite de cumplimiento, este comportamiento es exactamente donde los índices de vectores compuestos resultan convincentes.
Configuración de la prueba
Definición
|
1 |
CREATE INDEX `vector-idx` on `bucket-1`.`_default`.`_default` (scalar, emb Vector) WITH {'dimension':128, 'similarity':'L2', 'description':'IVF,SQ8'} |
Consulta
|
1 2 3 4 |
SELECT meta().id FROM `bucket-1`.`_default`.`_default` WHERE scalar = 'eligible' ORDER BY ANN_DISTANCE(emb, , 'L2', ) LIMIT 10 |
En escalar el campo se llena en los datos según sea necesario para la selectividad y se ajusta para obtener el recall esperado.
Por qué las curvas se ven así
El rendimiento de CVI está influenciado por varias características arquitectónicas:
- Escaneo consciente del orden
- CVI utiliza un pipeline de escaneo consciente del orden que aprovecha predicados escalares combinados con búsqueda de similitud vectorial, lo que permite patrones de acceso eficientes y minimiza las operaciones de I/O.
- Arquitectura de procesamiento paralelo
- El sistema utiliza paralelismo entre centros, lo que permite que múltiples trabajadores de escaneo operen concurrentemente en diferentes particiones del espacio vectorial.
- Cálculo de distancia acelerado por SIMD
- CVI utiliza operaciones SIMD a través de la biblioteca FAISS para acelerar las evaluaciones de similitud y minimizar la sobrecarga computacional.
- Capa de enrutamiento HNSW
- La capa de enrutamiento Hierarchical Navigable Small World (HNSW) permite la identificación de centroides relevantes, reduciendo el espacio de búsqueda.
Ejemplos de aplicaciones
Las características de rendimiento de CVI son aplicables a una variedad de casos de uso:
- Comercio electrónico y recomendaciones de productos
- Búsqueda de similitud de productos con filtros de precio, marca y categoría
- Descubrimiento de contenido y búsqueda
- Búsqueda de similitud de documentos y medios con restricciones de metadatos
- Detección de fraude y evaluación de riesgos
- Detección de anomalías en patrones de transacciones con restricciones temporales
- Marketing personalizado
- Segmentación de clientes y recomendaciones personalizadas
Conclusión
Las primeras tres partes de esta serie explicaron por qué los índices de vectores compuestos son importantes, cómo se implementan y cómo permiten una ordenación flexible (ORDER BY) para consultas mixtas escalares más vectoriales. Esta parte final muestra la recompensa de rendimiento de ese diseño.
En el benchmark SIFT de 100M con cuantización SQ8, el throughput aumentó de 800 QPS con una selectividad de 100% a 2853 QPS con una selectividad de 1%, mientras que la latencia p95 mejoró de 66 ms a 17 ms. En un benchmark de build interno por separado, los Índices de Vectores Compuestos construyeron un índice sobre 1 mil millones de vectores de 128 dimensiones en aproximadamente 7 horas en hardware de servidor comercial moderno.
Para cargas de trabajo de ANN filtradas, esa es la propuesta de valor principal de los Índices Vectoriales Compuestos: permiten a las aplicaciones combinar restricciones escalares y similitud semántica en una única estructura de índice, al tiempo que ofrecen un alto rendimiento y una baja latencia de cola a escala.