【AI大模型应用开发】LATS:比ToT和ReAct更强大的大模型思维框架

news2024/11/25 4:04:07

大家好,我是 同学小张,持续学习C++进阶知识AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,共同学习和进步。


我们在大模型中常听说CoT(思维链)、ToT(思维树),还有最近比较火的Agent中常用的ReAct框架。这还不够,最近又发现了一种更高级的框架:LATS(Language Agent Tree Search),它比ToT和ReAct框架更复杂,相应的能力也更强。

原论文:https://arxiv.org/pdf/2310.04406

文章目录

  • 0. LATS是什么?
    • 0.1 基本概念
    • 0.2 LATS与ToT的区别
    • 0.3 LATS 与 ReAct 的区别
    • 0.4 CoT、ToT、ReAct、LATS等总结
  • 1. LATS的原理
  • 2. 总结

0. LATS是什么?

0.1 基本概念

LATS是一个通用框架,它结合了蒙特卡洛树搜索(Monte Carlo tree search,MCTS)的灵感,并利用环境提供外部反馈,从而实现更明智和适应性更强的问题解决机制。

LATS使用大模型作为Agent评估器优化器,将大模型在规划、行动和推理方面的优势结合起来,利用它们的潜在优势来增强决策能力。

0.2 LATS与ToT的区别

LATS与思维树ToT的区别如下图(中间的RAP我没了解过,所以先忽略):

在这里插入图片描述

从图中可以直观地看到,LATS图中增加了环境和反馈。下面是一些区别的总结:

(1)搜索机制

  • LATS采用蒙特卡洛树搜索(MCTS)的变种,这是一种启发式搜索算法,通过构建决策树来平衡探索和利用。LATS在树搜索中使用每个节点代表一个状态,并通过选择、扩展、评估、模拟、反向传播和反思等操作来寻找最优解。

  • ToT使用深度优先搜索(DFS)或广度优先搜索(BFS)来探索多个推理路径。基于大模型评估的启发式来引导搜索,但通常不涉及树搜索中的动态规划或反向传播。

(2)外部反馈的使用

  • LATS特别强调使用外部环境的反馈来改进推理和决策。LATS利用环境交互和自我反思来增强模型的合理性,并使Agent能够从经验中学习。

  • ToT通过探索多个推理路径来增强语言模型的决策能力,但它主要依赖于语言模型内部的知识。

(3)自我反思

  • LATS包括一个反思操作,当遇到不成功的终端节点时,会生成一个反思,总结推理或行动过程中的错误,并提出更好的替代方案。这些反思被存储并作为额外的上下文信息,以提高未来尝试的性能。

  • ToT方法本身不包括自我反思的组件。它更多地关注于通过搜索算法探索不同的推理路径。

(4)灵活性和适应性

  • LATS设计为灵活和适应性强,可以根据不同环境和任务调整状态设计和树的维度。

  • ToT虽然能够探索多个推理路径,但它的适应性可能不如LATS,因为它不包括对外部反馈的整合。

0.3 LATS 与 ReAct 的区别

LATS 与 ReAct 的区别如下图示例所示:

在这里插入图片描述

LATS更像是ReAct的扩展,在思考时会探索不同的路径,并对答案进行反思和反向传播。其区别总结如下:

(1)搜索策略

  • LATS:前面也提到了,其采用蒙特卡洛树搜索(MCTS)作为其核心搜索算法,这允许它通过构建决策树来平衡探索和利用,从而在多个可能的行动路径中进行选择和扩展。

  • ReAct:更多地侧重于通过与环境的交互来直接映射输入到输出,而不是使用树搜索算法。ReAct通过接收环境的观察结果并采取相应的动作来增强推理和行动。

(2)外部反馈的使用

  • LATS:明确地利用外部环境的反馈来改进决策过程。它通过模拟和反向传播操作来整合这些反馈,并通过自我反思来进一步提升性能。
  • ReAct:虽然也使用环境反馈来增强模型的行动能力,但它的主要关注点是通过交互API环境来提升信息检索能力,而不是通过搜索算法来探索多个可能的解决方案。

(3)自我反思

  • LATS:包括一个自我反思的步骤,允许模型在遇到不成功的路径时生成反思,这些反思被用来作为额外的上下文信息,以改进未来的决策。
  • ReAct:不特别强调自我反思。它更多地依赖于直接从环境获得的反馈来指导行动。

