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

思维链 Chain-of-Thought(COT)

  • 思维链 Chain-of-Thought(COT):思维链的启蒙
    • 3. 思维链 Chain-of-Thought(COT)存在问题?
    • 2. 思维链 Chain-of-Thought(COT)是思路是什么?
    • 1. 什么是 思维链 Chain-of-Thought(COT)?

    • 思维树 Tree of Thoughts(TOT):一种用树结构解决复杂问题的方法
      • 1. 为什么需要 思维树 Tree of Thoughts(TOT)?
      • 2. 什么是 思维树 Tree of Thoughts(TOT)?
      • 3. 思维树 Tree of Thoughts(TOT)涉及问题有哪些?
      • 思维树 Tree of Thoughts(TOT)解决复杂任务实例
        • example 1:LLMs to Game of 24
        • example 2:LLMs to Create Writing
        • example 3:LLMs to 5x5个迷你填字游戏

    • 思维图 Graph of Thoughts(GOT):一种把思维链过程建模层图结构的方法
      • 1. 为什么 需要 思维图 Graph of Thoughts(GOT)?
      • 2. 什么是 思维图 Graph of Thoughts(GOT) ?
      • 3. 思维图 Graph of Thoughts(GOT)核心思想是什么 ?

    • 思维算法 Algorithm of Thoughts(AOT):一种用DFS/BFS示例解决问题的方法
      • 1. 为什么 需要 思维算法 Algorithm of Thoughts(AOT)?
      • 2. 思维算法 Algorithm of Thoughts(AOT)思路是什么?
      • 3. 思维算法 Algorithm of Thoughts(AOT) vs 其他 COT 的 区别?

    • 思维链 Chain-of-Thought(COT) 有哪些 应用场景?
      • Task 1: 复杂任务求解
      • Task 2: 增强特定任务可靠性

    • 思维链 Chain-of-Thought(COT) 有哪些 局限性?
    • 致谢

思维链 Chain-of-Thought(COT):思维链的启蒙

论文名称:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

论文地址:

https://proceedings.neurips.cc//paper_files/paper/2022/hash/9d5609613524ecf4f15af0f7b31abc a4-Abstract-Conference.html

  1. 什么是 思维链 Chain-of-Thought(COT)?
    思维链(Chain-of-thought)提示使大型语言模型能够处理复杂的算术、常识和符号推理任务。强 调了Chain-of-thought推理过程。
    如图:该模型产生了一个思想链来解决一个数学问题,否则它会变得不正确。

  1. 思维链 Chain-of-Thought(COT)是思路是什么?

思维链 Chain-of-Thought(COT)类似于一个解决方案,它模仿了一个逐步思考的过程来得出答案(或者solutions/explanations通常在final answer之后)

  1. 思维链 Chain-of-Thought(COT)存在问题?

思维链 Chain-of-Thought(COT) 需要 LLM的参数量级必须大

eg: 论文使用效果最好的是PaLM 540B的模型,看来模型越大对思维链的能力就越强

思维树 Tree of Thoughts(TOT):一种用树结构解决复杂问题的方法

论文名称:Tree of Thoughts: Deliberate Problem Solving with Large Language Models

论文地址:https://arxiv.org/abs/2305.10601

论文 Github:https://github.com/princeton-nlp/tree-of-thought-llm

  1. 为什么需要 思维树 Tree of Thoughts(TOT)?
    CoT通常只有一条解决问题的路径,但是 有一些复杂问题的答案 并不止 有一条解决问题的路径,而是由 多条 解决问题的路径 组成
  2. 什么是 思维树 Tree of Thoughts(TOT)?
    思维树 Tree of Thoughts(TOT)把一条reasoning路径拓展至多条reasong paths,这样模型可以综合多条reasoning path的结果得到最终的结论。


