当前位置: 首页 > news >正文

思维图(GoT):解锁大模型解决复杂问题的能力

今天分享的是苏黎世联邦理工学院、华沙理工大学和Cledar联合发表的一篇文章:思维图:用大语言模型解决复杂问题

论文题目:Graph of Thoughts: Solving Elaborate Problems with Large Language Models

论文链接:https://arxiv.org/pdf/2308.09687

代码地址:https://github.com/spcl/graph-of-thoughts

论文概述

人类在进行思考时,不仅仅只遵循一条思维链,也不是像思维树那样尝试多种不同途径,而是会形成一个更加复杂的思维网。举个例子,一个人可能会先探索一条思维链,然后回溯再探索另一条,然后可能会意识到之前那条链的某个想法可以和当前链结合起来,取长补短,得到一个新的解决方案。类似地,大脑会形成复杂的网络,呈现出类似图的模式,比如循环模式。

这篇论文介绍了一种名为“思维图谱”(简称GoT)的框架,它通过将信息生成建模为任意图来增强大型语言模型的提示能力。在这个框架中,信息单元(即“LLM思考”)被视为顶点,而边对应于这些顶点之间的依赖关系。这种方法允许将任意的LLM思考结合起来,形成协同效应,提取整个思考网络的本质,或使用反馈循环增强思考。

论文核心

用户与LLM对话的过程主要包括用户消息(提示,prompts)和模型回复(思维、想法,thoughts),其中回复可以是一段文本(摘要任务)、一个文档(生成任务)或是一个代码块等。
为了充分激活语言模型的能力,通常会采用各种提示方法:

  • 输入到输出提示(Input-Output, IO) :输入序列后,直接用语言模型获取输出,不添加任何中间思考过程。
  • 思维链(Chain-of-Thought, CoT):在输入和输出之间引入多个中间思维状态,相比IO方法,可以显著提升语言模型在数学难题和通用推理任务上的性能。
  • 多思维链(Multiple CoTs):独立生成多条思维链,然后根据预先指定的评分指标返回最佳输出结果的思维链。
  • 思维树(Tree of Thoughts, ToT):ToT将过程或推理建模为一棵思维树来增强CoT-SC方法,单个树节点代表部分解决方案;基于给定的节点,思维生成器(thought generator)可以构造出一定数量的新节点,然后用状态评估器(state evaluator)为每个新节点生成相应评分。

思维图(GOT)框架

GoT可以被建模为一个四元组(G, T, E, R),其中G是“LLM推理过程”(即,上下文中的所有LLM思维及其关系),T是潜在的思维转换,E是用于获取思维得分的评估函数,R是用于选择最相关思维的排名函数。

LLM 的推理过程表示为(有向)图。该图中的每个节点对应于LLMs生成的单个想法,边代表想法之间的关系。也就是说,从思想a到b的边——或者图中的有向边 (a, b)——简单地告诉思想 b 是使用思想 a 作为输入生成的。与 ToT 提示类似,想法的确切定义取决于要解决的问题。更进一步,每个节点代表问题的(可能是中间的)解决方案,但我们可以在图中使用不同类型的节点来代表推理过程的不同方面(例如,计划与执行)。

  • 提示器(Prompter):为LLM准备信息,主要负责把图结构编码进提示词中,GoT架构允许用户根据不同用例实现不同的图编码,提供全部图结构访问权限。
  • 解析器(Parser):从LLM的回复中抽取信息,解析器为每个思维构造出一个思维状态(thought state),包含了抽取出的信息,并用于后续状态更新。
  • 评分模块(Scoring):对LLM回复进行验证和评分,验证一个给定的LLM思维是否能够满足潜在的正确性条件,然后对思维进行打分。
  • 控制器(Controller):协调整个推理过程,并决定如何继续推理,控制器中包含两个重要组件:图操作(the Graph of Operations, GoO)和图推理状态(GRS)。其中GoO是一个静态结构,指定了给定任务上的图分解过程,即规定了可用于LLM思维转换的操作,以及思维之间的顺序和依赖关系;每个操作对象都知道自己的前置操作和后继操作。GRS是一个动态结构,用来维护LLM推理过程进行中的状态,包括所有思维的历史及状态。

