掌握语义内核(Semantic Kernel):如何使用Memories增强人工智能应用

        随着人工智能领域的不断发展,语义内核(Semantic Kernel)的概念应运而生,为我们处理和理解庞大的数据集提供了新的视角。今天,我们将聚焦于语义内核中的一个核心概念——Memories,它是如何使我们的数据查询更加具有语境意义,以及在大型语言模型(LLM)中的应用。接下来,我们将一探Memories的究竟,并了解向量数据库在其中扮演的角色。

何为Memories?

        在语义内核架构中,Memories提供了一种承载和引用数据的手段,使计算过程能够紧密与任务相关联。我们可以通过以下三种主要方式来访问Memories:

  1. 键值存储:这里存储的数据可以通过特定键直接检索,类似于在命令行界面设置环境变量。

  2. 文件系统存储:对于更大的数据集,我们可以使用文件系统来永久保存信息,在需要时通过文件名称检索。

  3. 语义搜索:这是访问Memories最引人入胜的方式,可以通过"Embeddings"(嵌入)来表示文本信息。Embeddings通过数字向量化的形式捕获信息的含义,并允许我们执行基于意义的搜索。

Semantic Memory是如何工作的?

        是一种在高维空间中将单词或其他数据表示为向量的方法。向量就像有方向和长度的箭头。高维意味着空间有很多维度,比我们能看到或想象的要多。这个想法是相似的单词或数据将具有相似的向量,而不同的单词或数据将具有不同的向量。这有助于我们衡量它们的相关或不相关程度,并对它们执行操作,例如加法、减法、乘法等。Embeddings对 AI 模型很有用,因为它们可以以计算机可以理解和处理的方式捕获单词或数据的含义和上下文。

        所以基本上你取一个句子、段落或整页文本,然后生成相应的Embeddings向量。当执行查询时,查询将转换为其Embeddings表示,然后通过所有现有的Embeddings向量执行搜索以查找最相似的向量。这类似于在必应上进行搜索查询时,它会为您提供与查询相近的多个结果。语义记忆不太可能给你一个完全匹配的匹配项,但它总是会给你一组匹配项,根据你的查询与其他文本片段的相似程度进行排名。

Embeddings在LLM中的重要性       

        由于提示是我们作为 AI 模型的输入以生成所需输出或响应的文本,因此我们需要根据我们选择使用的模型的令牌限制来考虑输入文本的长度。例如,GPT-4 每个输入最多可以处理 8,192 个令牌,而 GPT-3 最多只能处理 4,096 个令牌(当然,现在的GPT-4Trubo有了128,000的令牌)。这意味着,超过模型标记限制的文本将不适合,并且可能会被截断或忽略。

        如果我们可以使用整个 10,000 页的操作手册作为提示的上下文,那就太好了,但由于令牌限制,这是不可能的。因此,Embeddings对于将大文本分解为较小的部分非常有用。我们可以通过将每个页面总结为一个较短的段落,然后为每个摘要生成一个Embeddings向量来做到这一点。Embeddings向量类似于文本的压缩表示,保留了其含义和上下文。然后,我们可以将摘要的Embeddings向量与提示的Embeddings向量进行比较,并选择最相似的向量。然后,我们可以将这些摘要添加到输入文本中,作为提示的上下文。这样,我们可以使用Embeddings来帮助我们在模型的标记限制内选择和拟合大型文本作为上下文。      

开发者如何使用Embeddings

        对于程序员来说,Embeddings是一种表示模型处理过的token意义和上下文的数字数组。通过从模型的参数或权重派生而来的Embeddings,我们可以让模型理解token之间的语义和句法关系,生成更相关、更连贯的文本;Embeddings还使模型能够处理图像和代码生成等多模态任务。

Embeddings 用于:

文本分类:Embeddings可以帮助模型根据文本的含义和上下文为文本分配标签或类别。例如,Embeddings可以帮助模型将文本分类为正面或负面、垃圾邮件或非垃圾邮件、新闻或观点等。

文本摘要:Embeddings可以帮助模型从文本中提取或生成最重要或最相关的信息,并创建简洁连贯的摘要。例如,Embeddings可以帮助模型总结新闻文章、产品评论、研究论文等。

文本翻译:Embeddings可以帮助模型将文本从一种语言转换为另一种语言,同时保留原始文本的含义和结构。例如,Embeddings可以帮助模型在英语和西班牙语、法语和德语、中文和日语等之间翻译文本。

文本生成:Embeddings可以帮助模型根据用户提供的输入或提示创建新的和原始的文本。例如,Embeddings可以帮助模型生成文本,例如故事、诗歌、笑话、标语、标题等。