注:LLM解决问题的各种方法。每个矩形框代表一个thought,它是一个连贯的语言序列,是解决 问题的中间步骤。ToT将任何问题定义为在树上的搜索,其中每个节点都是一个状态s=[x;z1i], 表示到目前为止具有输入和thought序列的部分解决方案

  1. 思维树 Tree of Thoughts(TOT)涉及问题有哪些?
  2. Thought Decomposition
    1. 问题描述:如何将中间过程分解为思维步骤;

  1. Thought Generator
    1. 问题描述:如何从每种状态中产生潜在的thought;
    2. 任务定义:给定一个树的状态,从k个候选项中决定下一个step
    3. 实现方法:采用采样和投票的方法

  1. State Evaluator
    1. 问题描述:如何启发式地评估状态;
    2. 任务定义:给定不同状态的边界,状态评估器评估他们在解决问题方面取得的进展,并作为搜索算法的启发式算法,以确定要继续探索哪些状态以及以何种顺序进行探索
    3. 实现方法:
      1. value类型的分类或者打分
      2. 投票的形式

  1. Search algorithms
    1. 问题描述:使用什么搜索算法。
    2. 实现方法:可拔插式的使用不同的搜索算法

思维树 Tree of Thoughts(TOT)解决复杂任务实例

example 1:LLMs to Game of 24

  • 任务介绍:Game of 24 游戏是数学推理游戏,目标是通过4个数,然后加减乘除得到24

LLMs to Game of 24 思路:输入是“4 9 10 13”,最终得到的答案是“(10 - 4) * (13 - 9) = 24”,产生了3个intermediate thoughts可以是:“13 - 9 = 4 (left: 4 4 10); 10 - 4 = 6 (left: 4 6); 4 * 6 = 24 (left: 24)”,ToT会产生很多的这样的itermediate steps,然后我们采用BFS来执行这些steps。
example 2:LLMs to Create Writing

  • 任务介绍:给定四个句子,然后产生4个paragraph,分别以这4个句子结尾
  • LLMs to Create Writing 思路:
    • 首先产生k=5个候选的plan,投票选择最佳的passage,基于最佳的plan,产生5个
      passage;
    • 然后选择其中产生的最佳passage,投票的过程是一个zero-shot的过程


example 3:LLMs to 5x5个迷你填字游戏

  • 任务介绍:
  • LLMs to 5x5个迷你填字游戏 思路:探索LM作为一个探索自己思想的一般问题解决者的极限并以深思熟虑的推理作为启发法来指导自己的探索。

思维图 Graph of Thoughts(GOT):一种把思维链过程建模层图结构的方法

论文名称:Tree of Thoughts: Deliberate Problem Solving with Large Language Models

论文地址:https://arxiv.org/abs/2308.09687

论文 Github:https://github.com/spcl/graph-of-thoughts

  1. 为什么 需要 思维图 Graph of Thoughts(GOT)?
  • CoT通常只有一条解决问题的路径;
  • TOT 解决问题的路径类似一颗树;

但是 有时候 解决问题 的 父级 节点 不只有一个,而是 类似 拓扑图 的 形式。

  1. 什么是 思维图 Graph of Thoughts(GOT) ?
    思维图 Graph of Thoughts(GOT)通过 构建了一个有向图来解决问题
  2. 思维图 Graph of Thoughts(GOT)核心思想是什么 ?

GoT系统结构包含一系列的交互模块:

  • Prompter:为LLM准备消息;
  • Parser:从LLM的回复中提取信息;
  • Scoringmodule:验证LLM回复并对其进行评分;
  • Controller:
    • 介绍:协调整个推理过程,并决定如何进行推理
    • 重要元素:
      • GraphofOperations(GoO):一种静态结构,它指定了给定任务的图分解, 它规定了应用于LLM思想的转换,以及它们的顺序和依赖关系

Graph Reasoning State(GRS):一个动态结构,它保持正在进行的LLM推理过程的状态(其思想及其状态的历史)

注:图中蓝色部分包含架构概述,绿色部分列出API

注:红色部分包含示例提示以及GRS和相关操作,具体是归并排序(先把list array,分解成sub array,sort后进行合并)任务的prompt的示例

思维算法 Algorithm of Thoughts(AOT):一种用DFS/BFS示例解决问题的方法

论文名称:Algorithm of Thoughts: Enhancing Exploration of Ideas in Large Language Models

论文地址:https://arxiv.org/abs/2308.10379

论文 Github:https://github.com/kyegomez/Algorithm-Of-Thoughts

  1. 为什么 需要 思维算法 Algorithm of Thoughts(AOT)?
  • Standard Prompting 旨在直接回答
  • CoT 给出了最终解决方案的连续步骤
  1. 思维算法 Algorithm of Thoughts(AOT)思路是什么?

