什么是矢量数据库?

什么是向量数据库?

向量数据库可存储、管理高维向量数据并为其编制索引。数据点以称为“向量”的数组形式存储,并根据相似性对其进行聚类。这种设计可实现低延迟查询,使其成为 AI 应用程序的理想选择。

向量数据库可提供推动生成式人工智能 (AI) 用例和应用程序所需的速度和性能,因此越来越受欢迎。根据 Gartner 的预测,到 2026 年,将有 30% 以上的企业采用向量数据库,以便通过相关业务数据来构建自己的基础模型。1

向量数据库与传统数据库的对比

不同于采用行和列的传统关系数据库,向量数据库中的数据点由具有固定维数的向量来表示。由于向量数据库使用高维向量嵌入,因此能够更好地处理非结构化数据集。

数据的本质已发生深刻变化。它不再局限于可轻松存储在传统数据库中的结构化信息。非结构化数据(包括社交媒体帖子、图片、视频、音频剪辑等)同比增长 30% 至 60%。2

关系数据库擅长管理特定格式的结构化和半结构化数据集。将非结构化数据源加载到传统的关系数据库中,以便存储、管理人工智能 (AI) 的数据,并为其做好准备,此过程往往极其费力,尤其当其涉及相似性搜索等新兴生成式用例时。

传统搜索通常使用离散标记或特征(例如关键字、标签或元数据)来表示数据。传统搜索依赖精确匹配来检索相关结果。例如,搜索“智能手机”会返回包含单词“智能手机”一词的结果。

与此相反,向量搜索将数据表示为密集向量,即大多数或所有元素都非零的向量。向量在连续向量空间中表示,连续向量空间是将数据表示为向量的数学空间。

向量表示能够实现相似性搜索。例如,“智能手机”的向量搜索也可能返回“手机”和“移动设备”的结果。

密集向量的每个维度对应数据的潜在特征或方面。潜在特征是一种无法直接观察到但可以通过数学模型或算法从数据中推断出来的隐含特征或属性。

潜在特征可以采集数据中隐藏的模式和关系,从而在高维空间中将项目更有意义、更准确地表示为向量。

什么是向量?

向量是 张量 的子集,在机器学习 (ML) 中,张量是 n 维空间中一组数字或一个数字组分组的总称。张量是数据的数学记账工具。从最小的元素开始:

  • 标量 是一种零维张量,包含一个数字。例如,对天气数据进行建模的系统可能会将单日的最高气温(华氏度)标量形式表示为 85

  • 然后,向量是一维(或一次一阶)张量,包含相同类型数据的多个 标量。例如,天气模型可能以向量形式使用一天的最低、平均和最高温度:62、77、85。每个标量组件是向量的一个特征(即一个维度),代表当天天气的一个特征。

向量数字可以表示机器学习模型生成的复杂对象,例如单词、图片、视频和音频。这种包含多个特征的高维向量数据对于机器学习、自然语言处理 (NLP) 和其他 AI 任务至关重要。向量数据的一些示例用途包括:

  • 文本:聊天机器人需要理解自然语言。它们依靠表示词语、段落和整个文档的向量来实现这一目标。

  • 图像:图像像素可以用数字数据来描述,然后组合成该图像的高维向量。

  • 语音或音频:与图像一样,声波也可以分解为数字数据并表示为向量,从而支持语音识别等 AI 应用程序。

矢量数据库中的核心概念

理解矢量数据库的运作,关键在于两个核心概念:矢量,以数值形式描述数据;以及矢量嵌入,将非结构化内容转换为能捕捉含义与上下文的高维表示。

矢量

矢量是张量的一个子集。在机器学习 (ML) 中,张量是 n 维空间中一组数字(或多组数字的组合)的通用术语。张量充当数据的数学簿记工具。从最小的元素开始:

  • 标量是零维张量,包含单个数字。例如,一个模拟天气数据的系统可能会将某一天的最高温度(以华氏度为单位)用标量形式表示为 85。
  • 矢量是一维(或称一次、一阶)张量,包含多个同一数据类型的标量。接着上面的例子,一个天气模型可能会将一天的最低、平均和最高温度用矢量形式表示: 62, 77, 85。每个标量分量都是该矢量的一个特征,即一个维度,代表了当天天气的一个特征。

