自洽性改善语言模型中的思维链推理7.13、7.14

news2024/12/23 13:58:31

自洽性改善语言模型中的思维链推理

  • 摘要
  • 介绍
  • 对多样化路径的自洽
  • 实验
    • 实验设置
    • 主要结果
    • 当CoT影响效率时候,SC会有所帮助
    • 与现有方法进行比较
    • 附加研究
  • 相关工作
  • 总结

原文:
在这里插入图片描述

摘要

本篇论文提出了一种新的编码策略——自洽性,来替换思维链中使用的 贪婪解码(Naive greedy decoding)

Naive greedy decoding一种简单而直接的解码方式,常用于生成型任务。
在这种解码方法中,模型会根据当前的输入和已生成的部分输出,选择概率最高的下一个单词或符号作为预测结果。换句话说,它总是选择当前最可能的输出,而不考虑后续可能的选择。
虽然简单,但可能会导致生成的结果缺乏多样性,因为只关注当前可能的选项,而忽略了其他可能的选择。另外,他也无法处理一些复杂的语言结构或长期依赖关系,因为它没有考虑到全局的上下文信息。

该策略首先对一组不同的推理路径进行采样,然后通过 边缘化采样(marginalizing out the sampled reasoning paths) 的推理路径来选择最一致的答案。

marginalizing out the sampled reasoning paths
指的是采样推理路径时进行边际化处理的过程。
边际化处理指将多个推理路径的结果进行合并,得到最终的推理结果。这样可以避免对每个路径进行单独计算和评估,从而减少计算的复杂度。
具体而言,在采样推理路径的过程中,可以计算每个路径的概率,并将其乘以对应路径的结果,然后将所有路径的结果相加,并进行归一化,得到最终的推理结果。

Self-Consistency 利用 一个复杂的推理问题通常具有允许多种不同的思维方式,从而产生其独特的正确答案。
实践表明:自洽性提升了思维链提示在一系列流行的算数和常识推理基准上的表现。

介绍

本文介绍了一种新的解码方式——自洽性,来替换思维链中使用的Naive greedy decoding,以进一步完善大语言模型的推理能力。该策略首先对一组不同的推理路径进行采样,然后通过边缘化采样(marginalizing out the sampled reasoning paths)的推理路径来选择最一致的答案。问题越需要深思熟虑的思考和分析,找到答案的推理途径就越多样。

首先用CoT来提示语言模型,不采用CoT的Naive greedy decoding解码,而使用“Self-Consistency ”解码,过程如下:

首先,从语言模型的 解码器(decoder) 中采样,生成一组不同的推理路径,每条推理路径可能会产生不同的最终答案,因此需要通过边缘化采样的推理路径来确定最终答案,以在最终答案集中找到最一致的答案。

解码器(decoder)是语言模型的一部分,它负责根据语言模型的内部表示和当前的上下文生成输出文本。
解码器通常使用一种称为“生成算法”的方法,根据模型的输出概率分布选择最后可能的下一个词语或句子。这个过程可以通过不同的算法来实现,例如贪婪搜索等。解码器的目标是生成具有高度流畅和语义连贯性的句子。

这种方法类似于人类的经验,如在思考问题时,如果多种不同的思考法而得出了相同的答案,人们会更确信最终的答案是正确的。

自洽解码消除了困然贪婪解码的重复性和局部最优性,同时也减轻了单采样生成的不稳定性。

在这里插入图片描述

自洽方法比之前的方法简单得多,先前的方法要么训练额外的验证器,要么在给定额外人工注释的情况下训练(re-ranker)重新排序器以提高生成质量。

re-ranker
指对已经生成的候选列表或排序结果进行重新排序或重新打分的过程。
可以根据更多的特征或者使用更复杂的及其学习模型来重新评估和打分搜索结果,以更好满足用户需求。

相反,自洽法是一种完全无监督的,作用在现成的语言模型上,不需要额外的人工注释,避免了任何额外训练、辅助模型或微调。

自洽方法也不同于典型的集成方法(训练多个模型并聚合每个模型的输出),它的行为更像是在单个语言模型之上工作的“自集成”。

对多样化路径的自洽

人类的一个突出方面是人们思维方式的不同。人们很自然的认为,在需要深思熟虑的任务中,可能有多个方法来解决这个问题。这样一个过程可以通过语言模型解码器在语言模型中进行。

对一个数学问题来说,一个模型可以产生多种合理的反应从而都能够得到正确的答案。因为语言模型的推理并不完美,所以模型可能产生错误的推理路径或者在其中一个推理步骤中出错,但是这些解答并不太可能得到相同的答案。

所以我们假设:正确的推理过程(即使是多样的)在最终的结果中往往比不正确的过程有更大的一致性。

我们通过提出以下自洽性方法来利用这种直觉。

首先,用一组手动编写的思维链示例提示语言模型;下一步,对来自语言模型的解码器的一组候选输出进行采样,产生一套多样化的候选推理路径;最后,通过边缘化抽样推理路径和选择生成答案最一致的那个答案来聚合答案。