AoT的上下文示例与CoT不同,它集成了搜索过程,由标记“1”、…、“突出显示3’作为指导问题集子 树探索的“第一次运算”8 6 4 4’。为了清楚起见,只显示了一个上下文中的示例,重点放在第三子树探索上。AoT产生预期的搜索步骤(例如子树探索’5。11+1'),并评估任何进展的潜在后续步骤找 到一个解决方案或返回到另一个可行的子树。

  1. 思维算法 Algorithm of Thoughts(AOT) vs 其他 COT 的 区别?

  • AOT vs COT:
    • COT:为链式结构,也就是 问题答案 只能由 一条固定路径得到;
    • AOT:为有向图结构中寻找最优路径的过程;

  • AOT vs TOT:
    • TOT:对节点进行剪枝,然后推理过程是一个树的结构;
    • AOT:利用示例的方式模仿DFS或者BFS,能够激发LLM的能力(论文说在GPT4上有很 好的效果,估计对LLM本身的能力要求比较高),得到更好的结果;

思维链 Chain-of-Thought(COT) 有哪些 应用场景?

Task 1: 复杂任务求解

从论文给的一些数学和算法的求解示例可以看出,这些复杂的思维链的prompts工程是为了增强模 型在复杂推理任务的准确性,所以显而易见,后续的一个很大的应用方向是解决复杂的数学问题, 组合优化问题等等,至于能不能求解NP-hard问题,找到一些启发式的算法,还有待探索。

Task 2: 增强特定任务可靠性

除了解决LLM在复杂任务上的性能问题外,还有一个方向就是提升已有任务的准确性,比如现在检 索+生成的问答方式只能达到80%的准确率了,通过应用思维链的方式+限制条件,一下子能够提升准确率到90%。这对于一些追求LLM稳定性结果输出的场景具有重要的作用。

思维链 Chain-of-Thought(COT) 有哪些 局限性?

CoT,AoT,ToT都需要你自己写instructions和in-context examples,这些都属于prompt工程的范畴,但是人工的寻找某些任务的最佳prompts就比较费脑子,因此自动化prompts工程会是未来一 个潜在的方向,来弥补现在对复杂任务需要这种细粒度的prompt 工程的弊端。

相关文章:

思维链 Chain-of-Thought(COT)

思维链 Chain-of-Thought(COT):思维链的启蒙 3. 思维链 Chain-of-Thought(COT)存在问题?2. 思维链 Chain-of-Thought(COT)是思路是什么?1. 什么是 思维链 Chain-of-Thoug…...

硬件电路(23)-输入隔离高低电平有效切换电路

一、概述 项目中为了防止信号干扰需要加一些隔离电路,而且有时传感器的信号是高有效有时是低有效,所以基于此背景,设计了一款方便实现高低电平有效检测切换电路。 二、应用电路...

多表查询的多与一

1.查寻表需要的条件 1.1.首先我们要了解查询表有哪些 1.1.1.多对一 多对一就是一个年表拥有例外一个表的多条数据 一个表对应立一个表的多条数据,另一个表对应这个表的多条数据 这个点被称为多对一 1.1.2.多对多 多对多简单来说就是需要一个中间商 中间商就…...

大模型学习二:DeepSeek R1+蒸馏模型组本地部署与调用

一、说明 DeepSeek R1蒸馏模型组是基于DeepSeek-R1模型体系,通过知识蒸馏技术优化形成的系列模型,旨在平衡性能与效率。 1、技术路径与核心能力 基础架构与训练方法‌ ‌DeepSeek-R1-Zero‌:通过强化学习(RL)训练&…...

相机的曝光和增益

文章目录 曝光增益增益原理主要作用增益带来的影响增益设置与应用 曝光 参考:B站优致谱视觉 增益 相机增益是指相机在拍摄过程中对图像信号进行放大的一种操作,它在提高图像亮度和增强图像细节方面起着重要作用,以下从原理、作用、影响以…...

Linux内核物理内存组织结构

一、系统调用sys_mmap 系统调用mmap用来创建内存映射,把创建内存映射主要的工作委托给do_mmap函数,内核源码文件处理:mm/mmap.c 二、系统调用sys_munmap 1、vma find_vma (mm, start); // 根据起始地址找到要删除的第一个虚拟内存区域 vma 2…...

【PostgreSQL内核学习:深入理解 PostgreSQL 中的 tuplesort_performsort 函数】

深入理解 PostgreSQL 中的 tuplesort_performsort 函数 函数概述函数源码函数签名核心功能相关函数简介 代码结构与逻辑分析1. 内存上下文切换2. 调试跟踪(可选)3. 状态机逻辑(switch 分支)4. 调试跟踪(完成时&#xf…...

谷歌 Gemini 2.5 Pro 免费开放

2025 年 3 月 30 日,谷歌宣布将最新的 Gemini AI 旗舰模型 Gemini 2.5 Pro 免费向所有 Gemini 应用用户开放。以下是关于此次免费开放的一些具体信息1: 背景:此前,Gemini 2.5 Pro 仅向支付 19.99 美元月费的 Gemini Advanced 用户…...

(多看) CExercise_05_1函数_1.2计算base的exponent次幂

题目: 键盘录入两个整数:底(base)和幂指数(exponent),计算base的exponent次幂,并打印输出对应的结果。(注意底和幂指数都可能是负数) 提示:求幂运算时,基础的思路就是先无脑把指数转…...

leetcode刷题 - 数组理论基础

数组是内存空间连续存储、相同类型数据的集合。遍历方式:下标索引 下标:从 0 开始 数组的元素不能删除,只能覆盖 定义一维数组: int arr0[10]; int arr1[10] { 100, 90,80,70,60,50,40,30,20,10 }; int arr2[ ] { 100,90,80,7…...

Jetpack Compose `ACTION_HOVER_EXIT` 事件异常解决方案

Jetpack Compose 1.6.6 版本中 ACTION_HOVER_EXIT 事件异常解决方案 问题现象 在 Android 应用开发中使用 Jetpack Compose 1.6.6 版本时,部分设备会出现以下崩溃日志: java.lang.IllegalStateException: The ACTION_HOVER_EXIT event was not cleare…...

Vuue2 element-admin管理后台,Crud.js封装表格参数修改

需求 表格数据调用列表接口,需要多传一个 Type字段,而Type字段的值 需要从跳转页面Url上面获取到,并赋值给Type,再传入列表接口中,最后拿到表格数据并展示 遇到的问题 需求很简单,但是因为表格使用的是统…...

Tiktok矩阵运营中使用云手机的好处

Tiktok矩阵运营中使用云手机的好处 云手机在TikTok矩阵运营中能够大幅提高管理效率、降低封号风险,并节省成本,是非常实用的运营工具。TikTok矩阵运营使用云手机有很多优势,特别是对于需要批量管理账号、提高运营效率的团队来说。以下是几个…...

Linux下调试器gdb_cgdb使用

文章目录 一、样例代码二、使用watchset var确定问题原因条件断点 一、样例代码 #include <stdio.h>int Sum(int s, int e) {int result 0;int i;for(i s; i < e; i){result i;}return result; }int main() {int start 1;int end 100;printf("I will begin…...

Vite环境下解决跨域问题

在 Vite 开发环境中&#xff0c;可以通过配置代理来解决跨域问题。以下是具体步骤&#xff1a; 在项目根目录下找到 vite.config.js 文件&#xff1a;如果没有&#xff0c;则需要创建一个。配置代理&#xff1a;在 vite.config.js 文件中&#xff0c;使用 server.proxy 选项来…...

超简单:Linux下opencv-gpu配置

1.下载opencv和opencv_contrib安装包 1&#xff09;使用命令下 git clone https://github.com/opencv/opencv.git -b 4.9.0 git clone https://github.com/opencv/opencv_contrib.git -b 4.9.02&#xff09;复制链接去GitHub下载然后上传到服务器 注意&#xff1a;看好版本&a…...

【matplotlib参数调整】

1. 基本绘图函数常用参数 折线图 import matplotlib.pyplot as plt import numpy as npx np.linspace(0, 10, 100) y np.sin(x)plt.plot(x, y, colorred, linestyle--, linewidth2,markero, markersize5, labelsin(x), alpha0.8) plt.title(折线图示例) plt.xlabel(X 轴) p…...

CSS语言的数据挖掘

数据挖掘与CSS语言的结合 引言 在现代社会&#xff0c;数据已然成为企业和个人决策的重要基础。通过有效的数据挖掘技术&#xff0c;能够从海量数据中提取出有价值的信息。在这个过程中&#xff0c;编程语言的选择至关重要。尽管CSS&#xff08;层叠样式表&#xff09;主要用…...

如何判断一条连接是TCP连接还是UDP连接?

在网络通信中&#xff0c;判断一条连接是UDP连接还是TCP连接&#xff0c;可以从协议特性、端口使用、应用场景以及抓包分析等方面入手&#xff1a; 1、基于协议头标志判断&#xff1a; TCP和UDP协议在网络层的头部信息存在差异。在实际的网络通信数据中&#xff0c;通过获取数…...

泰博云平台solr接口存在SSRF漏洞

免责声明&#xff1a;本号提供的网络安全信息仅供参考&#xff0c;不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权&#xff0c;请及时与我联系&#xff0c;我将尽快处理并删除相关内容。 漏洞描述 SSRF漏洞是一种在未能获取服务器…...

31天Python入门——第20天:魔法方法详解

你好&#xff0c;我是安然无虞。 文章目录 魔法方法1. __new__和__del__2. __repr__和__len__3. __enter__和__exit__4. 可迭代对象和迭代器5. 中括号[]数据操作6. __getattr__、__setattr__ 和 __delattr__7. 可调用的8. 运算符 魔法方法 魔法方法: Python中的魔法方法是一类…...

ubantu22.04中搭建地图开发环境(qt5.15.2 + osg3.7.0 + osgearth3.7.1 + osgqt)

一、下载安装qt5.15.2 二、下载编译安装osg3.7.0 三、下载编译安装osgearth3.7.1 四、下载编译安装osgqt 五、二三维地图显示demo开发 六、成果展示&#xff1a; 已有功能&#xff1a;加载了dom影像、可以进行二三维地图切换显示、二维地图支持缩放和平移、三维地图支持旋转…...

Linux驱动开发 块设备

目录 序言 1.块设备结构 分区(gendisk) 请求(request) 请求队列 1. 多队列架构 2. 默认限制与扩展 bio 2.块设备的使用 头文件与宏定义 blk-mq 相关结构和操作 块设备操作函数 模块初始化函数 模块退出函数 3.总结 序言 块设备&#xff08;如硬盘、虚拟盘&#x…...

简易Minecraft python

废话多说 以下是一个基于Python和ModernGL的简化版3D沙盒游戏框架。由于代码长度限制&#xff0c;这里提供一个核心实现&#xff08;约500行&#xff09;&#xff0c;您可以通过添加更多功能和内容来扩展它&#xff1a; python import pygame import moderngl import numpy a…...

Bethune X 6发布:为小规模数据库环境打造轻量化智能监控巡检利器

3月31日&#xff0c;“奇点时刻・数智跃迁 -- 云和恩墨2025春季产品发布会”通过视频号直播的方式在线上举办。发布会上&#xff0c;云和恩墨副总经理熊军正式发布 zCloud 6.7和zData X 3.3两款产品新版本&#xff0c;同时也带来了 Bethune X 6——这款面向小规模数据库环境的智…...

OpenCV 图形API(15)计算两个矩阵(通常代表二维向量的X和Y分量)每个对应元素之间的相位角(即角度)函数phase()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 cv::gapi::phase 是 OpenCV 的 G-API 模块中的一个函数&#xff0c;用于计算两个矩阵&#xff08;通常代表二维向量的X和Y分量&#xff09;每个对应元…...

一文理解什么是中值模糊

目录 中值模糊的概念 中值模糊&#xff08;Median Blur&#xff09; 中值模糊的原理 示例&#xff1a;33 中值模糊 什么是椒盐噪声 椒盐噪声&#xff08;Salt-and-Pepper Noise&#xff09; 椒盐噪声的特点 OpenCV 中的 cv2.medianBlur() 函数格式 示例代码 中值模糊…...

游戏引擎学习第192天

仓库:https://gitee.com/mrxiao_com/2d_game_4 回顾 我们现在正在编写一些界面代码&#xff0c;主要是用户界面&#xff08;UI&#xff09;&#xff0c;不过这里的UI并不是游戏内的用户界面&#xff0c;而是为开发者设计的用户界面。我们正在尝试做一些小的UI元素&#xff0c…...

通信数据记录仪-产品概念ID

总结: 1、支持高速CAN、支持容错CAN、支持单线CAN(理解是支持不同的协议,CANFD、CAN2.0和LIN?) 2、 通过上位机设计时间...

Mac VM 卸载 win10 安装win7系统

卸载 找到相应直接删除&#xff08;移动到废纸篓&#xff09; 可参考&#xff1a;mac如何卸载虚拟机win 下载 win7下载地址...