写点什么

重磅发布 | OpenSearch 推出向量检索 GPU 图算法方案并支持 GPU 规格售卖

  • 2024-12-18
    浙江
  • 本文字数:3138 字

    阅读完需:约 10 分钟

在数据驱动的时代背景下,快速准确地检索大量非结构化数据,对于支持前沿 AI 应用至关重要。然而,加载向量数据的内存带宽和高吞吐量的需求不断挑战着基于 CPU 的传统解决方案。


为应对这种挑战,OpenSearch 向量检索版在阿里云上正式推出面向企业开发者的 GPU 图算法的方案(CAGRA 算法),并支持客户直接购买 GPU 规格节点,这是国内云上首家支持 GPU 规格的向量检索产品。GPU 能提供大规模并行的处理能力,有效解提升向量检索的性能。企业通过使用这种 GPU 算法方案,能获得近 10 倍的向量搜索实际性能提升,非常适合高 QPS 业务场景。

一、什么是向量检索?

将物理世界产生的非结构化数据(如图片、音视频、对话信息),转化为结构化的多维向量,非结构化数据变成向量的过程称为向量化(Embedding),用这些向量标识实体和实体间的关系,再计算向量之间距离,通常情况下,距离越近、相似度越高,召回相似度最高的 TOP 结果,完成检索。目前向量检索已经广泛应用以图搜图、同款比价、个性化搜索、语义理解等场景。


二、近似最近邻搜索以及原理

近似最近邻搜索(ANNS)是指在大规模数据集中,寻找与给定查询点近似最近邻的一种高效搜索策略,它是当下最常用的向量检索方式。与精确最近邻搜索相比,ANNS 旨在最小化计算成本并同时高效找到近似最近邻,但会牺牲一定的精确度,主要是解决搜索效率和成本问题。


下面是一些常见的 ANNS 算法及其原理介绍:


  1. 基于树的方法:该方法通过多次划分 K 维空间,检索时仅搜索少数子空间,从而加速检索。优点是实现简单,缺点是在高维向量场景下效果不佳。主要算法包括 KD 树(将空间划分为多部分,并在特定空间内搜索)和 Annoy(采用树型结构存储划分后的子空间,查询时合并各树的候选集并排序)。Annoy 的特点是索引小、内存占用低。

  2. 基于哈希的算法:哈希的算法最常见的是 LSH(Locality-Sensitive Hashing),它通过将相似度高的数据以较高概率映射到相同的哈希值来降低高维数据的维度,从而提高检索效率。其优点是能高效处理大量高维数据的最近邻搜索问题,但可能牺牲一定的精度。

  3. 基于量化的算法:基于量化的方法主要有 SQ 和 PQ,SQ 通过将每个维度的数值转换为较低位数的形式(如从 32 位 INT 转为 8 位 INT),以牺牲一定精度来减少存储和计算成本,方法较为直接。PQ 则将高维特征空间分解成多个低维子空间,并对每个子空间单独进行量化处理,在训练时通过聚类确定 K 个中心点形成新的 ID 向量,从而显著降低向量的存储与运算需求。这两种技术的核心思想都是通过近似表示原始数据来加速检索过程,虽然能有效提升效率但同时也会带来一定的精度损失。

  4. 基于聚类的方法:层次聚类(Hierarchical Clustering,HC)是典型的基于聚类的方法,用于高效近邻检索。它通过比较不同层级的聚类中心点来快速定位目标向量。例如,在两层结构中,首先比较一级中心点,再与该一级中心点下的所有二级中心点对比,最终将向量归入距离最近的二级中心点列表。检索时采用 BBF 策略,先确定若干最接近的一级中心点,进而锁定相关二级中心点,最后从中线性搜索出最近的 K 个邻居。此方法的效果依赖于聚类质量,适合中小型数据集以探索其内部层次关系,但在大规模数据上可能面临性能瓶颈。

  5. 基于图的方法:基于图的方法最常用的是 HNSW ,几乎所有的向量检索产品都实现了 HNSW,OpenSearch 的图算法也是基于 HNSW 实现的,并在 HNSW 基础上进行了优化。HNSW 通过构建多层小世界图来加速搜索过程,每层可以看作是下一层的简化版,旨在减少距离计算次数类似于跳表。搜索时,从最稀疏的一层开始,逐步向下层推进,直到最底层找到查询点的 K 个最近邻。这种结构允许快速接近目标区域(高层),并通过更密集的连接(低层)精确定位结果,从而在保证召回率的同时提高效率。与传统的单层图索引不同,HNSW 包含多层图,层次越高节点越少,但所有上层节点都会出现在其下的每一层中,最低层则包含了所有数据点。在每一层内,HNSW 使用贪心策略进行搜索:总是选择当前最近的邻居作为下一步,如果找不到更近的,则回溯寻找次优路径,直至无法继续为止。构建过程中,每当有新节点加入时,HNSW 会先确定其在现有结构中的位置,然后将其链接到最近的几个邻居节点上,以此方式不断扩展整个网络。这种方法确保了即使是在动态更新的情况下也能保持高效且准确的搜索性能。


