ToT: 利用大语言模型进行有意识的问题解决(上)

ToT

  • 摘要
  • 介绍
  • 利用大语言模型进行有意识的问题解决
    • 1. 思维分解
    • 2. 思维产生 G(p,s,k)
    • 3. 状态评估V(p,S)
    • 4. 搜索算法
  • 实验
  • 相关工作
  • 讨论

原文:

原文信息

摘要

语言模型正在迅速成为一般问题解决的部署,但在推理过程中仍然局限于 标记级别(token-level) ,在推理中从左到右做出决定的过程。这意味着语言模型有许多缺陷,在需要探究的任务,需要战略展望的任务,或者初始决定有着重要意义的任务。

token-Level是指以token为单位进行处理和分析的级别。
一个token可以是一个单词,一个字符,一个标点符号或者是一个子词,具体取决于所使用的tokenization方法和任务的要求。
在文本处理过程中,首先需要将原始文本分割成token,这个过程称为tokenization。然后,可以在token-Level上进行各种操作,例如 词性标注、命名实体识别、情感分析、机器翻译等。在这些任务中,模型会对每个token进行处理,而不是整个文本。

left-to-right decision-making 从左到右决策
在这种决策中,决策者会按照一定的顺序或步骤逐一考虑和做出决策。这种顺序可能是基于时间、优先级、逻辑顺序或者其他因素。从左到右的决策过程通常是线性的,即每个决策点都依赖于前一个决策点的结果。

为了克服这种情况,引入了一个新的语言模型推理框架——TOT,它概括了传统的“思维链”方法来提示语言模型,并实现了对 连贯的文本单元 作为解决问题的中间步骤的探索。

ToT允许LM通过考虑多种不同的推理路径来执行需要深思熟虑的任务,还会通过值评估来选择下一步该怎么做,当需要作出整体决策时,还需要进行前瞻和回溯。

该文实验表明,ToT在三个新型任务上明显提高了语言模型解决问题的能力。

介绍

目前一些语言模型如GPT、PaLM在处理推理任务的性能越来越好。但是这些进步的基础仍然是产生文本的原始的自回归机制(autoregressive mechanism),它通过从左到右的方式逐一做出标记级别的决策。那么这样一个简单的机制足以让LM朝着产生解决问题的方向构建吗?如果不的话,什么问题将挑战当前的模式,已经应该有什么替代机制?

本文从“双过程”(dual automatic)模式研究入手回答上述问题。双过程模式认为,人类有两种产生决策的方式:

  1. 一种快的,自动的,无意识的模型
  2. 一种慢的,深思熟虑的,有意识的模型

LM简单的关联标记级别选择类似于1,因此可能受益于深思熟虑的2的规划过程的增强:(1)对当前选择进行维护和探索不同的选择,而不是只考虑一个;(2)评估这个选择当前的状态,并积极展望未来或回溯,以做出更全局性的决策。

从探索规划过程获得灵感,Newell将问题解决描述为通过组合问题空间(表示为树)进行搜索。为此我们提出使用语言模型解决一般问题的思维树。

当现有方法为解决问题提供连续的语言序列样本时,TOT主动维护一个思维树,其中每个思想都是一个连贯的语言序列,作为解决问题的中间步骤。它允许LM通过深思熟虑的推理过程来自我评估这些不同中间思维过程来解决问题,而这些深思熟虑的推理过程也就是实例化的语言。这种通过LM自我评估和审议实现搜索启发式新颖的,因为以前的搜索启发式要么是编程要么是学习。最后我们将这种基于语言的生成和评估不同思想的能力与搜索算法相结合,如广度优先搜索和深度优先搜索,这允许通过前瞻或回溯来系统地探索思维树。

利用大语言模型进行有意识的问题解决

树的节点代表部分解,分支对应于修改它们的操作(即每个节点代表一个思维状态或想法,边表示不同思维状态之间的关系和转换)。选择哪一个分支由启发式决定的,这些启发式有助于导向问题空间并引导问题解决者找到解决方案。
这一观点强调了使用LM解决一半问题的现有方法的两个关键缺点:

  1. 在局部上,它们没有探索思维过程中的不同延续——树的分支。
  2. 在整体上,它们不包含任何类型的规划,前瞻或回溯来帮助评估这些差异——这种启发式引导的搜索似乎是人类解决问题的特征。

为了解决这些缺陷,我们介绍了TOT,一种允许LMs在思维之上探究多条推理路径的范式。

TOT把任何问题都框定为对一课树的搜索,每一个节点是一个状态
s=[x,z1…i],代表一个部分输入和思想序列非常丰富解决方案。
TOT的一个具体实例化涉及回答四个问题:

  1. 如何将中间过程分解为思维步骤;
  2. 如何在每个状态中产生潜在的思维;
  3. 如何启发式的评估状态;
  4. 使用什么搜索算法
    在这里插入图片描述