换句话说,矢量是将数字组织成结构化形式的一种方式。但对于 AI 系统来说,要处理非结构化信息,必须将这些数据转换为数值数组。这种转换是通过矢量嵌入来实现的。

矢量嵌入

矢量嵌入是数据点的数值表示形式,它将各种类型的数据(包括文本和图像)转换为机器学习模型可以处理的数字数组。

为了实现这一点,嵌入模型学习如何将输入数据映射到一个高维矢量空间。该矢量空间反映了通过特定任务的损失函数学习到的模式,损失函数用于量化预测误差。随后,下游的 AI 模型(例如深度学习中使用的人工神经网络)即可利用矢量嵌入来执行分类、检索或聚类等任务。

考虑一个小型的单词语料库,其中的词嵌入被表示为三维矢量:

  • cat [0.2, -0.4, 0.7]
  • dog [0.6, 0.1, 0.5]

在这个例子中,每个单词(“cat”)都与一个唯一的矢量([0.2, -0.4, 0.7])相关联。矢量中的值代表了该单词在一个三维矢量空间中的位置。具有相似含义或上下文的单词,其矢量表示预计也会相似。“cat”和“dog”的矢量会彼此接近,反映了它们的语义关系。

类似地,单词“car”和“vehicle”含义相同但拼写不同。对于 AI 应用来执行语义搜索,“car”和“vehicle”的矢量表示必须捕捉到它们共享的含义。矢量嵌入以数值形式编码了这种含义,使其成为推荐引擎、聊天机器人和生成式应用(如 OpenAI 的 ChatGPT)的支柱。

AI Academy

数据管理是生成式 AI 的秘诀吗?

深入了解为什么高质量数据对于成功使用生成式 AI 至关重要。

什么是向量嵌入?

向量嵌入是数据点的数字表示,可将各种类型的数据(包括非数学数据,如单词、音频或图像)转换为机器学习模型可处理的数字数组。

人工智能 (AI) 模型,从简单的线性回归算法到深度学习中使用的复杂神经网络,都是通过数学逻辑运行的。

AI 模型使用的任何数据,包括非结构化数据,都需要用数字记录下来。向量嵌入是一种将非结构化数据点转换为表达该数据原始含义的数字数组的方法。

下方是一个非常小的语料库(2 个单词)的词嵌入简版示例,其中每个单词都表示为一个 3 维向量:

  • 猫 [0.2, -0.4, 0.7]
  • dog [0.6, 0.1, 0.5]

在此示例中,每个词语(“猫”) 都与一个唯一的向量([0.2,-0.4,0.7])相关联。向量中的值表示词语在连续的三维向量空间中的位置。

具有相似含义或上下文的单词应具有相似的向量表示。例如“猫”和“狗”的向量靠得很近,反映了它们的语义关系。

嵌入模型经过训练,可将数据点转换为向量。向量数据库存储这些嵌入模型的输出结果并编制索引。在数据库中,几乎任何数据类型的向量都可以根据语义含义或特征分组或识别为对立面。

向量嵌入是推荐、聊天机器人和 ChatGPT 等生成式应用程序的核心元素。

以“汽车”和“车辆”这两个词为例。它们的意思相似,但拼写不同。为使 AI 应用程序能实现有效的语义搜索,“汽车”和“车辆”的向量表示必须采集其语义相似之处。在机器学习方面,嵌入表示用于对此语义信息进行编码的高维向量。

如何使用向量数据库?

向量数据库在 AI 和 ML 应用程序中具有三大功能:

  • 向量存储
  • 向量索引创建
  • 基于查询或提示的相似性搜索

在运行过程中,向量数据库通过使用多种算法来进行近似最近邻 (ANN) 搜索。然后,这些算法被汇集到一个管道中,以快速准确地检索和提供与被查询向量相邻的数据。

例如,ANN 搜索可以在电子商务目录中查找视觉上相似的产品。其他用途包括异常检测、分类和语义搜索。由于数据集只需在模型中运行一次,因此结果可在几毫秒内返回。

向量存储

向量数据库可存储嵌入模型算法的输出,即向量嵌入。它们还存储每个向量的元数据,包括标题、描述和数据类型,可通过元数据过滤器进行查询。

