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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: OpenSearch向量检索版推出了面向企业开发者的GPU图算法方案(CAGRA算法),支持客户直接购买GPU规格节点,是国内首家支持GPU规格的向量检索产品。

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

OpenSearch向量检索版在阿里云上正式推出面向企业开发者的 GPU图算法的方案(CAGRA算法),并支持客户直接购买GPU规格节点,这是国内云上首家支持GPU规格的向量检索产品

GPU能提供大规模并行的处理能力,有效解提升向量检索的性能。企业通过使用这种GPU算法方案,能获得近10倍的向量搜索实际性能提升,非常适合高QPS业务场景。

一、什么是向量检索?

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

1.jpg

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

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

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

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


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


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


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


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


2.jpg

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

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

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


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

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

1. 方案介绍

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

  • 高吞吐量:通过大规模并行处理能力,可以同时处理数千个或者数万个向量的最近邻计算任务,这使得在大规模批量查询时,也能够显著提高计算速度和效率。
  • 高性能图索引构建:通过设计并行算法,能够高效地构建图结构,每个节点的邻近关系计算可以同时在多个线程上进行,减少了全局计算的时间。


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

  • 4核15G 1*NVIDIA T4 显存1*16 GB GPU型
  • 8核31G 1*NVIDIA T4 显存1*16 GB GPU型
  • 16核62G 1*NVIDIA T4 显存1*16 GB GPU型
  • 24核93G 1*NVIDIA T4 显存1*16 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。

1) GPU算法本身吞吐量

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


  • top10 Recall95+% 时

3.jpg

GPU加速测试(top10 95%召回率)

T4

V100

A800

检索性能

batch=1

8倍

10倍

10倍

batch=32

14倍

42倍

53倍


  • Recall99+%时

4.jpg

GPU加速测试(top10 99%召回率)

T4

V100

A800

检索性能

batch=1

10倍

16倍

19倍

batch=32

13倍

30倍

45倍


  • Recall99.5+%时

5.jpg

GPU加速测试(top10 99.5%召回率)

T4

V100

A800

检索性能

batch=1

11倍

26倍

27倍

batch=32

12倍

34倍

46倍


2) OpenSearch中单节点集群吞吐量

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

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

  • T4 GPU Recall 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数据集测试,结果如下:


索引构建

CPU

T4

V100

A800

索引构建用时

1103s

85s

44s

19s

索引大小

3.8G

2.2G

-

-


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

