[LLM][Prompt Engineering]:思维链(CoT)

news/2024/9/14 14:53:08/ 标签: prompt

思维链

  • 思维链
    • 1. 思维链提示方法和增强策略
      • 1.1 简单的思维链提示
      • 1.2 示例形式的思维链提示
      • 1.3 思维链提示的后处理方案
      • 1.4 拓展推理结构
    • 2. CoT的能力来源:为什么思维链提示能显著提升大语言模型在推理任务上的效果?

强大的逻辑推理是大语言模型“智能涌现”出的核心能力之一。

推理:一般指根据几个已知的前提推导得出新的结论的过程,区别于理解,推理一般是一个“多步骤”的过程,推理的过程可以形成非常必要的“中间概念”,这些中间概念将辅助复杂问题的求解。


思维链提示(Chain-of-Thought,CoT)作为上下文学习的一种扩展形式,旨在增强大语言模型在各类复杂推理任务上的表现。常见的推理任务包括算术推理、常识推理以及符号推理多种任务。与上下文学习方法仅使用$⟨ 输入,输出⟩ $ 二元组 来构造提示不同,思维链提示进一步融合了中间的推理步骤来指导从输入到输出的推理过程。将原始的 $⟨ 输入,输出⟩ $ 映射关系转换为 ⟨ 输入,思维链,输出 ⟩ ⟨ 输入,思维链,输出⟩ 输入,思维链,输出三元组形式。通过提供一系列语义连贯且具有逻辑性的中间推理步骤,建立起输入与输出之间的桥接关系。

上下文学习:https://blog.csdn.net/qq_41897558/article/details/141676968?spm=1001.2014.3001.5501

接下来,将介绍基础的思维链提示方法以及相关的增强策略,还将探讨思维链的能力来源以及思维链提示对模型推理的影响。

1. 思维链提示方法和增强策略

image-20240829162803721

1.1 简单的思维链提示

目前有一些简单的方法可以让大模型在回答问题之前生成思考过程。例如,通过向大语言模型提供诸如“Let’s think step by step.”或“Take a deep breath and work on this problemstep-by-step.” 这样的诱导性指令,能够在不提供思维链示例的情况下,仍然让大语言模型先生成思维链再回答问题来提高准确率。

1.2 示例形式的思维链提示

目前大语言模型在使用思维链提示进行推理时,大多采用了上下文学习的设定,即思维链提示通过示例的形式输入给大语言模型,那么如何在上下文学习的基础上设计思维链提示的示例呢?

  1. 基于复杂度指标设计思维链示例:对于一个上下文示例,增加他的推理步骤(将推理步骤作为复杂度指标),通过对更多子问题的解答,使得推理过程更为缜密。当使用较多推理步骤的示例作为提示输入给模型时,模型更容易学习到多种子问题的解决方案以及对应的逻辑推理过程,能够提升模型在复杂推理任务上的表现。
  2. 基于多样化示例设计思维链示例:在提示中包含多样化的思维链示例能够有效改善模型的推理能力,主要是因为多样化的思维链示例可以为模型提供多种思考方式以及推理结构。

1.3 思维链提示的后处理方案

LLM模型在生成思维链时容易出现推理错误和生成结果不稳定等情况,还需要对大语言模型生成思维链的过程进行改进。

  1. 基于采样的方法:大语言模型在使用单一的思维链进行推理时,一旦中间推理步骤出错,容易导致最终生成错误的答案。为了缓解这一问题,可以通过采样多条推理路径来缓解单一推理路径的不稳定问题。

