Auto-CoT:自动构建大模型的思维链提示

news2025/1/13 6:30:06

今天分享的是由上海交通大学发表的一篇文章:Auto-COT

论文题目:AUTOMATIC CHAIN OF THOUGHT PROMPTING
IN LARGE LANGUAGE MODELS

论文链接:https://arxiv.org/pdf/2210.03493

代码地址:https://github.com/amazon-science/auto-cot

论文概述

大模型通过思维链COT将复杂问题分解为多个中间步骤,展示出了强大的推理能力,大模型的思维链COT主要分为两大范式:

  • 零样本链式思维(Zero-Shot-CoT):与任务无关,在测试问题之后添加一个如“让我们一步一步思考”的单一提示语,以促进LLMs中的推理链条。
  • 手动链式思维(Manual-CoT):包含一个问题和对应的推理思维链。这是思维链是由一系列中间推理步骤(即理由)和预期答案组成。

这篇文章提出了自动思维链(Auto-CoT),先将问题聚类,每一类中抽出一个具有代表性的问题,利用零样本思维链为每个问题生成推理链。例如:一共有K个聚类,会抽取K个问题,用提示词“让我们一步一步地思考”,生成K套思维链步骤。当向大模型提出一个新问题后,系统将K套思维链步骤作为提示词和新问题一并输入大模型,并完成作答。

问题分析

这篇论文设计了一种称为 Retrieval-Q-CoT的方法,该方法基于余弦相似性检索最相似的前 $ k $ 个(例如 $ k = 8 $)相似的问题。为了与这种基于相似性的方法对比,使用Random-Q-CoT方法,为每个测试问题随机抽样其他 $ k $ 个测试问题。这两种方法都调用 Zero-Shot-CoT 来为每个抽样的问题 $ q^{demo}_i $ 生成推理链 $ c^{demo}_i $(包括理由和答案),因为 LLM 在零样本设置下是不错的推理器。


从实验结果来看,在调用Zero-Shot-CoT时,Retrieval-Q-CoT在算术数据集MultiArith上的表现不如Random-Q-CoT,而在带有注释推理链的GSM8K和AQuA两个数据集上,Retrieval-Q-CoT甚至优于Manual-CoT。结果表明,Retrieval-Q-CoT的较差性能是由Zero-Shot-CoT的错误推理链引起的。

相似性检索产生误导

相似性误导指的是,Retrieval-Q-CoT中的推理链(包括基本原理和答案)是由Zero-Shot-CoT生成的,它们可能存在导致错误的答案。在检索到与测试问题类似的问题之后,由Zero-Shot-CoT引起的错误演示可能会误导同一个LLM以类似的方式推理错误的答案。

  • 探讨是否是相似性检索导致Retrieval-Q-CoT性能低

在来自MultiArith数据集的所有600个问题上调用了Zero-Shot-CoT。在这之中,我们收集了那128个Zero-Shot-CoT生成了错误答案的问题(错误率:21.3% )。在Zero-Shot-CoT失败的问题Q中,将那些即使有了额外演示后Retrieval-Q-CoT或Random-Q-CoT仍然失败的问题称为未解决的问题。将未解决问题的数量除以128(Q中的问题数量)来计算未解决率。
Retrieval-Q-CoT的未解决率为46.9%,远高于Random-Q-CoT的25.8%。这表明当为测试问题采样了相似的问题时,Retrieval-Q-CoT受到相似性误导的负面影响更大。

出错问题属于哪一类

使用K-means聚类可以帮助识别出哪些类型的问题更难被Zero-Shot-CoT正确解答。高频错误簇的存在表明,某些问题类型对于Zero-Shot-CoT来说确实更具挑战性。

Retrieval-Q-CoT依赖于找到相似的问题来构建演示,但如果这些问题是来自高频错误簇,则可能导致错误的传播。

相比之下,Random-Q-CoT由于其随机抽样的特性,能够避免因相似性而导致的错误复制,从而表现出更低的未解决率1。

多样性降低相似性产生的误导

假设所有错误演示的问题都属于同一个高频错误簇,则从每个不同的簇中抽样一个问题。由于不同的簇反映了问题语义的多样性,这种基于聚类的抽样方法可以被视为基于多样性的。

通过引入基于多样性的抽样方法以及利用简单的启发式规则,我们可以有效地减少由零样本CoT产生的误导,并提高自动化生成的推理链的质量。这种方法不仅提高了正确解答的可能性,还增强了系统对不同类型问题的适应性,从而提升了整体的推理性能。

论文核心

Auto-CoT主要由两个阶段组成:

  • 问题聚类:将给定数据集的问题划分为几个簇;
  • 演示采样:从每个簇中选择一个代表性问题,并使用简单的启发式规则通过Zero-Shot-CoT生成其推理链。

问题聚类