图像生成:Embeddings可以帮助模型从文本创建图像,反之亦然,方法是将不同类型的数据转换为通用表示形式。例如,Embeddings可以帮助模型生成徽标、面孔、动物、风景等图像。

代码生成:通过将不同类型的数据转换为通用表示形式,Embeddings可以帮助模型从文本创建代码,反之亦然。例如,Embeddings可以帮助模型生成 HTML、CSS、JavaScript、Python 等代码。

        向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,范围从几十到几千不等,具体取决于数据的复杂性和粒度。向量通常是通过对原始数据(如文本、图像、音频、视频等)应用某种转换或Embeddings算法来生成的。Embeddings功能可以基于多种方法,例如机器学习模型、嵌入、特征提取算法等。

        向量数据库的主要优点是它允许根据向量距离或相似性对数据进行快速准确的相似性搜索和检索。这意味着,您可以使用向量数据库根据其语义或上下文含义查找最相似或最相关的数据,而不是使用基于精确匹配或预定义条件查询数据库的传统方法。

例如,您可以使用矢量数据库执行以下操作:

  • 根据视觉内容和样式查找与给定图像相似的图像

  • 根据主题和情绪查找与给定文档相似的文档

  • 根据功能和评级查找与给定产品相似的产品

        若要在向量数据库中执行相似性搜索和检索,需要使用表示所需信息或条件的查询向量。查询向量可以派生自与存储向量相同类型的数据(例如,使用图像作为图像数据库的查询),也可以来自不同类型的数据(例如,使用文本作为图像数据库的查询)。然后,您需要使用相似性度量来计算两个向量在向量空间中的接近或距离。相似性度量可以基于各种指标,例如余弦相似度、欧几里得距离、汉明距离、jaccard 指数。

        相似性搜索和检索的结果通常是与查询向量具有最高相似性分数的向量的排名列表。然后,您可以从原始源或索引访问与每个向量关联的相应原始数据。

        在深入探索人工智能的边界时,我们不仅需要关注算法的进步和硬件的提升,更应该重视数据的组织和处理方式。Semantic Kernel中的Memories概念和Embeddings的使用为我们展现了一种有效处理和检索大量高维数据的方法。通过这些技术,我们能够让机器更好地理解语言的细微差别,做出更加智能化的决策,并最终为用户提供更准确、有用且个性化的服务。

        无论是提升语言模型的理解能力,还是增强数据库的检索功能,这些技术都为我们打开了新的可能性。随着向量数据库和Semantic Memory的进一步优化和发展,我们期待在未来看到更多创新的应用和服务,这些都将以前所未有的速度和准确度丰富我们的数字世界。

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

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

相关文章

QT中使用QAxObject类读取xlsx文件内容并显示在ui界面

一、源码 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();pr…

鸿蒙内核源码分析(共享内存) | 进程间最快通讯方式

运行机制 共享好端端的一词&#xff0c;近些年被玩坏了&#xff0c;共享单车,共享充电宝,共享办公室&#xff0c;共享雨伞… 甚至还有共享女朋友&#xff0c;真是人有多大胆&#xff0c;共享有多大产。但凡事太尽就容易恶心到人&#xff0c;自己也一度被 共享内存 恶心到了&am…

看图学sql之sql中的子查询

&#xfeff;&#xfeff; &#xfeff;where子句子查询 语法&#xff1a; SELECT column_name [, column_name ] FROM table1 [, table2 ] WHERE column_name OPERATOR(SELECT column_name [, column_name ]FROM table1 [, table2 ][WHERE]) 子查询需要放在括号( )内。O…

解决git checkout -b 拉取远端某分支到本地时报错

问题描述 日常开发场景中&#xff0c;经常会出现切分支的情况&#xff0c;所以git checkout 命令是非常高频的 git checkout -b feature/xxx默认情况下&#xff0c;这条命令是基于当前所在分支来开辟新分支feature/xxx 但是&#xff0c;还有一些情况&#xff0c;我们需要基于…

appium下载及安装

下载地址&#xff1a;https://github.com/appium/appium-desktop/releases 双击安装就可以

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(三)---创建自定义激光雷达Componet组件

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车&#xff0c;并使用通过跨平台的方式进行ROS2和UE5仿真的通讯&#xff0c;达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础&#xff0c;Nav2相关的学习教程可以参考本人的其他博…

数学建模学习(115):主成分分析(PCA)与Python实践

文章目录 一.主成分分析简介1.1 数学背景与维度诅咒1.2 PCA的定义与应用二.协方差矩阵——特征值和特征向量三.如何为数据集选择主成分数量四.特征提取方法五.LDA——与PCA的区别六.PCA的应用七.PCA在异常检测中的应用八.总结一.主成分分析简介 1.1 数学背景与维度诅咒 主成成…

视频智能分析平台烟火检测视频安防监控烟火算法识别应用方案