通过摄取和存储这些嵌入,该数据库可促进相似性搜索的快速检索,从而将用户的提示与相似的向量嵌入进行匹配。

向量索引创建

需要对向量编制索引,以加快在高维数据空间内的搜索速度。向量数据库可对向量嵌入创建索引,以实现搜索功能。

向量数据库使用机器学习算法为向量编制索引。索引编制操作会将向量映射到新的数据结构,从而实现更快的相似性搜索或距离搜索,例如,不同向量之间的最近邻搜索。

可以使用分层导航小世界 (HNSW)、局部敏感散列 (LSH) 或乘积量化 (PQ) 等算法对向量编制索引。

  • HNSW 能形成树状结构,因此很受欢迎。树的每个节点都显示了一组向量,每个向量中都有层次结构。向量之间的相似性在节点之间的边缘显示。

  • LSH 通过近似最近邻搜索为内容编制索引。为了提高速度,可以通过返回近似但非穷尽的结果来优化索引。

  • PQ 可将每个数据集转换为简短、节省内存的表示形式。只存储简短表示,而不是所有向量。

矢量搜索

查询向量是搜索查询的向量表示。当用户查询或提示 AI 模型时,该模型会计算查询或提示的嵌入。然后,数据库会计算查询向量与索引中存储的向量之间的距离,以返回相似的结果。

数据库可以通过最近邻搜索等各种算法来测量向量之间的距离。测量还可以基于各种相似指标,例如余弦相似度。

数据库会根据相似度排序,返回与查询向量最相似的向量或最近邻向量。此类计算支持各种机器学习任务,例如推荐系统、语义搜索、图像识别和其他自然语言处理任务。

向量数据库的好处

向量数据库是支持基于 AI 的企业应用程序的一种流行方式,因为它们可以带来诸多优势:

  • 速度和性能
  • 可扩展性
  • 降低拥有成本
  • 数据管理
  • 灵活性

向量数据库和数据战略的注意事项

组织在选择向量数据库功能时有多种选项。为了找到一个满足其数据和 AI 需求的解决方案,许多组织都在考虑:

  • 向量数据库的类型
  • 与数据生态系统相集成
  • 当向量索引创建并非最优选择时
  • 用于创建和部署向量数据库的工具

向量数据库的类型

有几种备选方案可供选择。

  • 独立、专有、完全向量化的数据库,例如 Pinecone。

  • Weaviate 或 Milvus 等开源解决方案提供内置 RESTful API,并支持 PythonJava 编程语言。

  • 集成有向量数据库功能的数据湖仓一体,例如 IBM watsonx.data

  • 向量数据库和数据库搜索扩展,如 PostgreSQL 的开源 pgvector 扩展,它可提供向量相似性搜索功能。SQL 向量数据库可将传统 SQL 数据库的优势与向量数据库的强大功能结合起来。

会话式 AI

向量数据库不应被视为独立功能,而应被视为更宏观的数据与 AI 生态系统的其中一部分。

很多此类工具提供 API、本机扩展,还可与数据库集成。由于建立向量数据库是为了使用企业数据来增强模型,因此,各组织还必须具有适当的数据治理能力并做好安全措施,以帮助确保用于训练大语言模型 (LLM) 的数据是可信的。

除了 API 之外,许多向量数据库还使用特定于编程语言的软件开发工具包 (SDK),这些工具包可以与 API 相结合。使用 SDK,开发人员通常可在其应用程序中更轻松地处理数据。

推荐引擎

使用向量存储和索引非常适合基于事实或基于事实查询的应用程序,例如从复杂文档中提取特定信息。

不过,要求提供主题摘要与向量索引并不匹配。在这种情况下,LLM 会研究数据中有关该主题的所有可能的不同上下文。

更快的方法是使用另一种索引,例如列表索引而不是向量索引,因为列表索引会立即获取每个列表中的第一个元素。

创建和部署向量数据库的工具

为了优化向量数据库开发,LangChain 是一个用于开发使用 LLM 的应用程序的开源编排框架。

LangChain 的工具和 API 在基于 Python 和 JavaScript 的库中均可用,简化了构建聊天机器人和虚拟代理等 LLM 驱动型应用程序的过程。LangChain 为超过 25 种不同的嵌入方法和超过 50 种不同的向量存储(包括云托管和本地存储)提供集成。

