思维链COT原理探究

要进行因果分析,需要把思维链中的不同元素拆解开来,然后通过控制变量实验,来研究不同元素对COT效果的影响。以下两篇论文的核心差异就在于: COT的变量拆解,以及控制变量的实验方式。

结合两篇论文的实验结论,可能导致思维链比常规推理拥有更高准确率的因素有

  • 思维链的推理过程会重复问题中的核心实体,例如数字,人物,数字等
  • 思维链正确逻辑推理顺序的引入

友情提示:以下论文的实验依赖反事实因果推断,这种因果分析方式本身可能存在有偏性进而得到一些错误结论,读论文有风险,迷信论文需谨慎哈哈~

TEXT AND PATTERNS: FOR EFFECTIVE CHAIN OF THOUGHT IT TAKES TWO TO TANGO

  • 测试模型:PaLM-62B,GPT3,CODEX

google这篇论文比较早,按个人阅读舒适度来划分个人更推荐第二篇论文哟~

COT元素

论文把影响元素拆分成了Text,Symbol和Pattern三个部分, 如下

论文给出了symbol和pattern的定义,剩下的token全是Text

  • symbol:是数据集的核心主体,数学问题就是数字,SPORT数据集就是运动员和运动项目, DATE数据集就是时间,这里的symbol类似实体的概念
  • pattern: 可以是symbol的组合,连接符(公式)或者帮助模型理解任务的表述结构。这里允许pattern和symbol重合,也就是整个公式是pattern,但公式中的数字同样是symbol。但在非数学问题上我个人觉得pattern的定义有点迷幻...

实验

论文针对以上3个元素分别进行了实验,通过改变COT few-shot prompt中特定元素的取值,来分析该元素对COT效果的贡献

观点1.Symbol的形式和取值本身对COT影响不大

这里论文用了两种控制变量的方式:symbol随机采样和特殊符号替换

  • 特殊符号替换(symb_abs)

abstract symbol就是用特殊符号来替换symbol,这里作者同时替换了question,prompt和answer里面的symbol如下

  • 随机替换(symb_ood)

OOD类似随机替换,不过论文的替换方式有些迷幻。对于GSM8k数学问题,作者用一一对应的数学数字替换了文字数字;对于体育常识问题的替换比较常规作者用随机的人名和赛事进行替换;对于时间常识问题作者用未来时间替换了当前时间?? 注意这里的替换作者保证了推理逻辑的一致性,包括同一数字用同一symbol替换,替换实体也符合推理逻辑,以及对问题中的答案也进行了替换。所以这里纯纯只能论证symbol本身的取值和类型(例如数字1和一)是否对COT有影响

abstract symbol就是用特殊符号来替换symbol,这里作者同时替换了question,prompt和answer里面的symbol如下

这种替换方式下的实验结果如下,除了体育问题中的随机实体替换,其余symbol的替换对COT的效果影响都非常有限。这让我想到了一篇关于NER模型的泛化性主要来自模型学会了不同类型的实体会出现在哪些上下文中,而不仅是对实体本身的形式进行了记忆。他们的实验方式和作者替换symbol的操作其实很类似,这种替换并不大幅影响下文对上文的Attention。

观点2. pattern是COT生效的必要不充分条件

对于Pattern作者更换了实验方式,控制变量采用了只保留pattern,和只剔除pattern这两种实验类型。

以数学问题为例,只保留pattern就是推理过程只保留数学公式,只剔除pattern就是整个推理过程只把公式剔除。其余问题类型,考虑在前面的pattern定义阶段个人就感觉有些迷幻,... 所以我们直接跳到实验结论吧

  • 只有pattern的COT效果很差,和直接推理差不多,说明只有patten肯定是不够的,这和上一篇博客提到COT小王子尝试过的只有数学公式的COT效果不好的结论是一致的。
  • 剔除pattern的COT效果受到影响,因此pattern对COT有显著影响,但很显然还有别的因素

观点3. 推理出现问题中的关键实体且和问题保持格式一致很重要

最后针对Text部分,作者采用了实体替换和语法替换

  • 实体替换(text_diff_entities):把推理中的实体随机替换成和问题中不一样的实体,包括数学问题中的数字,常识问题中的时间,地点和任务。个人感觉这应该是symbol的实验??

- 语法替换(text_yoda_thought): 把常规的英文表达改成了Yoda的说法风格。Yoda是按照名词-形容词-动词顺序来说话的。例如常规是This is my home,Yoda会说My home this is。只对thought进行语法替换,question保持正常的英文表达。

效果上,随机实体替换对所有任务的COT效果影响非常大, 所以在推理阶段使用Question中的核心实体很重要。其次推理和question在语法上的不一致会影响COT在部分任务上的表现。

Towards Understanding Chain-of-Thought Prompting: An Empirical Study of What Matters

  • 测试模型:text-davinci-002, text-davinci-003

整体上第二篇论文的思路更简单清晰,在拆解元素的同时还定义了关系。

