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

一、说明

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

        为原生整合生成式 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.mzph.cn/news/94585.shtml

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

相关文章

JUC第十四讲:JUC锁: ReentrantReadWriteLock详解

JUC第十四讲:JUC锁: ReentrantReadWriteLock详解 本文是JUC第十四讲:JUC锁 - ReentrantReadWriteLock详解。ReentrantReadWriteLock表示可重入读写锁,ReentrantReadWriteLock中包含了两种锁,读锁ReadLock和写锁WriteLock&#xff…

Day-05 CentOS7.5 安装docker

参考 : Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/install/centos/ Doc…

实战型开发--3/3,clean code

编程的纯粹 hmmm,一开始在这个环节想聊一些具体的点,其实也就是《clean code》这本书中的点,但这个就还是更流于表面; 因为编码的过程,就更接近于运动员打球,艺术家绘画,棋手下棋的过程&#x…

GPT系列论文解读:GPT-1

GPT系列 GPT(Generative Pre-trained Transformer)是一系列基于Transformer架构的预训练语言模型,由OpenAI开发。以下是GPT系列的主要模型: GPT:GPT-1是于2018年发布的第一个版本,它使用了12个Transformer…

软件设计师_计算机网络_学习笔记

文章目录 4.1 网路技术标准与协议4.1.1 协议4.1.2 DHCP4.1.3 DNS的两种查询方式 4.2 计算机网络的分类4.2.1 拓扑结构 4.3 网络规划与设计4.3.1 遵循的原则4.3.2 逻辑网络设计4.3.3 物理网络设计4.3.4 分层设计 4.4 IP地址与子网划分4.4.1 子网划分4.4.2 特殊IP 4.5 HTML4.6 无…

【MySQL】表的约束(二)

文章目录 一. 主键二. 自增长三. 唯一值四. 外键结束语 一. 主键 主键primary key 用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表最多只能有一个主键,主键所在的列通常是整数类型 创建表时直接在字段上指定主键 mysq…

在2023年使用Unity2021从Built-in升级到Urp可行么

因为最近在做WEbgl平台,所以某些不可抗力原因,需要使用Unity2021开发,又由于不可明说原因,想用Urp,怎么办? 目录 创建RenderAsset 关联Asset 暴力转换(Menu->Edit) 单个文件…

【服务器】在 Linux CLI 下安装 Anaconda

【服务器】在 Linux CLI 下安装 Anaconda 1 系统环境2 下载安装包3 安装 1 系统环境 查看系统信息 cat /etc/os-release2. 查看架构 uname -a # output # Linux localhost.localdomain 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86…

华为云云耀云服务器L实例评测|Docker部署及应用

文章目录 前言📣 1.前言概述📣 2.服务器攻击✨ 2.1 问题描述✨ 2.2 处理方法 📣 3.Docker简介📣 4.安装Docker✨ 4.1 卸载旧版docker✨ 4.2 安装依赖包✨ 4.3 安装GPG证书✨ 4.4 配置仓库✨ 4.5 正式安装Docker✨ 4.6 配置用户组✨…

PG 多表连接查询

写法: 使用 select 表名.键名 from 表1 join表2 on 相同的主键 构造出来一张新表 多表要用表名.键名 才能知道是哪一张表 传统写法也行 类型: 内 而外的要这样写

动态规划-状态机(188. 买卖股票的最佳时机 IV)

状态分类: f[i,j,0]考虑前i只股票,进行了j笔交易,目前未持有股票 所能获得最大利润 f[i,j,1]考虑前i只股票,进行了j笔交易,目前持有股票 所能获得最大利润 状态转移: f[i][j][0] Math.max(f[i-1][j][0],f[…

lv7 嵌入式开发-网络编程开发 07 TCP服务器实现

目录 1 函数介绍 1.1 socket函数 与 通信域 1.2 bind函数 与 通信结构体 1.3 listen函数 与 accept函数 2 TCP服务端代码实现 3 TCP客户端代码实现 4 代码优化 5 练习 1 函数介绍 其中read、write、close在IO中已经介绍过,只需了解socket、bind、listen、acc…

Qt+openCV学习笔记(十六)Qt6.6.0rc+openCV4.8.1+emsdk3.1.37编译静态库

前言: 有段时间没来写文章了,趁编译库的空闲,再写一篇记录文档 WebAssembly的发展逐渐成熟,即便不了解相关技术,web前端也在不经意中使用了相关技术的库,本篇文档记录下如何编译WebAssembly版本的openCV&…

13.(开发工具篇github)如何在GitHub上上传本地项目

一:创建GitHub账户并安装Git 二:创建一个新的仓库(repository) 三、拉取代码 git clone https://github.com/ainier-max/myboot.git git clone git@github.com:ainier-max/myboot.git四、拷贝代码到拉取后的工程 五、上传代码 (1)添加所有文件到暂存

Mac安装Ecplise产品报错:dose not contain the JNI_CreateJavaVM symbol

1. 絮絮叨叨 工作中需要借助Ecplise Memory Analyzer (MAT)分析dump文件,直接下载、安装、运行MAT报错 询问同事后,同事说可以先安装Ecplise,再以插件的形式安装MAT下载、安装好Eclipse,点击运行仍然报错,且错误信息一…

【C语言】循环结构程序设计 (详细讲解)

前言:前面介绍了程序中常常用到的顺序结构和选择结构,但是只有这两种结构是不够的,还有用到循环结构(或者称为重复结构)。因为在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题。 【卫卫卫的代码仓库】 【选择结构】 【专栏链…

springmvc-JSR303进行服务端校验分组验证SpringMVC定义Restfull接口异常处理流程RestController异常处理

目录& 1. JSR303 2. JSR303中含有的注解 3. spring中使用JSR303进行服务端校验 3.1 导入依赖包 3.2 添加验证规则 3.3 执行校验 4. 分组验证 4.1 定义分组验证规则 4.2 验证时通过参数指定验证规则 4.3 验证信息的显示 5. SpringMVC定义Restfull接口 5.1 增加s…

分类预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络数据分类预测

分类预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络数据分类预测 目录 分类预测 | MATLAB实现PSO-CNN粒子群算法优化卷积神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO-CNN多特征分类预测,多特征输入模型&#xf…

Webpack 基础入门以及接入 CSS、Typescript、Babel

一、什么是 Webpack Webpack 是一款 JS 模块化开发的技术框架,其运作原理是将多个 JS 文件关联起来构成可运行的应用程序。 Webpack 拥有丰富的 plugins / loaders 插件生态圈,可以让 js 识别不同的语言如 .css, .scss, .sass, .json, .xml, .ts, .vue…

Web版Photoshop来了,用到了哪些前端技术?

经过 Adobe 工程师多年来的努力,并与 Chrome 等浏览器供应商密切合作,通过 WebAssembly Emscripten、Web Components Lit、Service Workers Workbox 和新的 Web API 的支持,终于在近期推出了 Web 版 Photoshop(photoshop.adobe…