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

news2024/9/30 23:07:46

思维链

  • 思维链
    • 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.coloradmin.cn/o/2087461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习——LLM大模型分词

1. 前言 自从chatgpt出现,大模型的发展就进入了快车道,各种各样的大模型卷上天,作为一个在大模型时代的科研人,即使你不向前,也会被时代裹挟着向前,所以还是自己走快一点比较好,免得被后浪拍死…

呆错图床系统,一款开源免费的图床系统

源码介绍 呆错图床系统是一款免费的PHP图床程序,核心功能是提供图片外链服务、图床API服务、图片CDN加速与破解防盗链。 下载地址: https://download.csdn.net/download/huayula/89693127

基于七牛云上传,下载文件

准备工作 1.创建一个七牛云账号 2.登录账号,进入个人中心,创建一组密钥(ak和sk) 3. 创建一个公有的存储空间(桶) 注:存储地区的选择基于你的用户的分布主要在哪里。 七牛云直接白送10GB给我们…

给鼠标一个好看的指针特效 鼠标光标如何修改形状?

许多爱美的小伙伴们都想着如何给自己的电脑打扮一下,用各种各样的途径来美化我们的电脑。今天我们给大家分享一下,如何美化鼠标效果,给鼠标指针修改成一个非常好看的形状~ 一起来看几组鼠标的效果,小编我给大家做了个录屏&#x…

LuaJit分析(十一)去除string.dump函数

Lua脚本中的string.dump函数用于生成字节码文件,根据对 luajit -b命令的分析可以得出,最终dump出字节码文件都是使用的string.dump函数。 因此即使我们的指令顺序被打乱,通过loadfile系统调用,再通过string.dump调用,…

缓存解决方案。Redis 和 Amazon ElastiCache 比较

欢迎来到雲闪世界。Redis 和 Amazon ElastiCache 等缓存解决方案是通过将频繁访问的数据存储在内存中来提高应用程序性能的热门选择。让我们从实施简单性、性能、成本和维护方面对它们进行比较。 实施简单 设置 Redis 需要在基础设施或云实例上安装和配置 Redis 服务器。它可…

回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出

回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出 文章目录 前言回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出 一、CNN-LSTM-Attention-Adaboost模型**详细流程:****基本原理&#xf…

Golang | Leetcode Golang题解之第381题O(1)时间插入、删除和获取随机元素-允许重复

题目: 题解: type RandomizedCollection struct {idx map[int]map[int]struct{}nums []int }/** Initialize your data structure here. */ func Constructor() RandomizedCollection {return RandomizedCollection{idx: map[int]map[int]struct{}{},}…

服务器数据恢复—LeftHand存储中raid5阵列多块磁盘离线的数据恢复案例

LeftHand存储支持RAID5、RAID6、RAID10磁盘阵列,同时还支持卷快照,卷动态扩容等。下面简单聊一下LeftHand存储的结构和一个LeftHand p4500存储中磁盘阵列数据恢复案例。 服务端: 客户端: LeftHand存储结构: Lefthand存…

打架目标检测数据集 9000张 打架数据集 带标注voc yolo

本项目的目标是开发一个能够自动检测公共场所中打架行为的系统。该系统利用先进的计算机视觉技术和深度学习方法,在实时视频流或静态图像中准确地识别出打架行为,这对于维护公共安全至关重要。 技术栈 YOLOv8: 作为主要的目标检测框架,因其在…

基于my Batis优化图书管理系统(二)

4. 图书列表 添加图书之后, 跳转到图书列表⻚⾯, 并没有显⽰刚才添加的图书信息, 接下来我们来实现图 书列表 4.1 需求分析 当查询到我们的图书数据很多的时候,一个页可能存放不了,所以我们进行分页处理数据,并且分页进行查询;如…

最新视频合成后调优技术ExVideo模型部署

ExVideo是一种新型的视频合成模型后调优技术,由华东师范大学和阿里巴巴的研究人员共同开发。 ExVideo提出了一种新的后调优策略,无需对整个模型进行大规模重训,仅通过对模型中时序相关组件的微调,就能够显著增强其生成更长视频片…

【大模型系列篇】大语言模型架构分类和对比

在预训练语言模型时代,自然语言处理领域广泛采用了预训练(Pre-training) 微调(SFT)的范式, 并诞生了以 BERT 为代表的编码器(Encoder-only)架构、以 GPT 为代表的解码器(Decoder-only)架构和以 T5 为代表的…

关于springboot对接chatglm3-6b大模型的尝试

之前我们通过阿里提供的cloud ai对接了通义千问。cloud ai对接通义千问 那么接下来我们尝试一些别的模型看一下,其实这个文章主要是表达一种对接方式,其他的都大同小异。都可以依此方法进行处理。 一、明确模型参数 本次我们对接的理论支持来自于阿里云…

模型 DFEAS营销法

系列文章 分享 模型,了解更多👉 模型_思维模型目录。需求触发,精准营销转化。 1 DFEAS营销法的应用 1.1 个性化健身应用的市场拓展策略 随着健康意识的增强,个性化健身应用市场迅速发展。一款名为“FitMyLife”的个性化健身应用…

FancyVideo

一、模型介绍 合成运动丰富且时间一致的视频仍然是人工智能领域的一项挑战,尤其是在处理较长的持续时间时。现有的文本到视频 (T2V) 模型通常采用空间交叉注意进行文本控制,等效地指导不同帧的生成而无需特定于帧的文本指导。因此,模型理解提…

经典算法之链表篇(二)

目录 一:重排链表(LeetCode.143) 二:删除链表的节点(LCR 136. 删除链表的节点) 三:K个一组反转链表(LeetCode.25) 有关经典算法链表的第一篇内容,可以查看我…

在线考试系统源码功能分析

在线考试系统源码的功能分析涵盖了多个关键方面,以确保系统能够满足教育机构和个人的需求。以下是一些常见的功能分析: 权限控制:系统通常支持多个角色,如教师、管理员和学生,并使用JWT等技术进行用户身份的合法性校验…

Leetcode JAVA刷刷站(101)对称二叉树

一、题目概述 二、思路方向 在Java中,要检查一个二叉树是否是轴对称的(也称为镜像对称的),你可以通过递归地比较树的左子树和右子树是否镜像对称来实现。轴对称的二叉树意味着树的左子树和右子树关于根节点对称,即左子…

微信小程序:手机联调同一个网段无法找到本地接口

我们在开发微信小程序的时候,一般会启动本地服务器进行API连调,不过模拟器上面往往一些问题及细节发现不了,需要真机调试,结果调试的时候发现,不能访问到 localhost或者本机IP,也就访问不到本地接口&#x…