AI配套的技术: 矢量数据库的概念

news2024/11/17 3:54:49

一、说明

        随着人工智能的快速采用和围绕大型语言模型发生的创新,我们需要在所有这些的中心,能够获取大量数据,将其上下文化,处理它,并使其能够有意义地搜索。

        为原生整合生成式 AI 功能而构建的生成式 AI 流程和应用程序都依赖于访问向量嵌入的能力,矢量嵌入是一种数据类型,它提供了 AI 具有与我们类似的长期记忆处理所需的语义,允许它利用和调用复杂任务执行的信息。

      向量嵌入是 AI 模型(如 LLM)使用和生成的数据表示,用于做出复杂的决策。就像人脑中的记忆一样,存在复杂性、维度、模式和关系,所有这些都需要作为底层结构的一部分进行存储和表示,这使得所有这些都难以管理。

        这就是为什么对于AI工作负载,我们需要一个专门构建的数据库(或大脑),专为高度可扩展的访问而设计,并且专门为存储和访问这些向量嵌入而构建。像Datastax Astra DB(基于Apache Cassandra构建)这样的矢量数据库旨在为嵌入提供优化的存储和数据访问功能。

        矢量数据库是一种专门设计用于存储和查询高维矢量的数据库。向量是多维空间中对象或数据点的数学表示,其中每个维度对应于特定的特征或属性。

        这最终是矢量数据库的优势和力量所在。它是在多维空间中存储和检索大量数据作为向量的能力,最终实现向量搜索,这是人工智能进程用来提供数据的相关性,方法是将数据的数学嵌入或编码与搜索参数进行比较,并返回与查询轨迹相同的结果。与传统的关键字搜索相比,这允许更广泛的结果,并且可以在添加或学习新数据时考虑更多的数据。

      在这个两分钟的视频中,Charna Parkey博士介绍了使用载体数据库的三个原因。

        可能最著名的例子是一个推荐引擎,它接受用户的查询,并向他们推荐他们可能感兴趣的其他内容。假设我正在观看我最喜欢的流媒体服务,并且正在观看以科幻西部片为主题的节目。通过矢量搜索,我可以轻松快速地推荐其他最近邻匹配的节目或电影,使用整个媒体库的矢量搜索,而无需用主题标记每个媒体,此外,我可能会获得其他主题的其他最近邻结果我可能没有专门查询但与我感兴趣的节目的观看模式相关。

        与仅改进向量嵌入的搜索和检索的向量索引不同,矢量数据库提供了一种众所周知的方法来大规模管理大量数据,同时专门用于处理向量嵌入的复杂性。矢量数据库带来了传统数据库的所有功能,对存储矢量嵌入进行了特定的优化,同时提供了高性能访问传统标量和关系数据库所缺乏的嵌入所需的专业化,最终矢量数据库原生地实现了存储和检索大量数据的能力,以实现矢量搜索功能。

二、矢量数据库如何工作?

        为了使生成式人工智能发挥作用,它需要一个大脑来实时有效地访问所有嵌入,以形成见解,执行复杂的数据分析,并对所问的内容进行生成预测。想想你如何处理信息和记忆,我们处理记忆的主要方式之一是将记忆与已经发生的其他事件进行比较。例如,我们知道不要把手伸进沸水中,因为我们过去曾被沸水烫伤,或者我们知道不要吃特定的食物,因为我们有关于这种食物如何影响我们的记忆。这就是矢量数据库的工作方式,它们对齐数据(内存)以进行快速数学比较,以便通用AI模型可以找到最可能的结果。例如,像 ChatGPT 这样的东西需要能够通过快速有效地比较给定查询的所有不同选项并呈现高度准确和响应迅速的结果来比较逻辑上完成思想或句子的内容。

        挑战在于,生成式人工智能无法用传统的标量和关系方法做到这一点,它们要放慢速度、僵化和狭隘地聚焦。生成式人工智能需要一个数据库来存储数学表示,它的大脑旨在处理和提供极高的性能、可扩展性和适应性,以充分利用它拥有的所有可用数据,它需要一些设计得更像人脑的东西,能够存储记忆印记,并根据需要快速访问、关联和处理这些印迹。

        借助矢量数据库,我们能够快速加载和存储事件作为嵌入,并使用我们的矢量数据库作为为我们的AI模型提供动力的大脑,提供上下文信息,长期记忆检索,语义上的数据关联等等。

        为了实现高效的相似性搜索,矢量数据库采用专门的索引结构和算法,例如基于树的结构(例如,k-d树),基于图的结构(例如,k-最近邻图)或哈希技术(例如,局部敏感哈希)。这些索引方法有助于组织和分区载体,以便于快速检索相似向量。

