向量数据库

作为一种鲜为人知的数据类型,向量最近因其在生成式 AI 中的应用而备受关注。但向量——以及能够存储和分析它们的数据库——已经在后台默默工作了许多年。它们被用于城市规划、交通物流和环境分析中的地理空间映射和分析。最近,向量还被用于零售产品推荐引擎,以及音乐和视频流媒体网站。

生成式 AI 在此基础上进一步发展,并利用向量和向量数据库以及相关技术(如检索增强生成 RAG)开启了新的创新大门。

什么是向量?

向量简化成一组数字,用于表示对象的特征——无论是单词、句子、文档、图像,还是视频或音频文件。向量是必要的,因为计算机难以比较或搜索这种非结构化内容。相比之下,比较或搜索向量要容易得多,并且基于成熟的数学原理。

向量存储在数据库中,通常与它们所基于的数据对象一起存储,或者与指向这些数据对象的链接一起存储。数学上接近的向量倾向于描述具有相似特征的对象,因此你可以快速比较或搜索它们并返回相似的对象。你也可以只识别某些特征来形成查询向量。搜索将返回具有与查询向量中指定特征相似的对象。

什么是向量数据库?

向量数据库是指任何可以原生存储和管理向量嵌入,并处理它们描述的非结构化数据(如文档、图像、视频或音频)的数据库。

随着生成式 AI 对向量搜索重要性的提升,科技行业涌现出了许多专门的独立向量数据库,公司可以将这些数据库添加到其数据基础设施中。与此同时,像 Oracle 数据库和开源 MySQL 数据库等现有热门产品的版本也已经将向量作为原生数据类型之一,与其他多种数据类型并存。这使得在单一数据库中同时利用业务数据和语义数据进行搜索时,搜索速度和精确度都得到了提升,同时也避免了在使用独立的专门向量数据库与企业主要数据库相结合时引入的数据一致性问题。

向量索引 vs. 向量数据库

向量索引和向量数据库都旨在高效地存储和检索向量,即表示对象(如文档、图像、视频或音频文件)特征的一组数字。然而,它们具有不同的特性和应用场景。向量索引主要用于“最近邻”搜索,即找到与给定查询向量最接近的向量。索引适用于需要快速和准确相似性搜索的应用,例如推荐引擎。相比之下,向量数据库是组织用于存储和检索向量的地方。企业级向量数据库提供了超越最近邻搜索的功能,例如元数据存储、数据版本控制以及与其他系统的集成。

关键差异

向量索引和向量数据库之间的关键区别在于,向量索引存储有关非结构化数据(如文本、图像或音频文件)的属性信息。这些信息通过一组称为向量的数字来表示。向量索引存储这些数据,并以一种有助于数据库快速识别和匹配对象的方式对其进行“索引”。

向量数据库存储这些索引及其描述的对象。然而,数据库如何组织向量索引和数据对象各不相同。支持向量搜索的数据库,将数据对象的存储与数据和向量的搜索方式区分开来。这使得它们能够结合 SQL 的强大查询能力来处理元数据和最新的业务数据,以及向量搜索的速度和上下文相关性。这种方法意味着,例如,进行相关零售产品的向量搜索时,也可以提供最新的价格和库存信息。

关键要点

  • 向量数据库通过使用称为向量嵌入的数据类型高效地存储和操作对象。
  • 向量嵌入描述了对象的特征,而支持向量的数据库则存储这些向量并创建索引,以加快搜索速度。
  • 向量和向量支持的数据库并不是新产物,它们长期以来一直被用于专门的应用场景,例如地图和数据分析。
  • 最近向量嵌入和向量数据库被用于查找相似产品、进行生物特征模式识别、检测异常以及在推荐引擎中使用。
  • 企业现在将向量搜索与生成式 AI 结合使用,并利用检索增强生成技术,通过共享其文档和通信库中的部分项目,使生成式 AI 的结果更加相关。结果是基于 RAG 提供的额外数据,生成的响应更加准确且具有上下文相关性。

RAG中的向量应用

Vector Database

  1. 首先使用嵌入模型为要索引的内容创建向量嵌入。
  2. 向量嵌入被插入到向量数据库中,并且会有一些参考信息,指向生成嵌入的原始内容。
  3. 当应用程序发出查询时,我们使用相同的嵌入模型为查询创建嵌入,并使用这些嵌入在数据库中查询相似的向量嵌入。正如之前提到的,这些相似的嵌入与用于生成它们的原始内容相关联。

向量数据库详解

与其承担微调生成型 AI 模型的成本和努力,公司们正在整理 LLM 生成输出所使用的数据。他们使用包含最新企业信息的向量数据库。这种架构方法称为检索增强生成,可以让一个在大量通用数据上训练过的 LLM 通过使用向量数据库中找到的私有数据来增强其响应。

