论文翻译 | Is a Question Decomposition Unit All We Need? 我们是否只需要一个‘问题分解单元’?

news2024/9/24 17:11:41

摘要

        大型语言模型(LMs)已经在许多自然语言处理(NLP)基准测试中取得了最先进的性能。
        随着新基准数量的增加,我们构建了更大、更复杂的LM。然而,由于与之相关的成本、时间和环境影响,构建新的LM可能不是一个理想的选择。我们探索了另一种途径:我们是否可以通过根据模型的优势来表达数据来修改数据,从而使模型更容易回答问题?我们研究人类是否可以将一个难题分解成一组更简单的问题,这些问题对模型来说相对更容易解决。我们分析了一系列涉及各种形式推理的数据集,发现通过分解确实有可能显著提高模型性能(GPT3为24%,RoBERTa-SQuAD为29%,并附带符号计算器)。我们的方法提供了一个可行的选择,让人们以一种有意义的方式参与NLP研究。我们的研究结果表明,人在循环问题分解(HQD)可以潜在地为构建大型lm提供另一种途径。

1 引言

        随着大型语言模型(LMs)的出现,我们在许多自然语言处理(NLP)基准测试中已经实现了最先进的性能(Radford等,2019;Brown等,2020;Sanh等,2021a)。我们的基准测试在不断发展,并且随着时间的推移变得越来越难。为了解决新的基准测试,我们一直在设计更复杂、更大的语言模型,这需要消耗计算资源、时间,并对环境产生负面影响。随着时间的推移,为了解决新的基准测试而构建更新的语言模型可能并不是一个理想和可持续的选择。受到人类的启发,他们经常将新任务视为现有任务的组合,我们探索是否可以模仿人类,通过将新任务分解为模型擅长并已知的任务组合(Mishra等,2021a),来帮助模型解决新任务。
        随着NLP应用在日常活动中越来越受到人们的青睐,开发能够以有意义的方式让人类参与NLP驱动应用的方法变得至关重要。我们的方法试图通过提供一种以人为中心的数据修改方法来填补语言模型中的这一空白。解决复杂的问答(QA)任务,如多跳QA和数值推理,对模型来说一直是一个挑战。最近,问题分解(QD)已被探索用于增强模型解决这些任务的能力,并具有可解释性的额外优势。然而,以往关于QD的研究仅限于一些特定数据集(Khot等,2020b),如DROP(Dua等,2019)和HOTPOTQA(Yang等,2018)。我们分析了一系列涉及各种推理形式的数据集,以调查“我们是否只需要一个‘问题分解单元’?”

        图1展示了问题分解单元(QD单元)的示意图。原始问题对于模型来说难以回答。然而,当人类将问题分解为一组更简单的问题时,模型回答起来就变得容易了。
        我们手动分解了每个数据集中随机选取的50个样本。我们进行的分解纯粹是基于直觉,以减少问题的复杂性,这是受到任务级指令分解(Mishra等,2021a)在提高模型性能方面的成功启发。我们在GPT3(Brown等,2020)和RoBERTA(Liu等,2019)上进行了实验,这些模型在SQuAD 2.0(Rajpurkar等,2018)上进行了微调,并发现高级问题分解(HQD)显著提高了模型性能(GPT-3提高了24%,RoBERTa-SQuAD提高了29%,并配合使用符号计算器)。在这里,评估是在模型未进行微调的未见任务上进行的。我们的发现表明,人类参与的问答分解(HQD)可能为构建大型语言模型提供了一条替代路径。我们希望我们的工作能够鼓励社区开发以人为中心的解决方案,在利用NLP资源的同时积极让人类参与。

图1:模型错误地回答了最初的问题。然后,人类将问题分解成一组更简单的问题,然后模型就能正确地回答这些问题。

