作为一种数据类型,向量在过去少为人知,最近却凭借生成式 AI 的赋能者这一身份成为了人们关注的焦点。其实,向量(以及用于存储和分析向量的向量数据库)多年来一直在幕后辛勤工作。它们被用在地理空间绘图和分析中,为城市规划、运输物流和环境分析提供支持。最近,向量已被用于零售产品以及音乐和视频流媒体服务网站的推荐引擎。
生成式 AI 基于这些使用场景构建,它利用向量、向量数据库以及一系列其他技术(包括 RAG,即“检索增强生成”)为我们开辟了一条通往创新的新道路。
什么是向量?
向量只是用于描述词、句、文档、图像、视频以及音频文件等对象的特征的数组。之所以使用向量,是因为计算机难以对比/搜索这种非结构化内容。相比之下,向量对比/搜索则要容易的多,它是以更容易理解的数学为基础的。
向量及其描述的数据对象(或指向数据对象的链接)一起存储在数据库中。在数学上彼此接近的向量所描述的对象通常具有相似的特征,因此您可以快速对比/搜索向量,返回相似的对象。您还可以通过已识别的特定特征来创建查询向量。搜索操作将返回与查询向量中指定的对象有相似特征的对象。
什么是向量数据库?
向量数据库是指任何可以原生存储和管理向量嵌入并可以处理向量所描述的非结构化数据(如文档、图像、视频、音频等等)的数据库。
考虑到
向量搜索对于生成式 AI
的重要价值,科技界已出现了很多可纳入企业数据基础设施的专门的独立式向量数据库。同时,一些成熟数据库(例如 Oracle Database 和开源的
MySQL
数据库)也已经将向量和许多其他数据类型作为原生数据类型。这样,在搜索业务数据和语义数据组合时,执行速度会更快,结果也更准确,因为两种数据类型都存在于一个数据库中。这种方法还可避免企业在主数据库以外使用一个单独的、专门的向量数据库时会产生的数据一致性问题。
视频:什么是向量数据库?它如何满足企业需求?
向量索引与向量数据库对比
向量索引和向量数据库的设计目标都是高效存储和检索
向量
(一种用于描述文档、图像、视频、音频等对象的特征的数组)。不过,它们各有特点,分别适用于不同的场景。其中,向量索引主要用于“最近邻”搜索(即查找与给定查询向量最接近的向量),非常适合需要快速、精确的相似性搜索场景(例如推荐引擎)。相比之下,向量数据库用于存储向量数据(以供检索和分析)。企业级向量数据库可提供超越“最近邻”搜索的更多特性,例如元数据存储、数据版本控制以及与其他系统集成。
向量索引与向量数据库的主要差异在于,向量索引存储的是非结构化数据(例如文本、图像、音频文件)的属性信息。这类信息通过一组数字(也就是“向量”)表示。向量索引存储这些向量,并通过有利于数据库快速识别和匹配对象的方式创建索引。
向量数据库则存储这些索引及其描述的对象。不过,不同的数据库采用不同的方式来组织向量索引和数据对象。支持向量的数据库(例如 Oracle Database)单独执行数据对象存储,独立运行数据和向量搜索。这样,在利用 SQL 语言强大的查询能力来查询元数据和最新业务数据的同时,还能够获得向量搜索的速度和上下文相关性优势。举例来说,这意味着当搜索高度相关的零售产品时,向量搜索还能返回最新的产品定价和产品可用性信息。
向量数据库使用向量嵌入(一种数据类型)来高效存储和处理数据对象。
向量嵌入描述数据对象的特征,而支持向量的数据库则存储向量和创建索引(以加快搜索速度)。
向量和支持向量的数据库都不是新鲜事物,长期以来它们已被用于绘图和数据分析等专业化使用场景。
最近,向量嵌入和向量数据库被用于多个新领域,包括相似产品查找、生物特征模式识别、异常检测以及推荐引擎等等。
现在,很多企业正综合使用向量搜索、生成式 AI 和检索增强生成 (RAG) 技术,基于来自文档和资讯存储库的共享数据来获取更为相关的生成式 AI 输出结果。得益于 RAG 提供的更多数据,这既提高了响应速度,还提高了准确性和上下文相关性。
向量数据库详解
相比投入成本和精力去精调生成式 AI 模型,很多企业选择审编 LLM 用于生成输出结果的数据。他们使用的是包含最新企业信息的向量数据库。这种架构级方法称为检索增强生成 (RAG),能够让经由海量生成数据训练的 LLM 通过使用向量数据库存储的私有数据增强响应能力。
例如,如果 LLM 驱动的
聊天机器人
可以访问零售商的客户记录和电子邮件信息而不仅仅是通用信息,它就可以更有效、更个性化地响应查询请求,例如“我的订单发货了吗?”。
RAG
可以列举向量数据库中的哪些文档为响应结果提供了信息支持,因此还可以提高生成式 AI 模型的可靠性和可信度。
为什么说向量数据库很重要?
如今,专为向量存储和分析工作而优化的数据库的应用范围正快速扩展。过去,向量数据库主要用于绘图和数据分析。现在,向量数据库已成为推荐引擎(常见于热门零售商和音视频流媒体服务商)、虚拟助手、生物特征模式识别、异常检测等领域的重要基石。此外,向量数据库还开辟了一个新的重要使用场景:存储大规模的非结构化数据,以供生成式 AI 模型访问并输出更优结果。
一个日渐流行的趋势是,一些成熟数据库(例如 MySQL 和 Oracle Database)将向量数据以及其他数据(如 JSON、图形、空间和关系型数据)一起作为原生数据类型。这种融合不再需要将数据迁移到一个单独的数据库来执行生成式 AI 操作,既简化了流程,又确保了珍贵的数据始终保留在可靠的资料库中。
生成式 AI 使用场景的扩展意味着,在成熟的
NoSQL
和
关系数据库
增加向量数据类型管理特性的同时,市场上也出现了很多新的向量数据库。
向量数据库的工作原理
向量数据库将数据作为向量(向量即三维空间中对象的特征的数学表征)存储和处理。这种方法能够高效地存储和查询复杂的数据类型(如图像、音频、视频和传感器数据),使向量成为推荐系统、
自然语言处理
和图像识别等使用场景的理想选择。
其操作分为以下几步:
向量化。
创建用于描述非结构化数据的内容/特征的向量。非结构化数据库可以采用数据库表中存储的文本形式,也可以采用文件系统中存储的文档形式。
编制索引。
向量数据库使用向量索引以层级方式组织向量,以此实现高效搜索和检索。
查询。
要查询向量数据,向量数据库使用查询向量来执行向量距离运算。两个向量在数学上越接近,它们所表示的对象就越相似。这个过程通常会返回一个小型结果集,例如 5 个最相似的项目。
后处理。
向量数据库在检索一个查询向量的最近邻后,可能会对结果集中的行进行重排序。与向量查询相比,重排序的资源消耗更大,但可以优化既有向量查询结果的顺序。
上图展示了向量数据库如何帮助流媒体服务商向一个科幻迷推荐合适的电影。
列式数据库
列式数据库在磁盘上以列的方式存储数据并进行分组。由于分析工作通常要求筛选和组合不同列的数据,这可以加快
数据分析
速度。数据库当然也能以行格式存储数据(这种格式适用于需要更新数据记录中单个数据项的事务),但对于数据分析,列式数据库支持分析人员非常快速地扫描数千或数万条记录的任意列。
文档存储数据库
文档存储数据库(即面向文档的数据库)是一种可管理、检索和存储面向文档的信息的程序和数据存储系统。文档数据库在适用于各种动态数据结构的灵活的类 JSON 文档中存储数据。这一点不同于关系数据库,关系数据库以固定模式使用表来组织数据。
图形数据库
图形分析是一个以图形格式分析数据的过程,它以数据点作为节点,以数据关系作为边。以这种方式查看数据可以帮助您揭示其他方法无法清晰展示的数据联系和关系。图形分析需要一个支持图形格式的数据库。该数据库可以是专用图形数据库或支持多种数据模型(包括图形)的
融合数据库
。
内存中数据库
内存中数据库在应用的内存层(而不是存储磁盘)中存储和处理数据。这种结构常用于列式存储功能和向量查询计划,可加快分析查询速度。这种数据存储方法可满足超快速操作需求,适用于电信以及需要基于实时数据制定决策的企业。
键值存储数据库
键值存储数据库(有时也称为“键值数据库”)可快速存储和查询经常性变动的数据,如线上门店的商品数据。键值存储数据库属于一种 NoSQL 数据库,使用键值来指定特定记录(以供查询或更新)。
空间数据库
空间数据库可存储和管理用以描述物理位置和几何属性的空间数据,基于索引技术和查询操作运行。空间数据库用于在线绘图和分析以及航运物流运营作业。
时序数据库
时序数据库用于高效存储和分析带时间戳的数据(即每个数据点与特定时间戳或时间间隔关联)。这些数据库通常用于需执行日志分析的 IT 监视系统以及金融行业。
面向大语言模型的向量数据库
向量数据库支持商用/开源大语言模型访问来自本地组织或企业的最新信息,以此增强大语言模型。这有助于提高大语言模型输出的相关性和个性化水平。
谁在使用向量数据库?
向量数据库广泛用于各种要处理大量空间数据和几何数据的应用和组织,例如零售、物流行业以及自动驾驶系统。如今,很多有意挖掘高级 AI 和机器学习潜力的企业也正积极采用向量数据库。例如,生成式 AI 模型就依靠向量数据库,利用来自向量数据库的最新本地数据来优化输出结果。
其他特定使用场景包括:
金融机构
通过多种方式使用向量。例如,在投资组合分析中,向量可描述一个客户的投资组合的各个元素。它们还可用于跟踪账户绩效随时间变化的情况。
医疗卫生行业研究人员
使用向量数据库来开展研究和临床试验。通过利用向量数据库存储和分析患者的人口统计、位置以及治疗结果数据,研究人员可以更好地评估各项因素对治疗效果的影响。
在线零售商
使用向量数据库来洞察历史购买行为和浏览习惯,以此为基础向客户推荐客户可能感兴趣的产品。
航运物流企业
使用向量数据库来存储位置和距离信息,从而精确规划路线和跟踪运输中的货物。
流媒体服务商
使用向量数据来运行推荐引擎,基于体裁、主演、发行日期和评论等多种因素来生成推荐结果。
如何使用向量数据库?
向量数据库的使用场景多式多样,在不同的组织和应用中是不同的。除了实时数据分析、财务系统和推荐引擎,向量数据库还可以在经过优化后处理复杂的数据结构(常见于图像识别、自然语言处理等工作)。
通过高效存储和处理数据,向量数据库可助力企业充分利用复杂的数据结构来满足各种应用的需求,包括:
推荐系统。
使用向量嵌入来快速查找客户/浏览者可能感兴趣的相似产品或娱乐节目。
搜索引擎。
搜索引擎使用向量数据库来基于向量嵌入为查询操作和文档创建索引,以此快速定位相似结果或相似文档。
个性化。
这些系统使用人口统计信息和过往选择行为数据引导向量搜索,以定位可能与特定用户匹配的产品或服务。
异常检测。
即使是
大型数据集
,向量数据库也能帮助用户高效搜索异常向量。这有助于安全团队识别未遂入侵,也有助于信用卡公司识别欺诈交易。
基因组学和生物信息学。
由于向量和向量数据库擅长模式匹配和异常检测,因此可以帮助研究人员匹配基因序列,对比海量基因数据。这将在疾病预测和新药研发领域发挥重要作用。
医疗卫生和医学研究。
很多医疗保健服务提供者正使用向量数据库来存储和管理有关患者护理的信息,如医疗记录、人口统计数据、实验结果,甚至是基因信息。在临床试验中,通过分析试验中心的地理空间数据、患者人口统计信息、治疗结果和不良反应,研究人员可以更好地衡量治疗效果。
图像和视频检索。
图像和视频检索操作使用向量数据库来开展相似性搜索和语义搜索,快速从海量选项中定位图像或视频。
向量数据库的优势
向量数据库有诸多优势,其中之一就是支持快速相似性搜索。向量数据库针对高效的“最近邻”搜索进行了优化,支持快速从大型数据集中检索相似项。这使其成为了需要实时处理和分析非结构化数据的应用/行业的理想之选,并适用于新兴的生成式 AI 使用场景。
其他优势还包括:
经济高效。
向量数据库(尤其是 PostGIS 等开源数据库)、具有向量扩展功能的 MySQL 数据库以及原生支持向量存储的多模型数据库可为地理空间分析和生成式 AI 模型提供经济高效的解决方案。
高效存储。
向量数据库的空间索引技术支持高效存储和组织向量化的数据。
快速检索。
向量数据库的索引编制支持基于对象的各种属性快速检索数据。通过标注向量间关系和接近度,它们能够快速执行搜索工作。
与机器学习集成。
向量数据库从设计上就考虑了与机器学习框架和算法相集成,有助于更好地开发预测性模型,以及执行异常检测、集群和其他基于机器学习的分析。
个性化。
向量数据库可帮助零售商、音乐流媒体服务商和医疗卫生机构开发和供应个性化服务,快速匹配客户的独特偏好和需求。
实时分析。
向量数据库支持内存中运算,可满足快速查询和高效数据处理需求。这使其能够执行实时分析,为日常决策提供信息支持。
降低开发复杂性。
向量数据库可以提供
API
、库和查询语言,降低了数据管理和应用开发的复杂性。这将显著缩短应用开发周期,进而降低成本。
可扩展性。
向量数据库可以高效管理和处理百万乃至十亿级规模的向量对象。借助适当的基础设施,它能够随着需求增长而快速扩展。
通用性。
向量数据库支持各种非结构化数据,如音频录音、文本文档和图像等。这种通用性使其能够满足众多使用场景和应用的需求。
Oracle 将如何满足您的向量技术需求?
无论您是使用生成式 AI 技术还是执行其它(几乎)任何使用向量的操作,Oracle 都能为您提供强大支持。
作为广受欢迎的企业数据库,Oracle Database 为向量数据和所有业务数据提供一个单一数据平台。您可以轻松地对企业数据运行相似性搜索,无需管理和同步多种数据库。
Oracle AI Vector Search
支持您通过语义(或意义)和值执行结构化和非结构化数据搜索。
结合使用一个数据库中的关系数据、JSON 文档、图形、地理空间数据、文本和向量数据,您能够快速构建新的应用特性。Oracle Database 的 AI Vector Search 还可以与任何 GenAI 服务一起在 RAG 管道中使用。此外,Oracle HeatWave MySQL 数据库服务能够原生处理向量数据,满足向量搜索以及其他使用场景需求。例如,将其与 Oracle Cloud Infrastructure (OCI) 中的
RAG 服务
结合使用,您可以为您的私有文档构建一个生成式 AI 界面,打造一个精通您企业运营数据的 AI 工具。
利用 Oracle AI Vector Search 的强大功能
无论您是使用向量来开展数据分析、运行地理空间应用、为客户推荐产品还是赋能生成式 AI,Oracle 都能助您一臂之力。Oracle 的旗舰产品 Oracle Autonomous Database 和 Oracle
HeatWave MySQL
均将向量和许多其他数据类型作为原生数据类型管理,为用户提供更简单的开发体验。这两款数据库都基于 Oracle Cloud Infrastructure (OCI) 运行。OCI 搭载了最新处理器,采用了超级集群架构,可以高效处理要求最严苛的 AI 工作负载,包括生成式 AI、计算机视觉和预测性分析。无论您是使用 Oracle Database 还是开源的 MySQL 数据库构建应用,都可以立即开始利用向量搜索。
在如今的生成式 AI 时代,向量数据库对企业的重要性比以往任何时候都更高。随着越来越多的开发团队开始探索向量数据的存储和管理之道,他们需要做一个决定:是使用专门的专用向量数据库,还是 Oracle Database 这类既支持向量又支持众多其他数据类型的多模型数据库?
向量数据库常见问题解答
何时应使用向量数据库?
向量数据库可用于各种使用场景,包括航运物流和环境分析等领域的地理空间应用、零售和线上娱乐业的推荐引擎等。最近,一些组织还将向量数据库用作生成式 AI 应用的主信息库。
Netflix 使用向量数据库吗?
Netflix 曾宣布使用向量数据库来支持自己大受欢迎的推荐引擎。该平台将向量嵌入用于节目表中的每一个娱乐节目,通过向量数据库赋能实时相似标题搜索。