作者 | 星爵
出品 | CSDN(ID:CSDNnews)
实时索引

向量数据库常日须要持续且高速地摄取和索引新的向量数据。实时索引的能力对付保持数据库与最新数据的同步至关主要,避免产生瓶颈或积压。
高吞吐量
许多利用向量数据库的运用程序,例如推举系统、语义搜索引擎和非常检测等,都须要实时或近实时的查询处理。高吞吐量确保向量数据库能够同时处理大量涌入的查询,为终极用户供应高性能的做事。
和英伟达互助
在去年的 NVIDIA GTC 大会上,Jensen 在主题演讲中谈到了向量数据库并先容了 Milvus 的项目。在此后的一年里,我们 Zilliz 的工程师和 NVIDIA 的工程师一起互助, 探索用 GPU 来加速向量运算处理,提升向量数据库的实时处理性能。向量数据库的核心运算包括相似度打算和矩阵运算,这些运算具有并行性高和打算密集等特点。GPU 凭借其成千上万的运算核心和强大的并行处理能力,成为了加速这些运算的空想选择。
在上周召开的 NVIDIA GTC 大会上,我们发布了和英伟达互助的最新成果 —— Milvus 2.4 版本。我们在业界首次采取了英伟达 GPU 的高效并行处理能力和 RAPIDS cuVS 库中新推出的 CAGRA( CUDA-Accelerated Graph Index for Vector Retrieval )技能,供应基于 GPU 的向量索引和搜索加速能力。基准测试显示,与目前市情上最前辈的基于 CPU 处理器的 HNSW 索引技能比较,新版 GPU 加速 Milvus 能供应高达 50 倍的向量搜索性能提升。
对付希望采取我们 Milvus 全托管数据库云做事 Zilliz Cloud 的用户来说,我们操持在今年晚些时候推出 GPU 加速的升级产品。截至当前,Zilliz Cloud 已经实现包括阿里云、腾讯云、AWS、谷歌云和微软云在内的环球 5 大云 13 个节点的全覆盖,除了分布在杭州、北京、深圳的 5 个海内做事节点,其他 8 个节点分布在外洋,包括美国的弗吉尼亚州、俄勒冈州、德国的法兰克福、新加坡等城市和地区。
GPU 如何加速 Milvus
英伟达开拓的 CAGRA 是一个利用 GPU 的高性能能力为向量数据库事情负载供应高吞吐量的 GPU 加速框架。接下来就来看看我们是如何将 CAGRA 与 Milvus 系统进行整合的。
我们知道,Milvus 是为云原生环境设计,采取模块化设计理念,将系统分为多个组件,分别处理客户端要求、数据处理以及向量数据的存储和检索。得益于这种模块化设计,Milvus 可以轻松地更新或升级特定模块,而无需改变模块间的接口,使得在 Milvus 中集成 GPU 加速变得大略可行。
Milvus 2.4 架构图
Milvus 2.4 的架构包括折衷器、访问层、行列步队、事情节点和存储层等组件。事情节点进一步细分为数据节点、查询节点和索引节点。个中,索引节点卖力构建索引,查询节点卖力实行查询。
为了充分利用GPU的加速能力,CAGRA 被集成到了 Milvus 的索引节点和查询节点中。这种集成使得打算密集型任务,如索引构建和查询处理,能够被转移到 GPU 上实行,从而利用其并行处理能力。
在 Milvus 的索引节点中,CAGRA 被集成到了索引构建算法中,利用 GPU 硬件来高效地构建和管理高维向量索引,显著减少了索引大规模向量数据集所需的韶光和资源。
同样,在 Milvus 的查询节点中,CAGRA 被用于加速实行繁芜的向量相似度查询。借助GPU的处理能力,Milvus 能够以前所未有的速率实行高维间隔打算和相似性搜索,从而加快查询相应韶光并提升整体吞吐量。
性能评测结果
在本次评测中,我们选用了 VectorDBBench 的两个公开向量数据集,评估 Milvus 在不同数据量和向量维度下的性能和可扩展性:
OpenAI-500K-1536-dim:包含50万个1,536维的向量,由 OpenAI 措辞模型天生Cohere-1M-768-dim:包含100万个768维的向量,由Cohere措辞模型天生在性能评估过程中,我们利用了 AWS 上的三种公开实例类型:
m6id.2xlarge:搭载Intel Xeon 8375C 处理器的 CPU 实例g4dn.2xlarge:配备NVIDIA T4 处理的GPU加速实例g5.2xlarge:配备NVIDIA A10G 处理器的GPU加速实例基于 AWS 的评测环境
我们通过这些不同的实例类型来评估 Milvus 2.4 在不同硬件配置下的性能和效率,个中m6id.2xlarge 作为基于 CPU 处理器的性能基准,而 g4dn.2xlarge 和 g5.2xlarge 则用来评估GPU 加速的上风。
索引构建韶光
在索引构建韶光的评测中,我们创造对付 Cohere-1M-768-dim 数据集,利用 CPU( HNSW )的索引构建韶光为 454 秒,而利用 T4 GPU( CAGRA )仅为66秒,A10G GPU( CAGRA )更是缩短到了 42 秒。对付 OpenAI-500K-1536-dim 数据集,CPU( HNSW )的索引构建韶光为359秒,T4 GPU( CAGRA )为45秒,A10G GPU(CAGRA)则为22 秒。
索引构建韶光评测结果
这些结果清楚地表明,GPU 加速框架 CAGRA 在索引构建方面明显优于基于 CPU 的 HNSW,个中 A10G GPU 在两个数据集上都是最快的。与 CPU 实现比较,CAGRA 供应的 GPU 加速将索引构建韶光缩短了一个数量级,展示了利用 GPU 并行性进行打算密集型向量运算的上风。
吞吐量
在吞吐量方面,我们比较了集成 CAGRA GPU 加速的 Milvus 与利用 CPU 上 HNSW 索引的标准 Milvus 实现。评估指标是每秒查询数( QPS ),用于衡量查询实行的吞吐量。在向量数据库的不同运用处景中,查询的批量大小( 单条查询处理的查询数量 )每每不同。在测试过程中,我们采取了1、10 和 100 这三种不同的批量大小,获取真实而全面的评测结果数据。
吞吐量评测结果
从评估结果来看,对付批量大小为 1 的情形,T4 GPU 比 CPU 快 6.4 到 6.7 倍,A10G GPU 则快 8.3 到 9 倍。当批量大小增加到 10 时,性能提升更加显著:T4 GPU 快 16.8 到18.7倍,A10G GPU 快25.8 到 29.9 倍。当批量大小为 100 时,性能提升持续增长:T4 GPU 快 21.9 到 23.3 倍,A10G GPU 快 48.9 到 49.2 倍。
这些结果表明,利用 GPU 加速向量数据库查询可以得到巨大的性能提升,尤其是对付更大的批量大小和更高维度的数据。集成 CAGRA 的 Milvus 开释了 GPU 的并行处理能力,实现了显著的吞吐量改进,非常适宜哀求极致性能的关键场景下的向量数据库事情负载。
凡是过往,皆为序章
在 2019 年 3 月 18 日, Zilliz 的工程师们在上海漕河泾的厂房里敲下了向量数据库历史上的环球第一行代码。2020 年,Milvus 项目加入 Linux 基金会并成功毕业。自推出以来,Milvus 在 GitHub 上拥有超过 26,000 个星标和 260 多位贡献者,环球***和安装量超过 2000 万次,已经成为环球利用最广泛的向量数据库之一。Milvus 已经被 5,000 多家企业所采取,做事于AIGC、电子商务、媒体、金融、电信和医疗等多个行业。
在 5 年后的本日,我们和英伟达互助推出 Milvus 2.4,再次展现了开放创新和社区驱动发展的力量,为向量数据库带来了 GPU 加速的新纪元。这一里程碑事宜预示着又一个技能变革的来临,向量数据库有望经历类似于英伟达在过去 8 年中将 GPU 算力提高 1000 倍的指数级性能飞跃。
在未来 10 年里,我们愿和广大 AI 开拓者一起共同见证向量数据库性能的 1000 倍飞跃。这将引发一场数据处理办法的范式转变,将重新定义我们处理和利用非构造化数据的深度和广度,为我们早日通向 AGI 铺平道路。
作者先容:
星爵是 Zilliz 的创始人兼首席实行官。Zilliz 是一家致力于开拓用于 AI 运用的非构造化数据平台的公司。他是环球最盛行的开源向量数据库 Milvus 的创造者。Milvus 被环球超过 5000 家企业利用,累计***安装量超过 20M。星爵还积极参与 LF AI & Data 开源基金会,从 2020 年至今一贯担当董事,并在 2020 年和 2021 年担当董事会主席。在创立 Zilliz 之前,他是 Oracle 12c 云数据库项目的创始工程师。星爵在华中科技大学得到学士学位,在威斯康星大学麦迪逊分校得到硕士学位。
干系链接:
Zilliz 官网:https://zilliz.com/Milvus :https://github.com/milvus-io/milvusRaft:https://github.com/rapidsai/raftVectorDBBench:https://github.com/zilliztech/VectorDBBench