2 相关工作

        最近一种对阅读理解数据集中的多个句子进行推理的方法是将问题分解为单跳问题(Talmor和Berant, 2018;Min et al, 2019)。Min等人(2019)使用基于推理类型的跨度预测来分解来自HOTPOTQA的问题,并使用分解评分器选择最佳分解。Khot等人(2020b)通过提供上下文、答案和提示,在问题生成任务上训练BART模型,从而生成分解。Wolfson等人(2020)针对问题分解的众包注释。另一方面,Perez等人(2020)使用无监督机制,通过将难问题映射到问题语料库中的一组候选子问题来生成分解。Iyyer等人(2017)使用神经语义解析框架对来自WikiTableQuestions的问题进行众包分解,按顺序回答问题。还研究了使用文本到sql查询转换的分解(Guo et al ., 2019)。

        此外,知识图谱与神经网络相结合以生成分解(Gupta和Lewis, 2018)。最近,Xie等人(2022)提出了另一个用例,其中分解可用于探测模型,以创建其推理的解释。

3 方法

3.1 数据集

        我们选择了八个数据集,涵盖了多样化的推理技能和领域:(1) HOTPOTQA (Yang等,2018),(2) DROP (Dua等,2019),(3) MULTIRC (Khashabi等,2018),(4) STRATEGYQA (Geva等,2021),(5) QASC (Khot等,2020a),(6) MATHQA (Amini等,2019),(7) SVAMP (Patel等,2021),以及(8) BREAK (Wolfson等,2020)。表1显示了每个数据集的不同任务类型。

表1:每个数据集对应的QA任务类型。RC:阅读理解

3.2 分解过程

        对于每个数据集,我们随机选择50个实例进行手动分解。每个数据集中的问题被分解为两个或多个问题。表2、3、4和5显示了各种数据集的分解示例。对于每个数据集,我们为分解的问题创建了一个集合D。每个元素D_{i} \epsilon D可以表示为:

        其中C_{i}为上下文段落,Q_{i}为原题,Q_{d}为分解问题集,A_{i}为原题答案,A_{d}为相应分解问题的答案集。

        对于需要算术或逻辑运算的问题,我们使用Khot等人(2020b)建议的计算单元,它以以下格式将分解的问题作为输入:

        其中O ={和、差、除、乘、大、小、幂、连接、返回、余数},#mi是前面分解问题的答案和!分隔操作数。

4 实验设置

        模型 我们使用GPT-3 (Brown et al, 2020)来生成原始问题和分解问题的答案。为了证明QD即使在更简单的模型上也能显著提高性能,我们使用了在SQUAD 2.0数据集(即RoBERTa-SQuAD)上进行微调的RoBERTa-base。此外,我们在BoolQ数据集(Clark et al, 2019)(即RoBERTa-BoolQ)上对STRATEGYQA中的原始问题和分解问题进行了微调,因为它们是True/False类型的问题。

        实验 为了创建基线,我们在原始问题上评估所有模型以及上下文。我们在提出的方法中对人工分解问题的所有模型进行评估。

        我们在GPT-3中通过为每个数据集设计提示进行所有实验。对于基于roberta的模型,我们使用RoBERTa-SQuAD来处理MULTIRC、BREAK、HOTPOTQA和DROP数据集,因为SQUAD 2.0是为阅读理解任务设计的。对于STRATEGYQA,我们使用两个基于roberta的模型:(1)RoBERTa-BoolQ,用于回答问题的最终布尔类型;(2)RoBERTa-SQuAD,用于回答剩余的分解问题。
        对于SVAMP,我们使用RoBERTa-SQuAD模型使用分解问题提取必要的操作数,然后使用计算模块执行各种操作。在所有的实验中,我们都使用分解来依次得到最终的答案。

        指标 对于我们所有的实验,我们使用Rouge-L (Lin, 2004), F1-score和Exact Match (EM)作为评估指标。

5 结果与分析

        在这里,我们将我们的数据集分为四类:(1)RC:阅读理解(RC)中的HOTPOTQA, DROP, MULTIRC和BREAK,(2)数学:数学推理中的MATHQA和SVAMP, (3) MC:多选题QA (MC)中的QASC, (4) SR:策略推理(SR)中的STRATEGYQA。本节中给出的所有结果都是针对每个类别的任务求平均值。

5.1 实验结果

        GPT-3 图3显示了GPT-3在每个类别的平均f1分数方面的表现。从图3中,我们可以观察到,我们提出的方法优于基线约24%。附录D给出了所有数据集和类别的f1评分、EM和Rouge-L的所有结果。