Selfconsistency 首先使用大语言模型生成多个推理路径和对应的答案(如图所示),然后对这些候选答案进行集成并获得最终输出。具体的集成方法可以选择各条推理路径所得到答案中出现频率最高的那个答案作为最终输出,在某些情况下也可以对所有答案进行某种形式的加权。我们还可以对上述过程做进一步的扩展:假设大语言模型在一个思维链提示下生成了𝑀1 条推理路径,那么可以使用𝑀2 个思维链提示依次输入给大语言模型,这样一共就能得到𝑀1 × 𝑀2 条推理路径,从中投票选出最终的答案,进一步增加答案的可靠性。基于采样的思维链生成方法不仅简单易行,而且相较于单一思维链方法在多个任务中展现出了更为优异的性能。

  1. 基于验证的方法:思维链提示所具有的顺序推理本质可能导致推理过程中出现错误传递或累积的现象。为了解决这一问题,可以使用专门训练的验证器或大语言模型自身来验证所生成的推理步骤的准确性。

1.4 拓展推理结构

如上文所述,基于简单的思维链提示和基于采样方法的思维链提示方法,都是链式推理结构,但链式推理结构无法处理前瞻、回溯探索相关问题,存在一定的局限性。

  1. 树形推理结构:这一方法的代表性工作是思维树(Tree of Thought, ToT)。思维树的每个节点对应一个思考步骤,父节点与子节点之间的连边表示从一个步骤进行下一个步骤。它和思维链的区别在于:思维链从一个节点出发,只能生成一个节点,而思维树则可以生成多个节点。当某一个思考步骤无法得到正确答案时,可以回溯到它的父节点,选择另一个子节点继续推理。
  2. 图状推理结构:相较于树形结构,图形结构能够支持更为复杂的拓扑结构,从而刻画更加错综复杂的推理关系,可以展现出更强的推理性能。这一方法的代表性工作是思维图(Graph of Thought, GoT)。思维图将整个推理过程抽象为图结构,其中的节点表示大语言模型的中间步骤,节点之间的连边表示这些步骤之间的依赖关系。由于树形结构中只有父节点和子节点之间有连边,因此无法构建不同子节点之间的联系。思维图则允许图上的任意节点相连,因此可以在生成新的中间步骤的同时考虑其他推理路径。

2. CoT的能力来源:为什么思维链提示能显著提升大语言模型在推理任务上的效果?

  1. 思维链推理能力的来源. 对于思维链工作机制的研究需要探究推理的本质。
    • 斯坦福大学的研究人员,假设思维链对大语言模型有效的原因是训练数据中存在很多相互重叠且互相影响的局部变量空间(例如主题、概念和关键词等)。在这个条件下,即使两个变量没有在训练数据中共现,也可以通过一系列重叠的中间变量的推理而联系起来。为了验证这一假设,研究人员构建了一个具有链式结构的贝叶斯网络,并用这个网络合成了一批训练样本,这些样本包含许多相互影响的局部变量空间。然后,使用这批数据来训练一个语言模型,根据给定一个变量来预测另一个变量的条件概率。实验结果发现,如果这两个变量不经常在数据中共现时,模型直接预测这个条件概率总会与真实概率有一定偏差,但是当使用中间变量进行推理预测时,可以获得比直接预测更小的偏差;而当这两个变量经常在数据中共现时,通过中间变量推理和直接预测两种方式带来的偏差会比较接近。
    • 还有研究工作从函数学习的角度出发,认为复杂推理任务可以看作是一种组合函数,因此思维链推理实际上是将组合函数的学习过程分解为了两个不同阶段:信息聚焦上下文学习单步的组合函数。在第一阶段,语言模型将隐式地聚焦到思维链提示中与推理的中间步骤相关的信息。在第二阶段,基于聚焦得到的提示,语言模型通过上下文学习输出一个推理的步骤(即单步组合函数的解),并走向下一步,从而得到最终答案(即整个组合函数的最终解)。通过理论证明与实验验证,研究人员发现信息聚焦阶段显著减少了上下文学习的复杂度,只需要关注提示中与推理相关的重要信息,而上下文学习阶段则促进了复杂组合函数的学习过程,而标准提示则很难让模型学习到这种复杂函数。
  2. **思维链可以看作一种增强的上下文学习:**因为任务过于复杂,基础提示已经无法准确表达任务意图,因此需要思维链提示来增强对于任务意图的表达。