烟火检测算法的应用方案主要围绕其核心技术——深度学习&#xff08;特别是卷积神经网络CNN&#xff09;和计算机视觉技术展开&#xff0c;旨在实现对监控视频中的烟雾和火焰进行实时、准确的检测与识别。以下是一个详细的烟火检测算法应用方案&#xff1a; 一、技术原理 烟火…

高并发集群饿了么后端的登录模块

高并发集群饿了么后端的登录模块 1.数据库 非交互式python&#xff1a; 非交互式: 2.数据库的负载均衡&#xff1a;阿里巴巴的mycat 修改配置文件 /usr/local/mycat/conf/server.xml :对外的账号 密码 数据库 /usr/local/mycat/conf/schema.xml 如果出现启动异常&…

【微信小程序】自定义组件 - 数据监听器

1. 什么是数据监听器 2. 数据监听器的基本用法 组件的 UI 结构如下&#xff1a; 组件的 .js 文件代码如下&#xff1a; 3. 监听对象属性的变化 数据监听器 - 案例 案例效果 2. 渲染 UI 结构 3. 定义 button 的事件处理函数 4. 监听对象中指定属性的变化 5. 监听对象中所…

readpaper在读论文时候的默认规定

红色代表主旨思想 蓝色代表专业名词解析

【MySQL】 黑马 MySQL进阶 笔记

文章目录 存储引擎MySQL的体系结构存储引擎概念存储引擎特点InnoDBMyISAMMemory 存储引擎选择 索引概述结构B Tree(多路平衡查找树)B TreeHash为什么InnoDB存储引擎选择使用Btree索引结构? 分类思考题 语法SQL性能分析&#xff08;索引相关&#xff09;SQL执行频率慢查询日志p…

XSS game复现(DOM型)

目录 1.Ma Spaghet! 2.Jefff 3.Ugandan Knuckles 4.Ricardo Milos 5.Ah Thats Hawt 6.Ligma 7.Mafia 8.Ok, Boomer 1.Ma Spaghet! 通过简单的尝试发现传递参数可以直接进入h2标签 接下来我们尝试传入一个alert(1) 可以看到并没有触发。原因是在innerHTML中官方禁用了sc…

MySQL InnoDB引擎四大特性ACID实现方案分析

文章目录 概要InnoDb引擎ACID模型的实现方案小结 概要 对于Mysql&#xff0c;事物的支撑并不依赖于Server层&#xff0c;不同的存储引擎对于事物的支持也不一样&#xff0c;对于我们常用的InnoDB引擎&#xff0c;其提供了一套基于【ACID模型】的事物完整的解决方案。为什么MyIS…

【AI Agent极限挑战赛】三大赛题揭晓

由AIGC开放社区联合联想拯救者、英特尔共同主办的【2024 AI Agent极限挑战赛】于8月17日在上海中庚聚龙酒店成功举办。赛事全面考察参赛者将AI技术应用于实际问题的能力。比赛内容包括对大语言模型的理解、提示词&#xff08;Prompt&#xff09;的结构化调优技术、个人助理Agen…

如何使用ssm实现在线云音乐系统的设计与实现

TOC ssm042在线云音乐系统的设计与实现jsp 第1章 绪论 1.1背景及意义 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于在线云音乐系统所牵扯的管理及数据保存都是非常多的&#xff0c;例如用户管理、歌曲管理、推荐管理等&#xff0c;这给管理者的工作带来了巨…

基于华为昇腾910B和LLaMA Factory多卡微调的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

uniapp点击预览图片,两种效果

背景&#xff1a; 在使用uniapp框架中&#xff0c;我们对图片的展示需要点击放大展示(单张)&#xff1b;如果是多张图片&#xff0c;要支持左右滑动查看多张图片(多张)。 官网链接&#xff1a;点击跳转官网 一、单张&#xff0c;点击放大 代码&#xff1a; <template> …

Kubernetes服务发布基础

通过k8s的调度&#xff0c;我们可以成功的将服务部署到Kubernetes&#xff0c;应用部署后&#xff0c;最重要的就是对用户开放。 在传统的架构中&#xff0c;用户访问公司内的服务可能通过了多层代理、网关、防火墙等。在Kubernetes中&#xff0c;访问Kubernetes中的的应用同样…

Windows下使用QT5.14.2编译MySQL8.0对应的最新64位驱动程序步骤

不得不说mysql更新的速度是真的快&#xff0c;最近一两年都更新了好几个的小版本了。如果安装了高版本的 mysql软件&#xff0c;低版本的驱动就不支持了&#xff0c;因此需要重新使用QT来编译对应的mysql驱动。具体办法如下&#xff1a; 1、官网下载最新的mysql8.0安装包。下载…