主页

topics

矢量数据库

什么是矢量数据库?
探索 IBM 的矢量数据库解决方案 订阅 Think 时事通讯
云、饼图、图表的象形图拼贴插图

更新日期:2024 年 7 月 29 日
作者: Jim Holdsworth、Matthew Kosinski

什么是矢量数据库?

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

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

矢量数据库与传统数据库 

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

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

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

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

与此相反,矢量搜索将数据表示为密集矢量,即大部分或所有元素都不为零的矢量。矢量在连续矢量空间中表示,该数学空间将数据表示为矢量。

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

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

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

如何选择合适的 AI 基础模型

使用此模型选择框架选择最合适的模型,同时平衡性能要求与成本、风险和部署需求。

相关内容 注册以获取有关 AI 数据存储的电子书
什么是矢量?

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

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

  • 那么,矢量就是一维(或一级一阶)张量,包含多个同类型数据的标量。例如,天气模型可能会以矢量形式使用一天的最低气温、平均气温和最高气温: 62、77、85。每个标量分量都是矢量的一个特征,即一个维度,代表当天天气的一个特征。

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

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

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

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

矢量嵌入是数据点的数字表示,可将各种类型的数据(文字、音频或图像等非数学数据)转换为 ML 模型可以处理的数字数组。

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

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

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

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

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

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

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

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

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

教程:利用 IBM watsonx 平台在智能工作流程自动化中实现生成式 AI
如何使用矢量数据库?

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

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

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

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

矢量存储

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

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

向量索引创建

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

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

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

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

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

  • PQ  可将每个数据集转换为简短、节省内存的表示形式。只存储简短表示,而不是所有矢量。
基于查询或提示的相似性搜索

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

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

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

矢量数据库的好处

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

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

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

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

可扩展性

矢量数据库可存储和管理海量非结构化数据,通过增加节点进行水平扩展,在查询需求和数据量增加时保持稳定的性能。

降低拥有成本

由于矢量数据库可以加快数据检索速度,因此可以加快基础模型的训练。

数据管理

矢量数据库通常提供内置功能,可轻松更新和插入新的非结构化数据。 

灵活性

建立矢量数据库是为了处理使用图像、视频或其他多维数据所增加的复杂性。

鉴于从语义搜索到对话式 AI 应用程序的多种用例,矢量数据库可以根据业务和 AI 需求进行定制。 组织可以从通用模型(例如 IBM  Granite 系列模型、Meta 的 Llama-2 或 Google 的 Flan 模型)入手,然后在矢量数据库中提供自己的数据,以增强模型和 AI 应用程序的输出。

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

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

  • 矢量数据库的类型
  • 与数据生态系统整合
  • 当向量索引创建并非最优选择时
  • 创建和部署矢量数据库的工具
矢量数据库的类型

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

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

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

  • 集成了矢量数据库功能的平台,例如  IBM watsonx.data

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

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

很多这类工具可以提供应用程序接口、本机扩展,或可与数据库集成。 由于建立矢量数据库是为了使用企业数据来增强模型,因此组织还必须具备适当的数据管理和安全性,以帮助确保用于训练大型语言模型 (LLM) 的数据是可信的。 

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

当向量索引创建并非最优选择时

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

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

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

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

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

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

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

矢量数据库用例

矢量数据库的应用领域非常广泛,而且还在不断增长。其中部分关键用例包括:

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

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

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

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

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

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

会话式 AI

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

推荐引擎

例如,电子商务网站可以使用矢量来表示客户偏好和产品属性。这使它们能够根据矢量相似性向用户推荐与过去购买过的商品相似的商品,从而增强用户体验并提高留存率。

矢量搜索

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

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

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

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

IBM watsonx 是专为企业打造的 AI 和数据平台。在一个平台上轻松构建定制的 AI 应用程序、管理所有数据源并加速负责任的 AI 工作流程。 

了解有关 Watsonx 的更多信息

IBM Cloud Databases for Elasticsearch

IBM Cloud Databases for Elasticsearch 将全文搜索引擎的灵活性与 JSON 文档数据库的索引功能相结合。 通过将集成的机器学习 (ML) 模型与专门的 ML 节点、数据类型和搜索算法相结合,IBM Cloud Databases for Elasticsearch 可随时为您的企业提供支持。

了解有关 IBM Cloud Databases for Elasticsearch 的更多信息
IBM Cloud Databases for PostgreSQL

IBM Cloud Databases for PostgreSQL 是 PostgreSQL 数据库即服务产品,可让团队将更多时间用于构建高可用性、备份编排、时间点恢复 (PITR) 和轻松读取副本。

了解有关 IBM Cloud Databases for PostgreSQL 的更多信息
资源 基础模型和数据存储如何释放生成式 AI 的商业潜力

正确利用生成式 AI 模型的组织可享受到无数优点,其中包括提高运营效率、改善决策以及快速创建营销内容。

IBM 生成式 AI 助手:2024 年完整买家指南

通过本指南,您可以了解 IBM AI 助手最擅长做什么、适合哪些人、如何与其他助手进行比较以及如何开始使用。

什么是检索增强生成?

RAG 是一个 AI 框架,它可用于从外部知识库检索事实,从而为 LLM 提供最准确、最新的信息,并让用户深入了解 LLM 的生成式流程。

采取后续步骤

借助 IBM watsonx.data 随时随地扩展所有数据的 AI 工作量,IBM watsonx.data 是基于开放式湖仓一体架构构建的适用数据存储。

深入了解 watsonx.data 预约实时演示
脚注

所有链接均为 ibm.com 外部链接

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

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