网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
揭秘矢量数据库:人工智能背后的强大驱动力
作者: 来源:中国机电工程网    发布于:2024-02-16 15:21:30    文字:【】【】【
文中矢量和向量等同,很多地方也成为向量数据库。

1.生成式 AI、矢量数据库

  您已经听说过有关生成式人工智能(AIGC)的炒作。在整个经济领域,从医疗保健到金融,从零售到政府机构,组织都在寻找利用它的方法。似乎每位首席执行官都希望尽快推出应用程序。

这不仅仅是炒作。根据一个麦肯锡报告,AIGC可以为全球经济注入数万亿美元。

这种变革技术的核心数据概念是矢量。通过矢量化和大型语言模型 (LLM) 的强大功能,生成式 AI 实现了其改变游戏规则的潜力。在生成式人工智能时代,矢量嵌入奠定了基础;矢量数据库扩大了其影响。

 
2.什么是矢量数据库? 
 
 
2.1.矢量 

要了解矢量数据库,首先需要了解矢量。

在数学和物理学中,矢量是具有大小(或大小)和方向的量。矢量可以分解为多个分量。例如,在二维空间中,矢量具有 X(水平)和 Y(垂直)分量。

在数据科学和机器学习中,矢量是表示数据的有序列表或数字序列。矢量可以表示任何类型的数据,包括非结构化数据(或没有预定义数据模型或架构的数据)——从文本到图像、音频到视频。矢量通常表示为数字数组或列表,其中列表中的每个数字表示该数据的特定特征或属性。 


例如,假设您有大量猫照片。每张图像都是一段非结构化数据。但是您可以通过提取特征将每个图像表示为矢量,如下所示:

l平均颜色

l颜色直方图

l纹理直方图

l有或没有耳朵、胡须和尾巴

 
2.2.矢量数据库定义  


 
 
一个矢量数据库管理系统 (VDBMS) (矢量数据库或矢量存储)是一个数据库可以存储矢量(固定长度的数字列表)以及其他数据项。矢量数据库通常实现一种或多种近似最近邻 (ANN: Approximate Nearest Neighbor ) 算法,以便可以使用查询矢量搜索数据库以检索最接近匹配的数据库记录。矢量数据库主要用于存储、检索和搜索矢量。 

矢量数据库将数据表示为多维空间中的点,而不是关系数据库中典型的行和列。矢量数据库非常适合需要基于相似性而不是精确值快速准确地匹配数据的应用程序。

矢量数据库中存储的矢量通常是高维的,代表一些原始数据项(例如文本文档、图像或数据)的特征视频。这些特征矢量可以使用机器学习方法从原始数据计算出来,例如特征提取算法、词嵌入 或深度学习网络。目标是语义相似的数据项接收彼此接近的特征矢量。

“将矢量数据库想象成一个巨大的仓库,将人工智能想象成熟练的仓库经理。在这个仓库中,每个项目(数据)都存储在一个盒子(矢量)中,在多维空间的货架上整齐地组织起来,” 马克·辛克尔 (Mark Hinkle) 在《新堆栈》中写道.

如果您正在构建生成式 AI 应用程序,则可以定制矢量数据库来高效处理大量矢量化数据,从而确保更快的查询和处理速度。


来源:Dev.to 

 
3.什么是矢量嵌入? 
 
 
矢量嵌入(或矢量化)是将此类单词和其他数据转换为数字的过程,其中每个数据点由高维空间中的矢量表示。即将非结构化数据转换成矢量的过程。

矢量嵌入是非结构化数据的矢量化表示,因为它们以语义相似性由 n 维矢量空间中的距离表示的方式映射内容。这使得搜索相似性、在知识库中查找相关内容或检索与复杂的用户生成的查询最匹配的项目变得容易。 

虽然一些专用数据库仅支持矢量嵌入,但其他数据库除了矢量嵌入之外还支持许多其他数据和查询类型。对各种数据类型和查询类型的支持对于在丰富的真实数据之上构建生成式 AI 应用程序至关重要。随着使用矢量嵌入的语义查询的好处变得显而易见,大多数数据库将添加矢量支持。

 
4.矢量数据库如何工作? 
 
 
矢量数据库功能的核心是嵌入原则。本质上,矢量或嵌入模型将数据转换为一致的格式:矢量。

虽然矢量本质上是一组有序的数字,但嵌入将其(包括文本、图像和音频)转换为各种数据类型的表示。

转换(将数据从一种格式转换为另一种格式的过程)将矢量置于多维矢量空间中。这种空间排列最显着的特征之一是具有相似属性或特征的数据点自然地相互吸引,形成集群。