COT元素

论文首先定义了思维链中的两种核心元素

  • Bridge Object: 模型解决问题所需的核心和必须元素。例如数学问题中的数字和公式,QA问题中的实体,有点类似把论文1中pattern和symbol和在了一起,感觉定义更清晰了
  • Language Template:除去Bridge Object剩余的部分基本都是Language Template

其次定义了思维链的两种核心关系

  • 一致性(Coherence): 推理步骤之间的逻辑顺序, 先说什么后说什么
  • 相关性(Relevance): Question中核心元素是否在推理中出现

实验

论文的消融实验通过人工修改few-shot COT中的few-shot样本,来验证思维链中不同元素的贡献,这里我们以一个数学问题问题为例,看下实验的两个阶段

观点1. 完全正确的COT并非必要

第一步作者证明了完全正确的In-Context样本并不是必须的,用的什么方法嘞?

如下图所示,作者手工把正确的In-Context COT样本改写成错误的,改写方式是在保留部分推理顺序,和部分bridge object的前提下,随机的把推理改成错误的推理逻辑。作者发现魔改后错误的few-shot的样本,对比正确的few-shot-cot保留了80%+的水平,只有小幅的下降。

观点2.推理顺序和核心元素的出现更重要

既然完全正确的COT样本并非必须,那究竟思维链的哪些元素对效果的影响最大呢?针对以上两种元素和两种关系,作者用了数据增强的方式来对few-shot样本进行修改,得到破坏某一种元素/关系后的few-shot样本

  • 破坏相关性: 这里使用了Random Substitution; 针对Bridge Obejct,就是固定文字模板,把数学问题中出现的数字在COT里面(32/42/35)随机替换成其他数字,这里为了保持上下文一致性相同的数字会用相同的随机数字来替换; 针对template,就固定Bridge Object,从样本中随机采样其他的COT推理模板来进行替换。
  • 破坏一致性: 这里使用了Random Shuffle;针对Bridge Object,就是把COT中不同位置的Bridge Obejct随机打乱顺序;针对Template,就固定Bridge Object,把文字模板的句子随机改变位置。

整体效果如下图

论文正文用的是text-davinci-002,附录里也补充了text-davinci-003的效果,看起来003的结果单调性更好,二者结论是基本一致的,因此这里我们只看下003的消融实验效果,可以得到以下几个核心结论

  • 对比COT推理的正确性,相关性和一致性更加重要,尤其是相关性。也就是在推理过程中复述question中的关键信息可以有效提高模型推理准确率。个人猜测是核心元素的复述可以帮助模型更好理解指令识别指令中的关键信息,并提高该信息对应的知识召回【这一点我们在下游难度较高的多项选择SFT中也做过验证,我们在多项选择的推理模板的最后加入了题干的复述,效果会有一定提升,进一步把选项的结果完形填空放到题干中,效果会有更进一步的提升】
  • Language Template的一致性贡献度较高。也就是正确的逻辑推理顺序有助于模型推理效果的提升。这一点更好理解主要和decoder需要依赖上文的解码方式相关。【还是多项选择的指令微调,我们对比了把选项答案放在推理的最前面和放在复述题干之前的效果,都显著差于先推理分析,复述题干并填入选项答案,最后给出选项答案这个推理顺序】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习:Convolutional Neural Networks】卷积神经网络入门指南

卷积神经网络(CNN)是深度学习领域最引人注目的成就之一。自从LeCun等人在20世纪90年代初引入以来,CNN在图像处理、视频分析和自然语言处理等领域取得了显著的成就。在这篇博客中,我们将探讨CNN的基本原理、结构和一些实际应用案例…

实验3 vTPM相关

一、实验目的 1.了解vTPM原理和相关知识;2.创建具备vTPM的虚拟机;3.加深对可信计算技术的理解。 二、实验内容 安装seabios,libtpms,swtpm,qemu‐tpm;启动vTPM;安装虚拟机。 三、实验环境 …

2013年第二届数学建模国际赛小美赛B题寄居蟹进化出人类的就业模式解题全过程文档及程序

2013年第二届数学建模国际赛小美赛 B题 寄居蟹进化出人类的就业模式 原题再现: 寄居蟹是美国最受欢迎的宠物品种,依靠其他动物的壳来保护。剥去寄居蟹的壳,你会看到它柔软、粉红色的腹部卷曲在头状的蕨类叶子后面。大多数寄居蟹喜欢蜗牛壳&…

Unity Window安装包制作

Unity Window安装包制作 介绍一、RAR自解压方式1、找到Unity打包的可执行程序2.创建自解压文件3.配置设置4、最后点击确定等待压缩完成即可(默认生成位置为你选中文件右键点击添加到压缩文件时的路径) 二、Setup Factory工具安装制作Window安装包相关常用…

2023年成都市中等职业学校学生技能大赛“网络搭建及应用”赛项竞赛样卷

