AI 赋能的搜索需要高性能索引、低延迟检索和无缝可扩展性。NVIDIA cuVS 为开发者和数据科学家带来了 GPU 加速的向量搜索和聚类功能,可为检索增强生成 (RAG) 、推荐系统、探索性数据分析和异常检测等应用提供更快的索引构建、实时更新和高效的大规模搜索。
最新版本的 cuVS 引入了优化的索引算法、扩展的语言支持,并与 NVIDIA 合作伙伴(如 Meta FAISS、Google Cloud AlloyDB 和 Vertex AI)以及 Milvus、Apache Lucene、Elasticsearch、OpenSearch、Weaviate、Kinetica 等进行了更深入的集成。
无论您是增强现有向量数据库的搜索功能,还是构建自定义 AI 检索系统,cuVS 都能提供将性能提升到更高水平所需的快速、灵活和易于集成的功能。本文介绍了这些新功能以及它们如何大规模解锁 AI 驱动的搜索,并提供了新的基准测试。
在 GPU 上更快地构建索引
NVIDIA cuVS 团队致力于提供最广泛使用的索引算法,DiskANN,更具体地说,其基于图的算法 Vamana 现在可以在 GPU 上构建,速度比 CPU 快 40 倍或以上。NVIDIA 正在与 Microsoft 合作,将可扩展的 DiskANN/Vamana 算法引入 GPU,以解决重要的客户用例。
为了让所有人都能使用加速向量搜索,NVIDIA 还与 Google Cloud 和 Oracle 等超大规模交易数据库合作。
Google Cloud AlloyDB 正在努力为 HNSW 提供先进的索引构建性能,在 CPU 上的性能比 pgvector 快 9 倍。Oracle 已在 Oracle Database 23ai 中对 cuVS 与 AI Vector Search 的集成进行了原型设计,以帮助加速 HNSW 索引构建,并实现了端到端速度提升 5 倍。
Weaviate 最近集成了 cuVS,以优化 GPU 上的向量搜索。初步测试表明,在 GPU 上使用 GPU 本地矢量索引方法 CAGRA,这种集成可将索引构建时间缩短 8 倍。这可实现对 CPU 的无缝部署,以实现快速 HNSW 驱动的搜索。
NVIDIA 一直在与 SearchScale 紧密合作,将 cuVS 集成到 Apache Lucene(一个广泛使用的全文搜索开源软件库)中,将 GPU 上的索引构建速度提高了 40 倍。除了 Lucene,Apache Solr 的端到端索引构建速度比 CPU 快 6 倍。NVIDIA cuVS 团队期待 OpenSearch 3.0,该版本将使用 cuVS 进行 GPU 加速索引构建,并展示索引构建时间最高可提升 9.4 倍。为了完善 Lucene 的功能,Elasticsearch 插件将为整个生态系统带来 cuVS 功能。
存储合作伙伴也加入其中,DDN 使用 CAGRA 将 Milvus 中的 AI 工作负载加速 22 倍。cuVS 和 NeMo retriever 多模态 PDF 提取工作流正在集成到 DDN Infinia 中,以处理 PB 级数据,从而创建端到端一键式高性能 RAG 工作流。
CPU 和 GPU 互操作性
在许多 RAG 工作流中,LLM 推理的延迟将淹没向量数据库查询的延迟。然而,在这些工作流中,数据量正在迅速增加,导致索引构建时间变长,成本增加。在这种规模下,理想的解决方案是使用 GPU 进行索引构建,使用 CPU 进行索引搜索。
cuVS 提供可在 GPU 和 CPU 之间互操作的索引,使 AI 系统能够在使用现有 CPU 基础设施进行搜索的同时,利用现代 GPU 基础设施进行索引构建。索引互操作性可为 AI 应用提供更快的索引构建时间,同时降低成本,同时保留在 CPU 驱动的向量数据库上的向量搜索。

