向量数据库有什么不同,企业应该怎么选择?
AI浪潮席卷而来,向量数据库也随之站到了聚光灯下。简单来说,向量数据库就是专门为处理和检索向量数据而生的系统,它的核心优势在于高效处理大规模复杂数据、支持高维数据、支持复杂查询,并且扩展性相当友好。根据Gartner的预测,到2026年底,大约30%的企业会在自己的大语言模型架构中引入向量数据库,用来应对那些复杂多变、节奏飞快的业务数据。
向量数据库能处理各种实体——图像、文档、视频等等——然后将它们映射到高维向量空间中的坐标点。再通过类似HNSW(分层可导航小世界图)这样的索引结构,实现快速的内容搜索。底层的基本原理其实并不复杂,这里就不再展开赘述了。
对比传统数据库
向量数据库的设计思路,是把数据存储、管理和表示在高维向量空间中。它可以把复杂的数据对象(比如文档、单词、句子、图像、视频、音频,甚至字符)统统转化为高维空间中的向量,让生成式AI模型能够对它们执行各种AI任务和操作。
主要类型
市面上支持向量搜索的数据库选择非常多,大体可以分成这么几类:
- :原生支持各种向量运算,比如点积、余弦相似度。这类系统专为高维数据设计,能扛住海量查询请求,快速完成向量间的相似性搜索。
专用的向量数据库
- (比如pgvector):SQL数据库通过扩展向量支持,提供了一种将向量数据整合到现有存储体系的方式。不过,这类数据库在构建索引和处理大量向量数据时表现并不理想,更适合向量数据量较小(少于10万条)且向量功能只是应用锦上添花的场景。相反,如果向量是应用的核心,或者对扩展性有硬性要求,专用向量数据库会是更稳妥的选择。
支持向量的SQL数据库
- (比如Redis):NoSQL数据库新增的向量支持功能还比较初级,尚未经过大规模实践的充分验证。
支持向量的NoSQL数据库
- (比如Elasticsearch):能支持全面的文本检索和高级分析。但在向量相似性搜索和高维数据处理方面,和专用向量数据库相比就力不从心了。这类系统通常需要搭配其他工具才能实现语义搜索,因为它主要依赖的是倒排索引而非向量索引。
全文搜索数据库
如何选择
面对这么多选项,很难有一个通用的评价标准,关键还是看自身应用场景与数据库的匹配度。除了向量维度大小、索引类型、性能指标这些基础因素,还有几个维度值得关注:
- 关键词搜索加上向量搜索的混合方案往往能产出最佳结果。每个向量数据库供应商都意识到了这一点,并纷纷推出了自己的定制混合搜索方案。
混合搜索还是关键词搜索?
- 很多供应商喜欢大力推销“云原生”,好像基础设施是全世界最大的痛点。但从长远看,本地部署可能在经济性上更有优势,因此也更实际。
本地部署还是云原生?
- 大多数供应商基于开源代码库构建,先展示底层方法,再通过完全托管的SaaS服务变&现——把部署和基础设施部分转化为商业收入。当然,很多产品也支持自行托管,但这需要额外的人力和内部技能。
开源还是完全托管?
编程语言
如今,响应快、扩展性强的数据库大多用Golang或Rust这类现代语言编写。在专门构建数据库的供应商中,唯一用Ja va构建的是Vespa。Chroma目前是基于ClickHouse的Python/TypeScript包装器,底层是C++构建的OLAP数据库。有趣的是,Pinecone和Lance(LanceDB的底层存储格式)最初都用C++编写,后来都用Rust彻底重写了一遍。
发布时间
Vespa最早把向量相似性搜索和当年主流的BM25关键词搜索结合起来。Wea viate紧随其后,在2018年底推出了开源专用向量搜索数据库产品。到了2019年,Milvus(也是开源)发布,这个领域的竞争开始变得更加激烈。注意,时间线中的Zilliz没有单独列出,因为它是Milvus的商业母公司,提供基于Milvus构建的完全托管云方案。2021年,Vald、Qdrant和Pinecone三家新选手进入战场。Elasticsearch、Redis和PostgreSQL这些老牌数据库在此之前一直缺席,直到2022年及之后才开始提供向量搜索功能,比不少人想象的要晚得多。
开源或者闭源
Zilliz是一个闭源的全托管商业解决方案,但它完全建立在Milvus之上,本质上就是Milvus的母公司。Pinecone则是完全闭源的。
部署方式
数据库供应商提供的典型托管方式包括自托管(本地)和托管/云原生,这两种都遵循客户端-服务器架构。还有一种较新的选项是嵌入式模式——数据库本身以无服务器方式与应用程序代码紧密耦合。目前只有Chroma和LanceDB可以按嵌入式数据库的方式使用。
索引算法
大多数供应商采用混合向量搜索方法,以各种方式结合关键词和向量搜索。不过,底层具体的向量索引差异很大。绝大多数数据库供应商选择定制HNSW(分层可导航小世界图)实现。将向量索引保存到磁盘正迅速成为一个关键目标,这样才能处理比内存更大的数据集。2019年NeurIPS上关于DiskANN的论文表明,它有潜力成为搜索数十亿数据点时最快的磁盘索引算法。Milvus、Wea viate和LanceDB等数据库已经实现或正在积极实现自己的DiskANN版本,这个方向值得关注。
最后
通常技术团队习惯沿用现有技术栈,对新技术的引入比较谨慎,这完全可以理解。尤其是在前期对技术和业务需求匹配度不够明确的时候,选择通用数据库是一个比较稳妥的策略。等业务进一步发展,有了更大的项目收益和更高的性能要求,再考虑专用向量数据库。从行业长期实践来看,开源数据库往往能形成更活跃的社区和更健康的生态,是值得优先考虑的方向——毕竟在数据库领域,最成功的商业模式已经被反复验证:先把代码开源,围绕技术建立热情社区,再通过托管服务或云产品将数据库商业化。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名