[论文阅读]SCOTT: Self-Consistent Chain-of-Thought Distillation

中文译名:SCOTT: 思维链一致性蒸馏

会议:Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)

链接:SCOTT: Self-Consistent Chain-of-Thought Distillation - ACL Anthology

摘要:

尽管思维链 CoT 可以显著提高性能,但这种收益仅在足够大的 LMs 中才能观察到。更令人担忧的是,几乎无法保证生成的理由与 LM 的预测一致或忠实地证明决策的合理性。在这项工作中,我们提出了 SCOTT,这是一种忠实的知识蒸馏方法,用于从规模大几个数量级的教师模型中学习一个小型、自洽的 CoT 模型。为了形成更好的监督,我们通过对比解码从大型 LM(教师)中引出支持黄金答案的理由,这鼓励教师生成仅在考虑答案时才更合理的标记。为了确保忠实的蒸馏,我们使用教师生成的理由以反事实推理 目标来学习学生 LM,这防止学生忽略理由做出不一致的预测。实验表明,在产生相当的最终任务性能的同时,我们的方法可以生成比基线更忠实的 CoT 理由。进一步的分析表明,这样的模型在做决策时更尊重理由;因此,我们可以通过改进其理由来更多地提高其性能。 

现有工作:

主要出于计算效率或任务性能的考虑,提议从大型 LMs 中学习推理。他们提示一个大型 LM (教师)为下游数据集生成理由,然后用于训练一个小型 LM (学生)。

存在问题:

  1. LMs 容易产生幻觉,这意味着它们经常生成与输入无关的文本。因此,教师可能无法生成完全支持答案的主题相关理由。
  2. 学生可能将理由生成和答案预测视为两个独立的过程。 这是由于问题和答案之间的虚假相关性,学生将其作为推理捷径。

上面的两个问题共同导致一个不忠实的学生,会生成空洞的理由,且可能做出与理由不一致的预测。

文中的方法:

方法设计:

分别从两个方面增强普通的知识蒸馏 KD 过程。

  1. 为了从教师那里引出更多主题相关的理由,我们提议利用对比解码,旨在将每个理由与答案联系起来。这种技术鼓励教师生成仅在考虑答案时更合理的标记,而不是在不考虑答案时也相当合理的标记。
    对比解码技术:通过向教师模型提供扰动答案(空字符串或错误答案),计算每个标记的合理性增长,以获得更一致的教师模型,使其生成的理由更符合主题且能更好地支持黄金答案。
  2. 为了训练一个忠实的学生,我们要求学生进行反事实推理,即当理由导致不同答案时相应地进行预测:通过要求教师为抽样的错误答案生成理由来获得训练数据
    反事实推理训练:通过将正确答案替换为错误答案获取反事实理由,训练学生模型更加忠实于生成的理由进行预测,避免忽略理由导致的不一致预测。

目标:

  1. 从大型语言模型中引出一致的理由,即那些能很好地证明黄金答案的理由,作为监督
  2. 训练一个自洽的学生模型来忠实推理, 即根据其生成的理由进行相应的回答

 具体描述:

 数据集:

使用上 文学习自动从教师模型中获取理由,而不是要求人类为每个问 题 - 答案元组{q, a∗}标注一个理由。

思路是在提供新实例之前,用仅几个标注示例作为演示来提示一个冻结的语言模型作为教师。每个示例由从训练集中随机抽样的问题 q、黄金答案 a∗和一个人类标注的理由 r 组成,该理由说明 a∗为什么是正确的。

提示词的策略如上图。

训练:

在这项工作中,我们专注于自我合理化范式,其中学生首先生成一个理由,然后根据生成的理由预测答案。这与相关工作不同,后者进行事后合理化,即在预测答案后生成理由,或者进行多任务学习,将理由生成视为除答案预测之外的辅助任务。原因是后两种范式中理由的生成从设计上不影响决策,因此理由的忠实性首先无法 得到保证。

蒸馏一个自相一致的学生模型:

常规的知识蒸馏中,如果老师模型输出了不相关的文本(幻觉),导致生成的理由不支持给定的答案,这种理由和答案的不一致性将被学生模型学到,从而误导学生认为答案预测和理由生成是相互独立的;学生模型会通过采取推理捷径来学习预测答案而不考虑生成的理由。

上述问题导致一个不可信的学生模型,其生成的理由不能始终如一地证明答案的合理性。

文章提出了两个相应的技术

对比解码

对比解码基于这样一个假设,即模型在生成理由时,应该更倾向于生成那些在考虑答案时更合理的标记。通过向教师模型提供扰动答案(可以是空字符串或错误答案),计算每个标记的合理性增长。

扩展了一种先前称为对比解码的技术,用于开放式文本生成