http://www.ppmy.cn/news/1518108.html

相关文章

Excel VBA 编程学习指南,1.1 什么是VBA及其应用场景

第一章:VBA简介 1.1 什么是VBA及其应用场景 Visual Basic for Applications (VBA) 是一种内置于Microsoft Office应用程序中的编程语言。它主要用于自动化重复性任务、创建用户自定义的功能,以及扩展Excel等Office程序的功能。VBA是一种事件驱动的编程…

服务器内存占用陡增,部分应用程序无故被停,docker-cache罪魁祸首

一、背景 告警提示:服务器内存占用陡增,部分应用程序无故被停。 查看内存占用,发现只剩下几百M了。 [rootnb003 ~]# free -htotal used free shared buff/cache available Mem: 30G 28G …

echarts组件——饼图

echarts组件——饼图 饼图&#xff0c;环形图 组件代码 <template><div :class"classname" :style"{height:height,width:width}" /> </template><script> // 环形图 import * as echarts from echarts require(echarts/them…

PVE取消核显直通

pve中通过pve_source脚本执行了核显直通之后,想要取消核显直通。但作者并未提供取消核显直通的脚本&#xff0c;导致pve宿主机中找不到/dev/dri。因此通过pve_source脚本中的恢复默认设置后,重启发现核显能找到了,但此时sata控制器又需要重新开启iommu才能开启群晖。但是开启了…

FastGPT:利用大模型重新定义传统知识库

引言 传统知识库的痛点 传统知识库广泛应用于企业文档管理、客户支持等场景&#xff0c;但随着信息量和复杂度的增加&#xff0c;存在以下显著问题&#xff1a; 数据难整合&#xff1a; 结构化与非结构化数据分散&#xff0c;更新维护成本高。检索不精准&#xff1a; 依赖关…

5款自动生成文案的神器,助你轻松创作优质文案

随着人工智能技术的发展&#xff0c;生活中的很多工作都可以自动化操作&#xff0c;就连创作文案也不再会让人绞尽脑汁的去思考怎么写&#xff0c;因为有了自动生成文案的神器&#xff0c;从而使创作者在写作文案的过程中更加得心应手&#xff0c;并且不费吹灰之力便能拥有优质…

HTML 中 a 超链接标签全解析:属性、锚点与伪类

目录 a超链接标签介绍 锚点介绍 页面内锚点 页面外锚点 伪类 a超链接标签介绍 在 HTML 中&#xff0c;<a>标签是一个文本级的标签&#xff0c;同时它还包含伪类&#xff0c;用于根据用户与链接的不同交互状态呈现不同的样式。与之同为文本级标签的<p>&#xff…

【网络】数据链路层-MAC帧

数据链路层-以太网与ARP协议 文章目录 1.数据链路层2.以太网2.1什么是以太网2.2MAC帧格式 3.ARP协议3.1为什么有ARP协议&#xff1f;3.2ARP的定位3.3ARP协议工作流程3.4ARP数据格式 4.RARP协议 1.数据链路层 数据链路层是网络协议栈中最底层的内容&#xff0c;而在之前对其他…

C++中常见的数据结构

和它联合的几篇文章 数据结构之数组-CSDN博客 数据结构之链表-CSDN博客 数据结构之栈-CSDN博客 数据结构之队列-CSDN博客 作为一名C程序员&#xff0c;你是否对常见的数据结构有所了解&#xff1f;本文将为你介绍C中常见的数据结构&#xff0c;以及如何选择合适的数据结构…

python基础操作

python基础 仅仅打印输出 hello world 是不够的,对吧?你想要做的远不止这些 —— 你想要得到一些输入,操作它并从中得到一些东西。 1. 注释 注释是 # 符号右侧的任何文本,主要用作程序读者的注释。 print(hello world) # 注意,print 是一个函数。或者: #注意,…

手机ip频繁跳动的原因是什么?手机ip地址老是变怎么解决

