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

【论文阅读-思维链的构造方法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.kler.cn/a/467253.html

相关文章:

  • 【Redis经典面试题七】Redis的事务机制是怎样的?
  • 在 .Net 8.0 中使用 AJAX 在 ASP.NET Core MVC 中上传文件
  • 前端学习-操作元素属性(二十三)
  • CSS 之 position 定位属性详解
  • AWS DMS基础知识
  • 【sql】CAST(GROUP_CONCAT())实现一对多对象json输出
  • Chapter4.2:Normalizing activations with layer normalization
  • 关于数组的一些应用--------数组作函数的返回值(斐波那契数列数列的实现)
  • 2017年IMO几何预选题第7题
  • 使用Python的xml.etree.ElementTree模块解析和操作 XML 数据
  • 2025年电气、自动化与人工智能(ICEAAI 2025)
  • wordpress报错open_basedir restriction in effect
  • Docker部署Kafka
  • 如何解决数据库和缓存不一致的问题
  • SQL-leetcode-183. 从不订购的客户
  • qt中如何判断字符串是否为数字,整数,浮点数?
  • 【LVGL】给SquareLineStudio导出的Arduino工程添加物理按键
  • 树莓派4b如何连接ov7670摄像头
  • pyinstaller冻结打包多进程程序的bug:无限创建进程直至系统崩溃
  • Computed在Vue2、Vue3写法的不同
  • 奇怪的Python:为何 list 和 dict 的元素顺序从 Python 3.7 开始保持插入顺序?
  • ROS小记
  • 提升汽车金融租赁系统的效率与风险管理策略探讨
  • DELL EMC Unity 存储系统扩容之传统池扩容
  • CSS clip-path 属性
  • Vue项目整合与优化