核心思想是搜索仅在考虑答案时更合理的理由标记,而不是在不考虑答案时也相当合理的标记。

 向同一教师提供一个干扰答案a'来建模幻觉行为,然后获得给定答案 a ∗时任何标记 ti的合理性增长

设计了两种干扰答案的方式: 将 a '设置为空字符串或除 a ∗之外的错误答案

反事实推理

反事实推理是一种假设在某些条件发生改变的情况下,结果会如何不同的思维方式。在本文的方法中,反事实推理用于训练学生模型更加忠实于理由进行预测。具体操作是将教师模型中原本的黄金答案替换为错误答案a^',按照与之前相同的方式(例如使用相同的采样策略)让教师模型生成相应的反事实理由r^'。然后,训练学生模型在接收到反事实理由时,应该预测出与该反事实理由相对应的错误答案a^'。这样可以迫使学生模型不能仅仅依赖于问题和答案之间可能存在的虚假相关性,而是要真正根据理由进行预测,从而提高学生模型对理由的忠实性。

为了鼓励学生对其生成的理由进行忠实推理,训练学生进行反事实推理,即当理由导致不同答案时相应地进行预测,在学生被要求对同一问题根据理由给出不同的答案

实验结果:

  1. 对比解码可以导致一个更一致的教师,其生成的理由更支持黄金答案。
  2. 在更一致的 理由 - 答案 对上进行训练,学生学会更好地将答案预测与理由生成联系起来。
  3. 通过反事实推理作为辅助训练目标,学生学会不采用推理捷径, 而是更加尊重理由。
  4. 尽管更加忠实,但我们的模型与基线模型的性能相当。
  5. 消融研究表明,尽管表现更好,但更大的学生模型更容易不一致。我们的方法无论学生模型的大小如何,都能稳健地纠正这种不一致性。
  6. 有了一个更忠实的学生,我们可以通过纠正其理由来更好地提高其性能,展示了我们的方法 在模型改进中的效用。

总结 

优点: 对比解码能有效鼓励教师生成更符合主题、更具区分性的理由;反事实推理使得学生模型更加忠实于生成的理由进行预测。

缺点:对比解码增加了计算成本;方法侧重于提高理由忠实性而非性能提升。

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

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

相关文章

简单概述Ton链开发路径

区块链开发领域发展迅速,各种平台为开发人员提供不同的生态系统。其中一个更有趣且越来越相关的区块链是TON(开放网络)区块链。TON 区块链最初由 Telegram 构思,旨在提供快速、安全且可扩展的去中心化应用程序 (dApp)。凭借其独特…

CSS简单入门

一.简单概念 1.概念 层叠样式表&#xff0c;一种样式表语言&#xff0c;用来美化HTML文档的呈现。 2.书写位置 title标签下方添加style双标签&#xff0c;style标签里面书写CSS代码 &#xff08;1&#xff09;外部学习样式 <title>CSS使用</title> <sty…

【2022统考真题】计算时间复杂度

目录 一、题目描述 二、思路分析 三、易错提醒 四、同级和嵌套的关系 一、题目描述 下列程序段的时间复杂度是&#xff08;&#xff09; int sum 0; for (int i 1; i < n; i * 2) for (int j 0; j < i; j) sum; A. O(logn) B. O(n) C. O(nlogn) D…

前端转换double数据,保留两位小数

Number Number(1.00) 1 Number(1.10) 1.1 Number(1.101) 1.101 要想前端展示页面按 1.00展示1&#xff0c;1.10 展示1.1 需要套一个number() 1.1 保留两位小数&#xff0c;并三位一个分隔符 indexView.value[key] formatNumber(indexView.value[key].toFixed(2))//格式…