四、结语

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


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


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

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
12月前
|
传感器 人工智能 监控
智慧工地 AI 算法方案
智慧工地AI算法方案通过集成多种AI算法,实现对工地现场的全方位安全监控、精准质量检测和智能进度管理。该方案涵盖平台层、展现层与应用层、基础层,利用AI技术提升工地管理的效率和安全性,减少人工巡检成本,提高施工质量和进度管理的准确性。方案具备算法精准高效、系统集成度高、可扩展性强和成本效益显著等优势,适用于人员安全管理、施工质量监控和施工进度管理等多个场景。
720 0
|
4月前
|
缓存 异构计算 Docker
构建高性能LLM推理服务的完整方案:单GPU处理172个查询/秒、10万并发仅需15美元/小时
本文将通过系统性实验不同的优化技术来构建自定义LLaMA模型服务,目标是高效处理约102,000个并行查询请求,并通过对比分析确定最优解决方案。
380 0
构建高性能LLM推理服务的完整方案:单GPU处理172个查询/秒、10万并发仅需15美元/小时
|
传感器 人工智能 监控
智慧电厂AI算法方案
智慧电厂AI算法方案通过深度学习和机器学习技术,实现设备故障预测、发电运行优化、安全监控和环保管理。方案涵盖平台层、展现层、应用层和基础层,具备精准诊断、智能优化、全方位监控等优势,助力电厂提升效率、降低成本、保障安全和环保合规。
575 2
智慧电厂AI算法方案
|
5月前
|
自然语言处理 算法 数据可视化
文本聚类效果差?5种主流算法性能测试帮你找到最佳方案
本文探讨了自然语言处理中句子嵌入的聚类技术,使用Billingsmoore数据集(925个英语句子)进行实验。通过生成句子嵌入向量并可视化分析,对比了K-Means、DBSCAN、HDBSCAN、凝聚型层次聚类和谱聚类等算法的表现。结果表明,K-Means适合已知聚类数量的场景,DBSCAN和HDBSCAN适用于未知聚类数量且存在异常值的情况,而谱聚类在句子嵌入领域表现不佳。最终建议根据数据特征和计算资源选择合适的算法以实现高质量聚类。
274 0
文本聚类效果差?5种主流算法性能测试帮你找到最佳方案
|
6月前
|
Kubernetes 调度 异构计算
一文搞懂 GPU 共享方案: NVIDIA Time Slicing
本文主要分享 GPU 共享方案,包括如何安装、配置以及使用,最后通过分析源码了 TImeSlicing 的具体实现。通过配置 TImeSlicing 可以实现 Pod 共享一块物理 GPU,以提升资源利用率。
295 11
|
8月前
|
算法 数据可视化 BI
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
本程序基于免疫算法实现物流仓储点选址优化,并通过MATLAB 2022A仿真展示结果。核心代码包括收敛曲线绘制、最优派送路线规划及可视化。算法模拟生物免疫系统,通过多样性生成、亲和力评价、选择、克隆、变异和抑制机制,高效搜索最优解。解决了物流仓储点选址这一复杂多目标优化问题,显著提升物流效率与服务质量。附完整无水印运行结果图示。
262 20
基于免疫算法的最优物流仓储点选址方案MATLAB仿真
|
6月前
|
存储 监控 算法
局域网上网记录监控的 C# 基数树算法高效检索方案研究
在企业网络管理与信息安全领域,局域网上网记录监控是维护网络安全、规范网络行为的关键举措。随着企业网络数据量呈指数级增长,如何高效存储和检索上网记录数据成为亟待解决的核心问题。基数树(Trie 树)作为一种独特的数据结构,凭借其在字符串处理方面的卓越性能,为局域网上网记录监控提供了创新的解决方案。本文将深入剖析基数树算法的原理,并通过 C# 语言实现的代码示例,阐述其在局域网上网记录监控场景中的具体应用。
166 7
|
5月前
|
机器学习/深度学习 监控 算法
局域网行为监控软件 C# 多线程数据包捕获算法:基于 KMP 模式匹配的内容分析优化方案探索
本文探讨了一种结合KMP算法的多线程数据包捕获与分析方案,用于局域网行为监控。通过C#实现,该系统可高效检测敏感内容、管理URL访问、分析协议及审计日志。实验表明,相较于传统算法,KMP在处理大规模网络流量时效率显著提升。未来可在算法优化、多模式匹配及机器学习等领域进一步研究。
165 0
|
12月前
|
机器学习/深度学习 传感器 人工智能
智慧无人机AI算法方案
智慧无人机AI算法方案通过集成先进的AI技术和多传感器融合,实现了无人机的自主飞行、智能避障、高效数据处理及多机协同作业,显著提升了无人机在复杂环境下的作业能力和安全性。该方案广泛应用于航拍测绘、巡检监测、应急救援和物流配送等领域,能够有效降低人工成本,提高任务执行效率和数据处理速度。
932 2
智慧无人机AI算法方案
|
传感器 人工智能 监控
智慧化工厂AI算法方案
智慧化工厂AI算法方案针对化工行业生产过程中的安全风险、效率瓶颈、环保压力和数据管理不足等问题,通过深度学习、大数据分析等技术,实现生产过程的实时监控与优化、设备故障预测与维护、安全预警与应急响应、环保监测与治理优化,全面提升工厂的智能化水平和管理效能。
1492 0
智慧化工厂AI算法方案

相关产品

  • 智能开放搜索 OpenSearch