(4)灵活性和适应性

  • LATS:提供了更大的灵活性和适应性,因为它可以适应不同的环境和任务需求,通过调整状态设计和树的维度来优化搜索过程。
  • ReAct:虽然ReAct也能够适应不同的任务,但它的设计更倾向于直接的行动和反应,而不是通过搜索和反思来改进决策。

(5)应用范围:

  • LATS:由于其搜索和反思机制,更适合于需要复杂决策和长期规划的任务。
  • ReAct:更适合于需要即时反应和交互的环境,特别是在信息检索和基于API的环境中。

0.4 CoT、ToT、ReAct、LATS等总结

如下图,论文中总结了主流的这些框架和方法的能力,LATS是唯一一个将思考、行动、规划结合起来的框架。

在这里插入图片描述

从这个图中,也可以看出LATS与其它框架的根本区别,以及各个框架之间的区别。

之前一直以为ReAct中有Planning的过程,因为它也是思考一步走一步,现在看来,ReAct更多地是强调思考加执行,一步步往下走,没有一个反馈地过程,规划能力不能说没有一点,但也不多。以现在大模型地规划和推理能力,在ReAct框架中依赖大模型进行规划有点不确定性太高了。LATS因为多分支搜索,并且有反馈和反向传播能力,所以能及时纠错,让大模型地规划更可靠一点。

1. LATS的原理

实现原理如下图:

在这里插入图片描述

一共是6个步骤:

(1)选择

  • 在树中,你从根部(初始状态)开始,根据一定的规则(比如哪个分支最有可能通向正确答案),选择一个最有前途的分支继续前进。

(2)扩展

  • 你探索这个分支,尝试从当前状态出发做出不同的行动,就像是在尝试不同的解题方法。

(3)评估

  • 对每个可能的行动结果进行评估,就像是给每种解题方法打分,看看哪个更靠谱。

(4)模拟

  • 你继续沿着选中的分支走,直到走到尽头,看看这个路径是否真的能解决问题。

(5)反向传播

  • 如果你找到了正确的解决方案,就将这个成功的信号传回到你之前经过的每个节点上,让它们也知道“这条路走得对”。

(6)反思

  • 如果你走错了路,没能解决问题,就停下来想一想错在哪里,怎样可以避免同样的错误。

重复这个过程多次,每次都尝试不同的路径,直到找到最好的解决方案。当你找到了一个满意的解决方案,或者尝试了很多次之后,就停止搜索。

伪代码如下:

在这里插入图片描述

2. 总结

本文主要对LATS论文进行了解读,同时,重点通过LATS与其它框架如ToT、ReAct的对比,来让大家对LATS有一个直观的认识。最后,用通俗易懂的语言替大家总结了LATS实现的步骤。

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,持续学习C++进阶知识AI大模型应用实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜同学小张 🙏

本站文章一览:

在这里插入图片描述

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

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

相关文章

AI视频教程下载:基于OpenAl、LangChain、 Replicate开发AI应用程序

欢迎来到令人兴奋的 AI 应用世界!在这门课程中,你将学习到创建一个能够与用户互动、理解自然语言、处理音频输入,甚至分析图像的真正智能应用所需的技能和技术。 AI 工具和技术 你将获得使用几个知名 AI API 和技术的实际经验。这些行业领先…

【数据结构】栈和队列OJ面试题

20. 有效的括号 - 力扣(LeetCode) 思路:由于C语言没有栈的接口,所以我们需要自己造一个“模子”。我们直接copy之前的实现的栈的接口就可以了(可以看我之前的博客【数据结构】栈和队列-CSDN博客copy接口)&…

VTK图形算法API:vtkSphereSource,球几何数据

大家好,我是先锋,专注于AI领域和编程技术分享,在这里定期分享计算机编程知识,AI应用知识,职场经验; 本系列介绍VTK图像算法API,后续会介绍VTK项目实践应用,关注我,不错过…

开源aodh学习小结

1 介绍 aodh是openstack监控服务(Telemetry)下的一个模块,telemetry下还有一个模块ceilometer OpenStack Docs: 2024.1 Administrator Guides Get Started on the Open Source Cloud Platform - OpenStack Telemetry - OpenStack 1.1 代码仓…