三、OpenSearch 向量检索版 GPU 图算法方案概述

(一) 为什么要用 GPU 图算法方案?

GPU,即图形处理器,最初被设计用于实现图形加速,随着其可编程接口的暴露,其强大的并行处理能力使其成为高性能计算的重要组成部分。


OpenSearch GPU 图算法通过利用 GPU 的并行计算能力,可以显著提升计算效率,适用于各种大规模图处理和搜索任务,在社交网络分析、路径规划、社区检测等 QPS 高、对数据时效性要求高、数据更新频繁的业务场景下,对比传统 CPU 解决方案具备明显优势。

(二) OpenSearch 向量检索版 GPU 图算法方案

1. 方案介绍

OpenSearch 向量检索版 GPU 图算法是基于并行计算硬件的邻近图构建和搜索算法,旨在高效地找到大数据集中的近似最近邻点,在构建邻近图方面优于现有的 CPU 方法,在大批量和小批量搜索中都展示了更高的吞吐量,同时保持了相当的准确性:


  • 高吞吐量:通过大规模并行处理能力,可以同时处理数千个或者数万个向量的最近邻计算任务,这使得在大规模批量查询时,也能够显著提高计算速度和效率。

  • 高性能图索引构建:通过设计并行算法,能够高效地构建图结构,每个节点的邻近关系计算可以同时在多个线程上进行,减少了全局计算的时间。


阿里云 OpenSearch 向量检索版已支持以下 GPU 规格,并计划后续支持更多规格,如您有购买计划,请通过工单联系我们。


  • 4 核 15G 1NVIDIA T4 显存 116 GB GPU 型

  • 8 核 31G 1NVIDIA T4 显存 116 GB GPU 型

  • 16 核 62G 1NVIDIA T4 显存 116 GB GPU 型

  • 24 核 93G 1NVIDIA T4 显存 116 GB GPU 型

2. 性能测试:吞吐量

在吞吐量方面,我们采用 OpenSearch 的 GPU 方案和 CPU 上 HNSW 算法进行比较,使用每秒查询数( QPS )衡量查询执行的吞吐量。测试过程中,我们选择 95%、99%、99.5% 3 个召回率范围,使用 ANN_GIST1M 数据集进行测试,数据集包含 100 万条 960 维向量数据。


CPU 吞吐量 baseline 的测试所用机型为 16core 64G ecs.g6.4xlarge,所使用的引擎内核为 2023.8 VectorStore。

一、GPU 算法本身吞吐量

为评估 GPU 算法本身性能,我们选用 3 款 NVIDIA 的高性能 GPU( T4、V100、A800)分别进行加速测试。


  • top10 Recall95+% 时




  • Recall99+%时




  • Recall99.5+%时




二、OpenSearch 中单节点集群吞吐量

将 GPU 算法集成到 OpenSearch 系统中后,客户实际使用中将引入包括网络 IO、请求处理等多个环节,为评估产品实际性能,我们再次进行 OpenSearch 中单节点集群吞吐量测试。


在测试中,不同召回率情况下,采用 OpenSearch 当前提供的 T4 GPU 规格,发现仍照比同等核数的 CPU 单节点集群采用 HNSW 算法能承载的吞吐量有大幅提升:


  • T4 GPURecall 95% batch=32 QPS=15712(是 CPU 规格的 9.7 倍)

  • T4 GPU Recall 99% batch=32 QPS=8080(是 CPU 规格的 9.36 倍)

  • T4 GPU Recall 99.5% batch=32 QPS=5500(是 CPU 规格的 9.27 倍)


从以上测试结果来看,GPU 图算法方案释放了 GPU 的并行处理能力,在加速后可以获得明显的性能提升,适合于 QPS 非常高的场景。

3. 性能测试:索引构建

算法层也支持在索引构建时使用 GPU 资源(目前还未在 OpenSearch 产品中实际支持),我们选用 ANN_GIST1M 数据集测试,结果如下:


通过测试可以看出:GPU 在索引构建速度方面明显优于 CPU,构建用时仅为 CPU 机型的 1.72%-7.71%,此外,采用 T4 机型构建出索引大小仅为原本的 58%。

四、结语

通过使用 OpenSearch 向量检索版提供的 GPU 规格与 GPU 图算法,企业与开发者可以获得近 10 倍的向量搜索性能提升。


当前 OpenSearch 向量版已经上线 GPU 规格,对于高 QPS 业务场景,我们衷心推荐您采用 GPU 图算法搭建向量检索业务,以获得性能的极大突破并降低成本。


了解详情:OpenSearch向量检索版售卖页


用户头像

还未添加个人签名 2020-10-15 加入

分享阿里云计算平台的大数据和AI方向的技术创新和趋势、实战案例、经验总结。

评论

发布
暂无评论
重磅发布 | OpenSearch 推出向量检索 GPU 图算法方案并支持 GPU 规格售卖_阿里云_阿里云大数据AI技术_InfoQ写作社区