图3:GPT-3在不同类别的f1得分结果。中文:阅读理解,数学:数学推理,中文:多选题问答,中文:策略推理。

        RoBERTa 图2展示了我们使用基于RoBERTa的模型在每个类别上获得的F1分数结果。平均而言,与基线相比,我们实现了约29%的显著改进。附录D展示了所有数据集和类别的F1分数、EM和Rouge-L的结果。

图2:基于roberta的模型跨不同类别的f1得分结果。RC:阅读理解,数学:数学推理,SR:策略推理。

5.2 分析

        针对每个模型的定制问题分解 根据上下文可以有多种方法来分解问题。决定如何分解问题的因素有很多。一个因素是模型的强度。例如,如果我们使用在SQuAD上进行微调的模型,那么确保分解更细粒度,并根据上下文范围生成答案可能是有益的。另一方面,如果我们有一个更复杂的模型,如GPT3,我们可能不一定需要这样做。图2所示的结果是在RoBERTa上通过使用最初为GPT3设计的分解在SQuAD上进行微调得到的;注意,在这种情况下,分解的答案可能并不总是上下文中特定句子的跨度。然而,我们取得了不错的性能改进。我们相信,如果分解被设计成与模型的优势相匹配,性能增益将会更大。这种分解的例子包括在附录A中。

        定性分析 我们进行定性分析,以捕获在自动评估量度中遗漏的评估方面。在这里,如果生成的答案在语义上与黄金注释相似,我们将手动检查并认为它是正确的。图4和图5显示了QD在校正模型预测中的贡献。我们观察到,在原始问题上,分解纠正了60%以上的错误。

图4:使用GPT3分解的%误差校正

图5:使用RoBERTa分解的%纠错率 

        误差分析 我们进行误差分析,观察到误差的主要来源是由一个分解问题传播的误差。

        一般来说,错误有两种类型:(i)不正确的跨度选择和(ii)在分解的初始步骤中未能收集所有可能的答案;这通常会忽略实际的正确答案,从而没有为后面的分解单元生成正确答案留下空间。QASC中出现错误是因为我们的上下文无关分解方法(通过直觉)有时会导致模型发现难以回答的开放式问题。附录B中包含了错误示例。

        分解对数学数据集的影响 我们观察到数学数据集从分解中获益最多。这可能有两个原因:1)大多数数学问题可以分解为抽取QA(其中答案是一个跨度)和符号计算的组合。这两个都是语言模型的优势(注意,我们使用的计算器始终提供准确的答案)。然而,在其他QA任务中就不一定是这样了。在分解链中,如果某一步的答案出错,它会一直传播到最后,最后的预测就会出错。2)默认情况下,语言模型很难完成数学任务(Patel et al, 2021;Mishra et al ., 2022),因此,性能改进似乎更加突出。

        分解次数对结果的影响 我们通常根据与问题相关的运算次数(例如数学计算或单跳运算)来分解问题。增加分解次数的好处是它简化了原来的问题,但它也有缺点,如果链中一个问题的答案是不正确的,那么最终的答案就会变得不正确。这从我们对HOTPOTQA和SVAMP数据集的实证分析中也很明显,我们观察到标签QA的数量与最终性能之间没有直接关联。图6显示了对于分解为2、3、4和5的问题所观察到的模型性能改进的变化。

图6:对于分解为2、3、4和5的问题,F1分数的性能改进。

        自动化分解的努力 对于HOTPOTQA、DROP和SVAMP,我们尝试使用GPT3自动化分解过程。为HOTPOTQA生成分解的一个限制是上下文的长度使得很难及时提供足够的示例。使用DROP和SVAMP,我们观察到GPT-3经常为最后一个子问题生成错误的算术运算。它也常常不能对问题进行连贯的分解。我们还对手写分解的BART-base (Lewis et al, 2020)模型进行了微调。然而,模型过拟合,未能产生有意义的分解,可能是由于训练样本数量有限(参见附录C的例子,细节和结果)。