聚类分析 | WOA-K-means++聚类优化算法

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 (创新)WOA-K-means聚类优化算法 (WOA聚类优化&#xff0c;创新&#xff0c;独家) 鲸鱼算法优化K-means聚类优化算法 matlab语言&#xff0c;一键出图&#xff0c;直接运行 1.鲸鱼算法WOA作为群智能算法简单高效&a…

25.2 采集端高基数的现象和原因

本节重点介绍 : 什么是高基数采集端高基数的原因 标签的值过多 获取采集端的高基数metrics tsdb-status页面介绍统计原理讲解&#xff1a;是基于内存中的倒排索引 算最大堆取 top10通过接口获取metrics name top10 什么是高基数 通俗的说就是返回的series或者查询到的serie…

spring boot itext7 修改生成文档的作者、制作者、标题,并且读取相关的信息。

1、官方的example文件&#xff1a;iText GitHub itext-java-7.2.5\kernel\src\test\java\com\itextpdf\kernel\pdf\PdfStampingTest.java 2、修改代码&#xff1a; Testpublic void stamping1() throws IOException {String filename1 destinationFolder "stamping1_…

【安装教程】Windows10环境下Pytorch(GPU版)的安装与配置

目录 Pytorch的概念安装前要求一、NVIDIA驱动查看二、Anaconda的安装2.1 Anaconda的安装2.2 创建虚拟环境2.3 激活虚拟环境 三、CUDA ToolKit的安装&#xff08;选做&#xff0c;CPU版本可跳过&#xff09;3.1 CUDA安装包的下载&#xff08;以CUDA11.6.0为例&#xff09;3.2 CU…

【兼容多端】UNIAPP popper气泡弹层vue3+typescript unibest

最近要实习一个泡泡弹层。看了下市场的代码&#xff0c;要么写的不怎么好&#xff0c;要么过于复杂。于是拿个轮子自己加工。200行代码撸了个弹出层组件。兼容H5和APP和小程序。 功能&#xff1a; 1)只支持上下左右4个方向的弹层不支持侧边靠齐 2)不对屏幕边界适配 3)支持弹层…

EmEditor传奇脚本编辑器

主程序&#xff1a;EmEditor.exe 目前已有功能 可以自己指定一个快捷键 实现以下功能&#xff08;默认快捷键为&#xff1a;F1&#xff09; 以下全功能 都是鼠标所在行 按快捷键 &#xff08;默认快捷键&#xff1a;F1&#xff09; 1.在Merchant.txt中 一键打开NPC 没有…

注册安全分析报告:惠农网

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

C语言 | Leetcode C语言题解之第462题最小操作次数使数组元素相等II

题目&#xff1a; 题解&#xff1a; static inline void swap(int *a, int *b) {int c *a;*a *b;*b c; }static inline int partition(int *nums, int left, int right) {int x nums[right], i left - 1;for (int j left; j < right; j) {if (nums[j] < x) {swap(…

前端的AI工具:ChatGPT Canvas与Claude Artifacts对比 -仅仅是OpenAI一个迟来的追赶吗?- 贺星舰五飞试验成功

如果你对OpenAI的ChatGPT Canvas和Anthropic的Claude Artifacts有所耳闻&#xff0c;可能会想知道这两个工具有何不同&#xff0c;以及哪个能让你的工作流程更加顺畅。这两个工具旨在提升生产力&#xff0c;但侧重点各异——编码、写作、创意和实时反馈。 本文将深入探讨ChatG…

面腾讯后台开发,二面挂掉了,,,

随着各厂秋招的开启&#xff0c;收到面试邀请的同学也越来越多。在当年和我一起找实习的同学里面&#xff0c;有实力较强的同学收到了腾讯后台开发的校招面试邀请。但面试不止是实力的竞争&#xff0c;也有很重要的运气的因素。 虽然我的同学在腾讯后台开发的二面中挂掉了&…

76.最小覆盖子串

题目:76. 最小覆盖子串 - 力扣&#xff08;LeetCode&#xff09; 代码思路: (滑动窗口) O(n) 这道题要求我们返回字符串 s中包含字符串 t 的全部字符的最小窗口&#xff0c;我们利用滑动窗口的思想解决这个问题。因此我们需要两个哈希表&#xff0c;hs哈希表维护的是s字符串中…

QT:“提升为“使用(自定义控件)

目录 一.步骤与作用 1.步骤 2.作用 二.使用 1.mainwindow.ui ->拖一个 Push Button 控件到画布->右击Push Button弹出对话框->单击"提升为" 2.输入提升类名称MyButton->点击添加 3.选择基类名称为QPushButton,点击提升 4.新建MyButton文件 5.在…

初等数学几百年重大错误:将根本不是无穷集的真子集误为其真子集

黄小宁 【摘要】长为1的直线段形橡皮筋A拉长为长为2的橡皮筋B&#xff08;可二等分&#xff09;&#xff0c;去掉拉力使B缩短成原来的A&#xff0c;A不是B的一半。同样可证直线段L均匀压缩变短为直线段D&#xff5e;L不能成为L的一部分。数学一直误以为D是L的一部分使康脱推出…

《RabbitMQ篇》消费者轮询消费消息

当有多个消费者都在同一个队列中拿取消息时&#xff0c;会轮询从队列中拿取消息消费。 RabbitMQUtil类为工具类&#xff0c;获取Channel。 import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory;public…

HBuilder X 下载vue-router时 发生异常:npm ERR! code EPERM

一、异常 PS C:\Users\GL\Documents\HBuilderProjects\vj1> npm i vue-router3.6.5 npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\nodejs\node_cache\_cacache npm ERR! errno EPERM npm ERR! FetchError: Invalid response body while tr…

【Linux】来查看当前系统的架构

使用 uname 命令 uname -m 使用 arch 命令 arch 查看 /proc/cpuinfo 文件 查找 model name 或 Processor 字段。 cat /proc/cpuinfo 使用 lscpu 命令 lscpu