矢量嵌入不仅仅是数值翻译;它们封装了原始数据更深层的语义本质和上下文的细微差别。这使得它们成为一系列人工智能应用的宝贵资产——从自然语言处理 (NLP) 到情感分析到文本分类。 

查询矢量数据库与查询传统数据库不同。矢量数据库不是在相同矢量之间寻找精确匹配,而是使用相似性搜索来识别多维空间内与给定查询矢量非常接近的矢量。这种方法不仅更符合数据的固有性质,而且提供了传统搜索无法比拟的速度和效率。

与其他数据类型一样,高效查询大量矢量需要索引,并且矢量数据库支持矢量的专用索引。与具有单一逻辑顺序的许多其他数据类型(如文本或数字)不同,矢量不具有与实际用例相对应的自然顺序。相反,最常见的用例是查询在点积、余弦相似度或欧几里得距离等距离度量方面最接近其他某个矢量的 k 个矢量。这种查询称为“k(精确)最近邻”或“KNN”查询。

但没有有效的 KNN 查询的通用算法——为了保证找到给定矢量 q 的 k 个最近邻,需要计算 q 与每个其他矢量之间的距离。然而,有一些有效的算法可以找到 k 个 近似最近邻(“ANN”)。这些 ANN 算法牺牲了一些准确性(特别是 召回率,该算法可能会忽略一些实际的最近邻居)以大幅提高速度。由于许多用例已经将计算矢量嵌入的过程视为有些不精确,因此它们通常可以容忍一些召回损失,以换取性能的大幅提高。

为了使 ANN 能够根据与其他矢量的距离来查询矢量,矢量索引的结构方式是将附近矢量的簇通常分组在一起。常见的矢量索引类型可以构造为一组列表,其中每个列表代表给定簇中的矢量;每个矢量都连接到其最近邻的几个矢量的图;树的分支对应于父节点簇的子集;和更多。每种索引类型都在查找速度、召回率、内存消耗、索引创建时间和其他因素之间进行权衡。 

不过,大多数数据库查询不仅仅基于语义相似性。例如,用户可能正在寻找一本描述类似于“关于孩子和狗的温馨故事”的书,但他们也希望将其限制为 20 美元以下的平装本书籍。专用矢量数据库可能提供一些有限的附加过滤功能(有时称为“限制”),而通用数据库可以使用 SQL 等标准语言组成丰富的谓词,这些谓词可以与矢量相似性排序相结合,以实现非常强大、富有表现力的查询。

单词、句子甚至整个文档都可以转换为捕捉其本质的矢量。例如,标准的词嵌入方法是Word2Vec。使用Word2Vec,具有相似含义的单词由多维空间中接近的矢量表示。最著名的例子是:国王-男人+女人=女王。添加与“国王”和“女人”相关的矢量,同时减去“男人”,等于与“女王”相关的矢量。


来源:Medium 

即使图像具有复杂的图案和颜色,也可以转换为矢量。例如,在充满动物图像的数据集中,训练有素的卷积神经网络 (CNN) 会将所有狗图像紧密地聚集在一起,与猫或鸟的集群明显分开。 

通过捕获固有的数据结构和数据中的模式,矢量嵌入提供了语义丰富的描述。这种丰富性不仅有助于更深入地理解数据,而且还加快了与确定关系和衡量不同实体之间的相似性相关的计算。

4.1.矢量数据库管道

  
矢量数据库是专门用来存储、处理和搜索非结构化数据的,它们是通过使用矢量嵌入技术实现的。换句话说,矢量数据库主要操作矢量嵌入,并与机器学习模型紧密合作,将非结构化数据转化为嵌入。

下面是一个典型的矢量数据库管道(使用 Zilliz 作为示例)。


1.机器学习模型将所有类型的非结构化数据转化为矢量嵌入。

2.矢量嵌入存储在 Zilliz Cloud 中。

3.用户执行查询。

4.机器学习模型将查询转换为矢量嵌入。

5.Zilliz Cloud 使用近似最近邻(ANN)算法比较查询矢量和数据集中保存的矢量之间的距离,并找到与查询最相关的 Top-K 结果。 

6.ZillizCloud 将结果返回给用户。

5.矢量数据库与传统数据库有什么区别? 
 
 
与在行和列中存储多种标准数据类型(如字符串、数字和其他标量数据类型)的传统数据库不同,矢量数据库引入了一种新的数据类型(矢量),并围绕该数据类型专门进行了优化,以实现快速存储,检索和最近邻搜索语义。在传统数据库中,使用索引或键值对对数据库中的行进行查询,这些索引或键值对寻找精确匹配并返回这些查询的相关行。传统的关系数据库经过优化,可以围绕结构数据提供垂直可扩展性,而传统的NOSQL 数据库则可以为非结构化数据提供水平可扩展性。矢量数据库等解决方案旨在提供结构化和非结构化数据的优化,并且添加了存储矢量嵌入的功能,矢量数据库等解决方案非常适合传统和基于人工智能的存储模型。

