【论文阅读-思维链的构造方法02】4.1.2 Automatic Construction-01

提示1:本篇博客中涉及4篇相关论文,预计阅读时间10分钟+,望各位友友耐心阅读~
提示2:本篇所有涉及的论文已打包发布,不需要任何积分即可下载,指路 --> 论文集下载地址

大模型技术-思维链CoT

  1. 思维链综述
  2. 思维链的构造方法01-Manual Prompting
  3. 论文阅读-思维链的构造方法02-Automatic Construction-01

文章目录

  • 大模型技术-思维链CoT
  • 前言
  • 一、涉及论文
  • 二、论文要点详解
    • 2.1 Large Language Models are Zero-Shot Reasoners
      • 2.1.1 提出问题
      • 2.1.2 解决问题
      • 2.1.3 效果及展望
    • 2.2 Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models
      • 2.2.1 提出问题
      • 2.2.2 解决问题
      • 2.2.3 效果及展望
    • 2.3 Automatic Chain of Thought Prompting in Large Language Models
      • 2.3.1 提出问题
      • 2.3.2 解决问题
      • 2.3.3 效果及展望
    • 2.4 Reprompting: Automated Chain-of-Thought Prompt Inference Through Gibbs Sampling
      • 2.4.1 提出问题
      • 2.4.2 解决问题
      • 2.4.3 效果及展望
  • 三、 总结


前言

   4.1.2 Automatic Construction共涉及9篇博客,其中有1篇(PoT)在上一篇博客中已经讲解过了,这里不再赘述。由于篇幅限制,剩余的8篇论文将分文2篇博客进行介绍。

一、涉及论文

  • 论文1:Large Language Models are Zero-Shot Reasoners, NeurIPS 2022
  • 论文2:Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models, ACL 2023
  • 论文3:Automatic Chain of Thought Prompting in Large Language Models, ICLR 2023
  • 论文4:Reprompting: Automated Chain-of-Thought Prompt Inference Through Gibbs Sampling

二、论文要点详解

  下面将针对上述提及的论文,从三方面进行讲解:1)提出了什么问题?2)如何解决的?3)效果及展望。

2.1 Large Language Models are Zero-Shot Reasoners

2.1.1 提出问题

  虽然CoT技术的出现,使得LLMs在多步推理任务上(如算术、多步逻辑推理等复杂)的能力有所提升。但作者认为CoT技术违背了LLMs的缩放定律,使得LLMs的推理和响应都变慢了。

扩展知识

  • System 1和System 2的思维来自丹尼尔·卡尼曼 (Daniel Kahneman)的《思考,快与慢》一书。里面介绍了两种不同的认知处理模式。System 1快速、自动且直观,几乎无需费力即可操作。这种思维模式使人类能够根据模式和经验做出快速决策和判断。相比之下,System 2是缓慢的、深思熟虑的和有意识的,需要有意识地努力。这种类型的思维用于复杂的问题解决和分析任务,在这些任务中需要更多的思考和考虑。

若有朋友知道该内容的原论文,还请私信发我,万分感谢!!!

2.1.2 解决问题

  基于上述问题,作者提出了Zero-shot-CoT(Chain of Thought)的简单方法,通过在模型回答之前添加触发句Let’s think step by step,促使模型以链式推理方式逐步分解问题。与此前依赖于任务特定的Few-shot-CoT方法不同,Zero-shot-CoT无需任何示例,只需一个通用提示,适用于各种推理任务。方法对比如下图所示:
方案对比
注释: (a) 标准 Few-shot、(b) Few-shot-CoT、©标准 Zero-shot 和 (d) 我们的(Zero-shot-CoT)。

  Zero-shot-CoT方法具体包含两阶段提示:第一阶段提取推理路径,第二阶段提取答案格式化结果。如下图所示:
本文方案