由于基于多样性的聚类可能会减少由相似性导致的误导,我们针对给定的问题集合 Q Q Q 执行聚类分析,。我们首先使用Sentence-BERT为 Q Q Q 中的每个问题计算一个向量表示。随后,这些问题表示被 k-means 聚类算法处理,以产生 k k k 个问题簇。对于簇 i i i 中的每个问题,我们将它们按照到簇 i i i 中心的距离升序排列成列表,$ q^{(i)} = [q_1^{(i)}, q_2^{(i)}, \ldots] $。

抽样并构造范例

在第二阶段,为那些抽样的问题生成推理链,然后选择符合我们选择标准的演示。具体来说,对于每个簇 i i i i = 1 , … , k i = 1, \ldots, k i=1,,k),我们构建一个演示 d ( i ) d^{(i)} d(i)(由一个问题、一个推理过程和一个答案组成的连接)。

对于簇 i i i,我们在排序后的列表$ q^{(i)} = [q_1^{(i)}, q_2^{(i)}, \ldots] $中迭代问题,直到满足我们的选择标准。换句话说,离簇 i i i 中心更近的问题会被优先考虑。假设第 j j j 近的问题 q j ( i ) q_j^{(i)} qj(i) 正在被考虑,通过到零样本推理链,输入到大模型中,得到包含推理过程和提取的答案的推理链。然后,通过将问题、推理过程和答案连接起来,构建了第 i i i 个簇的候选演示。

增强后的上下文输入到大模型中

所构造的范例被用来增强测试问题的上下文学习。输入所有范例,然后送入LLM获得推理链,最后得到最终的答案。

论文实验

任务和数据集

论文在来自三个类别推理任务的十个基准数据集上进行了评估:

  • 算术推理:此类别包括了多个数据集,如MultiArith、GSM8K、AddSub、AQUA-RAT、SingleEq 和 SVAMP。这些数据集旨在测试模型解决涉及基础数学运算问题的能力。
  • 常识推理:包括CSQA 和 StrategyQA 数据集,它们用于评估模型理解并应用日常生活中非正式知识的能力。
  • 符号推理:通过Last Letter Concatenation 和 Coin Flip 任务来检验模型处理抽象逻辑和模式识别的能力。

基线实验

  • Zero-Shot 方法是指模型在没有见过任何特定任务示例的情况下直接尝试解决问题。
  • Zero-Shot-CoT 是指在提问时给予模型一个“让我们一步一步思考”的提示,以激发其生成解题步骤。
  • Few-Shot 方法则是提供少量相关任务的示例给模型学习,但不包含详细的解题过程。
  • Manual-CoT 指的是人工构建的带有详细解题思路的示例,用以指导模型学习如何解决问题。

论文总结

这篇文章提出了自动思维链(Auto-CoT),先将问题聚类,每一类中抽出一个具有代表性的问题,利用零样本思维链为每个问题生成推理链。自动思维链(Auto-CoT)的优势在于,不需要手工分解解题步骤,不需要编写思维链提示词。这是一个很大的进步。但是,这种技术的也有一个明显的局限:需要对问题集划分成几个聚类,对每个聚类都要生成一组思维链提示词,并且这些提示词还要一并输入到大模型里。聚类太少,思维链的多样性不够;聚类太多,提示词太长,效率太低。

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

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

相关文章

算法练习7——拦截导弹的系统数量求解

题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 假设某天雷达捕捉到敌国的导弹来袭。由于该系统还在试用…

命令行中打印二维码

前公司中登录设备时,需要下发密钥,密钥是通过扫描终端中的二维码获得的,终端中的二维码类似这样: 当时没理解原理,现在研究了下如何在命令行中打印二维码。主要介绍其中一些开源工具: 1. qrencode 简介 …

Android车机DIY开发之软件篇(八)单独编译

Android车机DIY开发之软件篇(八)单独编译 1.CarLauncher单独编译 CarLauncher源码位于 packages/apps/Car/Launcher 用Eclipse ADT 谷歌定制版编译而成,.mk .bp编译 Android13目录如下: alientekalientek:~/packages/apps/Car$ ls Calendar …

3 前端: Web开发相关概念 、HTML语法、CSS语法

