17-3 向量数据库之野望3 – SingleStoreDB 实践教程

这场革命的核心是矢量数据库的概念,这是一项突破性的发展,正在重塑我们处理复杂数据的方式。与传统的关系数据库不同,矢量数据库具有独特的功能,可以管理和处理高维矢量数据,而高维矢量数据是许多人工智能和机器学习应用程序所固有的。随着我们深入进入高级人工智能时代,矢量数据库正成为关键工具,在处理生成式人工智能模型生成的庞大而复杂的数据集时,具有无与伦比的效率和准确性。

本文旨在探讨矢量数据库在生成 AI 领域的关键作用,重点介绍其功能、工作原理、用例和实践教程。

什么是矢量数据库?

矢量数据库是一种用于存储、索引和检索多维数据点(通常称为矢量)的数据库。与处理以表格形式组织的数据(如数字和字符串)的数据库不同,矢量数据库专门用于管理以多维矢量空间表示的数据。这使得它们非常适合人工智能和机器学习应用,其中数据通常采用矢量的形式,如图像嵌入、文本嵌入或其他类型的特征矢量。

这些数据库利用索引和搜索算法进行相似性搜索,使它们能够快速识别数据集中最相似的向量。这种能力对于推荐系统、图像和语音识别以及自然语言处理等任务至关重要,因为有效理解和处理高维数据起着至关重要的作用。因此,向量数据库代表了数据库技术的进步,旨在满足严重依赖大量数据的人工智能应用的需求。

向量嵌入

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

当我们谈论向量数据库时,我们肯定应该知道什么是向量嵌入——数据最终如何存储在向量数据库中。向量嵌入是一种数值代码,它封装了对象的关键特征;例如,音乐流媒体应用中的歌曲。通过分析和提取关键特征(如节奏和流派),每首歌曲都通过嵌入模型转换为向量嵌入。

此过程可确保具有相似属性的歌曲具有相似的向量代码。向量数据库存储这些嵌入,并在查询时比较这些向量以查找和推荐具有最接近匹配特征的歌曲 – 为用户提供高效且相关的搜索体验。

矢量数据库如何工作?

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

当用户发起查询时,各种类型的原始数据(包括图像、文档、视频和音频)首先通过嵌入模型进行处理,这些数据可以是非结构化的,也可以是结构化的。该模型通常是一个复杂的神经网络,将数据转换为高维数值向量,并有效地将数据的特征编码为向量嵌入,然后将其存储到SingleStoreDB 等向量数据库中。

当需要检索时,向量数据库会执行操作(如相似性搜索)以查找和检索与查询最相似的向量,从而高效处理复杂查询并向用户提供相关结果。整个过程使需要高速搜索和检索功能的应用程序中能够快速准确地管理大量多样的数据类型。

矢量数据库与传统数据库有何不同?

我们来探索一下矢量数据库和传统数据库的区别。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程
17-3 向量数据库之野望3 - SingleStoreDB 实践教程

矢量数据库在数据组织和检索方法上与传统数据库有很大不同。传统数据库的结构是处理离散的标量数据类型(如数字和字符串),将它们组织成行和列。

这种结构非常适合事务数据,但对于通常用于人工智能和机器学习的复杂高维数据,效率较低。相比之下,矢量数据库旨在存储和管理矢量数据(表示多维空间中的点的数字数组)。

这使得它们天生就适合相似性搜索任务,其目标是在高维空间中找到最近的数据点,这是图像和语音识别、推荐系统和自然语言处理等人工智能应用的常见要求。通过利用针对高维向量空间优化的索引和搜索算法,向量数据库提供了一种更高效、更有效的方式来处理在高级人工智能和机器学习时代日益普遍的数据类型。

矢量数据库用例

矢量数据库在企业推荐系统中发挥着至关重要的作用。例如,它们可以根据用户的浏览或购买行为向用户推荐商品。它们甚至在欺诈检测系统中也表现出色,它们可以通过将交易嵌入与已知的欺诈活动概况进行比较来检测异常模式,从而实现实时欺诈检测。人脸识别是另一个用例,其中矢量数据库存储面部特征嵌入并有助于安全和监控。

他们甚至可以通过以预先确定的或差别不大的答案来回应类似的查询,从而帮助组织提供客户支持。市场研究是矢量数据库表现良好的另一个领域,它通过分析客户反馈和社交媒体帖子,将其转换为文本嵌入来做情绪分析和趋势发现——从而获得更多的商业洞察。

SingleStoreDB 作为矢量数据库

SingleStoreDB强大的矢量数据库功能经过量身定制,可无缝服务于 AI 驱动的应用程序、聊天机器人、图像识别系统等。有了 SingleStoreDB,您无需再为矢量密集型工作负载维护专用的矢量数据库。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

与传统的矢量数据库方法不同,SingleStoreDB 采用了一种新颖的方法,将矢量数据与各种数据类型一起存储在关系表中。这种创新的融合使您能够轻松访问与矢量数据相关的全面元数据和其他属性,同时充分利用 SQL 的广泛查询能力。

