论文 | REACT: SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS

news2024/9/24 15:19:05

本文首先认为,到目前为止,LLM 在语言理解方面令人印象深刻,它们已被用来生成 CoT(思想链)来解决一些问题,它们也被用于执行和计划生成。

尽管这两者是分开研究的,但本文旨在以交错的方式将推理和行动结合起来,以提高LLM的表现。

这个想法背后的原因是,如果你考虑一下作为一个人,你如何行为来执行某些任务。

第一步是你将使用“内心言语”,或者你会以某种方式写下或与自己交流,说“我如何执行任务 X? 要完成任务 X,我需要首先执行步骤 1,然后执行步骤 2,依此类推”

更具体地说,如果你要在厨房做一道菜,你可以像这样做出反应:

  • “现在一切都切完了,我该烧热锅水了”),处理异常或者根据情况调整计划(“我没有盐,就用酱油和胡椒粉代替吧”), 并意识到何时需要外部信息(“我如何准备面团?让我在互联网上搜索”)。
  • 您还可以采取行动(打开食谱阅读食谱、打开冰箱、检查成分)来支持推理并回答问题(“我现在可以做什么菜?”)。

这种推理与行动的结合使得人类即使在以前未见过的情况下或面临信息不确定性时也能学习并完成任务。

论文引入一个名为ReAct的框架,在这个框架中,LLM被用来以交互的方式生成“合理的推理轨迹”以及“特定于任务的操作”。

  • 生成合理的推理轨迹允许模型归纳、跟踪、更新动作规划,甚至处理异常
  • 特定于任务的操作允许模型与外部数据源(例如知识库或外部环境)交互并收集信息

ReAct是一种将推理和行动与LLM相结合的通用范式。通过Few-shot Prompt,引导LLM生成推理轨迹和特定任务行动。这使得系统能够在整个pipeline过程中进行动态推理,不断创造、维护、调整行动计划,同时允许通过工具调用和外部环境(例如维基百科)进行交互以此获得外部信息,并将外部信息融合到整个动态推理过程中。

1. 数据准备

  • 任务实例: 收集大量任务实例,每个实例包含目标、输入信息、行动轨迹和结果。
  • 推理轨迹和行动: 将每个实例的推理过程和行动轨迹人工标注为文本,例如:
    • 推理轨迹: 将推理过程分解为多个步骤,并用自然语言描述每个步骤的内容。
    • 行动: 将每个步骤对应的行动用自然语言描述,例如搜索关键词、点击按钮等。
  • 环境接口: 设计一个简单的环境接口,例如 API,用于模型与环境交互。

2. 提示生成

  • 任务实例: 将每个任务实例的输入信息、推理轨迹和行动轨迹组合成提示。
  • 示例: 提供一个或多个包含推理轨迹和行动轨迹的示例,以指导模型生成推理轨迹和行动。

3. 模型训练

  • 使用 ReAct 提示训练大语言模型,例如 PaLM-540B。
  • 可以使用微调方法,例如使用少量正确的推理轨迹和行动轨迹来微调较小的语言模型。

4. 任务解决

  • 使用训练好的模型解决新的任务实例。
  • 模型会根据提示生成推理轨迹和行动,并通过环境接口与环境交互。

ReAct 效果

  • 知识密集型推理任务
    • 在 HotpotQA 和 Fever 任务上,ReAct 的性能优于仅使用行动或推理的模型。
    • ReAct 生成的推理轨迹更可靠,事实驱动的,不容易出现幻觉或错误传播。
    • 结合 ReAct 和 CoT-SC 方法可以进一步提高性能,并充分利用内部知识和外部知识。
  • 决策任务
    • 在 ALFWorld 和 WebShop 任务上,ReAct 的性能优于模仿学习和强化学习方法。
    • ReAct 生成的推理轨迹可以帮助模型更好地规划行动,并有效地探索环境。
    • ReAct 的推理轨迹可以由人类进行编辑,从而更好地控制模型的行为。