在矢量数据库中,矢量通常与其关联的元数据(如标签、标识符或任何其他相关信息)一起存储。该数据库经过优化,可根据载体与其他载体的相似性或距离高效存储、检索和查询载体。

三、矢量数据库的优势是什么?

        与在行和列中存储多种标准数据类型(如字符串、数字和其他标量数据类型)的传统数据库不同,矢量数据库引入了一种新的数据类型,即向量,并围绕此数据类型构建优化,专门用于实现快速存储、检索和最近邻搜索语义。在传统数据库中,使用查找完全匹配项的索引或键值对对数据库中的行进行查询,并返回这些查询的相关行。

        传统的关系数据库经过优化,围绕结构数据提供垂直可扩展性,而传统的NOSQL数据库则为非结构化数据提供水平可扩展性。像Apache Cassandra这样的解决方案旨在围绕结构化和非结构化数据提供优化,并增加了存储向量嵌入的功能,像Datastax Astra DB这样的解决方案非常适合传统和基于AI的存储模型。

        与矢量数据库的最大区别之一是,传统模型旨在提供精确的结果,但对于矢量数据库,数据存储为一系列浮点数,搜索和匹配数据不一定是完全匹配的,但可以是查找与我们的查询最相似的结果的操作。

        矢量数据库使用许多不同的算法,这些算法都参与近似最近邻(ANN)搜索,并允许快速有效地检索大量相关信息。这就是专门构建的矢量数据库(如DataStax Astra DB)为生成式AI应用程序提供显着优势的地方。传统数据库根本无法扩展到需要搜索的高维数据量。AI 应用程序需要能够在高度分布式、高度灵活的解决方案中存储、检索和查询密切相关的数据。

四、矢量数据库如何帮助提升人工智能

        矢量数据库为 AI 带来的最大好处之一是能够通过高效访问和检索数据进行实时操作,从而跨大型数据集利用现有模型。矢量数据库为记忆回忆提供了基础,这与我们在有机大脑中使用的记忆回忆相同。通过矢量数据库,人工智能分为认知功能(LLM),记忆回忆(矢量数据库),专门的记忆印迹和编码(矢量嵌入)和神经通路(数据管道)。

        这些过程协同工作,使人工智能能够无缝地学习、增长和访问信息。矢量数据库保存所有记忆印迹,并为认知功能提供回忆触发类似体验的信息的能力。就像我们人类的记忆一样,当一个事件发生时,我们的大脑会回忆起其他事件,这些事件会引起同样的喜悦、悲伤、恐惧或希望的感觉。

        借助矢量数据库,生成AI过程能够访问大量数据,以高效的方式关联该数据,并使用该数据对接下来发生的事情做出上下文决策,当进入神经系统时,数据管道允许在制作新记忆时存储和访问, AI 模型能够通过利用提供历史记录、分析或实时信息的工作流程来自适应学习和成长。

        无论您是在构建推荐系统、图像处理系统还是异常检测,在所有这些 AI 功能的核心,您都需要一个高效、优化的矢量数据库,例如 Astra DB。Astra DB 的设计和构建旨在为人工智能的认知过程提供支持,人工智能可以将数据作为来自多个来源的数据管道流式传输,例如 Astra 流,并使用这些来发展和学习以提供更快、更高效的结果。

