并非所有向量数据库都生来平等 - 找到属于你的向量数据库( 二 )


其次,向量数据库在处理高维向量数据时通常能够提供更高的性能 。这种性能优势不只是源于对向量索引的优化,更多地在于向量数据库对算力资源的有效利用和对数据分布的深入理解 。优秀的向量数据库会基于 CPU SIMD、GPU 等算力进行优化,我们的测试结果显示,GPU 索引的性能可能优于 CPU 的十倍以上 。相比之下,传统数据库虽然增加了对向量数据的支持,但其能力往往受限于已有的系统架构,因此很难充分利用算力资源 。同时,传统数据库也无法像专门针对向量数据设计的数据库那样,更有效地处理向量数据的分片、增量插入和删除等问题 。

并非所有向量数据库都生来平等 - 找到属于你的向量数据库

文章插图
向量数据库的终极武器就是AI化,它不仅是DBfor AI的最佳实践,查询不需要100%准确的特性也使得向量数据库成为了AIfor DB的理想试验场 。向量数据库可以无缝地与 LLM 应用集成,提供一站式的数据管理和处理解决方案,成为多模态数据之间的重要桥梁,这一生态优势是传统数据库难以超越的 。同时,向量数据库本身重度依赖Embedding、Ranking、Clustering 等机器学习技术,与传统数据库开发者之间存在较大的技术鸿沟,想完成跨界绝非易事 。
正因为此,我们可以看到传统数据库在向量检索领域并没有太多惊艳的实践案例,且或多或少地存在更新困难、性能慢、标量向量查询无法打通、索引任务和查询相互影响等问题 。
03
【并非所有向量数据库都生来平等 - 找到属于你的向量数据库】优秀的向量数据库,到底需要哪些能力?
那么,如何打造出一款出色的向量数据库呢?在我看来,架构、算法、计算能力以及对场景的深入理解是关键 。
首先,我们谈论架构 。向量数据库与传统数据库有很多不同之处,例如,向量索引构建倾向于离线操作且消耗大量计算资源,这意味着将计算密集任务 Offload 到数据库的概念在向量数据库中能得到更好的实现 。实现 Offload 计算任务的关键在于实现存储计算分离,只有在系统完全无状态化的情况下,才能解除数据和计算能力之间的耦合,实现真正的弹性 。传统的数据库的架构设计并没有考虑向量数据本身的特性,比如索引的不可变性、计算资源的消耗、内存使用成为主要瓶颈,这便带来了一个问题——尽管传统数据库可以支持向量插件,但对增删改查和存算分离等特性并不能进行有力的支持 。
目前,绝大多数向量数据库直接使用如 Faiss 或者 HNSW 这样的向量检索库,这可以快速获得不错的性能 。然而,随着向量数据库使用场景的复杂化,传统向量索引在满足开发者对于标量过滤、多向量混合查询的需求方面变得力不从心,提升性能需要综合考虑向量和标量之间的关系 。每种向量索引在性能、成本、功能上各有优劣,无法一刀切,这也是我们决定重新自主研发向量数据查询引擎的关键原因 。
接下来,是底层硬件能力的应用 。这也是向量数据库与传统数据库的重大区别之一 。近年来,随着 NVMe,RDMA 等技术的发展和普及,传统数据库的瓶颈逐渐从磁盘和网络转向了 CPU,但其计算密度仍然远远低于向量数据库所需的稠密向量距离计算 。随着图索引越来越成为向量检索的主流,它带来的内存/IO 随机访问问题开始成为了向量数据库进一步优化性能的关键挑战 。
最后,我们需要深度理解用户场景 。比如在大模型知识库场景下,往往有多租户查询、行级权限管理、动态 Schema 等业务需求 。对于训练数据的检索,则需要非常灵活的标量过滤能力,海量数据的离线导入能力以及磁盘索引的能力来降低海量数据的服务成本 。如同十多年前的移动互联网浪潮成就了MongoDB,这一波AIGC的浪潮也一定会给数据库带来更多场景的需求和新的挑战 。
04
做好 Vector Database - 我们是专业的!
如今 Milvus 即将迎来诞生的第五个年头,全面更新的 2.3 版本于上周发布 。Milvus 2.3 版本正式支持了GPU索引、RangeSearch、MMap加载数据等更多能力,帮助用户进一步降低了向量检索的使用成本 。不仅如此,基于开源 Milvus 的托管云服务 Zilliz Cloud已在国内全面发布,用户可以基于向量检索服务和大模型 API 快速构建自己的 AIGC 应用 。
并非所有向量数据库都生来平等 - 找到属于你的向量数据库

文章插图

并非所有向量数据库都生来平等 - 找到属于你的向量数据库

文章插图
对比开源的 Milvus,Zilliz Cloud更强调降低用户的总体成本,包括硬件成本,开发成本以及维护成本 。这不仅有助于快速推出用户应用以抢占市场份额,同时也确保了应用的稳定运行 。


推荐阅读