SwiftSage:参考人脑双系统,结合快思和慢想的智能体,解决复杂任务同时降低成本

SwiftSage:参考人脑双系统,结合快思和慢想的智能体,解决复杂任务同时降低成本

    • 提出背景
    • 解法拆解
        • 子解法1:SWIFT模块
        • 子解法2:SAGE模块
        • 模块整合和决策树
    • SwiftSage 工作流程
    • 效果

 


论文:SWIFTSAGE: A Generative Agent with Fast and Slow Thinking for Complex Interactive Tasks

代码:https://github.com/yuchenlin/swiftsage/

提出背景

传统的人工智能方法如强化学习和行为克隆在简单任务中表现不错,但在复杂任务中处理能力有限,尤其是在应对长期记忆和未知异常时。

而利用大型语言模型的方法虽然能更好地规划复杂任务并根据反馈调整,但每次预测都需要调用模型,导致效率低下和成本高昂。

这两种方法都需要在复杂性处理和成本效率上进行改进。

此外,ReAct 和 Reflection 两种方法还需要针对每种未知任务类型进行适当的子目标人工标注。

SWIFTSAGE是一个基于人类认知的双过程理论设计的框架,专门用于复杂的交互式推理任务中的行动规划。

它包含两个主要模块:SWIFT模块(人类的直觉思维 - 模仿学习)和SAGE模块(深思熟虑的思维 - 通过LLM提示)。

  • SWIFT模块代表快速直觉式的思维,使用一个小型的编码-解码语言模型,这个模型通过学习最佳行动路径来进行训练。
  • SAGE模块则模仿深思熟虑的思维过程,使用像GPT-4这样的大型语言模型来进行子目标规划和理解。

通过这种设计,SWIFTSAGE能够将直觉快速的决策和深入的思考有效结合,提高解决复杂交互任务的能力。

效果:在一个名为ScienceWorld的基准测试中,SWIFTSAGE在30个任务上表现优于其他一些方法,如SayCan、ReAct和Reflexion。

这张图比较了四种使用 LLM 来构建交互式任务代理的方法:SayCan、ReAct、Reflexion和SWIFTSage。

  1. SayCan

    • 示例任务是烧水,需要在每个时间步骤用LLM生成行动。
    • 例如,先去厨房,然后环顾四周,接着捡起金属锅,并最终把锅放在炉子上。
    • LLM生成一系列可能的行动,然后进行重新排序以选择最佳行动。
  2. ReAct

    • 与SayCan类似,但在每个行动步骤之前会有一个思考过程,例如思考需要把锅放在加热器上。
    • LLM直接生成行动。
  3. Reflexion

    • 反映上一轮失败的行动历史,以改进当前的行动选择。
    • 每个时间步骤中,LLM都基于完整的行动历史生成新的行动。
  4. SWIFTSage

    • 采用双模块策略,其中SWIFT模块用于生成即时行动,SAGE模块用于计划和跟踪子目标,处理在线异常。
    • SAGE模块还涉及“地面模板”来实现行动,并使用行动缓冲机制。

SWIFTSage通过其独特的双模块设计,结合快速直觉反应和深度分析计划,优化了任务执行效率和成本,特别在处理复杂和未知情境下的适应性和异常处理能力方面表现出色,成为一个在多变和复杂环境中高效的智能代理解决方案。

解法拆解

为了克服这些挑战,SWIFTSAGE引入了两个互补的模块:SWIFT模块和SAGE模块,它们分别处理快速直觉思维和深度分析思维。

子解法1:SWIFT模块

Swift 模块利用了一个小型的编码器-解码器语言模型,能够编码诸如先前动作、当前观察、已访问位置及当前环境状态等短期记忆内容,并据此解码生成下一步的动作。

利用丰富的离线数据,Swift 模块通过模仿学习的方法——行为克隆,可以深入理解目标环境的设定,并更准确地把握任务需求。

  • 功能:SWIFT模块采用模仿学习,通过快速直觉思维迅速生成反应。
  • 原因:这种方法适用于处理已知情境下的任务,因为它可以快速从历史行动中学习,但在新场景或复杂情境中可能不够准确或鲁棒。
  • 例子:如果任务是在熟悉的环境中找到并使用特定物品,SWIFT模块能够快速给出行动方案。
子解法2:SAGE模块

GPT-4 等大型语言模型(LLM)显著增强了任务规划的精确性。

Sage 模块通过规划与融合这两个阶段的LLM提示,精细地梳理任务路径。

在规划阶段,我们的目标是使 LLM 能够精准识别所需物品的位置、细化任务子目标、并且及时发现及修正可能出现的错误或异常。

为此,我们设计了五个关键问题,帮助智能体在执行任务时敏锐地识别并应对任何异常情况,增加任务成功的可能性。

  1. Q1(定位对象):要求模型确定完成任务所需的具体对象及其可能的位置。
  2. Q2(追踪对象):询问是否还有未收集的对象,确保所有必需品已被获取。
  3. Q3(规划子目标):要求模型列出完成任务所需的关键子目标,以有效地组织行动计划。
  4. Q4(追踪进展):让模型评估已完成的子目标,并决定当前应专注的子目标,以保持任务进展的连贯性。
  5. Q5(处理异常):询问模型在执行任务过程中是否遇到了可能妨碍下一子目标完成的错误,并探讨如何纠正这些错误。