CPU 和 GPU 之间的索引互操作性是 cuVS 最受欢迎的功能之一。虽然该库主要针对 GPU 加速功能,但一种趋势正在兴起,即在 GPU 上构建索引,并将其转换为兼容格式,以便使用 CPU 上的算法进行搜索。
例如,cuVS 可以在 GPU 上更快地构建 CAGRA 图,并将其转换为合适的 HNSW 图,以便在 CPU 上进行搜索。cuVS 还支持在 GPU 上构建流行的 DiskANN/Vamana 索引,并将其转换为与 CPU 对应索引兼容的格式,以便进行搜索。
为了实现更直接、更全面的 CPU 和 GPU 互操作性,建议通过 Meta FAISS 库利用 cuVS 索引。FAISS 率先在 GPU 上实现了向量搜索,该库现在使用 cuVS 将 CPU 上的索引构建速度提高了 12 倍,同时将经典 GPU 索引的速度提高了 8 倍或更多。FAISS 最近发布了支持 cuVS 的新 Python 软件包。
降低精度、量化和改进语言支持
cuVS 最近增加了 Rust、Go 和 Java API,使加速向量搜索更加普及。这些新 API 也可以从 GitHub 上提供的相同代码库构建。该团队不断改进这些 API,添加更多索引类型和高级功能,如聚类和预处理。
二进制和标量量化是常见的预处理技术,可将向量的大小分别缩小 4 倍和 32 倍(从 32 位浮点类型)。cuVS 支持这两种算法,与 CPU 相比,它们分别可将性能提升 4 倍和 20 倍。
在专用向量数据库方面,Milvus 是首批采用 cuVS 的公司之一。他们继续通过新功能改进对 GPU 的支持,例如新的 CAGRA 功能,可直接在二进制量化向量上构建图形。
加速高吞吐量搜索
cuVS 现在提供一流的动态批处理 API,可将 GPU 上的大量在线搜索的延迟最多降低 10 倍。使用新的 CAGRA 永久性搜索功能,可以将交易和广告投放等大容量在线搜索吞吐量提高 8 倍或更多,同时保持较低的单次延迟。Microsoft Advertising 正在探索为此目的集成 cuVS CAGRA 搜索算法。
由于最近对基于图形的 CAGRA 算法的原生 GPU 加速预过滤功能进行了改进,即使大多数向量(例如 99%)被排除在搜索结果之外,该算法现在也能实现高召回率。
除了作为 CAGRA 算法的核心计算之外,kNN 图在数据挖掘中也得到了广泛应用。它们是用于降低维度和数据分析聚类技术的多重学习技术的核心构建模块。cuVS 中 nn-descent 近邻算法的最新更新使 kNN 图表能够在核心之外构建。这意味着您的数据集只需要限制为系统中的 RAM 内存量。它能够大规模地实现近乎实时的迭代式探索性数据分析工作流,而 CPU 无法实现这一点。
您可以使用 RAPIDS cuML 中的 UMAP 算法亲身体验这些速度提升,Adoreboard 和 Studentpulse 等公司都在积极使用该算法。主题建模是多重学习和聚类技术的常见用途,BERTopic 库使大规模工作流在 GPU 上变得易于处理。单细胞基因组学分析是另一个领域,rapids-singlecell 利用 cuVS 和 cuML 实现突破性的性能。
开始使用 NVIDIA cuVS
NVIDIA cuVS 继续重新定义 GPU 加速的向量搜索,提供优化性能、降低成本和简化 AI 应用开发的创新。cuVS 具有新功能、扩展的语言支持以及对整个 AI 生态系统的深度集成,可帮助企业以前所未有的方式扩展搜索和检索工作负载。
开始使用 rapidsai / cuvs GitHub 库,包括端到端示例和自动调优指南。您还可以使用 cuVS Bench 对 GPU 和 CPU 环境中的 ANN 搜索实现进行基准测试和比较。
cuVS 既可以作为独立库使用,也可以通过 FAISS、Milvus、Weaviate、Lucene、Kinetica 等集成使用。NVIDIA 将继续推动 AI 驱动的搜索技术的发展,敬请关注进一步的发展。