与现有方法的对比

  • Chain-of-Thought (CoT): CoT 可以揭示 LLM 的推理过程,但容易出现幻觉和错误传播。
  • 模仿学习 (IL): IL 可以学习专家的行为,但缺乏灵活性,无法适应新的任务。
  • 强化学习 (RL): RL 可以学习复杂的决策过程,但需要大量的数据和计算资源。

局限性

  • 标注数据需求: ReAct 的训练需要大量的人工标注数据,这对于实际应用来说可能是一个挑战。
  • 推理和行动行为的有限支持: ReAct 目前对推理和行动行为的支持有限,需要进一步改进。
  • 模型的可解释性: 虽然ReAct 生成的推理轨迹更容易理解,但对于一些复杂的推理过程,仍然难以解释。

未来方向

  • 改进标注数据收集: 开发自动标注或半自动标注方法,以减少人工标注数据的需求。
  • 扩展推理和行动行为: 研究更丰富的推理和行动行为,以支持更复杂的任务。
  • 提高模型的可解释性: 开发新的技术,例如可视化或解释方法,以帮助人类理解模型的决策过程。
  • 与其他方法结合: 将 ReAct 与其他方法结合,例如强化学习,以进一步提高模型的性能和灵活性。

总结

ReAct 是一个很有潜力的方法,它将推理和行动结合起来,为解决各种语言推理和决策任务提供了新的思路。论文的实验结果也表明,ReAct 在推理和行动方面都优于现有的方法。未来可以进一步改进 ReAct 的性能和扩展其应用范围,从而推动大语言模型在各个领域的应用。

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

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

相关文章

JDBC编程的学习——MYsql版本

目录 前言 什么是JDBC ??? 前置准备 使用JDBC的五个关键步骤 1.建立与数据库的连接 2.创建具体的sql语句和Statement 3.执行SQL语句 4.处理结果集 5.释放资源 完整流程展示 前言 笔者在先前的博客就提过会写关于JDBC的内容 [Mysql] 的基础知识和sql 语句.教你速成…

python怎么调用cmd命令

关于python调用cmd命令: 1、python的OS模块 OS模块调用CMD命令有两种方式:os.popen()、os.system()都是用当前进程来调用。 OS.system是无法获取返回值的。当运行结束后接着往下面执行程序。用法如:OS.system("ipconfig"). OS.…

Invoice OCR

Invoice OCR 发票识别 其他类型ORC: DIPS_YTPC OCR-CSDN博客

【AI大模型】检索增强生成(RAG)模型在企业中的应用

彩蛋 ChatGPT4相比于ChatGPT3.5,有着诸多不可比拟的优势,比如图片生成、图片内容解析、GPTS开发、更智能的语言理解能力等,但是在国内使用GPT4存在网络及充值障碍等问题,如果您对ChatGPT4.0感兴趣,可以私信博主为您解决账号和环境…

基于Make的c工程No compilation commands found报错

由于安装gcc时只安装了build-essential,没有将其添加到环境变量中,因此打开Make工程时,CLion会产生如下错误: 要解决这个问题,一个方法是将GCC添加到环境变量中,但是这个方法需要修改至少两个配置文件&…

校园外卖系统带万字文档在线外卖管理系统java项目java课程设计java毕业设计

文章目录 校园外卖系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 校园外卖系统 一、项目演示 校园外卖服务系统 二、项目介绍 语言:java 数据库&…

MySQL实现数据备份的方式可以基于哪几种?

MySQL 数据库实现数据备份的方式主要有以下几种: 物理备份 (Physical Backup): 冷备份 (Cold Backup):在数据库关闭的情况下,直接复制数据库文件(数据文件、日志文件等)。这种方式操作简单,但是…

pd虚拟机去虚拟化是什么意思?pd虚拟机去虚拟化教程 PD虚拟机优化设置

Parallels Desktop for Mac(PD虚拟机)去虚拟化是指在虚拟机(Virtual Machine,简称 VM)中禁用或减少虚拟化层的影响,使其表现更接近于物理机。这种操作通常用于提高虚拟机的性能或解决某些软件兼容性问题。具…

【BUG】Python3|COPY 指令合并 ts 文件为 mp4 文件时长不对(含三种可执行源代码和解决方法)

