《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》【大模型思维链】

目录

  • 前言
  • 一、思维链介绍
    • 1-1、指令
    • 1-2、逻辑依据
    • 1-3、示例
  • 二、Cot一般分类
    • 2-1、Zero-Shot-CoT
    • 2-2、Few-Shot-CoT
  • 三、Cot的好处&缺陷&适用
    • 3-1、Cot的好处
    • 3-2、Cot的缺陷
    • 3-3、Cot的适用
  • 四、变体
    • 4-1、自我验证(self-consistency checking)
  • 总结


前言

思维链,是一系列中间推理步骤,可以显著提高大语言模型执行复杂推理的能力。

一、思维链介绍

思维链:一种简单的提示方法,通过一系列的中间推理步骤,可以大大提高大语言模型执行复杂推理的能力。下图为使用标准提示词和使用思维链提示词的输出的区别:

在这里插入图片描述
与传统Prompt的区别: 传统Prompt的流程是直接从输入到输出的映射,而Cot则是输入——思维链——输出。

一个完整的包含Cot的Prompt往往由指令、逻辑依据、示例三部分组成。一般来说,指令用于描述问题并且告知大模型的输出格式;逻辑依据指的是Cot的推理过程(一般包含问题的解决方案、中间推理步骤以及外部知识);示例指的是以少样本的方式为大模型提供输入输出对的基本格式,每一个示例都包含:问题、推理过程与答案。以下为更详细的介绍。

下图为COT实例:《输入——思维链——输出》
在这里插入图片描述

1-1、指令

指令 (Instruction)

  • 作用:明确告知模型需要解决的问题或执行的任务,以及期望的输出格式。
  • 重要性:指令帮助模型理解任务的具体需求,确保输出的相关性和准确性。

示例:

问题:解释什么是光合作用?
指令:简要描述光合作用的过程,并列出它的主要作用。

1-2、逻辑依据

逻辑依据 (Rationale)

  • 作用:包括解决问题的中间步骤、相关知识的引入或理由的阐述。
  • 重要性:逻辑依据帮助模型展现推理过程,使答案更具解释性和可靠性。

示例

问题:解释什么是光合作用?
逻辑依据:光合作用是植物、藻类和某些细菌使用阳光将二氧化碳和水转化为氧气和葡萄糖的过程。这是一个复杂的多步骤过程,涉及到光反应和暗反应等阶段,主要作用是产生氧气和为生物提供能量。

1-3、示例

示例 (Exemplars)
作用:提供具体的问题、推理过程和答案实例,作为模型处理类似问题的参考。
重要性:示例可以帮助模型学习如何格式化其回答,理解问题的深层含义,以及如何引入适当的推理来支持其结论。

示例

问题:解释什么是蒸馏?
推理过程:蒸馏是一种分离混合物的技术,常用于分离液体或提纯物质。在这个过程中,混合物加热至沸点,使最易挥发的组分蒸发,然后通过冷凝再将其分离出来。
答案:蒸馏是利用物质之间沸点的差异来分离它们的过程。

二、Cot一般分类

以是否包含示例为区分,可以将Cot分为Zero-Shot-CoT 与 Few-Shot-CoT。如下图所示:

在这里插入图片描述

2-1、Zero-Shot-CoT

Zero-Shot-CoT (零样本CoT)

  • 定义:在这种模式下,没有提供具体的示例来引导模型的行为。指令通常包括“Let’s think step by step”这样的语句来激励模型展开逐步推理。(进阶:Let’s first understand the problem and devise a plan to solve the problem. Then, let’s carry out the plan and solve the problem step by step)
  • 应用:Zero-Shot-CoT适用于那些模型已经有足够知识理解和解答的情况,不需要通过额外的示例来学习如何回答。
  • 优点:能够快速部署,无需额外准备示例,节省时间。
  • 局限:可能不如Few-Shot-CoT准确,特别是在处理非常复杂或专业性强的问题时。

案例如下所示:
在这里插入图片描述

2-2、Few-Shot-CoT

Few-Shot-CoT (少样本CoT)

  • 定义:在指令中添加具体的示例(案例),这些示例显示了问题、推理过程和答案。这样做可以让模型模仿这些示例来提高解决问题的能力。
  • 应用:Few-Shot-CoT适用于需要模型理解特定格式或复杂问题的场景,特别是在模型原本不太可能准确回答的领域。
  • 优点:通过提供具体示例,模型可以学习特定的回答风格和推理方法,通常能够产生更准确和相关的输出。
  • 局限:需要花费更多的时间来准备有效的示例,且依赖于这些示例的质量。

案例如下所示:

在这里插入图片描述

三、Cot的好处&缺陷&适用

3-1、Cot的好处

