LLM+Agent技术

news2024/9/8 23:00:17

💡 Agent可以理解为某种能自主理解、规划决策、执行复杂任务的智能体Agent 是让 LLM 具备目标实现的能力,并通过自我激励循环来实现这个目标。它可以是并行的(同时使用多个提示,试图解决同一个目标)和单向的(无需人类参与对话)。

Agent = LLM+Planning+Feedback+Tool use

决策流程:感知(Perception)→ 规划(Planning)→ 行动(Action)

Agent创建一个目标或主任务后,主要分为以下三个步骤:

  1. 获取第一个未完成的任务
  2. 收集中间结果并储存到向量数据库中
  3. 创建新的任务,并重新设置任务列表的优先级

AI Agent主流框架

1. 微软的Jarvis

step1: 规划:利用好LLM 的推理规划能力,对用户输入进行任务拆解;

step2: 决策:利用LLM的决策能力,判断每个拆解的子任务,我们可以用什么方案解决

step3: 行动:通过决策得出的推荐工具(API,model,插件)去解决每个问题

step4: 总结输出最终解决方案和结果给用户

缺点:需要频繁调用LLM,token数量巨大带来高昂成本

2 微软的promptFlow

step1: 任务拆分,可以是人工拆分,也可以是LLM拆分,自定义~

反正从输入到输出就是一个任务流。我们只需要定义好每个步骤的输入和输出是什么。

step2: 每个task使用LLM去决策如何执行,也可以人工实现逻辑,也可以使用成熟插件,自定义~

step3:总结输出给用户

整个思路就是每个步骤都可控,输入,输出以及f(x)是什么都是我自己定义,我们通过评估使用LLM或者按传统思路实现逻辑,都很灵活。最好这个任务流可以可视化,方便我们理清思路。

3. Langchain

Langchain也是AI Agenthttps://github.com/langchain-ai/langchain。langchain开发的初衷是让开发者能够快速的构建一个LLM原型应用。Langchain主要组件有:

Models:模型,各个类型的LLM模型集成,比如GPT-4

Prompts:提示,在提示词中引入变量以适应用户输入,包括提示模版管理,优化和序列化。

Memory:记忆,用来保存模型交互的上下文

Indexes:索引,用来结构化文档,外挂知识库就是索引的一个功能应用

Chains:链, 对模型的一系列组件工具的链式调用,以上一个输出为下一个输入的一部分。

Agents: 代理,决定模型采取哪些行动,应该选哪个工具,执行并观察流程

Multi-Agent:多个Agent共享一部分记忆,自主分工相互协作。

对于Langchain我们用的最多的就是利用他进行外挂知识库,但是这其实知识Indexes这个组件的应用,Langchain的功能远不止此;其中Chains的思路其实就是promptFlow;Agents里面的AgentAction就是Jarvis的思路。

缺点:Langchain才是功能和工具最齐全的框架,但是Langchain功能太多,导致整个框架太重,极其不灵活;大家通常只用他的一个组件功能

相关案例

斯坦福的虚拟小镇

代码已开源:https://github.com/joonspk-research/generative_agents
一个agent就是一个虚拟人物,25个agents之间的故事

架构

记忆(Memory)

短期记忆:在上下文中(prompt)学习。它是短暂有限的,因为它受到Transformer的上下文窗口长度的限制。

长期记忆:代理在查询时可以注意到的外部向量存储,可以通过快速检索访问。

反思(Reflection)

反思是由代理生成的更高级别、更抽象的思考。因为反思也是一种记忆,所以在检索时,它们会与其他观察结果一起被包含在内。反思是周期性生成的;当代理感知到的最新事件的重要性评分之和超过一定阈值时,就会生成反思。

  • 让代理确定要反思什么
  • 生成的问题作为检索的查询

计划(Plan)

计划是为了做更长时间的规划。像反思一样,计划也被储存在记忆流中(第三种记忆),并被包含在检索过程中。这使得代理能够在决定如何行动时,同时考虑观察、反思和计划。如果需要,代理可能在中途改变他们的计划(即响应,reacting)。

Huggingface:Transformers Agents 发布

它在 Transformers 的基础上提供了一个自然语言 API,来 “让 Transformers 可以做任何事情”。