文章目录 前言源代码FFmpeg的安装1 下载2 安装 前言 参考: python 合并 ts 视频(三种方法)使用 FFmpeg 合并多个 ts 视频文件转为 mp4 格式 Windows 平台下,用 Python 合并 ts 文件为 mp4 文件常见的有三种方法: 调用…

系统数据加密传输的实现

文章目录 1、背景2、需求3、实现思路3.1 密码加密3.2 密码解密3.3 nacos密码加密 4、相关工具类4.1 非对称加密RSA4.2 对称加密AES4.3 Nacos加解密的实现:Jasypt 5、历史数据兼容处理 1、背景 用户在浏览器发送请求数据到后台系统,期间数据在网络传输&a…

osgverse浏览器端编译

目录 1 WSL安装(Windows subsystem for Linux)2 emsdk准备3 SetUp.sh安装(osgverse源码目录下)4 显示与问题 内容 WSL安装(Windows subsystem for Linux) 安装wsl:wsl --install 将版本设置为wsl1(因为版本2比版本1慢很多):wsl --set-version ubuntu 1…

防火墙基础实验配置

一,实验拓扑 二,实验需求: 1.DMZ区内的服务器,办公区仅能在办公时间内(9:00 - 18:00)可以访问,生产区的设备全天可以访问 2.生产区不允许访问互联网,办公区…

迂回战术:“另类“全新安装 macOS 15 Sequoia beta2 的极简方法

概述 随着 WWDC 24 的胜利闭幕,Apple 平台上各种 beta 版的系统也都“跃跃欲出”,在 mac 上自然也不例外。 本次全新的 macOS 15 Sequoia(红杉)包含了诸多重磅升级,作为秃头开发者的我们怎么能不先睹为快呢&#xff1…

什么是边缘计算?创造一个更快、更智慧、更互联的世界

前言 如今,数十亿物联网传感器广泛部署在零售商店、城市街道、仓库和医院等各种场所,正在生成大量数据。从这些数据中更快地获得洞察,意味着可以改善服务、简化运营,甚至挽救生命。但要做到这一点,企业需要实时做出决策…

网络协议 — Keepalived 高可用方案

目录 文章目录 目录Keepalived 是实现了 VRRP 协议的软件Keepalived 的软件架构VRRP StackCheckersKeepalived 的配置Global configurationvrrp_scriptVRRP Configurationvrrp synchroization groupvrrp instancevirtual ip addressesvirtual routesLVS Configurationvirtual_s…

Day06-角色管理-员工管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.编辑角色-进入行内编辑2.角色管理-行内编辑-数据缓存3.角色管理-编辑角色-确定取消4.角色管理-删除角色员工管理-页面结构6.员工管理-左侧树7.员工管理-选中首个节…

昇思学习打卡-14-ResNet50迁移学习

文章目录 数据集可视化预训练模型的使用部分实现 推理 迁移学习:在一个很大的数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章学习使用的是前面学过的ResNet50,使用迁移学…

JAVA之开发神器——IntelliJ IDEA的下载与安装

一、IDEA是什么? IEAD是JetBrains公司开发的专用于java开发的一款集成开发环境。由于其功能强大且符合人体工程学(就是更懂你)的优点,深受java开发人员的喜爱。目前在java开发工具中占比3/4。如果你要走java开发方向,那…

985研究生8年终毕业,学位证颁发11天后被作废?

“正常是学校颁证给学院,但学院就没告诉我,还把学校颁发的证书给撤销了,这中间学院并没有书面或电话告知我本人。”34岁读研,如今已42岁的内蒙古任女士回想起求学不易,很是心酸。 2015年3月,任女士考取2015…

Python酷库之旅-第三方库Pandas(014)

目录 一、用法精讲 34、pandas.DataFrame.to_parquet函数 34-1、语法 34-2、参数 34-3、功能 34-4、返回值 34-5、说明 34-6、用法 34-6-1、数据准备 34-6-2、代码示例 34-6-3、结果输出 35、pandas.read_sql_table函数 35-1、语法 35-2、参数 35-3、功能 35-4…