Tree of Thoughts: Deliberate Problem Solving with Large Language Models
https://github.com/princeton-nlp/tree-of-thought-llm

标题翻译:思维树:利用大型语言模型问题求解

1. 内容介绍

1.1. 背景

决策过程有两种模式:

  1. 快速、自动、无意识的模式(System 1)-- 语言模型基于语言的token联想生成
  2. 缓慢、谨慎、有意识的模式(System 2) – 多样化选择和规划的过程

现有的LLM方法在复杂问题中面临两大局限

  • 局部探索不足:在生成过程中不能同时探索多种可能的推理路径
  • 缺乏全局规划:没有能力回溯或前瞻,导致路径选择可能陷入局部最优解

论文提出了思维树的框架,可以与搜索算法相结合,例如广度优先搜索(BFS)或深度优先搜索(DFS)来进行前瞻、回溯和状态评估。


1.2. 对比图:

在这里插入图片描述

  • IO:传统的从输入直接生成输出,属于单步决策,无探索过程
  • CoT:通过生成一系列中间步骤(思维链)来推导最终结果,但每次仅沿单一路径生成,缺乏分支探索能力
  • SC-CoT:通过采样多条独立的思维链,利用多数投票机制实现自一致性
  • ToT:允许在每个思维步骤生成多种可能的中间状态,并选择最有希望的分支,每个分支的状态可以通过启发式评估(如评分或投票)确定是否继续扩展

1.3. 什么是思维?

根据不同的问题,一个思维可能是:
在这里插入图片描述

  • 填字游戏:几个单词
  • 24点:一行算式
  • 创意写作:一段文字

2. 研究方法

2.1. 框架设计:ToT框架围绕以下四个核心问题展开

  • 如何分解问题?-- 思维分解:将复杂问题分解为多个中间步骤,每个步骤称为一个思维,思维需要足够小以保证模型能生成多样化候选解,又要足够大以便评估

  • 如何生成候选解?思维生成器G(p,s,k)={z1,z2…zk}:输入当前的状态s=[x,z1,z2…zi](x表示问题,z是中间的思维),利用语言模型p生成k个候选思维z
    有两种生成策略:

    1. 随机生成:用COT独立随机生成k个候选解,多样性更好,适合开放性任务(如写作);
    2. 顺序生成:在同一上下文中逐步生成k个候选解,适合约束较强的任务(如数学问题)
  • 如何评估候选状态? – 状态评估器V(p,S)(s)=score:给定多个候选状态的集合S,通过启发式方法评估
    有两种评估策略:

    1. 独立价值评估:为每个状态s生成一个分数(如 1-10)或分类标签(如 “sure” / “maybe” / “impossible”);
    2. 投票评估:跨状态比较,通过对比多个状态,选择最有潜力的一个(类似于SC)。对于这两种策略,都可以多次提示LM来整合价值或投票结果
  • 如何搜索最优路径?-- 选择什么搜索算法
    在这里插入图片描述

    1. BFS: 每层保留b个最优状态,逐层展开,适合24点这种层少的
    2. DFS:首先探索最有希望的状态,直到达到最深;或者状态评估器认为从当前状态s解决问题是不可能的(价值V < v_th(临界值)),就修剪停止扩展并回溯到s的父状态

2.2. 优点:

  • 模块化与灵活性:可以分别调整上面四个模块,选择不同LM,思维生成策略,状态评估策略,搜索算法

  • 高适应性:针对不同任务可以有不同的策略

  • 无需额外训练

3. 实验

3.1. 24点任务:100个实例

在这里插入图片描述

3.1.1. 步骤