为了支持企业级 AI,数据湖仓一体可以与集成的向量数据库搭配使用。组织可以统一、管理和准备用于其生成式 AI 应用程序的向量化嵌入,这些嵌入可在其受信任且已治理的数据中进行大规模使用。这增强了他们 AI 工作负载的相关性和准确性,包括聊天机器人、个性化推荐系统和图像相似性搜索应用。

向量数据库用例

向量数据库的应用范围十分广泛且在不断增多。其中部分关键用例包括:

  • 检索增强生成 (RAG)
  • 会话式 AI
  • 推荐引擎
  • 向量搜索

构建者

检索增强生成 (RAG) 是一种 AI 框架,可支持大型语言模型 (LLM) 从外部知识库中检索事实。向量数据库是支持 RAG 实施的关键。

企业越来越青睐在生成式 AI 工作流程中使用 RAG,因为它能加快产品上市速度、提高推理效率和输出可靠性。该框架尤其适用于客户服务、人力资源和人才管理等用例。

RAG 有助于确保模型与最新、最可靠的事实相联系,并确保用户可以访问模型的来源,以便其声明能够得到验证。将 LLM 锚定在可信数据中有助于减少模型幻觉。

RAG 使用高维向量数据来丰富提示语的语义相关信息,以便通过基础模型进行上下文学习。RAG 在推理阶段也需要有效的存储和检索,而该阶段所处理的数据量也是最大的。

向量数据库擅长对这些高维向量进行高效索引、存储和检索,从而提供推荐引擎和聊天机器人等应用所需的速度、精度和规模。

开发者

开发者依赖矢量数据库提供的特定语言软件开发工具包 (SDK) 和可预测的应用程序编程接口 (API)。他们通常会将矢量搜索集成到聊天机器人和推荐引擎等应用程序中。

数据工程师

数据工程师负责设计用于生成、转换和验证嵌入的数据管道。矢量数据库简化了跨分布式数据环境的数据摄取工作流程、元数据捕获和血缘追踪。

AI 和 ML 工程师

AI 和 ML 工程师将嵌入模型投入运营,并管理 RAG 及其他推理工作负载的检索逻辑。他们依赖矢量数据库来实现低延迟查找和嵌入版本管理。

数据科学家

向量数据库使用各种索引技术来加快搜索速度。向量索引和距离计算算法(例如最近邻搜索)有助于优化在拥有数百万(甚至数十亿)数据点的大型数据集中搜索相关结果时的性能。

一个考量因素是,向量数据库提供的是近似结果。需要更高准确性的应用程序可能需要使用不同类型的数据库,但处理速度会变慢。

运营者 

向量数据库,尤其是用于实施 RAG 框架的向量数据库,可以提高虚拟代理高效、准确地解析相关知识库的能力,从而有助于改善虚拟代理的交互。代理可以为用户查询提供实时的上下文答案,并提供源文件和页码以供参考。

运营和 SRE 团队

运营和网站可靠性工程 (SRE) 团队监控性能,确保矢量查询满足延迟、吞吐量和可用性要求。

企业架构师

企业架构师确定矢量数据库如何与数据湖仓一体治理框架和现有数据平台集成,评估互操作性和长期架构契合度。

安全和治理团队

安全和治理团队确保嵌入和元数据符合企业和法规要求。他们强制执行访问控制,并确认矢量化后的数据保留了适当的隐私和保护级别。

业务和数据高管

高管评估矢量数据库如何支持企业 AI 战略。他们关注成本效率、治理、风险管理以及矢量能力如何与现有运营模式集成。

如何选择矢量数据库

组织在选择向量数据库功能时有多种选择。为了找到一个满足其数据和 AI 需求的解决方案,许多组织都在考虑:

  • 矢量数据库的类型
  • 与数据生态系统整合
  • 创建和部署矢量数据库的工具

矢量数据库的类型