五、使用 DataStax 开始使用矢量数据库

        随着生成式人工智能在所有行业中的快速增长和加速,我们需要一种专门构建的方式来存储用于推动上下文决策的大量数据。矢量数据库是专门为此任务构建的,它为管理用于 AI 的矢量嵌入的挑战提供了专门的解决方案。这就是矢量数据库的真正力量所在,即能够启用静态和动态上下文数据,为AI处理提供核心内存召回。

        虽然这听起来很复杂,但DataStax Astra DB上的矢量搜索通过一个完全集成的解决方案为您解决了所有这些问题,该解决方案提供了上下文数据所需的所有部分。从基于数据管道构建的神经系统到嵌入,再到核心内存存储和检索、访问和处理,再到易于使用的云平台。立即免费试用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1060306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java+Redis:布隆过滤器,打造高效数据过滤神器!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…

基于蝴蝶优化的BP神经网络(分类应用) - 附代码

基于蝴蝶优化的BP神经网络(分类应用) - 附代码 文章目录 基于蝴蝶优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蝴蝶优化BP神经网络3.1 BP神经网络参数设置3.2 蝴蝶算法应用 4.测试结果:5.M…

IIC学习笔记(参考小梅哥教程)

IIC: inter-integrated circuit bus ,即 集成电路总线,串行通信,多主从架构,半双工(对讲机),小数据量场合,短距离传输。 速率:100kb/s 、 400kb/s 、 3.4Mkb/s 传输单位&#xff1…

《C和指针》笔记31:多维数组的数组名、指向多维数组的指针、作为函数参数的多维数组

文章目录 1. 指向多维数组的数组名2. 指向多维数组的指针3. 作为函数参数的多维数组 1. 指向多维数组的数组名 我们知道一维数组名的值是一个指针常量,它的类型是“指向元素类型的指针”,它指向数组的第1个元素。那么多维数组的数组名代表什么呢&#x…

【C++】你看懂C++的类和对象了么

目录 类 默认成员函数 构造函数 析构函数 拷贝构造函数 赋值运算符重载 运算符重载 赋值运算符重载 前置和后置重载 const成员 取地址及const取地址操作符重载 再谈构造函数 构造函数体赋值 初始化列表 explicit关键字 static成员 友元 友元函数 友元类 内…