Cot的具体优点如下:

  • 增强大模型的推理能力: 通过将复杂问题分为多个子问题,显著提高了模型的推理能力。
  • 增强了大模型的可解释性: 相比于没有使用思维链,Cot可以向我们展示过程,让我们可以知道大模型的执行流程到底是怎样的,增加了可解释性。
  • 增强了大模型的可控性: 通过让大模型一步一步输出步骤,我们通过这些步骤的呈现可以对大模型问题求解的过程施加更大的影响,避免大模型成为无法控制的“完全黑盒”;

3-2、Cot的缺陷

Cot的缺陷如下:

  • 模型的规模太小会导致Cot失效
  • 只有对复杂任务才是有用的。
  • 示例不正确会带偏大模型。

如下图所示(使用Cot的PaLM 540B模型在GSM8K基准上表现出极高的性能):
在这里插入图片描述

3-3、Cot的适用

Cot的适用场景如下:

  • 需要使用大模型,规模太小的不适用(20B以下)
  • 复杂任务场景,如编程
  • 增加模型参数无法使模型性能得到提升。
  • 模型的训练数据针对于任务问题有较强的关联性。

四、变体

4-1、自我验证(self-consistency checking)

自我验证(self-consistency checking)是Chain of Thought (CoT) 推理中的一个重要概念。这种方法不仅在推理过程中寻找问题的答案,而且还要检查和验证这些推理过程的逻辑一致性和正确性。自我验证的目的是提高答案的可靠性和准确性,确保模型在解答复杂问题时能够自我纠正潜在的错误或不一致之处。

如何实施自我验证
在CoT框架中,自我验证通常涉及以下几个步骤:

  • 推理生成:首先,生成一个详细的推理过程,这通常包括对问题的分析、相关信息的整合以及逐步推导出答案的逻辑链。
  • 验证步骤:在得到初步答案之后,模型会重新审视整个推理过程,检查是否存在逻辑断裂、信息错误或不一致的地方。
  • 调整和改进:基于自我验证的结果,模型可能需要调整其推理链。这可以涉及修正错误的事实信息、重新评估逻辑关系或添加缺失的逻辑步骤。
  • 最终输出:完成自我验证和必要的调整后,模型输出最终的、经过验证的答案。

应用场景

  • 自我验证特别适用于需要高度准确性的应用场景,如医学诊断、法律推理、科技问题解答等领域。在这些领域,错误的信息或推理可能导致严重的后果。通过自我验证,模型能够提供更加可靠和精确的答案。

self-consistency checking 案例如下图所示:

在这里插入图片描述

参考文章:
Chain-of-Thought Prompting Elicits Reasoning
in Large Language Models论文地址.
一文读懂:大模型思维链 CoT(Chain of Thought)


总结

那女孩对我说,说我保护她的梦💤

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

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

相关文章

freemarker实现代码生成器

这个主要是黑马的ihrm课程中讲的代码生成器的部分内容。 文章目录 应用场景第一个FreeMarker程序(数据模板 文件输出) 概述数据模型模板的常用标签模板的常用指令 元数据数据库元数据参数元数据结果集元数据 代码生成器思路分析搭建环境导入坐标配置实体…

CloudCompare——体元法计算树冠体积

目录 1.概述2.软件实现3.完整操作4.相关代码 本文由CSDN点云侠原创,CloudCompare——体元法计算树冠体积,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 1.概述 体元法将树冠所在的空间范围划…

python--4函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、递归练习

学习目标: 函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、 递归练习 学习内容: 函数def,本质、值传递、引用传递、默认值参数、*参数名、**变量、lambda [参数]: 函数、偏函数、递归、 递归练习 …

电弧的产生机理

目录: 1、起弧机理 2、电弧特点 3、电弧放电特点 4、实际意义 1)电力开关装置 2)保险丝 1、起弧机理 电弧的本质是一种气体放电现象,可以理解为绝缘情况下产生的高强度瞬时电流。起弧效果如下图所示: 在电场的…

SpringBoot整合Nacos

文章目录 nacosnacos下载nacos启动nacos相关配置demo-dev.yamldemo-test.yamluser.yaml 代码pom.xmlUserConfigBeanAutoRefreshConfigExampleValueAnnotationExampleDemoApplicationbootstrap.yml测试结果补充.刷新静态配置 nacos nacos下载 下载地址 一键傻瓜试安装即可,官…

【Linux】地址空间虚拟地址

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 虚拟地址1.1 虚拟地址引入1.2 虚拟地址理解1.3 虚拟地址细节问题 2. 地址空间2.1 理解地址空间2.2 页表和写时拷贝 3. 进程调度 1. 虚拟地址 1.1 虚拟地址引入 先先来一个测试代码&#xff1a; 1 #include<st…

微信小程序之点击事件

微信小程序中常用的点击事件主要是 tap&#xff0c;但除此之外还有其他的触摸类事件&#xff0c;用于不同的交互场景。以下是一些常见的点击和触摸相关的事件及其区别&#xff1a; 1、tap——最基本的点击事件&#xff0c;适用于一般的轻触交互&#xff0c;类似于 HTML 中的 c…