与矢量数据库最大的区别之一是传统模型被设计为提供精确的结果,但矢量数据库数据存储为一系列浮点数,搜索和匹配数据不必是精确匹配,而是可以是查找与我们的查询最相似的结果的操作。矢量数据库使用许多不同的算法,这些算法都参与近似最近邻 (ANN) 搜索,并允许快速有效地检索大量相关信息。专门构建的矢量数据库为生成式 AI 应用程序提供显着优势的地方。传统数据库根本无法扩展到需要搜索的高维数据量。人工智能应用程序需要能够在高度分布式、高度灵活的解决方案中存储、检索和查询密切相关的数据。 

 
6.矢量数据库的优点  
 
 
矢量数据库具有几个关键优势,使其在各种人工智能应用中非常有价值,特别是那些涉及复杂和大规模数据分析的应用。以下是一些主要优点:

 
6.1.高效处理高维数据  


 
 
矢量数据库专为高效管理高维数据而设计。传统数据库经常与这些数据集的复杂性和大小作斗争,但矢量数据库擅长从高维空间存储、处理和检索数据,而不会显着降低性能。

 
6.2.增强的搜索功能  


 
 
矢量数据库最显着的优势之一是它们执行相似性和语义搜索的能力。他们可以快速找到与给定查询最相似的数据点,这对于推荐引擎、图像识别和自然语言处理等应用至关重要。

 
6.3.可扩展性  


 
 
矢量数据库必须具有高度可扩展性,能够处理大量数据集而不损失性能。这种可扩展性对于定期生成和处理大量数据的企业和应用程序至关重要。

 
6.4.速度和准确性  


 
 
与传统数据库相比,它们提供更快的查询响应,特别是在处理大型数据集中的复杂查询时。这种速度并不以准确性为代价,因为矢量数据库凭借其先进的算法可以提供高度相关的结果。有关速度和准确性的更多信息,请参阅GigaOm 关于矢量数据库性能比较的报告。 

 
6.5.改进的机器学习和人工智能集成  


 
 
矢量数据库特别适合人工智能和机器学习应用。它们可以存储和处理训练和运行机器学习模型所需的数据,特别是在深度学习和自然语言处理等领域。

 
6.6.促进高级分析和见解  


 
 
通过支持复杂的数据建模和分析,矢量数据库使组织能够从数据中获得更深入的见解。此功能对于数据驱动的决策和预测分析至关重要。

 
6.7.个性化  


 
 
这些数据库通过分析用户行为和偏好来支持个性化用户体验的开发。这在营销、电子商务和内容交付平台中特别有用,在这些平台中,个性化可以显着提高用户参与度和满意度。

 
7.为什么矢量搜索至关重要? 
 
 
由于其独特的数据检索方法,矢量搜索对于矢量数据库至关重要。

与依赖精确匹配的传统数据库不同,在矢量数据库中,矢量搜索基于相似性进行操作。这种语义理解意味着即使两条数据不相同但在上下文或语义上相似,它们也可以匹配。 

传统的关键字搜索在精确定位文档或表格中的特定术语时表现出色。然而,它们无法处理非结构化数据,例如视频、书籍、社交媒体帖子、PDF 和音频文件。

矢量搜索通过在非结构化数据中进行搜索来填补这一空白。它不仅寻找精确匹配,还根据语义相似性识别内容,了解搜索词之间的内在关系。


来源:TowardsDataScience 

在处理高维数据时,矢量搜索的效率变得显而易见。矢量数据库擅长处理跨越数百甚至数千维的数据点。针对高维矢量的矢量搜索进行优化的算法,例如近似最近邻(ANN)搜索,可以快速识别这个广阔空间中最相似的矢量,而无需扫描每个矢量。这种效率意味着更快、更节省资源的搜索。 

从用户体验的角度来看,矢量搜索的好处是多方面的。推荐系统或图像识别等应用程序可以根据相似性而不是精确匹配来提供结果。例如,在电子商务环境中,显示与用户的搜索查询类似的产品可以提高客户满意度并增加销售额。随着数据集的扩展,矢量搜索的可扩展性变得显而易见。虽然精确匹配搜索可能会随着数据的增长而逐渐变慢,但矢量搜索始终保持一致的查询性能,即使在处理大量数据集的情况下也能确保及时获得结果。

矢量搜索提供的灵活性是另一个显着的优势。它只需最少的调整即可适应新的数据类型、不断发展的数据结构和不断变化的搜索要求。