例如,如果一个由 LLM 驱动的聊天机器人可以访问零售商的客户记录和电子邮件通信,而不是通用消息,它就能就诸如“我的订单是否发货?”这样的查询提供更有用和个性化的回复

RAG 还可以通过引用向量数据库中的哪些文档来提升生成型 AI 模型的可靠性和可信度。

为什么向量数据库很重要?

不出所料,优化用于存储和分析向量的数据库正在变得越来越重要。最初主要用于地图和数据分析的向量数据库,已成为推荐引擎的关键基础技术,这些推荐引擎被最受欢迎的零售商、音乐和视频流媒体提供商以及虚拟助手、生物特征模式识别、异常检测等广泛使用。现在,向量数据库找到了一个新的、令人惊叹的应用领域:存储大量非结构化数据,这些数据可以被访问并用于生成型 AI 模型的输出。

一个日益增长的趋势是,像 MySQL 和 Oracle 数据库这样的传统数据库将向量数据作为与组织其他数据(如 JSON、图、空间和关系型数据)并列的原生数据类型。这种融合消除了为生成型 AI 操作而将数据迁移到单独数据库的需要,简化了流程并使有价值的数据保留在受信任的存储库中。

生成式 AI 用例的增长意味着市场上除了现有的 NoSQL 和关系数据库之外,还出现了许多新的向量数据库,这些数据库能够管理向量数据类型。

向量数据库通过以向量的形式存储和处理数据来工作,向量是对象在多维空间中特征的数学表示。这使得图像、音频、视频和传感器数据等复杂数据类型能够高效地存储和查询,因此向量非常适合用于推荐系统、自然语言处理和图像识别等场景。

操作分为几个步骤:

  • 向量化 可以创建向量来描述未结构化数据的内容或特征。这种未结构化的数据库可以是以数据库表形式存储的文本,或者以文件系统形式存储的文档。
  • 索引 向量数据库使用向量索引来层次化地组织向量,从而实现高效地检索。
  • 查询 查询向量数据时,向量数据库会使用查询向量执行向量距离操作。从数学上讲,向量越接近,它们所代表的对象就越相似。通常这个过程会返回一个小的结果集,例如五个最相似的项目。
  • 后处理 向量数据库检索到查询向量的最近邻之后,可以选择重新对结果集的行进行排序。重新排序相对于向量查询来说是一个昂贵的操作,但它可以为现有的向量查询结果提供更好的顺序。

向量数据库的类型

向量数据库可以按照存储结构(如列式存储)或实现方式(如内存数据库)进行分类。每种类型都有其优势;选择哪种类型应基于您的具体需求和应用场景。

  • 列式数据库

    列式数据库将数据存储在列中,并将它们分组到磁盘上。这种排列方式加快了数据分析速度,因为分析通常涉及过滤和组合表格列中的数据。数据库也可以以行格式存储记录,这对于更新记录中单个项的事务非常有用。然而,对于数据分析来说,列式数据库可以让分析师快速扫描数以千计或数百万条记录中的任何一列。

  • 文档存储

    文档存储数据库或文档导向数据库是一种程序和数据存储系统,用于管理和检索面向文档的信息并进行存储。文档数据库将数据存储在灵活的、类似于 JSON 的文档中,适用于各种动态数据结构。它们与使用固定模式组织数据的表导向数据库不同。

  • 图数据库

    图分析是通过图形格式分析数据的过程,使用数据点作为节点,关系作为边。以这种方式查看数据可以帮助您发现之前未显而易见的连接和关系。图分析需要一个能够支持图形格式的数据库。这可以是一个专门的图数据库,也可以是一个支持多种数据模型的融合数据库,包括图模型。

  • 内存数据库

    内存数据库将数据存储和操作在应用程序的内存层级,而不是存储在磁盘上。这种结构通常与列存储功能和向量化查询计划相结合,以加速分析查询。这种数据存储方式适合支持全球电信和需要基于实时数据做出决策的业务进行闪电般的快速操作。

  • 键值存储

    键值存储,有时也称为键值数据库,是一种快速存储和查询经常变化的数据(如在线商店中的商品)的方法。键值存储是一种 NoSQL 类型的数据库,使用键值来定位特定记录以进行查询或更新。

  • 空间数据库

    空间数据库存储和管理空间数据,这些数据表示空间中对象的物理位置和几何属性信息。它们通过索引技术和查询操作来实现这一功能。空间数据库被用于在线地图和分析,以及航运物流操作中。

  • 时间序列数据库

    时间序列数据库用于高效地存储和分析带有时间戳的数据,其中每个数据点都与特定的时间戳或时间区间相关。这些数据库常用于依赖日志分析的 IT 监控系统中,以及金融领域。

  • 大型语言模型的向量数据库

    向量数据库通过为商业或开源的大型语言模型提供本地组织或企业提供的最新信息,增强了这些模型的功能。这有助于使大型语言模型(LLM)的输出更加相关和个性化,适用于与该组织相关的人。