更具体来说:假设生成的答案ai来自固定答案集A,ai ∈A,i=1,…,m,ai即对从解码器中所采样的m个候选输出进行索引。给出一个提示和一个问题,自洽性给出了一个额外的潜在变量ri,代表在第i个输出中推理路径的记号序列,然后耦合生成(ri,ai),ri —>ai,生成的推理路径ri是可选择的,并且仅用于得到最终答案ai
在对来自模型解码器的多路采样之后,SC通过对ai进行多票通过,对ri进行边缘化,或者我们将其定义为最终答案集中最“一致”的答案。

实验

实验设置

主要结果

当CoT影响效率时候,SC会有所帮助

与现有方法进行比较

附加研究

相关工作

总结

本文采用的思想类似于,对于一个问题,人们通过不同的思考方式得到了相同的答案,这个答案往往就是正确的。

解码器通常使用一种称为“生成算法”的方法,根据模型的输出概率分布选择最后可能的下一个词语或句子。解码器的目标是生成具有高度流畅和语义连贯性的句子。

思维链中使用了贪婪解码的方法,这种方法总是选择当前概率最大的一个单词或符号作为预测结果,它总是选择当前最可能的输出,而不考虑后续可能的选择,可能会导致生成的结果缺乏多样性。

所以我们提出了更具有多样性的方法——自洽解码。

自洽解码的步骤:假设生成的答案ai来自固定答案集A,ai ∈A,i=1,…,m,ai即对从解码器中所采样的m个候选输出进行索引。给出一个提示和一个问题,SC给了一个额外的潜在变量ri,代表在第i个输出中推理路径的记号序列,然后耦合生成(ri,ai),生成的推理路径ri是可选择的,并且仅用于得到最终答案ai,在对来自模型解码器的多路采样之后,SC通过对ai进行多票通过,对ri进行边缘化,或者我们将其定义为最终答案集中最“一致”的答案。

接着文章进行了一系列实验,介绍了实验的数据集和任务、语言模型和提示以及采样的方案。并且对算数推理、常识和符号推理分别作了对照实验,对照的是使用贪婪解码的CoT。

文章又表明,当CoT性能受损时,SC会有帮助。

又将SC与现有方法进行了比较。

自洽方法不仅在四个不同规模的大型语言模型中显著提高了一系列算数和常识推理任务的准确性。除了准确性提高了之外,自洽还能用于在使用语言模型执行推理任务时收集推理依据,以及提供不准确性评估和改进语言模型输出的校准。

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

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

相关文章

Vue3中的透传Attributes / $attrs:简化组件开发的利器

前言 Vue3推出了一系列新功能和改进。使用下来后,其中一个很实用的新特性就是透传 Attributes(透传属性)。本文将介绍 Vue3中的透传 Attributes,并提结合代码示例来展示它在实际项目中的使用。 一、什么是透传 Attributes&#x…

多网点多设备的动环机房都怎样集中管理的呢?

多机房动力环境集中监控系统针对分布不同区域、设备数量较多、减少人工巡检费用支出而设计的在线集中监控的系统平台。可用于分布式的UPS电源、精密空调、空气质量检测传感器、精密配电等设备的网络集中监控,通过TCP/IP网络,可以实时的跨地域的监控多台都…

四、DML-2.数据操作-修改

原数据表: 一、案例一 修改id为1的数据,将name修改为itheima update employee set name itheima where id 1; 步骤一:输入update命令并执行: 步骤二:刷新查看employee表修改后数据: 二、案例二 修改id为…

Beyond Compare 代码比较工具

一、下载 官网下载地址: https://www.scootersoftware.com/download.php 选择 Windows 系统,简体中文版本,点击下载。 下载完成 二、安装 步骤1:双击安装包 步骤2:进入安装向导,点击下一步 步骤3&a…

【Git合并代码操作】B=>A

【Git合并代码操作步骤】B>A 前提:之前写了Git合并代码A>B,今天把B>A再写一下,顺风车》》》》》》》》 【git合并代码操作步骤】A>B_痴心阿文的博客-CSDN博客 拉B最新代码 > 然后git merge A ,有冲突解决冲…

在SPringBoot生成验证码

1.引入依赖,这个依赖中包含了生成验证码的工具类 <!--引入hutool --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.9</version></dependency> 2.编写配置类 import cn.hu…

【软件测试】如何设计自动化测试脚本

企业中如何设计自动化测试脚本呢&#xff1f;今天我们就来为大家分享一些干货。 一、线性设计 线性脚本设计方式是以脚本的方式体现测试用例&#xff0c;是一种非结构化的编码方式&#xff0c;多数采用录制回放的方式&#xff0c;测试工程师通过录制回访的访问对被测系统进行…

为何零信任架构身份管理平台更可靠?