2.1.3 效果及展望

  • 实验效果:
    在多种数据集上(如MultiArith、GSM8K等),Zero-shot-CoT显著提升了语言模型的零样本性能。例如,在MultiArith数据集上准确率从17.7%提高到78.7%;在GSM8K上从10.4%提高到40.7%。如下图所示:
    实验结果
  • 未来研究方向:
    • 模板设计优化: 如何自动化生成更高效的通用提示模板。
    • 结合指令微调: 将Zero-shot-CoT与微调模型结合,探索其在更大规模模型上的适用性。
    • 推理能力分析: 深入挖掘大规模语言模型内潜在的多任务认知能力。
    • 减轻偏见: 研究Zero-shot-CoT对语言模型固有偏见的影响,提升模型的公平性与透明性。

2.2 Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models

2.2.1 提出问题

  作者仍然关注LLMs在复杂多步推理任务上的性能不足问题,特别是零样本场景下的推理能力。虽然上一篇提出的零样本链式推理(Zero-shot-CoT)方法能提升推理质量,但仍存在如下3个问题:
   ① 计算错误: 模型在执行基本运算时出错。
   ② 缺少步骤错误: 推理过程中漏掉关键步骤。
   ③ 语义误解错误: 对问题语义或推理逻辑的理解不到位。

2.2.2 解决问题

  为了解决这些问题,本文提出了一种新的方法——计划与求解提示(Plan-and-Solve, PS),它由两个部分组成:首先,制定计划将整个任务划分为较小的子任务,然后根据计划执行子任务。 为了解决计算错误并提高生成的推理步骤的质量,作者扩展了PS 提示,增加了更详细的说明,并衍生出PS+ 提示。具体包含以下关键步骤:
   ① 任务规划: 提示语言模型先理解问题并制定一个分解任务的计划,将复杂问题拆解为多个子任务。
   ② 执行任务: 根据制定的计划逐步完成子任务。
   ③ 改进提示模板(PS+): 在提示中加入更详细的指令,如“提取相关变量及数值”、“计算中间结果”,以减少遗漏步骤和计算错误。
   ④ 答案提取: 通过附加的提示引导模型输出最终答案。

  如下图所示,(a)是PS提示的样例;(b)是PS+提示的样例。
PS

2.2.3 效果及展望

  • 实验效果:
     在 10 个数据集上(包括算术推理、常识推理和符号推理任务)验证了方法的有效性,具体实验结果如下图所示。
       ①零样本效果: PS+ 方法在所有数据集上均显著优于 Zero-shot-CoT,表现甚至接近少样本(8-shot)提示。PS+ 在某些任务上超越了零样本编程式推理(Program-of-Thought Prompting, PoT)。
       ②减少错误: PS+ 方法相比 Zero-shot-CoT 明显减少了计算错误(从 7% 降至 5%)和缺失步骤错误(从 12% 降至 7%)。
       ③ 扩展性: PS+ 的详细提示可轻松适配于非算术推理任务(如常识和符号推理)。
    实验结果
  • 未来研究方向:
    • 语义理解改进: PS+ 方法仍难以完全避免语义理解错误(目前约 27%),未来可探索更细化的提示策略。
    • 计划优化: 研究如何生成更有效的计划或动态调整计划。
    • 跨任务迁移: 验证 PS+ 在其他领域的通用性。

2.3 Automatic Chain of Thought Prompting in Large Language Models

2.3.1 提出问题

  大型语言模型 (LLM) 可以通过生成中间推理步骤来执行复杂的推理任务。这些步骤由所谓的思路链 (CoT) 提示触发,它有两种形式:一种利用简单的提示,如“让我们一步一步思考”,以促进在回答问题之前进行逐步推理 (Zero-Shot-CoT)。另一种使用手动演示,每个演示都由一个问题和一个导致答案的推理链组成 (Manual-CoT)。然而,手动设计的少样本链式思维提示(Manual-CoT)尽管性能较好,但存在以下问题:
   ① 需要大量人力: 手动生成任务特定的演示需要专业知识,且成本高。
   ② 缺乏可扩展性: 不同任务需要不同的手动提示,难以适应多任务场景。
   ③ 零样本提示性能不足: 零样本提示(Zero-Shot-CoT)虽无需手动设计,但在复杂推理任务上的表现较差。