SingleStoreDB 经过精心设计,具有可扩展的框架,可确保为您日益增长的数据需求提供坚定不移的支持。告别限制,拥抱与您的数据需求同步增长的解决方案。

使用 SingleStoreDB 的矢量数据库教程

先决条件

登录 OpenAI 帐户后,转到 API 选项卡,如下所示。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

接下来,转到嵌入选项卡。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

我们将从嵌入的 API 请求开始。为此,我们需要转到API 参考页面。转到 API 参考页面下的“嵌入”选项卡,了解如何创建嵌入。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

现在,让我们为嵌入创建 API 请求。为此,我们需要一个像Postman这样的工具。您可以在Postman 帐户中注册并创建一个工作区。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

现在,获取我们的 API URL `https://api.openai.com/v1/embeddings` 并将其粘贴到 Postman URL 部分,使用您的OpenAI API 密钥对其进行授权。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

现在是时候创建我们的第一个嵌入了。我们只需要一个模型和输入参数,如 OpenAI 文档页面所示。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

对于模型,我们将使用“text-embedding-ada-002”和任何文本作为输入。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

让我们开始吧。转到 Postman 仪表板并创建一个“正文”请求。在正文下,选择“原始”,然后选择“JSON”以传递 JSON 对象。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

提及模型和输入

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

将帖子请求发送给 OpenAI。您应该会看到类似的响应,如下所示。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

您看到的数字是嵌入的向量。要存储这些向量嵌入,您需要一个强大的数据库 — 这就是 SingleStoreDB 的优势所在。让我们创建一个免费的 SingleStoreDB 云帐户

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

接下来,创建一个工作区,如下所示。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

您可以看到您创建的工作区和附加的示例/默认数据库。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

让我们创建一个数据库

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

您可以在仪表板中看到新创建的数据库。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

您可以进入该数据库查看内容。在这种情况下,由于我们尚未输入任何数据,因此您将看不到任何内容。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

让我们在数据库中创建一些表。转到“ SQL 编辑器”,如图所示。您可以运行一些简单的 SQL 命令来创建表。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

确保在“选择数据库”选项卡下选择数据库。选择我们之前创建的数据库。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

编写一个简单的 SQL 查询来创建表和数据类型。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

现在,让我们将矢量数据插入到这个数据库中。我们将在这里输入从 Postman 收到的嵌入数据。返回 SQL 编辑器并编写以下 SQL 查询。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

我们将使用来自 Postman 的“Hello World”输入的值。将我们从 Postman 收到的大量数字插入 JSON_ARRAY_PACK 中。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

从 Postman 复制这些数字。将大块数字粘贴到您的值中并运行命令。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

您可以看到结果被输入到我们的数据库中。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

就是这样!这就是您可以使用 Postman 从不同的输入创建不同的嵌入,并将生成的向量嵌入添加到新创建的数据库中的方法。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

使用与之前相同的方法将它们存储在我们的数据库中。添加您自己的输入和内容以将它们转换为向量。如您在此处所见,我们添加了不同的输入并将生成的向量嵌入存储到我们的数据库中。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

现在让我们通过搜索一些特定术语并从数据库中检索相关数据来进行一些实验。让我们回到 Postman 仪表板并为术语“OpenAI”创建一个嵌入。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

接下来,我们将在数据库中针对现有嵌入执行搜索。这将为我们提供结果,其中最相似的列表位于顶部。让我们转到 SQL 编辑器并运行此查询,如下所示。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

将嵌入(巨大的数字块)粘贴到 JSON_ARRAY_PACK 内部并运行命令。

17-3 向量数据库之野望3 - SingleStoreDB 实践教程

在上图中,您可以看到关键字“OpenAI”的相似度得分和排名。同样,您可以看到任何关键字的相似度得分。这样,SingleStoreDB 可以作为您业务的高效向量数据库。

SingleStoreDB 不仅是一个高效的矢量数据库,而且是一个强大的实时分析平台。它能够高效处理矢量数据,支持相似性搜索和机器学习应用等复杂操作,是现代数据驱动场景的首选。同时,SingleStoreDB 的实时分析功能为希望快速准确地做出数据驱动决策的企业提供了宝贵的资源。

通过整合这两种功能,SingleStore 脱颖而出,成为一款满足不断变化的数据存储和分析需求的综合解决方案。利用 SingleStoreDB 的组织在矢量数据管理以及分析洞察的速度和准确性方面都取得了显著的进步。

RA/SD 衍生者AI训练营。发布者:chris,转载请注明出处:https://www.shxcj.com/archives/4008

Like (0)
Previous 2024-07-15 2:20 下午
Next 2024-07-15 2:23 下午

相关推荐

发表回复

Please Login to Comment
本文授权以下站点有原版访问授权 https://www.shxcj.com https://www.2img.ai https://www.2video.cn