- Meta y Nvidia colaboraron para acelerar la búsqueda de vectores en GPU integrando Nvidia CUVS en FAISS V1.10Biblioteca de código franco de Meta para la búsqueda de similitud.
- Esta nueva implementación de CUV será más performadora que la búsqueda clásica acelerada por GPU en algunas áreas.
- Para la indexación de archivos invertidos (FIV), los NVIDIA CUV superan los tiempos de construcción clásicos de FIV con GPU hasta 4.7x; y la latencia de búsqueda se reduce hasta 8.1x.
- Para la indexación de gráficos, Cuda Ann Graph (CAGRA) supera a los gráficos de construcción de Small World Jerárquicos Jerárquicos CPU (HNSW) de hasta 12.3x; y la latencia de búsqueda se reduce hasta 4.7x.
El Biblioteca faiss es una biblioteca de código franco, desarrollada por Meta Fair, para una búsqueda y agrupación de vectores eficientes de vectores densos. Faiss fue pionero en la búsqueda de vectores en las GPU, así como la capacidad de cambiar sin problemas entre GPU y CPU. Ha tenido un impacto duradero tanto en la investigación como en la industria, que se utiliza como una biblioteca integrada en varias bases de datos (por ejemplo, Milvus y OpenSearch), bibliotecas de estudios automotriz, bibliotecas de procesamiento de datos y flujos de trabajo de IA. FAISS además es utilizado en gran medida por investigadores y científicos de datos como una biblioteca independiente, a menudo emparejado con pytorch.
Hace tres abriles, Meta y Nvidia trabajaron juntos para mejorar las capacidades de la tecnología de búsqueda de vectores y acelerar la búsqueda de vectores en las GPU. Anteriormente, en 2016, Meta había incorporado algoritmos de búsqueda de vectores de detención rendimiento hechos para las GPU NVIDIA: Gpuindexflat; Gpuindexivfflat; Gpuindexivfpq. Posteriormente de la asociación, Nvidia contribuyó rápidamente Gpuindexcagraun índice basado en gráficos de última gestación diseñado específicamente para GPU. En su posterior extensión, FAISS 1.10.0 Oficialmente incluye estos algoritmos del Biblioteca Nvidia CUVS.
Faiss 1.10.0 además incluye un NUEVO PAQUETO DE CONDA que desbloquea la capacidad de nominar entre las clásicas implementaciones de GPU y la nueva Algoritmos Nvidia CUVSfacilitando a los usuarios cambiar entre GPU y CPU.
Los siguientes puntos de narración se realizaron utilizando el cuvs-banco utensilio.
Medimos:
Las pruebas para los tiempos de construcción de índices y la latencia de búsqueda se realizaron en un NVIDIA H100 GPU y comparado con un sistema Intel Xeon Platinum 8480CL. Los resultados se informan en las tablas a continuación en 95% de retiro a lo generoso del fronteras de pareto para k = 10 vecinos más cercanos.
Tiempo de construcción (95% de retiro@10)
Índice |
Incrustaciones |
Incrustaciones |
|||
Faiss Classic | Cuvs faiss | Faiss Classic | Cuvs faiss | Faiss Classic | Cuvs faiss |
FIV FLAT | FIV FLAT | 101.4 | 37.9 (2.7x) | 24.4 | 15.2 (1.6x) |
FIV PQ | FIV PQ | 168.2 | 72.7 (2.3x) | 42.0 | 9.0 (4.7x) |
HNSW (CPU) | Cagra | 3322.1 | 518.5 (6.4x) | 1106.1 | 89.7 (12.3x) |
Tabla 1: Tiempos de construcción de índice para FAISS-CLASSIC y FAISS-CUVS en segundos (con aceleraciones NVIDIA CUVS entre paréntesis).
Latencia de búsqueda (95% de retiro@10)
Índice |
Incrustaciones |
Incrustaciones |
|||
Faiss Classic | Cuvs faiss | Faiss Classic | Cuvs faiss | Faiss Classic | Cuvs faiss |
FIV FLAT | FIV FLAT | 0.75 | 0.39 (1.9x) | 1.98 | 1.14 (1.7x) |
FIV PQ | FIV PQ | 0.49 | 0.17 (2.9x) | 1.78 | 0.22 (8.1x) |
HNSW (CPU) | Cagra | 0.56 | 0.23 (2.4x) | 0.71 | 0.15 (4.7x) |
Tabla 2: Latencia de consulta de búsqueda en serie (es opinar, una a la vez) para Faiss-Classic y Faiss-CUVS en milisegundos (con aceleraciones de Nvidia CUVS entre paréntesis).
Pensando en el futuro
La aparición de las GPU NVIDIA de última gestación ha revolucionado el campo de la búsqueda vectorial, permitiendo las altas velocidades de búsqueda de retiro y exhalación. La integración de FAISS y CUV continuará incorporando algoritmos de última gestación, y esperamos desbloquear nuevas innovaciones en esta asociación entre Meta y Nvidia.
Deletrear aquí para Más detalles sobre Nvidia CUVS.