2.3.2 解决问题

  作者提出了一种名为 Auto-CoT(自动链式思维提示) 的方法,用以自动生成演示,解决手动提示的依赖问题。其核心步骤包括:
   ① 问题聚类: 利用 Sentence-BERT 对问题进行向量化表示,采用 k-means 聚类将问题分为若干组。每组选择一个典型问题作为代表。
   ② 演示生成: 对每个代表问题,使用 Zero-Shot-CoT 提示生成推理链条。应用简单的质量控制标准(如推理步骤数不超过 5),筛选生成的演示以确保质量。
   ③ 多样性策略: 通过聚类增强问题的语义多样性,避免模型因过多相似错误而受到误导。

  算法伪代码如下图所示:
算法伪代码

2.3.3 效果及展望

  • 实验效果:
     Auto-CoT 在多个任务上表现接近甚至超越手动提示(Manual-CoT)。与零样本提示相比,Auto-CoT 提升了模型的推理能力。具体如下图所示:
    实验结果
  • 未来研究方向:
    • 模型改进: 探索更有效的质量控制和提示生成方法。
    • 动态适配: 研究如何在流式输入或实时任务中动态更新演示。
    • 错误分析: 深入研究错误来源及其对推理性能的影响。

2.4 Reprompting: Automated Chain-of-Thought Prompt Inference Through Gibbs Sampling

2.4.1 提出问题

  本篇论文也是基于当前手工设计的CoT在LLMs中存在的局限这一问题进行开展的,与上一篇的出发点是雷同的。

2.4.2 解决问题

  作者提出了一种名为 Reprompting 的自动化算法,利用Gibbs采样技术生成有效的CoT提示。核心步骤包括:
   ① 初始化提示: 使用零样本提示生成初始 CoT 提示。利用初始提示解决训练问题,筛选初步有效的提示。
   ② 迭代优化: 以初始提示为基础生成新提示,将新提示用于解决训练问题,并根据解答准确性筛选出更好的提示。通过拒绝采样机制保留部分错误但有潜力改进的提示,以提升多样性。
   ③ 跨模型组合: 在不同模型间进行提示初始化与优化,例如用 ChatGPT 初始化提示,随后由 InstructGPT 优化提示。
  通过上述流程,算法逐步优化提示直至收敛,生成的提示可在测试问题上推广使用。

  算法伪代码如下图所示:
算法伪代码

2.4.3 效果及展望

  • 实验效果:
     作者在 20 项复杂推理任务(涵盖 Big-Bench Hard、GSM8K、MATH 等基准测试)上验证了 Reprompting 的有效性:相比人工设计提示平均提升了9.4个百分点;在多项任务中超越了当前最优提示优化算法(如 Auto-CoT 和 APO),提升幅度达11–33个百分点。具体如下图所示:
    实验效果
  • 未来研究方向:
    • 改进采样方法: 优化 Gibbs 采样流程,减少迭代次数。
    • 任务无关提示: 探索生成能够跨任务通用的高效提示。
    • 模型协同优化: 研究多模型联合优化提示的潜力,进一步提高性能。

三、 总结

   以上就是本篇博客的全部内容了,具体的论文细节希望大家去阅读原文,关于有代码的论文,后期博主也会去进行尝试,有兴趣的朋友可以一直持续关注,感谢各位的支持!!!

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

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

相关文章

uniapp——微信小程序,从客户端会话选择文件

微信小程序选择文件 文章目录 微信小程序选择文件效果图选择文件返回数据格式 API文档: chooseMessageFile 微信小程序读取文件,请查看 效果图 选择文件 /*** description 从客户端会话选择文件* returns {String} 文件路径*/ const chooseFile () &g…

Android GameActivity(NativeActivity)读写文件

最近研究native android相关内容,其中最棘手的就是文件读写问题,最主要的是相关的文档很少。这里写下我所知道的方法。 由于本人使用的是Android14[arm64-v8a]版本的设备,能访问的路径相当有限,如果想要访问更多的路径,就不得不申…

YOLO11改进 | 卷积模块 | ECCV2024 小波卷积

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文给大家带来的教程是将YOLO11的Conv替…

从0开始的opencv之旅(1)cv::Mat的使用

目录 Mat 存储方法 创建一个指定像素方式的图像。 尽管我们完全可以把cv::Mat当作一个黑盒,但是笔者的建议是仍然要深入理解和学习cv::Mat自身的构造逻辑和存储原理,这样在查找问题,或者是遇到一些奇奇怪怪的图像显示问题的时候能够快速的想…