随着信息技术的不断进步&#xff0c;云计算、物联网以及移动设备的普及&#xff0c;信息泄露等安全问题愈发频繁。近期&#xff0c;一起某高校学生的信息泄露事件引发了大家的广泛讨论。该校学生利用其身份便利&#xff0c;非法获取了大量学生的姓名、学号、照片等隐私信息。 …

租赁小程序开发|租赁小程序定制|租赁系统源码定制功能

租赁小程序适合的产品开发范围广泛&#xff0c;可以涵盖各个行业和领域。下面将介绍租赁小程序适合的产品开发&#xff0c;并探讨其优势和应用场景。   一、租赁小程序适合的产品开发   物品租赁&#xff1a;租赁小程序可以用于各种物品的租赁&#xff0c;比如自行车、电动…

Redis基础 进阶项目实战总结笔记

文章目录 一、启动的三种方式1.默认启动2.指定配置启动3.开机自启动 二、数据类型1.string&#xff1a;字符串2. hash&#xff1a;哈希3. list&#xff1a;列表4. set&#xff1a;集合5. sorted set&#xff1a;有序集合 三、黑马课程的进阶项目实战总结博文笔记Redis实现短信登…

【个人笔记】linux的cd命令与目录结构理解

cd命令 cd&#xff08;英文全拼&#xff1a;change directory&#xff09;命令用于改变当前工作目录的命令&#xff0c;切换到指定的路径。 若目录名称省略&#xff0c;则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。 另外&#xff0c;~ 也表示为 home 目录 的…

uniapp 小程序 图片上传 实时拍照(仅拍照)限制上传5张 可预览 可删除

效果图&#xff1a; common.js /*** 预览图片*/ const previewImage (current,list)>{// 预览图片uni.previewImage({current: current,urls: list}); } /*** 删除图片*/ const removeImage (current,list)>{var photoFilesList list;photoFilesList.splice(curren…

【IM群发苹果日历】获取推送通知的设备标识符(Device Token)

苹果日历群发部署设置推送服务器推送服务器&#xff0c;用于向苹果日历应用的设备发送推送通知。推送服务器需要能够与Apple Push Notification Service (APNs) 进行通信。怎样来做&#xff1f; 部署设置推送服务器并与APNs进行通信需要以下步骤&#xff1a; 获取APNs证书&am…

高薪Offer收割机之redis集群

单节点的redis并发能力是有限的&#xff0c;如果需要进一步提高redis的并发能力&#xff0c;就需要搭建集群。 Redis中的集群分为三种&#xff1a; 主从复制&#xff0c;哨兵模式&#xff0c;分片集群 先来看一下主从复制&#xff1a; 在主从集群中一个主节点可以有多个从节…

Qt应用开发——QLabel的使用

目录 一、构造函数 二、属性和方法 三、实例一 显示内容和设置样式 四、实例二 使用html处理超链接 五、实例三 显示图像 六、实例四 显示GIF 七、实例五 伙伴机制 QLabel继承于QFrame&#xff0c;作为Qt Wdiget最基础也是最常用的控件&#xff0c;在实际开发中&#xf…

【C++】STL优先级队列(priority_queue)功能介绍以及模拟实现

优先级队列 前言正式开始priority_queue 基本介绍优先级队列的适配器第三个模板参数compare模拟实现priority_queue仿函数 前言 点进来的小伙伴不知道学过数据结构里的堆没有&#xff0c;如果学过的话&#xff0c;那就好说了&#xff0c;优先级队列就是堆&#xff0c;如果没学…

ViewModel实例什么时候被回收

作者&#xff1a;TechMix 一、ViewModel存在的意义&#xff1f; ViewModel做为JetPack中重要的组件&#xff0c;翻译成中文就是“视图模型”&#xff0c;根据分离关注点原则&#xff0c;ViewModel的出现&#xff0c;主要是为了分担Activity中的职责&#xff0c;专门用于存放和…

谷歌云 | Document AI 引入了强大的新自定义文档拆分器来自动化文档处理

【本文由Cloud Ace整理发布。Cloud Ace是谷歌云全球战略合作伙伴&#xff0c;拥有 300 多名工程师&#xff0c;也是谷歌最高级别合作伙伴&#xff0c;多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商&#xff0c;我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训…

Orange:一个基于 Python 的数据挖掘可视化平台

本篇介绍一个适合初学者入门的机器学习工具。 Orange 简介 Orange 是一个开源的数据挖掘和机器学习软件。Orange 基于 Python 和 C/C 开发&#xff0c;提供了一系列的数据探索、可视化、预处理以及建模组件。 Orange 拥有漂亮直观的交互式用户界面&#xff0c;非常适合新手进…

测试用例(3)

功能测试用例方法&#xff1a; 等价类 边界值 因果图 正交实验分解法 判定表驱动分析方法 非功能性的测试用例方法&#xff1a; 错误推测法 功能图分析方法 场景&#xff1a; 场景设计方法 1) 在任何情况下都必须使⽤边界值分析⽅法&#xff0c;经验表明⽤这种⽅法设…