这些问题使得Sage模块不仅能够进行深度规划,还能动态调整其行动策略,从而提高处理复杂任务的效率和成功率。

 
在融合阶段,Sage 模块的主要任务是将规划阶段所得的信息——五个核心问题的答案和动作模板——转换成一连串具体可行的操作步骤,形成了所谓的动作缓冲区。

这种方法的独特之处在于,Sage 模块不仅仅是生成即刻的单个动作,而是制定一个涵盖多步操作的综合行动计划。

为此,LLM 被赋予了包含子目标和可采用的行动模式的详细指令,使其能够依次产生一系列的行动,每一步都紧密对应于既定的子目标,这与传统的逐一行动生成方式不同。

  • 功能:SAGE模块通过引导式的大型语言模型(LLM),进行深入的规划和分析,处理复杂的子目标和异常情况。
  • 原因:这种方法适用于未知或更复杂的任务,因为它能够进行深入分析,生成详细的行动计划和应对策略。
  • 例子:在面对一个新的科学实验任务,如测试未知物质的导电性,SAGE模块可以详细规划实验步骤和所需物品。
模块整合和决策树
  • 决策条件:根据任务的复杂度和遇到的问题,智能代理会在SWIFT和SAGE之间切换。
    • 如果连续几步操作没有得到预期结果(如没有获得分数),或者遇到了关键决策点,或者当前策略无效,代理会从SWIFT模式切换到SAGE模式。
    • SAGE模式会详细规划下一步行动,生成一个行动缓存,并在执行完这些行动后,可能会重新切换回SWIFT模式以继续任务。

这种双模块的设计使得SWIFTSAGE能够灵活应对各种任务情境,有效整合快速和慢速思维的优势,从而提高在复杂交互式环境中的表现。

SwiftSage 工作流程


这张图展示了 SWIFTSAGE 智能代理如何通过结合快速的 SWIFT 模块和深度分析的 SAGE 模块,高效处理一个融化冰淇淋的任务,特别在遇到异常时如何灵活切换并制定详细的行动计划。

这个过程分为几个关键步骤:

  1. 任务描述与环境状态

    • 任务是融化冰淇淋,当前的环境描述包括冰箱、橙子、锅等物品和位置信息(如厨房、走廊等已访问地点)。
  2. SWIFT模块动作

    • 基于历史行动和当前环境,SWIFT模块建议的下一个动作是激活炉子。
    • 但观察到炉子坏了,无法使用。
  3. 切换到SAGE模块

    • 因为遇到了异常(炉子坏了),系统切换到SAGE模块。
    • SAGE模块通过大型语言模型(如GPT-4)进行深入规划和问题解决。
  4. SAGE模块的规划与执行

    • SAGE模块首先确定需要的对象,并规划如何达到子目标。
    • 例如,发现需要一个工作的热源,然后把装有冰淇淋的金属锅放在热源上,等待冰淇淋融化。
    • 接着,SAGE模块修正了使用坏掉的炉子的问题,并建议使用厨房中的烤箱作为热源。
  5. 动作缓冲区(Action Buffer)

    • SAGE模块产生了一系列具体的操作步骤,包括打开烤箱、移动金属锅到烤箱、关闭烤箱并激活烤箱,这些操作都存储在动作缓冲区中,准备执行。

效果

在 ScienceWorld 中的 30 种任务中:

  • SwiftSage 分数 84.7
  • SayCan 分数 33.8
  • ReAct 分数 36.4 分
  • Reflexion 分数 45.3 分

成本方面,为了产生一个行动,Saycan 和 ReAct 需近 2000 个 token,Reflexion 需接近 3000 个 token,而 SwiftSage 仅需约 750 个 token。

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

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

相关文章

5G赋能新能源,工业5G路由器实现充电桩远程高效管理

随着5G技术的广泛应用,新能源充电桩的5G应用正逐步构建起全新的生态系统。在数字化转型的浪潮中,新能源充电桩行业正迎来数字化改革。工业5G路由器的引入,为充电桩的远程管理提供了强有力的技术支持,新能源充电桩5G路由器网络部署…

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及,充电设施的便捷性、智能化需求日益凸显,共享充电桩语音IC应运而生,成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势,希望能够帮助您。 一、NV170D语音ic概述…

选购指南:如何挑选最适合的快手矩阵系统

在短视频风潮席卷的今天,快手作为其中的佼佼者,吸引了无数创作者和商家的目光。然而,想要在快手上脱颖而出,仅凭内容和创意是远远不够的。一个强大且适合的快手矩阵系统,将是你通往成功的重要钥匙。那么,如…

SEO域名外链生成工具PHP源码

两款不同版本的SEO超级外链工具PHP源码,网址外链-seo外链推广工具源码,SEO网站推广外链工具源码SEO域名外链生成工具PHP源码 _ 博客趣两款不同版本的SEO超级外链工具PHP源码,网址外链-seo外链推广工具源码,SEO网站推广外链工具源码…