谁使用向量数据库?

向量数据库被各种处理大量空间和几何数据的应用和组织所使用,例如零售业和物流行业,以及自动驾驶车辆系统的应用中。现在,探索先进人工智能和机器学习的公司也开始采用向量数据库。例如,生成式 AI 模型依赖于向量数据库,通过使用本地的、最新的数据来改进其输出。

其他具体的应用场景包括:

  • 金融机构使用向量的方式多种多样。例如,在投资组合分析中,向量可以表示客户投资组合的各个方面。它们还可以用于跟踪账户随时间的表现。
  • 医疗研究人员使用向量数据库来支持他们的研究和临床试验。他们存储和分析与患者的基础信息、地理位置和治疗效果相关的数据,从而使研究人员能够评估许多不同因素对治疗效果的影响。
  • 在线零售商使用向量数据库来参考客户的过去购买记录和浏览习惯,并推荐客户可能感兴趣的产品。
  • 物流公司在使用向量数据库存储位置和距离信息,从而能够准确地绘制和跟踪移动物体。
  • 流媒体服务使用向量来运行推荐引擎,从而可以根据多个因素(包括类型、主演、上映日期和评论)提供推荐。

向量数据库如何被使用?

向量数据库的应用场景多种多样,这取决于依赖它们的组织和应用程序。除了实时数据分析、金融系统和推荐引擎之外,向量数据库还被优化以处理诸如图像识别和自然语言处理等任务中常见的复杂数据结构。

通过高效地存储和处理数据,向量数据库使公司能够利用复杂的数据结构应用于广泛的应用场景,包括但不限于:

  • 推荐系统 向量嵌入用于快速找到可能吸引购物者或浏览者的相似产品或娱乐选项。
  • 搜索引擎 搜索引擎使用向量数据库对查询和文档进行向量嵌入索引,从而能够快速找到相似的搜索结果或相似的文档。
  • 个性化 这些系统使用人口统计信息和过去的偏好作为向量搜索的指南,以确定特定用户可能匹配的产品或服务。
  • 异常检测 向量数据库可以高效地在非常大的数据集中搜索异常向量。这有助于安全团队发现企图入侵的行为,并帮助信用卡公司阻止欺诈交易。
  • 基因组学和生物信息学 由于向量和向量数据库擅长模式匹配和异常检测,它们可以帮助研究人员匹配基因序列,以便比较大量基因数据。这有助于疾病预测和药物发现等领域。
  • 医疗和医学研究 医疗提供者使用向量数据库来存储和管理与患者护理相关的信息,如医疗记录、人口统计数据、实验室结果,甚至遗传信息。在临床试验中,可以分析与试验地点、患者人口统计数据、治疗效果和不良事件相关的地理空间数据,以确定治疗的有效性。
  • 图像和视频检索 图像和视频检索操作利用向量数据库进行相似性和语义搜索,能够在庞大的选项库中迅速找到所需的图像或视频。

向量数据库的优势

向量数据库提供了许多优势,包括快速相似性搜索。它们针对高效的最近邻搜索进行了优化,即使在大型数据集中也能快速检索相似项。这使它们非常适合需要实时处理和分析非结构化数据的应用和行业,以及新兴的生成型 AI 用例。

其他优势包括:

  • 经济实惠 向量数据库,特别是开源选项如 PostGIS、带有向量扩展的 MySQL 或原生向量存储的多模型数据库,为地理空间分析和生成型 AI 模型提供了经济实惠的解决方案。
  • 高效存储 向量数据库中的空间索引技术可以高效地存储和组织向量化数据。
  • 快速检索 向量数据库通过对对象的多种属性进行索引,快速检索数据。它们通过记录关系和距离来快速执行搜索。
  • 与机器学习集成 向量数据库设计用于与机器学习框架和算法集成,这推动了预测模型、异常检测、聚类以及其他基于机器学习的分析的发展。
  • 个性化 向量数据库使零售商、音乐流媒体服务甚至医疗保健企业能够根据个人的偏好和需求快速找到匹配的服务。
  • 实时分析 向量数据库可以支持内存操作,从而实现快速查询响应和高效数据处理。这使得它们能够进行实时分析,以支持日常决策。
  • 开发复杂度降低 向量数据库可以提供 API、库和查询语言,从而抽象掉数据管理和应用程序开发的复杂性。这可以大大减少应用程序开发所需的时间,从而降低成本。
  • 可扩展性 向量数据库可以高效地管理和处理数百万甚至数十亿的向量对象,并且在合适的基础设施支持下,可以迅速扩展以满足需求。
  • 多功能性 向量数据库支持广泛的非结构化数据,如音频记录、文本文档和图像。这种多功能性使它们能够适应多种用例和应用程序。

向量数据库
https://www.xbdba.com/2025/06/10/vector-databases/
作者
xbdba
发布于
2025年6月10日
许可协议