将问题分解为3步,每步生成一个中间算式,然后使用BFS(b=5)确保所有可能的算式都被探索,且通过启发式评估筛选出最有潜力的路径(顺序生成,独立评估,BFS

  • 步骤1:从四个数字中选取两个进行运算,生成一个新的状态(例如4+9=13或者10-4=6)

  • 步骤2:使用剩余的数字进行下一步操作,生成新的候选状态

  • 步骤3:根据启发式评估(分类标签),判断当前状态是否有可能最终达成目标24

3.1.2. 结果

对于每种方法,选择100次尝试中的最好结果,作为理论上的最佳表现

在这里插入图片描述

  • 表2:

    • IO prompt:传统的输入输出方法,直接从输入(数字)到输出(算式)进行推理,但没有中间推理过程

    • CoT prompt:生成一系列中间步骤,逐步推导结果

    • CoT-SC:使用k个CoT的样本,通过投票选择最常见的答案,以增强推理的多样性

    • IO + Refine:对IO方法进行迭代优化,在每次生成后进行反思和修正

  • 图3a:访问节点越多,成功率越高,ToT能够探索更多的路径,从而大大提高成功率

  • 图3b:CoT方法容易在推理的初期阶段就走错路径,但TOT因为有评估并能够进行回溯修正所以能够保持更高的成功率

3.2. 创意写作任务

根据四个随机的句子生成一篇连贯的文章,每段结尾包含一个输入句子(随机生成,投票评估,BFS

在这里插入图片描述

3.2.1. 步骤
  • 生成计划:根据输入生成多个写作计划
  • 评估计划:对计划投票
  • 生成完整段落:根据最好的计划生成多个完整段落
  • 评估段落:再对完整的段落再进行投票,选择最连贯的段落生成方案
3.2.2. 结果:用GPT-4(1-10分)和人类来评估每个生成的段落的质量

在这里插入图片描述

都是ToT方式得分最好


3.3. **5×5Mini填词任务:

20个实例,评估,正确字母的比例(每个游戏25个)、单词数(每个游戏10个)和完成游戏数 (顺序生成,独立评估,DFS)

在这里插入图片描述

3.3.1. 步骤
  • 候选生成:根据字谜提示生成多个候选单词
  • 启发式评估:每个候选单词会通过启发式评估器进行评分,判断其与其他已填单词的交叉匹配程度,根据得分选择得分最高的单词填入网格,并继续处理其他空格,如果某个单词导致冲突(如垂直或水平单词不匹配),就修剪掉并回溯到上一步的,选择其他候选单词
3.3.2. 结果:

在这里插入图片描述

通过假设理想化的评估机制(Oracle),来模拟最优路径选择,模拟ToT上限,能达到35%的游戏完成率,可能是因为5×5填字游戏设计中有一些GPT-4无法识别的罕见或过时单词

去掉剪枝或者去掉回溯后效果表现均不佳


3.4. 消融实验

在这里插入图片描述

换了点更艰难的任务,然后换了LM版本比较


3.5. 计算成本

在这里插入图片描述
在这里插入图片描述

计算成本相对来说很大


4. 总结

ToT通过探索不同路径、评估中间状态并进行全局优化,提高模型在复杂任务中的问题解决能力
未来的方向还是LLM的微调和更高效的搜索算法(如A*)

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

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

相关文章

使用 Mathematical_Expression 从零开始实现数学题目的作答小游戏【可复制代码】

从零开始实现数学题目的作答小游戏 开源技术栏 使用 Mathematical_Expression 让计算机做出题人&#xff0c;让代码与数学碰撞出趣味火花。 目录 文章目录 从零开始实现数学题目的作答小游戏目录 从零开始实现数学题目的作答小游戏&#xff1a;让代码与数学碰撞出趣味火花为…

DQL-9-小结

DQL-9-小结 小结DQL语句 小结 DQL语句 SELECT 字段列表 -- 字段名 [AS] 别名FROM 表名列表WHERE条件列表 -- >、 >、 <、 <、 、 <>、 like、 between ... and、 in、 and、 or, 分组之前过滤 GROUP BY分组字段列表HAVING分组后条件列表 -- 分组之后…

[netty5: WebSocketServerHandshaker WebSocketServerHandshakerFactory]-源码分析

在阅读这篇文章前&#xff0c;推荐先阅读以下内容&#xff1a; [netty5: WebSocketFrame]-源码分析[netty5: WebSocketFrameEncoder & WebSocketFrameDecoder]-源码解析 WebSocketServerHandshakerFactory WebSocketServerHandshakerFactory 用于根据客户端请求中的 Web…

数据挖掘:深度解析与实战应用

在当今数字化时代&#xff0c;数据挖掘已经成为企业获取竞争优势的关键技术之一。通过从大量数据中提取有价值的信息&#xff0c;企业可以更好地理解客户需求、优化业务流程、提高运营效率。本文将深入探讨数据挖掘的核心技术、实际应用案例以及如何在企业中实施数据挖掘项目。…

LLM面试题14

算法岗面试题 介绍下Transformer模型。 Transformer本身是一个典型的encoder-decoder模型&#xff0c;Encoder端和Decoder端均有6个Block,Encoder端的Block包括两个模块&#xff0c;多头self-attention模块以及一个前馈神经网络模块&#xff1b;Decoder端的Block包括三个模块&…

Java金融场景中为什么金额字段禁止使用浮点类型(float/double)?

引言 Java金融场景中为什么金额字段禁止使用浮点类型&#xff1f;这是一篇你不能忽视的“爆雷”警告&#xff01; 在金融、电商、支付、清结算等业务系统中&#xff0c;浮点类型是绝对禁区&#xff01; &#x1f6a8;一、核心警告&#xff1a;浮点类型不是十进制数&#xff01;…

SVN下载与拉取

大家好我是苏麟&#xff0c;今天聊一聊SVN。 SVN官网&#xff1a;下载 TortoiseSVN - TortoiseSVN 软件 根据系统选择32位还是64位 打开文件 安装&#xff0c;下一步&#xff0c;下一步 安装成功后&#xff0c;右键找到SVNcheck 输入地址 输入用户名和密码就OK了 这期就到这里…

数据结构笔记8:堆

目录 满二叉树&#xff1a; 完全二叉树&#xff1a; 堆是一种特殊的完全二叉树&#xff1a; 我们可以以数组的方式存储堆。 父节点和子节点下标关系的推导&#xff1a; 1.使用数学归纳法证明n2 1 n0&#xff1a; 2.使用边和节点的关系证明n2 1 n0&#xff1a; 我们…

3. lvgl 9.3 vscode 模拟环境搭建 lv_port_pc_vscode-release-v9.3

文章目录1. 资源下载1. 1 lv_port_pc_vscode1.2 cmake 和 mingw 环境搭建1.3 sdl 下载1.4 下载lvgl_v9.32. 环境搭建2.1 拷贝lvgl 源码到工程2.2 添加SDL2 依赖2.3 执行工程3. 运行示例1. 资源下载 1. 1 lv_port_pc_vscode 那么多模拟器&#xff0c;为什么选择这个&#xff1…

【牛客刷题】小红的爆炸串(二)

一、题目介绍 本题链接为:小红的爆炸串(二) 小红定义一个字符串会爆炸,当且仅当至少有k对相邻的字母不同。 例如,当 k k k=2时,"arc"会爆炸,而"aabb"则不会爆炸。 小红拿到了一个长度为

【实战】如何训练一个客服语音对话场景VAD模型

1. 引言:客服场景下的VAD模型 在客服中心,每天都会产生海量的通话录音。对这些录音进行有效分析,可以用于服务质量监控、客户意图洞察、流程优化等。VAD在其中扮演着“预处理器”和“过滤器”的关键角色: 提升ASR效率与准确性:只将检测到的语音片段送入ASR引擎,可以避免…

在 Dokploy 中为 PostgreSQL 搭建 PgBouncer 数据库连接池(图文)

前言&#xff1a;为什么你需要一个连接池&#xff1f; 如果你正在使用 Node.js (尤其是像 Next.js 这样的框架) 配合 Prisma 操作 PostgreSQL 数据库&#xff0c;你很可能在某个阶段会遇到那个令人头疼的错误&#xff1a;“Error: Too many clients already”。这通常发生在应…

Mac获取终端历史

在 macOS 中&#xff0c;历史记录文件的位置取决于你使用的 shell。以下是针对不同 shell 的历史记录文件的默认位置&#xff1a;对于 Bash 用户&#xff1a; 历史记录文件通常位于 ~/.bash_history。对于 Zsh 用户&#xff08;macOS Catalina及以后版本默认使用的shell&#x…

高频交易服务器篇

在 Binance 进行高频交易&#xff08;HFT&#xff09;时&#xff0c;服务器的低延迟、高稳定性和快速网络是关键。亚马逊云&#xff08;AWS&#xff09; 提供了多种适合高频交易的方案&#xff0c;以下是推荐的配置和优化策略&#xff1a;1. 选择 AWS 区域&#xff08;Region&a…

MVC与MVVM架构模式详解:原理、区别与JavaScript实现

Hi&#xff0c;我是布兰妮甜 &#xff01;在当今复杂的前端开发领域&#xff0c;如何组织代码结构一直是开发者面临的核心挑战。MVC和MVVM作为两种经典的架构模式&#xff0c;为前端应用提供了清晰的责任划分和可维护的代码组织方案。本文将深入探讨这两种模式的原理、实现差异…

从小白到进阶:解锁linux与c语言高级编程知识点嵌入式开发的任督二脉(2)

【硬核揭秘】Linux与C高级编程&#xff1a;从入门到精通&#xff0c;你的全栈之路&#xff01; 第三部分&#xff1a;Shell脚本编程——自动化你的Linux世界&#xff0c;让效率飞起来&#xff01; 嘿&#xff0c;各位C语言的“卷王”们&#xff01; 在Linux的世界里&#xf…

锁和事务的关系

事务的4大特性(ACID) 原子性&#xff08;Atomicity&#xff09;&#xff1a;事务被视为一个单一的、不可分割的工作单元一致性&#xff08;Consistency&#xff09;&#xff1a;事务执行前后&#xff0c;数据库从一个一致状态转变为另一个一致状态&#xff0c;并且强制执行所有…

电动车信用免押小程序免押租赁小程序php方案

电动车信用免押租赁小程序&#xff0c;免押租小程序&#xff0c;信用免押接口申请、对接开发&#xff0c;可源码搭建&#xff0c;可二开或定制。开发语言后端php&#xff0c;前端uniapp。可二开定制 在线选择门店&#xff0c;选择车辆类型&#xff0c;选择租赁方式&#xff08…

机器学习在智能安防中的应用:视频监控与异常行为检测

随着人工智能技术的飞速发展&#xff0c;智能安防领域正经历着一场深刻的变革。智能安防通过整合先进的信息技术&#xff0c;如物联网&#xff08;IoT&#xff09;、大数据和机器学习&#xff0c;能够实现从传统的被动防御到主动预防的转变。机器学习技术在智能安防中的应用尤为…

MySQL中DROP、DELETE与TRUNCATE的深度解析

在MySQL数据库操作中&#xff0c;DROP、DELETE和TRUNCATE是三个常用的数据操作命令&#xff0c;它们都可以用于删除数据&#xff0c;但在功能、执行效率、事务处理以及对表结构的影响等方面存在显著差异。本文将从多个维度对这三个命令进行详细对比和解析&#xff0c;帮助读者更…