此外,在快速发展的数据管理领域,灵活性是非常宝贵的,特别是当今许多人工智能和机器学习模型,特别是那些植根于深度学习的模型,都以矢量形式生成数据。能够原生搜索矢量数据的数据库对于面部识别或语音识别等高级应用来说变得不可或缺。


8.矢量数据库的用例

  
全球经济格局复杂且竞争激烈,而数据仍然是其核心。过去,许多人将数据称为“新石油”。在生成式人工智能时代,矢量嵌入就像石油一样,矢量数据库已经成为复杂的炼油厂,擅长处理高维数据和执行相似性搜索。

对于最高管理层来说,生成式人工智能不仅仅是一个流行词;而是一个流行语。这是一个策略。对于开发人员来说,矢量数据库的主要吸引力在于效率。传统数据库可能需要复杂的查询结构来获取相关数据,尤其是在处理大量数据集时。矢量数据库简化了这一过程,允许开发人员根据相似性检索数据,从而降低代码的复杂性和数据检索所需的时间。

矢量数据库用于进行语义相似性搜索,在构建产品推荐、图像/音频/视频相似性搜索和异常检测时非常有用。

矢量数据库还用于实现检索增强生成 (RAG),这是一种改进特定领域响应的方法),通常使用深度学习网络,并存储在矢量数据库中。给定用户提示,计算提示的特征矢量并查询数据库以检索最相关的文档。然后,这些内容会自动添加到大语言模型的上下文窗口中,并且大语言模型会继续根据给定的上下文创建对提示的响应。嵌入。收集描述感兴趣领域的文本文档,并为每个文档计算一个特征矢量(称为“大型语言模型”)。 

 
9.矢量数据库用例示例  
 
 

来源:Medium 

图像和视频识别:视觉内容主导着我们的视觉文化,矢量数据库在其中大放异彩。他们擅长筛选大量图像和视频存储库,以找出与给定输入惊人相似的图像和视频。这不仅仅是逐像素匹配;这是关于理解潜在的模式和特征。这些功能对于面部识别、物体检测,甚至媒体平台中的版权侵权检测等应用至关重要。

自然语言处理和文本搜索:同义词、释义和上下文可能使精确的文本匹配成为一项艰巨的任务。然而,矢量数据库可以辨别短语或句子的语义本质,使它们能够识别措辞可能不相同但上下文相似的匹配。这种能力改变了聊天机器人的游戏规则,确保它们正确响应用户的查询。同样,搜索引擎可以提供更相关的结果,从而增强用户体验。

推荐系统:矢量数据库在个性化中发挥着关键作用。通过了解用户偏好和分析模式,这些数据库可以推荐与听众品味产生共鸣的歌曲或符合购物者偏好的产品。这一切都是为了衡量相似性并提供引起用户共鸣的内容或产品。 

新兴应用:矢量数据库的范围不断扩大。在医疗保健领域,他们通过分析分子结构以获得潜在的治疗特性来帮助药物发现。在金融领域,矢量数据库正在协助异常检测,发现可能表明欺诈活动的异常模式。

随着生成式人工智能的兴起,矢量数据库成为重要的推动者,帮助开发人员将复杂的人工智能蓝图转变为实用的、价值驱动的工具。

 
10.矢量数据库的好处  
 
 
矢量数据库很重要,因为它们可以用来解决各种单独使用关系谓词或文本搜索技术难以或不可能解决的问题。

矢量数据库非常适合生成式人工智能应用程序,因为它们可以轻松检索关键业务和应用程序上下文(例如相关聊天历史记录或特定于业务的非结构化内容),以帮助 LLM响应复杂的用户查询。

它们还可以轻松地使用自然语言搜索内容或通过示例进行查询。

 
11.矢量数据库列表  
 
 
Name

License

Apache Cassandra[5][6]

Apache License 2.0

LlamaIndex [7]

MIT License[8]

Milvus [9][10]

Apache License 2.0

MongoDB Atlas [11]

N/A (Managed service)

Couchbase[12][13]

Unknown (Preview)

Pinecone [14]

Closed source

Postgres with pgvector [15]

PostgreSQL License[16]

Qdrant [17]

Apache License 2.0[18]

Weaviate [19]

BSD 3-Clause[20]

Chroma[21][22]

Apache License 2.0[23]

Elasticsearch[24]

Server Side Public License, Elastic License [25]

Vespa [26]

Apache License 2.0[27]

 
12.参考  
 
 
https://en.wikipedia.org/wiki/Vector_database

https://www.datastax.com/guides/what-is-a-vector-database

https://cloud.google.com/discover/what-is-a-vector-database

https://www.mongodb.com/basics/vector-databases

https://zilliz.com/learn/what-is-vector-database 
浏览 (12) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人: 来源:中国机电工程网
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们