这其中有两个概念:一个是 Agent (代理),另一个是 Tools (工具),我们定义了一系列默认的工具,让代理去理解自然语言并使用这些工具。

  • 代理:这里指的是大语言模型 (LLM),你可以选择使用 OpenAI 的模型 (需要提供密钥),或者开源的 StarCoder 和 OpenAssistant 的模型,我们会提示让代理去访问一组特定的工具。
  • 工具:指的是一个个单一的功能,我们定义了一系列工具,然后使用这些工具的描述来提示代理,并展示它将如何利用工具来执行查询中请求的内容。

目前在 transformers 中集成的工具 包括:文档问答、文本问答、图片配文、图片问答、图像分割、语音转文本、文本转语音、零样本文本分类、文本摘要、翻译等。

总结

观点1:Agent特点

  • Agent本身是类似于DM的升级版,能够充分利用对环境的感知,进行决策规划,充分调用LLM的能力。
  • 私有化部署时,集成到企业工作流中,面临的边际成本很难降低,且没有通用性。
  • Agent需要调用外部工具,调用工具最好的方式就是输出类Makedown代码

由LLM大脑输出一种可执行的代码,像是一个语义分析器,由它理解每句话的含义,然后将其转换成一种机器指令,再去调用外部的工具来执行或生成答案。尽管现在的 Function Call 形式还有待改进,但是这种调用工具的方式是非常必要的,是解决幻觉问题的最彻底的手段。

观点2:Agent落地的瓶颈

Agent本身用到两部分能力,一部分是由LLM作为其“智商”或“大脑”的部分,另一部分是基于LLM,其外部需要有一个控制器,由它去完成各种Prompt,如通过检索增强Memory,从环境获得Feedback,怎样做Reflection等。

Agent既需要大脑,也要外部支撑

  • LLM本身的问题:自身的“智商”不够,可进行LLM升级为GPT-5;Prompt的方式不对,问题要无歧义。
  • 外部工具:系统化程度不够,需要调用外部的工具系统,这是一个长期待解决的问题。

通用AGI:现阶段Agent的落地,除了LLM本身足够通用之外,也需要实现一个通用的外部逻辑框架。不只是“智商”问题,还需要如何借助外部工具,从专用抵达通用——而这是更重要的问题。

解决特定场景的特定问题:将LLM作为一个通用大脑,通过Prompt设计为不同的角色,以完成专用的任务,而非普适性的应用。但是面临的关键问题,即Feedback将成为Agent落地实现的一大制约因素,对于复杂的Tools应用,成功概率会很低。

观点3:多模态在Agent的发展

多模态只能解决Agent感知上的问题,而无法解决认知的问题。

多模态是必然趋势,未来的大模型必然是多模态的大模型,未来的Agent也一定是多模态世界中的Agent。

观点4:Agent从专用到通用的实现路径

假设Agent最终将落地于100种不同的环境,在目前连最简单的外部应用都难以实现的前提下,最终能否抽象出一个框架模型来解决所有外部通用性问题?

先将某一场景下的Agent做到极致——足够稳定且鲁棒,再逐步将它变成通用框架,也许这是实现通用Agent的路径之一。。

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

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

相关文章

告别中央服务器:Syncthing实现点对点文件同步

介绍 Syncthing 是一款开源的文件同步工具,可让您在多个设备之间同步文件。 它适用于 Mac OS X、Windows、Linux、FreeBSD、Solaris、OpenBSD等系统。 可以通过浏览器访问来配置和监控该应用程序。 Syncthing 具有以下特点: 1、点对点同步 2、无需中央服务器 …

如何从 Windows 照片库恢复删除的照片

数据丢失的主要原因之一是人为错误。更糟糕的是,回收站中没有备份,也没有已删除的文件。在这种情况下,数据恢复或专门的 Windows 图片恢复工具可以帮您恢复已删除的图片。 考虑到这一点,我们将讨论从 Windows 10 上的图库中恢复已…

基于Intel Chainer 和姿势检测的动作识别(人体、面部、手部关键点识别动作识别)

项目概述 目标 开发一个能够实时或近实时识别特定动作的系统,如运动姿势、表情变化或手势控制。实现对人体关键点的精确追踪,以便于分析和理解人的动态行为。 技术栈 Intel硬件:可能使用Intel的高性能计算平台,如Xeon处理器或…

【大数据技术】换新电脑了,如何快速迁移MySQL到新电脑上(含程序+数据),这样既快速又高效,省去了“各种安装+各种配置+各种迁移数据”带来的麻烦和时间