Web前端:HTML篇(一)

HTML简介: 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器…

批量打断相交线——ArcGISpro 解决方法

在数据处理,特别是地理空间数据处理或是任何涉及图形和线条分析的场景中,有时候需要把相交的线全部从交点打断一个常见的需求。这个过程对于后续的分析、编辑、或是可视化展现都至关重要,因为它可以确保每条线都是独立的,避免了因…

.NET下支持多框架的托盘功能NotifyIconEx(WPF / WinForms / Avalonia / WinUI / MAUI / Wice)

支持 WPF / WinForms / Avalonia / WinUI / MAUI / Wice 应用。 先看效果: using NotifyIconEx;var notifyIcon new NotifyIcon() {Text "NotifyIcon",Icon Icon.ExtractAssociatedIcon(Process.GetCurrentProcess().MainModule?.FileName!)! }; not…

【论文速读】| LLMCloudHunter:利用大语言模型(LLMs)从基于云的网络威胁情报(CTI)中自动提取检测规则

本次分享论文:LLMCloudHunter: Harnessing LLMs for Automated Extraction of Detection Rules from Cloud-Based CTI 基本信息 原文作者:Yuval Schwartz, Lavi Benshimol, Dudu Mimran, Yuval Elovici, Asaf Shabtai 作者单位:Ben-Gurion…

第一弹:基于ABAP OLE技术实现对服务器文件进行读写操作

前言 最近遇到这样一个需求,需要对BW服务器上的文件进行下载的同时写入每个用户相对应的数据。之前的服务器模版是一个死模版,对于这样的要求,我就想到了OLE技术,那么什么是OLE技术呢? 一、什么是OLE技术&#xff1f…

Python 全栈体系【三阶】(三)

第一章 Django 七、静态文件 1. 概述 静态文件是指在WEB应用中的图像文件、CSS文件、Javascript文件。 2. 静态文件的配置 settings.py中关于静态文件的配置如下: STATICFILES_DIRS [BASE_DIR , static, ]STATIC_URL /static/其中: STATICFILES…

C++——模板初阶 | STL简介

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

便携气象站:科技助力气象观测

在科技飞速发展的今天,便携气象站以其轻便、高效、全面的特点,正逐渐改变着气象观测的传统模式。这款小巧而强大的设备,不仅为气象学研究和气象灾害预警提供了有力支持,更为户外活动、农业生产等领域带来了诸多便利。 便携气象站是…

Redis+Lua脚本+AOP+反射+自定义注解,打造我司内部基础架构限流组件

定义注解 Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documented public interface RedisLimitAnnotation {/*** 资源的key,唯一* 作用:不同的接口,不同的流量控制*/String key() default "";/*** 最多的访问限制次数…

算法日记day 17(二叉树的最大、最小深度)

一、二叉树的最大深度 题目: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2&#xff1…

STM32智能机器人控制系统教程

目录 引言环境准备智能机器人控制系统基础代码实现:实现智能机器人控制系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与导航系统实现 4.4 用户界面与数据可视化应用场景:机器人控制与优化问题解决方案与优化收尾与总结 1. 引言 智能机器人控…

qt中charts图表的使用方法

折线图 #include "widget.h" #include "ui_widget.h" #include <QtCharts/QChart> #include <QtCharts/QChartView> #include <QtCharts/QLineSeries> #include<QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent), …

Windows图形界面(GUI)-MFC-C/C++ - MFC项目工程框架解析

公开视频 -> 链接点击跳转公开课程博客首页 -> e​​​​​​链接点击跳转博客主页 目录 MFC项目 项目选择 配置安装 程序引导 MFC框架 环境设置 程序框架 代码编写 MFC解析 程序入口 执行流程 代码结构 应用程序类 窗口框架类 消息处理 消息类型 消息…

ML.Net 学习之使用经过训练的模型进行预测

什么是ML.Net&#xff1a;&#xff08;学习文档上摘的一段&#xff1a;ML.NET 文档 - 教程和 API 参考 | Microsoft Learn 【学习入口】&#xff09; 它使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。 借助此功能&#xff0c;可以使用应用程序的可用数据进行自…

一个简单好用安全的开源交互审计系统,支持SSH,Telnet,Kubernetes协议(带私活)

前言 在当今的企业网络环境中&#xff0c;远程访问和交互审计成为了保障网络安-全的重要组成部分。然而&#xff0c;现有的解-决方案往往存在一些痛点&#xff0c;如复杂的配置、有限的协议支持、以及审计功能的不足。这些问题不仅增加了IT管理员的负担&#xff0c;也为企业的…

基于R语言复杂数据回归与混合效应模型【多水平/分层/嵌套】技术与代码

回归分析是科学研究特别是生态学领域科学研究和数据分析十分重要的统计工具&#xff0c;可以回答众多科学问题&#xff0c;如环境因素对物种、种群、群落及生态系统或气候变化的影响&#xff1b;物种属性和系统发育对物种分布&#xff08;多度&#xff09;的影响等。纵观涉及数…