思维图(GOT)排序示例

使用到的操作包括:生成Generate、聚合Aggregate、评分Score、保留最优KeepBest。具体的prompt在论文中都有附录。

  • 生成(Generate)操作:将包含64个元素的输入数组分割成四个每个包含16个元素的块,只重复一次。
  • 排序(sort)操作:针对分割好的序列排序,k=3 表示对于每个包含16个元素的块,生成三种不同的排序结果。
  • 评分(Score):为了获得评分,对于每一个数字0到9,计算输入数组与排序后的数组之间的差异,并将这10个值相加。差值为零表示已正确排序。
  • 保留最优(KeepBest):保留最好的排序序列。
  • 聚合(Aggregate):聚合成最终的序列。

论文实验


与现有技术相比,在对排序任务进行评估时,可以发现与 CoT 、具有自洽性的 CoT 或 ToT 提示等技术相比,GoT 提示始终产生更少的错误。

论文总结

提示工程是大型语言模型(LLM)研究的中心新领域之一。它使得能够高效地使用LLM,无需任何模型更新。然而,设计有效的提示是一项具有挑战性的任务。人类的任务解决通常是非线性的,它涉及将中间解决方案合并为最终解决方案,或在发现新见解时改变推理的流程。在这项工作中,提出了“思维图”(GoT),使LLM能够有效地解决不同的任务,而无需任何模型更新。其关键的想法是将LLM推理建模为一个任意图,其中思维是顶点,思维之间的依赖关系是边。这使得能够进行新的思维转换,如聚合。并且和现有提示方案相比,如ToT,图提示的排序质量和成本都是最优的。

相关文章:

思维图(GoT):解锁大模型解决复杂问题的能力

今天分享的是苏黎世联邦理工学院、华沙理工大学和Cledar联合发表的一篇文章:思维图:用大语言模型解决复杂问题 论文题目:Graph of Thoughts: Solving Elaborate Problems with Large Language Models 论文链接:https://arxiv.or…...

使用winscp从windows访问Ubuntu进行文件传输

Ubuntu 系统上的准备工作 • 安装 SSH 服务器: 确保 Ubuntu 系统上已经安装了 SSH 服务器。如果没有安装,可以使用以下命令安装: sudo apt update sudo apt install openssh-server • 启动 SSH 服务: 确保 SSH 服务正在运行&a…...

Java全栈项目:实验室预约管理系统的设计与实现

一、项目介绍 实验室预约管理系统是一个基于Java全栈技术开发的Web应用系统,旨在提供便捷的实验室预约、管理和使用体验。本系统主要面向高校师生,实现实验室资源的智能化、信息化管理。 二、技术栈 前端技术 Vue.jsElement UIAxiosVue RouterVuex …...

使用 esrally race 测试 Elasticsearch 性能及 Kibana 可视化分析指南

前言: 在对 Elasticsearch 集群进行性能测试与调优的过程中,esrally 是官方推荐的测试工具。通过 esrally race 命令,我们可以模拟各种查询与索引负载,对集群进行基准测试。然而,仅看 esrally 的终端输出并不直观&…...

OpenAI 第七日 推出了一项新功能——ChatGPT的“Projects”

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

【小白51单片机专用教程】protues仿真AT89C51入门

课程特点 无需开发板0基础教学软件硬件双修辅助入门 本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及…...

正则表达式——元字符匹配(单字符)

单字符匹配: ###注意事项:前面要加r:如(re.findall(r\w,字符串名)) #. :匹配任意一个字符 (.本身通过\.匹配) # [ ]: 匹配[ ]中的字符 # \d: 匹配数字 # \D: 匹配非数字 # \s: 匹配空白(空格) # \S:匹配非空白 # \w: 匹配单词字符(a…...

快速在远程服务器执行命令、批量在多个服务器执行命令(基于sshpass的自定义脚本fastsh)