【大数据技术】换新电脑了,如何快速迁移MySQL到新电脑上(含程序数据 背景步骤总结 背景 很久没有写博文了哦,最近我换了新的笔记本,于是需要在新笔记本电脑上搭建MySQL环境,因为我原电脑上是安装的MySQL解压版,故我想偷偷懒&…

基于Android平台开发,购物商城

1. 项目功能思维导图 2. 项目涉及到的技术点 使用SQLite数据库实现数据存储使用CountDownTimer实现启动页倒计时使用SharedPreferences实现记住密码登录使用BottomNavigationView实现底部导航栏使用ActivityFragment实现底部导航栏页面之间切换使用RecyclerViewadapter实现商品…

Java 中的 switch 语句:类型支持与限制

Java 中的 switch 语句:类型支持与限制 1、switch 语句支持的数据类型2、switch 语句不支持的数据类型3、总结 💖The Begin💖点点关注,收藏不迷路💖 在 Java 中,switch 语句是一种用于多分支选择的控制结构…

vscode单独设置项目的字符集

vscode有个默认的字符集,直接修改这里的话将会修改整个vscode工具的字符集。如果不同的项目使用不同的字符集,就不能修改这个默认的设置了。而是需要针对每个项目进行修改。 修改方法: 使用shiftctrlp进入settings的菜单页面,点击…

ARM体系结构及接口技术介绍(一)相关概念 寄存器

文章目录 一、ARM相关概念1. 机器码:计算机可以识别的0和1组成的特殊的编码2. 汇编指令:编译器可以将每条汇编指令编译生成特定的计算机可以识别的机器码3. 汇编指令集:很多具有不同功能的汇编指令的集合4. 架构:基于不同的汇编指…

resistronic焊接机RMF10 RE120安装SSK10说明操作

resistronic焊接机RMF10 RE120安装SSK10说明操作

新开发的软件老被系统拦截有什么办法解决吗?

一套新开发的软件要想在windows操作系统畅通无阻,那就需要使用代码签名证书,只要是对软件进行实名从而证明软件发布者身份,确保该软件是一个合法有效的主体开发的,也是让这个软件开发者承担相应的责任。 特别主要如果要获得即时性…

【AI前沿】深度学习:技术、发展与前沿应用

文章目录 一、深度学习的背景与发展1.1 背景1.2 早期发展1.3 突破性进展1.4 近年发展 二、深度学习的基本概念2.1 神经网络2.2 多层感知器(MLP)2.3 卷积神经网络(CNN)2.4 循环神经网络(RNN)2.5 生成对抗网络…

【结构型模式-代理模式】

概述 由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象与目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生…

Linux--网络设置

目录 一、测试网络连接 1、查看网络接口信息 1.1 ifconfig 命令---查看网络接口信息 1.1.1 ifconfig 网卡 #单独查看某个网卡 1.1.2 ifconfig -a #显示所有活动及非活动的连接 二、修改网络配置文件 三、设置网络接口参数 3.1 启用、禁用网络接口配置 3.2 hostn…

数据库数据恢复—SQL Server数据库由于存放空间不足报错的数据恢复案例

SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生…

Python爬虫速成之路(1):获取网页源代码

hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:绝命Coding-CSDN博客 &a…

LLM-阿里云 DashVector + ModelScope 多模态向量化实时文本搜图实战总结

文章目录 前言步骤图片数据Embedding入库文本检索 完整代码 前言 本文使用阿里云的向量检索服务(DashVector),结合 ONE-PEACE多模态模型,构建实时的“文本搜图片”的多模态检索能力。整体流程如下: 多模态数据Embedd…

【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

变位齿轮的齿高好像不变

通过这个软件的计算,变位尺寸的大小径都会同时变化,从而整个齿高好像没有变化。 下面百度答案

中国AI已遥遥领先

关注卢松松,会经常给你分享一些我的经验和观点。 种种迹象表明,中国的AI产业是仅次于美国的存在,中国的AI已经遥遥领先,其他国家。 根据中国信息通信研究院发布的报告称: 根据中国信息通信研究院近日发布的《全球…

LabVIEW远程实验数据采集系统

随着科学研究的不断发展,实验室对远程数据采集和监控的需求越来越高。传统的数据采集方式往往需要实验人员亲临现场,费时费力,且数据实时性较差。为了解决这些问题,基于LabVIEW开发了一套远程实验数据采集系统,实现对实…