在当今数字化时代&#xff0c;‌手机已成为我们生活中不可或缺的一部分。‌然而&#xff0c;‌有些用户可能会遇到手机IP地址频繁变动的问题&#xff0c;‌这不仅可能影响网络连接的稳定性&#xff0c;‌还可能对特定的在线活动造成困扰。‌本文将深入探讨手机IP频繁跳动的原因…

langchain入门系列之六 使用langchain构建PDF解析助手

本文将介绍如何使用langchain构建一个pdf解析助手&#xff0c;在此文中你将学习到langchain如何与web应用(fastapi)相结合&#xff0c;向量持久化等知识&#xff0c;话不多说&#xff0c;现在开始。 安装环境 pip install fastapi pip install python-dotenv pip install uv…

智能优化特征选择|基于鹦鹉优化(2024年新出优化算法)的特征选择(分类器选用的是KNN)研究Matlab程序 【优化算法可以替换成其他优化方法】

智能优化特征选择|基于鹦鹉优化&#xff08;2024年新出优化算法&#xff09;的特征选择&#xff08;分类器选用的是KNN&#xff09;研究Matlab程序 【优化算法可以替换成其他优化方法】 文章目录 一、PO基本原理PO基本原理基本流程示例应用 二、实验结果三、核心代码四、代码获…

苹果 iOS / iPadOS 18 beta8和iOS / iPadOS 18.1 beta3版本更新

苹果今日向iPhone和iPad用户推送了 iOS / iPadOS 18 开发者预览版 Beta 8 更新&#xff08;内部版本号&#xff1a;22A5350a&#xff09;和iOS / iPadOS 18.1 开发者预览版 Beta 3 更新&#xff08;内部版本号&#xff1a;22B5034e&#xff09;&#xff0c;本次更新距离上次发布…

c语言(二叉树)

第4章 二叉树和BST 树与二叉树 基本概念 树是一种非线性结构&#xff0c;其严格的数学定义是&#xff1a;如果一组数据中除了第一个节点&#xff08;第一个节点称为根节点&#xff0c;没有直接前驱节点&#xff09;之外&#xff0c;其余任意节点有且仅有一个直接前驱&#xff…

华为OD机试(C卷,200分)- 园区参观路径

题目描述 园区某部门举办了Family Day,邀请员工及其家属参加; 将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角; 家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。 输入描述 第一行为园区的长和宽; 后…

为什么要选择JDK15.0.2

JDK16开始&#xff0c;Oracle移除了JDK中JavaSE的很多类。导致我们用IDK15以后的版本做项目&#xff0c;Maven导入的一些第三方依赖会出现找不到ava工具类的情况&#xff0c;而且更有甚者异常信息也不会提示找不到哪些类&#xff0c;直接就报运行错误。这就让我们调试程序无从下…

【软件文档】软件质量保证计划书(Word完整版)

1 概述 2 质量目标 3 项目基本情况 4 资源 4.1 人员 4.1.1 组织结构 4.1.2 职责 4.2 工具及设施 5 质量保证的主要工作 6 质量保证工作量估算 7 质量保证工作提交的产物 8 变更管理 9 评价标准 10 形成的记录 软件全套资料部分文档清单&#xff1a; 工作安排任务书&#xff0c;…

aspose.pdf实现图片转pdf

/*** 图片转pdf*/ public static void ImagesToPdf(){String folderPath "D:\\Desktop\\xuanku";File folder new File(folderPath);List<String> images new ArrayList<>();// 检查文件夹是否存在if (folder.exists() && folder.isDirectory…

【论文速读】| ARVO: 开源软件可重现漏洞的全景图

本次分享论文&#xff1a;ARVO: Atlas of Reproducible Vulnerabilities for Open Source Software 基本信息 原文作者&#xff1a;Xiang Mei, Pulkit Singh Singaria, Jordi Del Castillo, Haoran Xi, Abdelouahab (Habs) Benchikh, Tiffany Bao, Ruoyu Wang, Yan Shoshitai…