01-02-3

1、线性表 a.定义: 有n(n>0)个相同类型的元素组成的有序集合。 数组是线性表的一种。通常用数组实现。 b.线性表的顺序存储 b-1:顺序表结构体的定义 顺序表是一个结构体变量。结构体内部有两个数据:一个用于存…

Nature 综述(IF=88):微生物群落和土壤性质之间的相互作用

随着社会的发展,环境污染和自然资源的消耗日益严重,土壤生态系统的健康状况备受关注。然而,当前研究领域存在一个问题,即在研究土壤微生物群落结构的同时,忽略了微生物对土壤环境的影响。本文旨在探讨微生物如何通过生…

牛客热题:旋转数组的最小数字

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:旋转数组的最小数字题目链接方法…

二叉树的前序、中序、后序遍历

二叉树的前序、中序、后序 1.二叉树的前序遍历 题目: 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入&#xff…

​​​【收录 Hello 算法】第 6 章 哈希表

目录 第 6 章 哈希表 本章内容 第 6 章 哈希表 Abstract 在计算机世界中,哈希表如同一位聪慧的图书管理员。 他知道如何计算索书号,从而可以快速找到目标图书。 本章内容 6.1 哈希表6.2 哈希冲突6.3 哈希算法6.4 小结

UML快速入门篇

目录 1. UML概述 2. 类的表示 2.1. 类的表示 2.2. 抽象类的表示 2.3. 接口的表示 3. 类的属性,方法,访问权限的表示 3.1. 类的属性 3.2. 类的方法 3.3. 类的权限 4. 类的关联 4.1. 单向关联 4.2. 双向关联 4.3. 自关联 4.4. 类的聚合 4.5.…

LeetCode题练习与总结:不同的二叉搜索树Ⅱ--95

一、题目描述 给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例 1: 输入:n 3 输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,nul…

通过GRE隧道实现OSPF、BGP、IS-IS的套接使用

正文共:999 字 9 图,预估阅读时间:1 分钟 书接上文(专线入云场景能否配置动态路由协议?),我们发现通过一定的配置,具体就是组合使用IBGP和静态路由,在使用云专线接入到资…

科技查新中的工法查新点如何确立与提炼?案例讲解!

按《工程建设工法管理办法》( 建 质[2014]103 号) ,工法,是指以工程为对象,以工艺为核心,运用系 统工程原理,把先进技术和科学管理结合起来,经过一定工程实践形成的综合配套的施工方…

【go项目01_学习记录11】

操作数据库 1 文章列表2 删除文章 1 文章列表 (1)先保证文章已经有多篇,可以直接在数据库中添加,或者访问链接: localhost:3000/articles/create,增加几篇文章。 (2)之前设置好了articles.ind…

移动端自动化测试工具 Appium 之自定义报告

文章目录 一、背景二、具体实现1、保存结果实体2、工具类3、自定义报告监听类代码4、模板代码4.1、report.vm4.2、执行xml 三、总结 一、背景 自动化测试用例跑完后报告展示是体现咱们价值的一个地方咱们先看原始报告。 上面报告虽然麻雀虽小但五脏俱全,但是如果用…

JavaScript 进阶(一)

一、作用域 1. 局部作用域 (1)函数作用域 、 (2)块作用域 2. 全局作用域 3. 作用域链 g 作用域可以访问 f 作用域(子访问父),但是 f 作用域,不能访问 g 作用域(父…

[数据集][图像分类]杂草分类数据集17509张9类别

数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):17509 分类类别数:9 类别名称:["chineseapple","lantana","negatives","parkinsonia","part…

经典面试题---环形链表

1. 环形链表1. - 力扣(LeetCode) 要解决这道题,我们首先要挖掘出带环的链表与不带环的链表之间的差别。 以此,才能设计出算法来体现这种差别并判断。 二者最突出的不同,就是不带环的链表有尾结点,也就是说…

Springboot打包jar如何后台启动和查看日志?

如何后台启动Spring Boot的fat jar 使用nohup命令启动: 在Linux或Unix系统中,你可以使用nohup命令来启动jar包,以确保即使你关闭了终端或断开了SSH连接,程序仍然可以在后台运行。命令格式如下:nohup java -jar yourapp…

C语言(指针)6

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…