Octopus+: An RDMA-Enabled Distributed Persistent Memory File System——泛读笔记

TOS 2021 Paper 分布式元数据论文阅读笔记整理 问题 非易失性存储器&#xff08;NVM&#xff09;和远程直接存储器访问&#xff08;RDMA&#xff09;在存储和网络硬件中提供了极高的性能。然而&#xff0c;现有的分布式文件系统隔离了文件系统和网络层&#xff0c;而且分层的…

Nextjs学习入门 - 创建第一个项目

1 通过npx创建一个nextjs项目 通过命令创建&#xff1a; npx create-next-applatest 得到如下项目结构图&#xff1a; my-app- src //源代码目录- app //引用目录- favicon.ico //网站图标- globals.css //全局css- layout.tsx //布局文件- page.tsx //页面 路径"…

Scikit-Learn 支持向量机分类

Scikit-Learn 支持向量机分类 1、支持向量机&#xff08;SVM&#xff09;1.1、SVM概述1.2、SVM原理1.3、SVM的损失函数 1、支持向量机&#xff08;SVM&#xff09; 1.1、SVM概述 在机器学习中&#xff0c;支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#x…

华为服务Fellow、首席项目管理专家,华为H5M项目管理标准制定主导者孙虎受邀为PMO大会演讲嘉宾

全国PMO专业人士年度盛会 华为服务Fellow、首席项目管理专家&#xff0c;华为H5M项目管理标准制定主导者孙虎先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“落地项目管理标准&#xff0c;打赢班长的战争”。大会将于5月25-26日在北京举办&am…

国民经济行业导入数据库码表

目录 1、先去下载word文档图片如下 2、粘贴到excel中形成insert 语句 3、创建临时表存excel中数据 4、创建码表保存信息 5、编写存储过程放入表中 5.1存储第四级码值及父机构 5.2存储第三级码值及父机构 5.3存储第二级码值及父机构 5.4存储第一级码值 6、导入成功查看…

react 使用WEB3.0控件开发包 V3.0接入海康威视摄像头

1、下载官方安装包&#xff1a; 2、安装官方插件 3、引入文件 在public/index 中引入监控依赖&#xff0c;这三个文件可以在下载的官方demo中找到 4、react 中使用 useEffect(() > { const ipInfo :[192.168.xxxx];//初始化摄像头const WebVideoCtrl window.WebVideoCtrl…

Linux下kafka单机版搭建

1.zookeeper的安装 这里使用3.6.4版本 前提&#xff1a;服务器已经安装了jdk&#xff0c;zookeeper运行需要jdk环境 1.1创建放zookeeper的目录 #创建目录 mkdir -p /usr/local/zookeeper#赋予权限 chmod 777 /usr/local/zookeeper1.2安装包的下载 #这里推荐去官网下载 https:…

泛型的初步认识(1)

前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&#x…

Java 算法篇-深入了解 BF 与 KMP 算法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 BF 算法概述 1.1 BF 算法实际使用 2.0 KMP 算法概述 2.1 KMP 算法实际使用 2.2 相比于 BF 算法实现&#xff0c;KMP 算法的重要思想 2.3 为什么要这样设计&#x…

listpack

目录 为什么有listpack? listpack结构 listpack的节点entry 长度length encoding编码方式 listpack的API 1.创建listpack 2.遍历操作 正向遍历 反向遍历 3.查找元素 4.插入/替换/删除元素 总结 为什么有listpack? ziplist是存储在连续内存空间&#xff0c;节省…

华为云服务镜像手动更换

操作步骤&#xff1a; 1、进入华为云首页点击云容器引擎CCE&#xff1b; 2、选择你所要更换镜像的环境【这里以dev环境演示】&#xff1b; 3、点击dev环境后选择顶部的命名空间&#xff0c;点击【工作负载】中右侧栏的【升级】按钮&#xff1b; 4、点【更换镜像】选择你在test…

C++之类和对象三

目录 拷贝构造函数 定义铺垫 浅拷贝 深拷贝 总结 拷贝构造函数 那在创建对象时&#xff0c;可否创建一个与一个对象一某一样的新对象呢&#xff1f; 定义铺垫 构造函数&#xff1a;只有单个形参&#xff0c;该形参是对本类类型对象的引用(一般常用const修饰)&#xff0c…

顺丰同城急送API对接(附源码)

一、背景 最近公司让我对接顺丰同城急送的API&#xff0c;讲讲里面需要注意的几点 官方的API文档有些示例代码也不全&#xff0c;具体细节不多说&#xff0c;如果你现在也需要对接他们API&#xff0c;可以参考本篇博客再配合官方文档结合起来看&#xff0c;可以让您再开发的时…