组织可以从几种选项中进行选择,包括:

  • 独立矢量数据库: 专有的、完全矢量化的数据库,如 Pinecone。
  • 开源矢量数据库:开源解决方案,如 Weaviate 或 Milvus,它们提供内置的 RESTful API 并支持 PythonJava 编程语言。
  • 具有集成矢量能力的数据湖仓一体:集成了矢量数据库能力的数据湖仓一体,例如 IBM watsonx.data
  • 现有数据库的矢量扩展:矢量数据库和数据库搜索扩展——例如 PostgreSQL 的开源 pgvector 扩展——它提供了矢量相似性搜索能力。SQL 矢量数据库可以结合传统 SQL 数据库的优势和矢量数据库的强大功能。
  • 支持矢量功能的搜索引擎:诸如 OpenSearch 等平台,提供内置的矢量搜索功能以及用于摄取和查询嵌入的 RESTful API。

运行矢量工作负载的一个新兴选择是无服务器矢量数据库。无服务器设计消除了管理或配置基础设施的需要,使团队能够专注于嵌入生成和应用程序开发,而不是集群运维。容量可以根据查询量和数据大小自动扩展,帮助团队在不进行性能调优的情况下处理不可预测的工作负载。

无服务器矢量数据库特别适用于快速原型开发、事件驱动型 AI 应用以及将成本控制和运维简易性作为优先事项的开发环境。

与数据生态系统的集成

向量数据库不应被视为独立功能,而应被视为更广泛的数据与 AI 生态系统的其中一部分。

许多矢量数据库提供 API、原生扩展,或者可以与数据库集成。 由于矢量数据库旨在利用企业数据来增强模型,组织还必须具备适当的数据治理和安全措施,以确保用于训练 LLM 的数据是可信的。

除了 API,许多矢量数据库还使用特定编程语言的  SDK  来封装 API。使用这些 SDK,开发者通常发现可以更轻松地在他们的应用程序中处理数据。

创建和部署矢量数据库的工具

为了优化矢量数据库的开发, LangChain  是一个用于开发使用 LLM 应用程序的开源编排框架。

LangChain 提供基于 Python 和 JavaScript 的库,其工具和 API 简化了构建由 LLM 驱动的应用程序的过程,例如使用本地和基于的矢量存储创建虚拟代理 。事实上,LangChain 提供了广阔的生态系统,拥有超过 1000 个跨 LLM、嵌入、矢量存储、文档加载器、工具等的集成。 

数据湖仓一体 可以与集成的矢量数据库配对,帮助组织为他们的生成式 AI 应用程序统一、筛选和准备矢量化嵌入。这增强了他们 AI 工作负载的相关性和精确性,并最终带来更好的业务成果。

例如,电子商务网站可以使用向量来表示客户偏好和产品属性。如此一来,这些站点便可根据向量相似性来推荐与过去所购商品类似的商品,从而增强用户体验并提升保留率。

向量搜索

这种搜索技术用于在大型集合中发现类似的项目或数据点,通常以向量表示。向量搜索可以捕捉元素之间的语义关系,支持机器学习模型和人工智能应用程序进行有效处理。

这些搜索可以采取多种形式。

  • 语义搜索:根据查询的含义或上下文进行搜索,从而获得更精确、更相关的结果。由于词语和短语都可以表示为向量,因此,语义向量搜索功能比一般关键字更能理解用户意图。

  • 相似性搜索和应用:查找相似的图像、音频、视频或文本数据,以支持高级图像和语音识别以及自然语言处理。可以根据相似性对图像和视频进行索引和检索。

作者

Tom Krantz

Staff Writer

IBM Think

Jim Holdsworth

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

相关解决方案
数据管理软件和解决方案

设计数据战略,消除数据孤岛、降低复杂性并提高数据质量,以获得卓越的客户和员工体验。

深入了解数据管理解决方案
IBM watsonx.data™

watsonx.data 支持您通过开放、混合和已治理数据,利用您的所有数据(无论位于何处)来扩展分析和 AI。

了解 watsonx.data
数据和分析咨询服务

通过 IBM® Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。

了解分析服务
采取下一步行动

设计数据战略,消除数据孤岛、降低复杂性并提高数据质量,以获得卓越的客户和员工体验。

  1. 深入了解数据管理解决方案
  2. 了解 watsonx.data
脚注

1 Gartner 创新洞察:向量数据库Gartner,2023 年 9 月 4 日。

2 2024 年存储战略路线图Gartner,2024 年 5 月 27 日。