1. 思维分解

虽然CoT在没有明显的分解的情况下连贯地对思想进行采样,但ToT利用了问题的属性去设计和分解中间的思维步骤。
一个想法可以是几个单词(交叉词)、一行方程式(24游戏)或一整段写作计划(创意写作)。一般来说,一个思维应该足够“小”,以便LMs可以产生有希望的和多样化的样本(例如,生成一本书通常太“大”而不连贯b),但又应该“足够大”,使得LMs可以评估她对于问题解决的前景(例如,生成一个令牌通常太“小”而无法评估)。

2. 思维产生 G(p,s,k)

给定一个树的状态,我们思考两个策略来为下一个思考步骤生成k个候选:

  1. 从COT提示中抽取 i.i.d 思维样本(创意写作):
    思维空间(thought space) 丰富时(例如,每个思维都是一个段落),按照这种方法效果较好,并且i.i.d.样本导致多样性,;

i.i.d独立同分布
指在思维空间中的独立且同分布的思维状态或想法
这意味着在思维空间中,每个思维状态或想法是相互独立的,一个状态或想法的出现不会影响其他状态或想法的出现。同时,这些思维状态或想法也具有相同的分布,即它们在思维空间中以相同的频率或概率出现。

思维空间thought space
即所有可能的思维状态或思考路径的集合。它代表了一个人或系统在思考问题、生成想法或进行推理时可以进入的各种可能性。思维空间可以是非常广阔的,包含了各种不同概念、关系和推断。
在ToT中,通过构建一个树状结构来表示思维空间,每个节点代表一个思维状态或想法,边表示不同思维状态之间的关系和转换。通过遍历这个树状结构,可以探索和展开不同的思维路径,从而生成新的想法或解决问题。

  1. 使用 “建议提示” 按顺序提出想法(24游戏,交叉词):
    当思维空间更加受限制时(例如:每个想法只是一个单词或一行),这种方法更好,因此在同一上下文中提出不同的想法可以避免重复。

propose prompt建议提示
指的是在思维空间中提出一个思考路径或想法的提示。在ToT框架中,propose prompt用于在树的某个节点处生成一个新的子节点,以扩展思维空间并引导后续的思考。
propose prompt 可以是一个问题、主题、假设或任何其他形式的提示,它会激发模型在当前思维状态下产生新的想法或展开更深层次的思考。通过不断提出粗新的提示,ToT可以模拟出更加复杂和丰富的思考过程,从而生成更多多样化和有深度的回答或内容。

3. 状态评估V(p,S)

给出不同状态的边界,状态评估器评估它们做出的解决问题的过程,作为搜索算法的启发式算法,以确定要继续探索哪些状态以及以何种顺序进行探索。尽管启发式是一个解决搜索问题的标准的方法,但它们通常是编程的或学习的。我们提出第三种选择: 通过使用LM来有意识地对不同的思维状态进行推理和思考。在合适的时候,这种故意的启发式可以比编程规则更灵活,也比学习的模型更具样本效率。与思维生成器类似,我们考虑两种策略来独立或一起评估状态:

  1. 独立地评估每一个状态:
    在这里插入图片描述
    其中值提示导致状态s生成标量值w或者分类(例如确定/可能/不可能),该分类可以启发式的转化为值。这种评价推理的原因可能因问题和思维步骤而异。在这项工作中,我们发现通过少量前瞻模拟(例如,通过5+5+14快速确认5、5、14可以达到24,或者)加上常识(例如,123太小而无法达到24,或没有单词可以以“tzxc”开头)来探索评估。尽管前者可能提示“好的”状态,但是后者可以帮忙排除“不好的”状态。这种评估不需要完美,仅需要大概。
  2. 跨状态投票:
    在这里插入图片描述
    根据在投票提示中有意比较s中的不同状态,选出“好”状态 s*~pvote(s* |S),当问题的成功很难直接评估时(例如,段落的连贯性),很自然地会比较不同的部分解决方案,并投票选出最有希望的解决方案。这类似于 step-wise self-consistency思维过程中逐步确保自洽性过程的思想,即将“探索哪个状态”作为最终选择QA,并使用LM样本进行投票。

对于这两种策略,我们可以多次提示LM聚合评或投票结果,以换取时间,资源,成本,从而获得更忠实或稳健的启发式方法。

step-wise self-consistency
指的是在思维过程中逐步确保自洽性的过程。在思考问题或解决复杂任务时,人们经常会分解步骤进行推理和思考,以确保每一步都是相互一致和合理的。
在ToT中,step-wise self-consistency是指在思维模型中逐步推进,确保每一个状态和节点都是与前一步的状态想一致和合理。

4. 搜索算法

最后,在TOT框架内,可以依赖树形结构即插即用不同的搜索算法。我们探索了两种相对简单的搜索算法,并为未来的工作保留了更先进的算法。
(a)广度优先搜索算法(BFS):
(b)深度优先搜索算法(DFS):