在日常服务器操作中,很多时候我们需要同时操作多个服务器。特别对于那些每个服务器都需要操作相同命令的场景,不断的切换命令会话窗口会比较麻烦。基于此,编写了本文中的 fastsh 脚本用于轻度解决这种问题,提高一定的便利性。 使…...

【中间件介绍及案例分析】

中间件介绍及案例分析 一、中间件的定义 中间件是一种位于操作系统、网络和数据库之上,应用软件之下的软件。它的主要作用是为处于不同系统中的软件组件提供通用服务,使得这些软件组件能够更好地通信、协同工作,并且帮助开发人员更高效地构…...

CRMEB PHP多商户版DOCKER部署实战

#首先,制作docker 镜像# 官方有一个镜像,但是拉不来下,也不知道是没是没有维护,嘎了。只能自己动手做一个。 这里选择ubuntu 24 为基础,制作crmeb-mer的镜像,Dockerfile内容如下: # 使用官方…...

Node.js基础入门

1.Node.js 简介 Node 是一个让 JavaScript (独立)运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。 简单的说 Node.js 就是运行在服务端的…...

Hive——HQL数据定义语言

文章目录 Hive HQL数据查询语言更多大数据资源持续更新中。。。学习目标一、HQL数据定义语言(DDL)概述1、DDL语法的作用2、Hive中DDL使用☆ 创建数据库☆ 查询数据库☆ 切换数据库☆ 修改数据库☆ 删除数据库 二、Hive DDL建表基础1、完整建表语法树2、H…...

vLLM 教程上新!覆盖从入门到进阶 4 种应用方式;中文文档同步上线,0 帧起手加速大模型推理

如今,大语言模型 (LLM) 的发展正在从规模参数迭代升级拓展至应用场景的适配与创新,在这个过程中,其也暴露出一系列问题。例如,在推理环节的效率较低,处理复杂任务时耗时较长,难以满足对实时性要求较高的场景…...

Kubernetes# RBAC访问控制

目录 定义 配置对象 Role ClusterRole ServiceAccount RoleBinding ClusterRoleBinding 配置示例 定义 Kubernetes的运行是由多种类型的资源组合起来,每种资源各司其职完成整个集群的功能。那么自然也需要一套机制控制资源的访问权限,保证安全性…...

如何实现后端返回excel文件,在前端下载功能

前言 简单记录一下,excel文件导出下载功能 一、后端接口返回excel文件 把自己生成的workbook 以文件流的方式,返回前台 Workbook workbook employeeConfirmationDefectService.exportPoorPolishExcel(budatBegin, budatEnd, queryWrapper);//传输到…...

编程:一场不设防的智慧江湖

在数字的汪洋中,有一片从未设置年龄禁区的领地——编程世界。许多人会问:35岁了,还能学编程吗?答案是:不仅能学,还能学得很精彩。 时光荏苒,科技浪潮汹涌澎湃。曾经,人们以为编程是…...

电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南

电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南 在探索电脑游戏的无限乐趣时,我们时常会遇到一些不期而遇的挑战。今天,我们将聚焦于一个常见的游戏运行错误——穿越火线(或其他使用Unity引擎的游戏…...

【C++】CUDA线程在全局索引中的计算方式

文章目录 1. 一维网格一维线程块2. 二维网格二维线程块3. 三维网格三维线程块4. 不同组合形式4.1 一维网格一维线程块4.2 一维网格二维线程块4.3 一维网格三维线程块4.4 二维网格一维线程块4.5 二维网格二维线程块4.6 二维网格三维线程块4.7 三维网格一维线程块4.8 三维网格二维…...

【笔记】C语言转C++

网课链接:【C语言 转 C 简单教程】 https://www.bilibili.com/video/BV1UE411j7Ti/?p27&share_sourcecopy_web&vd_source4abe1433c2a7ef632aeed6a3d5c0b22a 网课老师B站id:别喷我id 视频总时长:01:55:27 以下笔记是我通过此网课整理 建议先…...

锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集

锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集 目录 锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集预测效果基本描述程序设计参考资料 预测效果 基本描述 锂电池SOH预测 | 基于Bi…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)&#xff…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...