6 结论

        最近构建大型LM的趋势可能无法持续解决不断变化的基准。我们认为修改数据样本可以显著帮助模型提高性能。我们研究了问题分解(QD)对一组不同任务的影响。我们手动分解问题,显著提高了模型性能(GPT3为24%,RoBERTa-SQuAD为29%,还有一个符号计算器)。我们的研究结果表明,人在循环问题分解(HQD)可以潜在地为构建大型LM提供另一种途径。我们的方法为人们参与NLP研究提供了一个可行的选择。

        我们希望我们的工作将鼓励社区开发以人为中心的解决方案,积极参与人类,同时利用NLP资源。

局限性

        我们的human-in-the-loop方法通过分解问题显示出有希望的结果,然而,某些问题仍然难以对人类进行分解。例如,“纽约在哪个国家?”这个问题很难进一步分解。确定分解哪些问题也是一个重要的挑战,在这项工作中没有得到充分的探索。此外,链中有多个正确答案的分解问题可能导致最终答案不正确。在解决这些问题的同时自动化分解过程是未来工作的一个有希望的领域。

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

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

相关文章

Midjourney咒语之油画风格纸雕艺术3D剪纸

油画风格 Captain America painting in the style of Vincent Van Gogh, Vincent Van Gogh style oil painting, oil painting, Van Gogh, Impasto, impasto style, lots of paint --v 5.1 --style raw --ar 3:2 lion king painting in the style of Vincent Van Gogh, Vincent…

【多模态LLM】多模态理解评测标准(图生文)

note 评测图片识别、理解、分析、推理能力;评测多轮对话;扩大评测场景(日常生活、教育娱乐等)SuperClue-V采用6个标准,即正确性、相关性、流畅性、知识延伸、输出样式多样化、多感官信息融合,来定量的评价…

一键生成专业PPT:2024年AI技术在PPT软件中的应用

不知道你毕业答辩的时候有没有做过PPT,是不是也被这个工具折磨过。没想到现在都有AI生成PPT的工具了吧?这次我就介绍几款可以轻松生成PPT的AI工具吧。 1.笔灵AIPPT 连接直达:https://ibiling.cn/ppt-zone 这个工具我最早是用它来写一些专…

Selenium自动化测试入门:浏览器多窗口切换【建议收藏】

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 有时web应用会打开多个浏览器窗口,当我们要定位新窗口中的元素时,我们需要将webDriver的handle(句柄)指定到新窗口…

一篇了解:性能测试工具——JMeter的安装

一、下载 环境要求:Java版本在8及以上。 安装链接:JMeter安装链接 下载压缩包之后解压即可。 二、配置 解压之后进入到bin目录下,双击jmeter.bat即可进入到该软件。 但是有一种更方便的方式进入jmeter软件: 复制该文件的bin文件…

MySQL操作表