Springboot+vue的时间管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的时间管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的时间管理系统,采用M(model&#xff0…

计算机毕设 大数据工作岗位数据分析与可视化 - python flask

文章目录 0 前言1 课题背景2 实现效果3 项目实现3.1 概括 3.2 Flask实现3.3 HTML页面交互及Jinja2 4 **完整代码**5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要…

使用VSCode插件开发Hyperledger Fabric智能合约(链码)

背景 开发Fabric链码对于开发者而言步骤繁琐:需要部署节点、安装链码、重启网络等操作。当前VSCode中的插件“Hyperledger Fabric Debugger”可以帮助我们迅速开发智能合约。 使用步骤 安装插件 在VSCode中安装Hyperledger Fabric Debugger插件 打开要开发链码的…

【LeetCode热题100】--35.搜索插入位置

35.搜索插入位置 使用二分查找&#xff1a; class Solution {public int searchInsert(int[] nums, int target) {int low 0,high nums.length -1;while(low < high){//注意每次循环完都要计算midint mid (low high)/2;if(nums[mid] target){return mid;}if(nums[mid]…

SE、CBAM、ECA 、CA注意力机制

文章目录 1. SE (Squeeze-and-Excitation)2. CBAM (Convolutional Block Attention Module)3. ECA (Efficient Channel Attention)4. CA (Coordinate Attention) 1. SE (Squeeze-and-Excitation) SENet是通道注意力机制的典型实现 对于SENet而言&#xff0c;其重点是获得输入进…

螺杆支撑座有哪些品牌?

螺杆支撑座是机械设备中重要的支撑部件&#xff0c;用于固定和支撑螺杆&#xff0c;以确保机械设备的稳定性和精度。以下是一些生产螺杆支撑座的品牌以及它们的特点&#xff1a; 1、NSK&#xff1a;提供各种高质量的轴承和机械部件&#xff0c;他们的螺杆支撑座采用先进的制造技…

2023.9.26 IO 文件操作详解

目录 文件 文件路径 文件类型 Java 文件操作 文件系统操作 文件内容操作 字节流 InputStream OutputStream 字符流 Reader Writer 补充 close 的必要性 Scanner 的基本了解 文件 当前指硬盘上的文件和文件夹相对于 变量 在内存中&#xff0c;文件 则是在硬盘上 …

竞赛选题 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

sheng的学习笔记-【中文】【吴恩达课后测验】Course 2 - 改善深层神经网络 - 第二周测验

课程2_第2周_测验题 目录&#xff1a;目录 第一题 1.当输入从第8个mini-batch的第7个的例子的时候&#xff0c;你会用哪种符号表示第3层的激活&#xff1f; A. 【  】 a [ 3 ] { 8 } ( 7 ) a^{[3]\{8\}(7)} a[3]{8}(7) B. 【  】 a [ 8 ] { 7 } ( 3 ) a^{[8]\{7\}(3)} a…

【iptables 实战】9 docker网络原理分析

在开始本章阅读之前&#xff0c;需要提前了解以下的知识 阅读本节需要一些docker的基础知识&#xff0c;最好是在linux上安装好docker环境。提前掌握iptables的基础知识&#xff0c;前文参考【iptables 实战】 一、docker网络模型 docker网络模型如下图所示 说明&#xff1…

23.2 Bootstrap框架3

1.卡片 1.1卡片样式 在Bootstrap 5中, .card, card-header, .card-body, .card-footer类是用于创建卡片样式.下面是这些类的简单介绍: * 1. .card: 用于创建一个基本的卡片容器它作为一个包裹元素,通常与其他卡片类一起使用.* 2. .card-header: 用于创建卡片的头部部分.通常在…

双重差分模型(DID)论文写作指南与操作手册

手册链接&#xff1a;双重差分模型&#xff08;DID&#xff09;论文写作指南与操作手册https://www.cctalk.com/m/group/90983583?xh_fshareuid60953990 简介&#xff1a; 当前&#xff0c;对于准应届生们来说&#xff0c;毕设季叠加就业季&#xff0c;写作时间显得十分宝贵…

Sentinel安装

Sentinel 微服务保护的技术有很多&#xff0c;但在目前国内使用较多的还是Sentinel&#xff0c;所以接下来我们学习Sentinel的使用。 1.介绍和安装 Sentinel是阿里巴巴开源的一款服务保护框架&#xff0c;目前已经加入SpringCloudAlibaba中。官方网站&#xff1a; 首页 | Se…

Sublime Text 4 for Mac激活下载

Sublime Text for Mac是一款适用于Mac平台的文本编辑器。它具有快速的性能和丰富的功能&#xff0c;可以帮助用户快速进行代码编写和文本编辑。 软件下载&#xff1a;Sublime Text 4 for Mac激活下载 该软件具有直观的界面和强大的功能&#xff0c;包括多行选择、代码折叠、自动…

【数据开发】DW数仓分层设计架构与同步策略(ODS、DWD、DWS等字段含义)

文章目录 1、什么是数据仓库&#xff08;DW&#xff09;2、DW分层设计架构&#xff08;ODS&#xff0c;DWD&#xff0c;DWS&#xff09;3、数仓同步策略 1、什么是数据仓库&#xff08;DW&#xff09; Data warehouse&#xff08;可简写为DW或者DWH&#xff09;数据仓库是什么…