【Hadoop】Hadoop安全之Knox网关

目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop…

走方格(蓝桥杯2020年试题H)

【问题描述】在平面上有一些二维点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第1~n行,从左到右依次为第1~m列,每个点可以用行号和列号表示。 现在有个人站在第1行第1列,他要走到第n行第m列,只能向右或者向…

uniapp Stripe 支付

引入 Stripe npm install stripe/stripe-js import { loadStripe } from stripe/stripe-js; Stripe 提供两种不同类型组件 Payment Element 和 Card Element:如果你使用的是 Payment Element,它是一个更高级别的组件,能够自动处理多种支…

Visual Studio 2022安装教程

1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计,具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发(右边…

论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models

1.abstract 最近推出的3D高斯飞溅(3DGS),它用多达数百万个原始椭球体来描述场景,可以实时渲染。3DGS迅速声名鹊起。然而,一个关键的悬而未决的问题仍然存在:我们如何将多个3DG融合到一个连贯的模型中?解决这个问题将使…

数据结构(ing)

学习内容 指针 指针的定义: 指针是一种变量,它的值为另一个变量的地址,即内存地址。 指针在内存中也是要占据位置的。 指针类型: 指针的值用来存储内存地址,指针的类型表示该地址所指向的数据类型并告诉编译器如何解…

Synopsys软件基本使用方法

Synopsys软件基本使用方法 1 文件说明2 编译流程3 查看波形4 联合仿真 本文主要介绍Synopsys软件vcs、verdi的基本使用方法,相关文件可从 GitHub下载。 1 文件说明 创建verilog源文件add.v、mult.v、top.vmodule add (input signed [31:0] dina,input signed [3…

软件测试基础详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 “尽早的介入测试,遇到问题的解决成本就越低” 随着软件测试技术的发展,测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷,…

人工智能知识分享第六天-机器学习_​逻辑回归(Logistic Regression)

简介 在机器学习中,分类问题是一种常见的任务,目标是根据输入特征将数据点分配到不同的类别中。为了实现分类,我们需要训练一个分类器,该分类器能够根据输入数据的特征进行预测。 逻辑回归(Logistic Regression&…

OpenCV-Python实战(11)——边缘检测

一、Sobel 算子 通过 X 梯度核与 Y 梯度核求得图像在,水平与垂直方向的梯度。 img cv2.Sobel(src*,ddepth*,dx*,dy*,ksize*,scale*,delta*,borderType*)img:目标图像。 src:原始图像。 ddepth:目标图像深度,-1 代表…

Docker- Unable to find image “hello-world“locally

Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…

【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件

步骤 1. 新建一个Actor类,这里命名为“INIActor” 2. 新建一个配置文件“Test.ini” 添加一个自定义配置项 3. 接下来我们在“INIActor”类中获取并修改“CustomInt”的值。这里定义一个方法“GetINIVariable” 方法实现如下,其中第16行代码用于构建配…

互慧-急诊综合管理平台 ServicePage.aspx 任意文件读取漏洞复现

0x01 产品简介 互慧急诊急救快速联动平台,是用于管理门诊急诊病人的系统,主要包括门诊急诊业务和急诊物资管理两部分,其中门诊急诊业务主要包括院前急救、院内抢救、留观监护、绿色通道、预检分诊等;急诊物资管理包括急诊药品管理、急诊设备管理、抢救车管理、急救箱管理、…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 五、 解释评估(Explanation Evaluation) 在前面的章节中,我们介绍了不同的解释技术和它们的用途&#…

pyside6-deploy 提示相对路径错误

Pyside6.5的nuitka_helper.py中的 qml_args.extend([f"--include-data-files{qml_file}./{qml_file.relative_to(source_file.parent)}"for qml_file in qml_files])在qml_file为相对路径的时候会报错。通过增加resolve()来强制转为绝对路径

Echart实现3D饼图示例

在可视化项目中,很多地方会遇见图表;echart是最常见的;这个示例就是用Echart, echart-gl实现3D饼图效果,复制即可用 //需要安装,再引用依赖import * as echarts from "echarts"; import echar…