AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


向量数据库有什么不同,企业应该怎么选择?
发布日期:2024-08-24 22:37:18 浏览次数: 1619


这一波AI的浪潮,同时也带火了向量数据库。向量数据库是一种专门设计用于处理和检索向量数据的数据库系统,其主要优势在于高效处理大规模复杂数据、支持高维数据、支持复杂查询和易于扩展。根据研究机构Gartner的报告,到2026年底,大约30%的企业将在其LLM架构中实施向量数据库,以处理复杂且快速变化的业务数据。
向量数据库能够处理各种实体(图像、文档、视频等),然后将其映射到高维向量空间中的坐标。然后建立类似HNSW(分层可导航小世界图)的索引,可以快速搜索内容。底层的基本原理并不复杂,感兴趣的可以查看另一篇文章。
大白话讲清楚GPT嵌入(Embedding)的基本原理

对比传统数据库
向量数据库的设计使其能够将数据存储、管理和表示到称为的维度空间中向量。能够将复杂的数据对象(例如:文档、单词、句子、图像、视频、音频,甚至字符)表示到高维空间中,以使生成式 AI 模型能够对其执行各种 AI 任务和操作。


主要类型
支持向量搜索的数据库选择很多,主要可以分成几类:
  1. 专用的向量数据库,原生就支持各种向量运算,如点积、余弦相似度等。这些数据库专为处理高维度数据而设计,能够应对大量查询请求,并能迅速完成向量间的相似性搜索。
  2. 支持向量的SQL数据库(例如pgvector),SQL数据库通过它们的向量支持扩展,提供了一种将向量数据整合到现有数据存储系统中的方式。这类数据库在构建索引和处理大量向量数据时性能表现并不理想,更适合于向量数据量较小(少于10万个向量)且向量数据仅作为应用程序的一个补充功能的场景。相反,如果向量数据是应用的核心,或者对可扩展性有较高要求,专用向量数据库就会是更合适的选择。
  3. 支持向量的NoSQL数据库(例如Redis),NoSQL数据库中新增加的向量支持功能尚属初级阶段,且尚未经过充分的时间验证。
  4. 全文搜索数据库(例如ElasticSearch)能支持比较全面的文本检索和高级分析功能。但是当涉及到执行向量相似性搜索和处理高维度数据时,它们与专门的向量数据库相比就不够强了。这些数据库往往需要与其他工具搭配使用才能实现语义搜索,因为它们主要依赖于倒排索引而不是向量索引。

如何选择
面对众多的选择,往往很难有一个简单的评价方式,主要还是看自身的应用场景和数据库的匹配度。除了支持向量维度大小、索引类型、性能指标等因素外,还有以下因素需要考虑:
  • 混合搜索还是关键词搜索?关键词 + 矢量搜索的混合搜索可产生最佳结果,每个矢量数据库供应商都意识到了这一点,并提供了自己的定制混合搜索解决方案
  • 本地部署还是云原生?许多供应商大力推销“云原生”,好像基础设施是世界上最大的痛点,但从长远来看,本地部署可能更经济,因此也更有效
  • 开源还是完全托管?大多数供应商都基于源代码可用或开源代码库构建,以展示其底层方法,然后将管道的部署和基础设施部分货币化(通过完全托管的 SaaS)。仍然可以自行托管其中许多,但这需要额外的人力和内部技能要求。

编程语言
如今,快速、响应迅速且可扩展的数据库通常使用 Golang 或 Rust 等现代语言编写。在专门构建数据库的供应商中,唯一使用 Java 构建的供应商是 Vespa。Chroma 目前是基于 Clickhouse 的 Python/TypeScript 包装器,并使用 C++ 构建的 OLAP 数据库。有趣的是,尽管 Pinecone和 Lance(LanceDB 的底层存储格式)最初是用 C++ 编写的,但它们都是用 Rust 彻底重写的。


发布时间
Vespa 是最早将向量相似性搜索与当时占主导地位的 BM25 基于关键字的搜索算法结合起来的供应商之一。Weaviate 很快在 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、Weaviate 和 LanceDB 等数据库已经实现了自己的 DiskANN 版本(或正在积极实现),是该领域值得关注的数据库。


最后
通常技术团队都会习惯沿用现有的技术栈,对引入新的技术比较谨慎,这也是对的。特别是前期对技术和业务需求是否足够匹配不是很明确的时候,选择使用通用的数据库会是一个比较好的策略。当业务能得到进一步发展,有更大的项目收益,需要更高的性能要求,再考虑专用的向量数据库。
另一个从作者个人的喜爱出发,会更倾向开源的数据库。从历史上看,在数据库领域,最成功的商业模式是经过实践检验的方法,即先将代码开源代码(以便围绕该技术建立一个充满热情的社区),然后通过托管服务或云产品将数据库商业化。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询