文章目录 1.增加表2.查看表3.修改表修改表名:插入数据:新增一列:修改一列类型:修改列名:删掉一列: 4.删除表 1.增加表 创建表语法: CREATE TABLE table_name ( field1 datatype, field2 datat…

深入理解Kubernetes中的Pod:为什么需要Pause Pod及其核心作用

引言 在Kubernetes这一强大的容器编排系统中,Pod作为最小的部署和管理单位,扮演着至关重要的角色。本文将进一步深入探讨Pod的定义、基本概念,特别是为什么需要Pause Pod,以及Pod内部容器如何共享资源,同时解释Kubern…

从核心到边界:六边形、洋葱与COLA架构的深度解析

文章目录 1 引言2 软件架构3 架构分类4 典型的应用架构4.1 分层架构4.2 CQRS4.3 六边形架构4.4 洋葱架构4.5 DDD 5 COLA架构设计5.1 分层设计5.2 扩展设计5.3 规范设计5.3.1 组件规范5.3.2 包规范5.3.3 命名规范 6 COLA架构总览7 小结 1 引言 软件的首要技术使命:管…

转世重生之当程序员从零开始,不可错过的Jupyter Notebook的详细安装教程 ♪(^∇^*)

一、前期准备工作 😉 Jupyter Notebook是基于Python的,因此首先需要确保您的计算机上安装了Python。建议安装Python 3.7或更高版本。Python下载网站链接:Python。 pip是Python的包管理工具,用于安装和管理Python包。在大多数情况下…

进程通信(7):互斥锁(mutex)和条件变量

互斥锁(mutex)用于互斥访问临界区,只允许一个线程访问共享变量。 条件变量可以让获取互斥锁 的线程在某个条件变量上等待,直到有其他线程把他唤醒。 互斥锁和条件变量通常一起使用实现同步。 互斥锁的操作 lock(mutex); // 获取锁&#xff…

达梦数据库:链接数据库报错:无效的模式名[xxx]

目录 简介达梦数据库驱动报错信息排查原因解决 简介 1、对接达梦数据库 2、链接数据库时报错 3、达梦数据开启了大小写敏感 达梦数据库驱动 <dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version&…

C语言程序设计-[1] 基础语法

1、字符集 字符集&#xff1a;是ASCII字符集的一个子集。 注&#xff1a;基本上就是电脑键盘可以输入的一些字符。 2、标识符 标识符&#xff1a;用来命名程序中的一些实体&#xff0c;如&#xff1a;变量、常量、函数、数组名、类型名、文件名等。由一个或多个字符组成。 —…

设计模式-六大设计原则

1、单一职责原则&#xff08;Single Responsibitity Principle&#xff09; 一个类或者模块只负责完成一个职责&#xff1b; 【实例】 上面这个类&#xff0c;当此类只是用来展示用户信息&#xff0c;则设计符合单一职责&#xff1b;当此用户的地址经常需要使用&#xff0c;比…

20240803---特征选择与稀疏学习

1.特征选择&#xff1a;在机器学习任务中&#xff0c;通过样本的特征预测样本所对应的值。 &#xff08;1&#xff09;无关特征&#xff1a;通过空气的湿度、环境的温度、风力、当地人的男女比例来预测明天是否下雨。男女比例属于无关特征。 &#xff08;2&#xff09;冗余特征…

SSM学习11:springboot基础

教学视频 黑马程序员SpringBoot3Vue3全套视频教程&#xff0c;springbootvue企业级全栈开发从基础、实战到面试一套通关 springboot基础 搭建项目 修改配置文件 修改application.yml&#xff08;后缀名不对&#xff0c;可以改成这个&#xff09;&#xff0c;配置数据库 spr…

基础实验回顾

一、虚拟机网络设定 克隆一台node1 在node1上进行网络配置 进入网卡配置目录 # 红帽9网卡配置文件目录&#xff0c;其他版本不一样 [rootlocalhost ~]# cd /etc/NetworkManager/system-connections/网卡配置文件 [rootlocalhost system-connections]# vim ens160.nmconnect…

@Value获取值和@ConfigurationProperties获取值用法及比较(springboot)

目录 1. 简介1.1 value基本用法 1.2 ConfigurationProperties基本用法 2. 使用2.1 value的使用创建application.yml创建Person.java创建Dog类写一个测试类 2.2 ConfigurationProperties的用法创建Person2.javaDog类写测试类 3. 区别3.1 松散绑定例子 3.2 SpEL主要用途特点例子 …

240803-沉侵式翻译插件配置Ollama的API实现网页及PDF文档的翻译

1. 在插件中点击Options按钮 2. 在开发者模式中启动Enable Beta Testing Features 3 在General中进行设置 ## 4. 在Expand中设置API的URL 5. Qwen&#xff1a;0.5B网页翻译效果 6. Qwen&#xff1a;0.5BPDF翻译效果 7. 参考文献 gemma - 给沉浸式翻译插件配置本地大模型o…

剪画小程序:致敬奥运举重冠军:照片变成动漫风格!

在巴黎奥运会的赛场上&#xff0c;那些奥运冠军们的身影如同璀璨星辰&#xff0c;闪耀着无尽的光芒&#xff01; 看&#xff0c;举重冠军力拔山兮气盖世&#xff0c;那坚定的眼神中透露出无畏的勇气&#xff0c;爆发的力量更是震撼人心。 借助剪画&#xff0c;将这令人心潮澎湃…

【Vue】computed计算对象不生效问题?

问题描述 最近使用vuex来管理全局状态&#xff0c;遇到了computed计算state中数据却不生效的问题。 原因分析&#xff1a; 先看vue官网示例&#xff1a; computed接收的是一个getter函数&#xff0c;但是这个getter函数是懒加载并且有缓存的&#xff0c;当计算属性最终计算…