2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 (总分1000分) 目录 2023年成都市中等职业学校学生技能大赛 “网络搭建及应用”赛项竞赛样卷 网络建设与调试项目(500分) 服务器搭建与运维项目(…

每日一题----删除指定数字

大家好今天是1月1号,我在这里祝大家元旦快乐,感谢大家的支持,新的一年我会更加努力。谢谢大家。!!! 文章目录 目录 文章目录 题目演示 题⽬描述: 先输⼊10个整数存放在数组中,再输⼊…

华为云创新中心,引领浙南的数字化腾飞

编辑:阿冒 设计:沐由 县域经济是我国国民经济的重要组成部分,是推动经济社会全面发展的核心力量之一。在推进中国式现代化的征程中,县域经济扮演的角色也越来越重要。 毫无疑问,县域经济的良性发展,需要多方…

阿里后端实习一面面经

阿里后端实习一面面经 项目中使用到了es,es的作用? elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 es中的重要概念? 群集:一个或多个节点…

【HarmonyOs Arkts笔记】Arkts ForEach循环使用

说明 ForEach循环数组对象时 要指定对象的唯一标识 例如 id,否则只会显示第一个 State tabsList: object[] [{ name: 砍价活动, id: 1, icon: https://php-b2c.likeshop.cn/uploads/images/2022062414322367e6a5479.png },{ name: 拼团活动, id: 2, icon: https:…

Java循环高级(无限循环,break,continue,Random,逢七过,平方根,判断是否是质数,猜数字小游戏)

文章目录 1.无限循环概念:for格式:while格式:do...while格式:无限循环的注意事项: 2.条件控制语句break:continue: 3. Random使用步骤: 4. 逢七过5. 平方根6.判断是否为质数7. 猜数字小游戏 1.无限循环 概…

【形式语言与自动机/编译原理】CFG-->Greibach-->NPDA(3)

本文将详细讲解《形式语言与自动机》(研究生课程)或《编译原理》(本科生课程)中的上下文无关文法(CFG)转换成Greibach范式,再转成下推自动机(NPDA)识别语言是否可以被接受…

NXP实战笔记(三):S32K3xx基于RTD-SDK在S32DS上配置WDT配置

目录 1、WDT概述 2、SWT配置 2.1、超时时间,复位方式的配置 2.2、中断形式 1、WDT概述 SWT 编程模型只允许 32 位(字)访问。 以下任何尝试访问都是无效的: •非32位访问 •写入只读寄存器 •启用SWT时,将不正确的值写入SR…

10 个顶级的 OBS 录屏替代品知识分享

视频是任何商业沟通策略的关键。您可能希望共享和记录您的屏幕以显示工作流程、为客户创建有用的教程和资源,或增强组织的知识库。 或者,也许视频是您核心产品的一部分,而出色的视频录制软件对于您的业务、YouTube 频道或直播爱好来说是必需…

计算机基础面试题 |01.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【软件工程】融通未来的工艺:深度解析统一过程在软件开发中的角色

🍎个人博客:个人主页 🏆个人专栏: 软件工程 ⛳️ 功不唐捐,玉汝于成 目录 前言: 正文 统一过程(Unified Process) 介绍和解释: 应用: 优缺点&#xf…

使用docker轻量化部署snmp agent(SNMPv2访问)

文章目录 服务器环境说明单机部署(非挂载conf文件版)debian:buster-slim容器简介实现步骤创建Dockerfile创建SNMP配置文件 (snmpd.conf)构建Docker镜像运行Docker容器 注意补充复制容器文件到本地容器、镜像操作 单机部署(挂载conf文件版&…

【SpringBoot】常用注解

RequestBody:自动将请求体中的 json 数据转换为实体类对象。 这个例子凑巧传入的json属性键名和User键名一致,可以直接使用User实体类对象,如果键名不一致则需要用一个Map 类接收参数: PutMapping("/update")public R…

Android apk安装包反编译——apktool工具

目录 一、apk 文件结构二、下载 apktool三、 使用 apktool 反编译 apk四、编译为apk五、apk签名1.生成密钥库2.使用 v1 签名3.使用 v2 签名 六、Dex 加解密原理 一、apk 文件结构 首先是 apk,即安卓程序的安装包。Apk 是一种类似于 Symbian Sis 或 Sisx 的文件格式…

Flink实时电商数仓之DWS层

需求分析 关键词 统计关键词出现的频率 IK分词 进行分词需要引入IK分词器&#xff0c;使用它时需要引入相关的依赖。它能够将搜索的关键字按照日常的使用习惯进行拆分。比如将苹果iphone 手机&#xff0c;拆分为苹果&#xff0c;iphone, 手机。 <dependency><grou…

createElement, parentNode, removeChild, appendChild

1获取父节点 var childNode document.getElementById("child"); var parentNode childNode.parentNode; // 获取父节点利用dom获取元素要嵌套 引出&#xff1a;利用父子兄节点关系获取元素 标签&#xff0c;元素&#xff0c;元素节点空格&#xff0c;文本节点属性…