文章目录 前言:导学1 Web开发相关概念2 Web标准(网页标准)3 软件架构(CS/BS)(1)C/S: Client/Server 客户端 / 服务器端(2)B/S: Browser/Server 浏览器 / 服务器端VSCode配置前段开发环境一、HTML概念1 概念2 HTML快速入门(1)语法快速入门(2)VSCode一个 !(快捷键…

Redis:内存管理

1. 最大内存限制 (maxmemory) 简介 概念:maxmemory 参数用于设置 Redis 实例允许使用的最大内存量。作用:当 Redis 使用的内存达到这个限制时,它会根据配置的淘汰策略来决定如何处理新的写入请求或移除现有数据。示例 # 设置最大内存为2GB maxmemory 2gb注意事项 合理规划…

C语言进阶——1数据的存储

目录 1. 数据类型介绍1.1 类型的基本归类:1.1.1 整形家族1.1.2 浮点型家族1.1.3 构造类型:1.1.4.指针类型1.1.5 void 表示空类型(无类型) 2. 整形在内存中的存储2.1 原码、反码、补码2.1.1 示例 20在计算机中的存储 2.2 大小端2.2…

OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性

本文作者: 容器服务团队:刘佳旭、冯诗淳 可观测团队:竺夏栋、麻嘉豪、隋吉智 一、前言 Kubernetes(K8s)架构已经是当今 IT 架构的主流与事实标准(CNCF Survey[1])。随着承接的业务规模越来越大,用户也在使…

【微服务】面试 1、概述和服务发现

微服务面试题 课程内容架构 Spring Cloud 部分 服务注册:重点讲解(Nacos)和(Eureka),这是微服务架构中实现服务发现与注册的关键组件,确保服务间能够相互定位与通信。负载均衡:涵盖…

Mybatis冲冲冲00(含如何配置模版文件)

官方网站:mybatis – MyBatis 3 | 入门 mybatis安装方式1.下jar包(网址在上),2.Maven(代码也由上可找) 两个核心配置文件 1.核心主配置文件:configuration.xml(文件名自定义),通常设置为mybatis-config.xml 2.SQL映射文件:mapper.xml(文件名自定义),通常设置为:实体类名.xml…

【Rust】引用与借用

目录 思维导图 1. 引用与借用的基本概念 1.1. 引用示例 2. 借用的规则 2.1. 可变借用示例 2.2. 借用的限制 3. 引用的生命周期 思维导图 1. 引用与借用的基本概念 引用的定义:引用是一种指向数据的指针,但与裸指针不同,Rust的引用在编…

django网上商城系统

Django网上商城系统是一种基于Django框架构建的电子商务解决方案,它充分利用了Django框架的强大功能,为开发者提供了一个快速构建在线商店的平台。 一、系统架构与技术栈 Django网上商城系统采用MVC(模型-视图-控制器)架构&…

Node.js - 模块化与包管理工具

1. 前言 模块化是代码组织的方式,而包管理工具是管理模块的工具。在现代项目开发中,模块化和包管理工具几乎是不可分割的一部分,它们一起构成了高效的开发工作流。 包代表了一组特定功能的源码集合,包管理工具可以对包进行下载安…

贪心算法汇总

1.贪心算法 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 如何能看出局部最优是否能推出整体最优 靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。 如何验证可不可以…

leetcode-最长递增子序列

300. 最长递增子序列 - 力扣(LeetCode) 动态规划的题目我真的不想看题解,题解都是直接推出来动态转移方程,我就很纳闷,到底是怎么推出来的呢?什么样的智慧,上来分析问题就是那么的清晰有条理。我…

Qt 5.14.2 学习记录 —— 십일 QLCDNumber、ProgressBar、QCalendarWidget

文章目录 1、QLCDNumber2、ProgressBar3、QCalendarWidget 1、QLCDNumber 写一个倒计时程序。拖一个LCD Number到界面: 定时器用Qt的QTimer类,这个类的对象会产生一个timeout信号,通过start方法来开启定时器,并且参数中设定触发ti…

VDN 微服务架构搭建篇(二)服务注册与配置中心Nacos

VDN 微服务架构搭建篇(二):服务注册与配置中心 Nacos 本文将介绍如何使用 Spring Cloud Alibaba 和 Nacos 搭建服务注册与配置中心,重点讲解如何实现微服务架构中的服务发现、自动注册、配置管理以及动态配置刷新等功能。通过整合…

高等数学学习笔记 ☞ 单调性、凸凹性、极值、最值、曲率

1. 单调性 1. 单调性定义:设函数在区间上有定义,对于区间上任意两点,若: ①:当时,恒有,则称函数在区间上单调递增。 ②:当时,恒有,则称函数在区间上单调递减…

38家医药股回购,9家注销,丽珠集团公告犯低级错误

作者 庄泽 编辑 雨菲 2025年以来至1月10日,申万医药生物板块共有38家公司发布股票回购公告,其中包括介绍公司2024年股票回购情况,以及新发起股票回购事项等。 从回购股票用途来看,38家公司中,有26家回购股票用于股权激…

最近在盘gitlab.0.先review了一下docker

# 正文 本猿所在产品的代码是保存到了一个本地gitlab实例上,实例是别的同事搭建的。最近又又又想了解一下,而且已经盘了一些了,所以写写记录一下。因为这个事儿没太多的进度压力,索性写到哪儿算哪儿,只要是新了解到的…

GitLab本地服务器配置ssh和克隆项目

1. 本地安装好git git链接:https://git-scm.com/downloads/win 无脑点击下一步安装即可,打开Git Bash命令终端如下: 2. 配置本地用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…