从概念上来看,TOT作为一种使用LM来解决问题的方法,有许多好处:
1.生成能力。IO,COT,COT- SC和自我增强,可以作为TOT的特殊案例(例如,有限深度和广度的树)。
2.模块化。基于LM,也是基于思维分解,产生,评估和搜索过程都可以独立的变化。
3.适应性。可以适应不同问题属性,LM的功能和资源约束。
4.方便。不需要额外的训练,只需要一个预训练的LM就可以满足。
另一个模块将展示这些概念的好处如何转换成在不同问题上的强大经验表现。

实验

相关工作

讨论

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

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

相关文章

基于深度学习的高精度鸟类目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度鸟类目标(鹦鹉(Crested Myna)、麻雀(Eurasian Tree Sparrow)、黑头文鸟(Chestnut Munia)、白领翡翠(Collared Kingfisher)、太阳鸟…

论文笔记:Deep Spatio-Temporal Residual Networks for Citywide Crowd FlowsPrediction

2017 AAAI 使用时空残差网络ST-ResNet 进行 城市区域流入流出客流量预测 1 研究对象 城市客流流入流出 根据经纬度将城市划分为网格 IJ 1.1 难点 空间依赖性 时间依赖性 外部影响 2 模型 3 实验 北京出租车数据纽约自行车数据 评价指标:RMSE

vue3.0之组合API有哪些(详解)

vue3.0之组合API有哪些 一、setup函数二、生命周期三、reactive函数四、toRef函数五、toRefs函数六、ref函数七、知识运用案例八、computed函数九、watch函数十、ref属性十一、父子通讯1.父传子2.子传父 十二、依赖注入十三、补充 v-model语法糖(简写)十四、补充 mixins语法 一…

【grasshopper】【犀流堂】【算法】Anemone雨水径流模拟-笔记

文章目录 Anemone雨水路径模拟available options可用选项grasshopper面切线几何原理 案例1:surface地形1. 拾取地形曲面surface2. 曲面上根据divide surface划分点points3.将曲面上的划分点用surface closest point投影到曲面上4.align plane旋转平面x轴与世界Z夹角…

OCPM和CPM有什么区别?

CPM和OCPM这两种收费模式的对比 Cpm:表示千次展示费用,是数据指标,也是一种出价方式。代表展现一千次的消费,也就是你展现1000次要给媒体多少钱 例如某企业广告曝光量是50万,总广告价格为10000元,那么千人…

mongodb练习---增删改查

环境: 1. 创建一个数据库 名字grade 2. 数据库中创建一个集合名字 class 3. 集合中插入若干数据 文档格式如下 {name:zhang,age;10,sex:m,hobby:[a,b,c]} hobby: draw sing dance basketball football pingpong compu…

计算机网络-应用层

目录 一、应用层概述 二、客户-服务器方式(C/S方式)和对等方式(P2P方式) (一)客户/服务器 (Client/Server,C/S) 方式 (二)对等(Peer-to-Peer,P2P) 方式 (三)总结 三、动态主机…

云原生TDengine-v3.0部署手册

云原生TDengine-v3.0部署手册 一、管理namespace1.1 创建namespace1.2 namespaces列表 二、配置3份yaml文件2.1 tdengine3-storage-class.yaml2.2 taosd-service.yaml2.3 taosd-tdengine.yaml 三、服务部署3.1 部署StorageClass3.2 部署Service3.3 部署StatefulSet3.4 查看启动…

记一次JVM调优过程

文档修订记录 版本 日期 撰写人 审核人 批准人 变更摘要 & 修订位置 JVM相关理论 JVM内存 可分配内存: JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚…

dede去掉列表推荐文档的粗体字效果的修改方法

这样看起来多么的不美观了&#xff0c;现在我们本帖教程就是去掉列表这个粗体字效果。 DedeCMSv5.6具体操纵方法如下&#xff1a; 找到 /include/arc.listview.class.php 打开找到743 - 746 行下列代码&#xff1a; if(ereg(c,$row[flag])) {$row[title] "<b>"…

用Maven的exec插件执行Java程序

Maven的exec插件介绍 利用maven的exec插件可以执行系统和Java程序。 官网资源 exec插件官网&#xff1a;https://www.mojohaus.org/exec-maven-plugin/java-mojo.html Goals exec:exec表示在一个单独的进程内执行系统和Java程序。 exec:java表示在当前的Java虚拟机内执行J…

CVE-2023-1454注入分析复现

简介 JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具&#xff0c;它可以通过一键生成前后端代码&#xff0c;无需写任何代码&#xff0c;让开发者更多关注业务逻辑。 影响版本 Jeecg-Boot<3.5.1 环境搭建 idea 后端源码&#xff1a; https://git…