Bert类模型也具备指令遵循能力吗?

abbd1fecb61f0a4b37a6f56a7a6f85cb.png

深度学习自然语言处理 原创
作者:Winnie

BERT模型,依托Transformer架构及其大规模预训练,为自然语言处理领域带来了深远的影响。BERT模型架构包含多层双向Transformer编码器,通过这种结构,BERT及其家族成员,如RoBERTa、ELECTRA、DeBERTa和XLM-R,能够深入学习并理解语言的上下文,尤其在自然语言理解任务上表现卓越。

然而,关于BERT家族在文本生成方面的潜能,研究还相对较少。虽然早期理论研究显示BERT家族能生成连贯且高质量的文本内容,主要应用还是集中在提取上下文特征上。近期,一些研究开始探索使用BERT进行非自回归文本生成,并在性能上取得了积极的反馈。这些尝试仍遵循传统的预训练和任务特定微调范式。

今天分享的这篇研究进一步探索了BERT家族作为多任务指令跟随者的可能性。这是一个在自回归语言模型中已被广泛探索的领域,但对于BERT家族来说却是新的领域。

1d4e2930cae04abb6c6ddf8c0c7c2798.png

论文:Are Bert Family Good Instruction Followers? A Study On Their Potentia And Limitations.
链接: https://openreview.net/pdf?id=x8VNtpCu1I

概要

通过带注释示例和人类偏好反馈进行指令调整,能够使LLMs的输出在各种任务上更好地符合人类的期望。最新研究探索了成功指令遵循技术的关键因素,包括注释质量、数据格式和模型扩展。预计未来将有更多强大的对齐方法涌现,服务于更广泛的模型变体。

为了扩大对齐技术的应用范围,最新的一篇研究深入研究了BERT家族作为指令跟随者的潜力与局限性,这是首次尝试在BERT家族上构建指令跟随模型。研究动机来自现有的观察:1) BERT家族也可以是零样本学习者。进一步赋予它们理解指令的能力将扩大它们的使用场景;2) 它们的掩码语言模型目标可以支持开放式长文本生成,同时实现比流行的自回归方式更快的解码速度;3) 复杂的现实世界应用通常涉及生成型LLMs和专家模型的合作,而BERT家族在大型生成模型兴起之前已推动了无数任务的发展,并仍保持各种下游任务的记录。

该研究还探讨了使BERT家族与当前流行的编解码器和仅解码器模型竞争的关键因素,并提供了进一步提升性能的可能方法和建议。

利用Bert进行语言生成

与传统的从左到右的单向语言模型不同,BERT家族使用的条件独立分解捕捉了训练中标记之间更复杂的依赖关系。这种复杂性在从头开始生成可靠文本时带来了挑战。本节描述了如何将BERT模型视为马尔可夫随机场语言模型,利用基于图的表示来管理标记之间的依赖关系,这影响了文本生成过程。

具体来说,作者介绍了一种视序列 为无向完全连接图 的方法,其中的潜在图团可以被分解为 个对数势能项之和:

这里的 表示从原始序列 创建的完全连接图, 表示序列 的长度,即随机变量的数量。通过这种表示,BERT家族可以在条件分布和伪对数似然中简化,这最大化了每个变量的概率,而不是整个图的联合概率:

一步训练与动态混合注意力

作者介绍了一种新的训练方法,该方法从之前的语言生成实践中汲取灵感,尤其是在编解码器基模型中,源序列 被输入到编码器以提取表示,而目标序列 则用于通过解码器学习内部关系。随后,每个解码器层中插入一个跨注意力模块,以聚合源表示和目标序列。

在BERT家族中,与传统的编解码器模型不同,BERT仅包含一个多层双向Transformer编码器。为了更好地匹配传统学习格式,首先构建一个额外的模型来扮演解码器的角色,然后引入混合注意力模块来替代原始的交叉注意力和自注意力模块。具体来说,给定训练对 ,预训练的MLM包含 层,每层包括一个自注意力层和一个前馈层。可以获得每个编码器层 的源表示 :

对于目标序列 ,我们随机选择部分标记被替换为 标记,并将这个损坏的序列输入到额外的MLM中。然后,这个模型在训练过程中尝试恢复这些掩码标记,并获取每个解码器层 的目标表示 :

其中 表示连接操作。混合注意力不引入额外参数,而是将源和目标隐藏状态的连接向量作为原始注意力机制中的键和值。因此,这个额外的MLM可以与MLM编码器完全共享参数。这样,我们只需要一个预训练的BERT模型即可节省模型参数,并加速训练过程。然而,混合注意力机制首先需要获取最后一层的源表示。我们必须在训练期间通过模型两次,导致训练效率降低。为此,我们引入动态混合注意力,允许模型在同一遍中获取源表示并学习预测掩码标记。这种机制采用每个源表示的相应前一层而不是最后一层:

在实践中,我们可以简单地将源和掩码的目标序列连接起来,然后输入到模型中进行训练。此外,如图1所示,我们阻止每个源标记在注意力模块中访问目标序列,以保持与推理过程的一致性,因为在推理中没有预先存在的目标序列。动态混合注意力与BERT家族的预训练任务更加匹配,使得共享参数的想法更加可靠。

训练与推理过程

本节详细描述了在生成任务中适应BERT家族的方法。首先,在给定的训练对 中,我们均匀地掩盖1到L(目标长度)的标记,采用CMLM(条件掩码语言模型)的方式,与BERT家族的原始固定掩膜不同。此外,我们还会随机掩盖源序列中的一小部分标记,以提高泛化性能,如在AMOM(Adaptive Masking Over Masking)中提到的。然后,训练目标是最大化条件MLM损失,如下所示:

其中 是掩码目标序列 中的掩码标记数量。请注意,模型不需要预测源序列 中的掩码标记。

在推理过程中,我们采用与CMLM相同的Mask-Predict算法,该算法在多次迭代中生成最终序列。具体来说,给定事先的总解码迭代 ,我们从第一次解码迭代的完全掩码目标序列开始。在后续的 次迭代中,将会掩盖特定数量的低置信度标记并重新生成。每次迭代中掩码标记的数量可以计算为 ,其中 表示当前迭代编号。模型根据预测概率选择下一次迭代中特定的掩码标记,具有最低概率的标记将被掩码,并在新的预测后更新其分数。此外,与传统的从左到右的自回归模型不同,在初始化完全掩码目标序列之前,我们应该获得目标长度。我们可以直接给出一个长度,在推理前。我们还引入了一个长度预测模块,跟随之前的非自回归模型,使用特殊的标记 来预测目标长度。

实验设置

微调详情 Backcone模型选择了XML-R,它是在大约100种语言上进行了预训练,采用了掩码语言建模目标,并且有两个大版本,XML-RXL和XML-RXXL,分别包含35亿和107亿个参数。由于计算资源的成本,我们在主要实验中选择了XML-RXL。

对于微调指令数据,为了充分利用XML-R预训练过程中的多语言知识,作者选择了一个多语言指令数据集xP3。xP3添加了30个新的多语言数据集,具有英语提示,并且作为P3的多语言版本。总体而言,xP3包含46种语言,以及与ROOTS相似的语言分布。在原始xP3论文中,作者使用了约8000万个样本进行训练,这远远超过了实际需求,增加了训练开销。因此,作者在实验中从原始训练语料库中抽样部分指令样本。

实验使用了预训练的XML-RXL,其中包含36层、2560隐藏大小和10240前馈滤波器大小。基于Fairseq库在8个NVIDIA A100-PCIE-40GB GPU卡上实现了所有实验。在训练过程中采用Adam作为优化算法。

Baseline 选择了mT0-3.7B和BLOOMZ-3B,因为它们具有可比较的模型参数,并且也是在指令数据集xP3上进行微调的。

任务和数据集 遵循之前的工作,评估了模型在三个不包含在微调指令数据中的保留任务上的任务泛化能力:会议决议、句子完成和自然语言推理(NLI)。

评估设置 在评估过程中,从PromptSource中选择了五个提示,并将它们用于上述每个数据集的所有语言拆分。最后,报告这些提示的平均性能。

主要发现

长度预测

对于几种非自回归模型,长度预测是在推断期间确定目标序列长度的额外任务。相比之下,自回归模型(例如,两个基准模型BLOOMZ和mT0)以从左到右的方式逐一生成文本,并且它们可以在遇到特殊的表示句子结束的标记(例如,[EOS])时动态完成生成。对于采用MaskPredict算法进行文本生成的Instruct-XMLRXL,长度预测是一个重要过程,直接影响最终生成结果的质量。

作者选择了XWinograd任务,设置提示为{下面句子中的“the”指的是{option1}。是True还是False?{sentence}},标签空间为{True,False}。

具体来说,采用长度预测模块为传统的语言生成任务(例如,机器翻译,因为它们的目标长度可以是灵活的)获取目标长度,并为确定的任务(例如,多项选择任务,因为它们的目标长度总是为一)采用固定长度。然而,对于这样的任务,其标签长度确定但不同的情况,例如具有标签空间{False,True}的任务,我们可以将标签空间转换为{Yes,No},这样标签长度就相同了,然后采用相应的固定长度,而不会泄漏有关目标标签的信息。

模型表现

下表呈现了Instruct-XMLR是否能够成功理解并完成未包含在微调过程中的任务。实验发现,Instruct-XMLR也展现出了强大的任务泛化能力。在仅微调基线模型1/25的令牌后,Instruct-XMLR在所有任务中都能显著优于具有可比大小的解码器模型BLOOMZ-3B。与更具竞争力的模型mT0-3.7B相比,Instruct-XMLR在XCOPA上取得了更好的表现,在XWinograd上表现可比,但在XNLI上表现稍逊一筹。

29b8b6f10a7355f42a40cefbedd9d485.png

作者将这一失败归因于:

  • XNLI是用于传统自然语言推理任务的多语言数据集,而具有编码器-解码器架构的mT0对这一任务更有益

  • mT0-3.7B在预训练阶段(1万亿对比0.5万亿令牌)和指令调整阶段(15亿对比0.6亿令牌)都进行了更长时间的训练,这可以提升NLI任务的性能

Scaling law

由于XML-R有包含不同参数的不同版本,作者研究了随着模型尺寸增加性能的变化。此外,作者还关注了另一层次的规模化,即微调过程中的训练令牌数量。首先,XML-RBase和XML-RLarge,分别具有270M和550M的参数。下表呈现了结果。我们可以发现,随着模型参数的增加,存在明显的增长趋势。在使用相同数据微调后,Instruct-XMLRXL在所有任务上表现优于Instruct-XMLRBase和Instruct-XMLRLarge,表明模型大小在任务泛化中起着重要作用。066d412e4f0bb391ca14eab47a4715d4.png

然后,让我们来看一看指导调整过程中训练令牌数量的规模效应。下图绘制了训练过程中性能的变化。随着训练的进行,所有任务的性能都在不断提高。总的来说,Instruct-XMLR也展示了正面的规模效应,这显示了未来潜在的改进空间。

9437ffcefab6813b2f71a210a2553e68.png

总结

这篇论文深入探讨了BERT家族作为指令跟随者的潜力和局限性。作者发现,与当前流行的具有可比模型参数的模型架构的大型语言模型相比,微调的Instruct-XMLR在跨任务和语言上也表现良好。此外,作者也提出了一些局限性,例如长文本生成任务的性能下降以及在少量样本提示学习中的失败。其中一些问题可能是由于骨干模型的能力有限,因为迄今为止尚未有任何BERT家族模型能与解码器模型和编码器-解码器模型相媲美。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

647840cbc34ecc386fa72e3a63edc187.png

id:DLNLPer,记得备注呦

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

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

相关文章

tensorflow_decision_forests\tensorflow\ops\inference\inference.so not found

恰好有一个帖子提到了py3.10里面的解决方案 pip install --user tensorflow2.11.0My tensorflow version is 2.11.0 and my tensorflow_decision_forests version is 1.2.0 so those should be compatible. I also am using Python version 3.10.11原文链接: http…

R语言高级数据管理

一&#xff0c;数学函数 绝对值函数abs(x) sqrt(x) 开平方根 不小于某个数的最小整数ceiling(x) 不大于某个数的最大整数floor(x) 四舍五入round(x) sin(x) cos(x) log(x) 二&#xff0c;统计函数 求平均值 > x<-c(2,3,4,5,6,7,8,9,10) > mean(x) 求和 &g…

Entity Framework6 Oracle 官网开发说明

Entity Framework, LINQ and Model-First for the Oracle Database

SAP-ERP TM运输管理模块详解-1

简介 SAP中的运输功能(即TM模块,属于SD的子模块)是后勤执行的一部分,用于自动计算交货成本。也就是说,SAP可以让系统自动对销售发货的商品计算运费,对于运费占这个成本很大比重的销售模式,可以使用该功能。运输功能相对于SD其他模块,相对比较独立的,应用面不是很广。其…

01.JAVAEE初阶之计算机如何工作

1.一台机器如何组成 冯诺依曼体系 CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备: 计算机个用户汇报结果的设备. 针对存储空间 硬盘 > 内存 >> CPU针对数据访问…

Xline中区间树实现小结

Table of Contents 实现区间树的起因区间树实现简介 插入/删除查询重叠操作使用Safe Rust实现区间树 问题Rc<RefCell<T>> i. 线程安全问题其他智能指针 i. Arc<Mutex<T>>? ii. QCell数组模拟指针总结 01、实现区间树的起因 在Xline最近的一次重构中…

速卖通自养号测评:如何规避安全风险?

对于初涉电商领域的新卖家而言&#xff0c;进行销量测评显得尤为关键。由于速卖通新店铺往往难以获得平台活动的支持&#xff0c;流量也相对匮乏&#xff0c;因此&#xff0c;开店的首要任务便是进行测评&#xff0c;通过积累一定的评论和销售数据。 测评的益处颇多&#xff0…

生成完美口型同步的 AI 代言人视频(及其实现原理详解)

目录 什么是Heygen? Heygen注册 Video Translation&#xff08;视频翻译 完美口型同步&#xff09; 实现原理详解 视频翻译部分 完美口型同步部分 什么是Heygen? Heygen是一款在线工具&#xff0c;可帮助您生成具有完美口型同步的 AI 代言人视频。 Heygen注册 https:…

网络安全实训Day23

网络空间安全实训-渗透测试 文件上传攻击 定义 将Webshell文件上传到网站服务器上&#xff0c;从而获得网站整台服务器控制权限的攻击方式 Webshell 一种以网页形式存在的命令行执行环境&#xff0c;又称网页木马 分类 一句话木马 只有一行代码&#xff0c;功能强大&#xff…

(bevfusion:多模态融合)报错:AttributeError: module ‘numpy‘ has no attribute ‘long‘

解决办法1&#xff1a;降低numpy版本&#xff08;我的报错版本是1.24.4&#xff09; pip install numpy1.20.3解决办法2&#xff1a;或者将np.long改为np.int64 (由于我的报错在环境内部&#xff0c;不好修改&#xff0c;所以直接降低的numpy版本)

Java中的StringBuilder

为什么要用StringBuilder StringBuilder是一个可变的字符串类&#xff08;StringBuilder对象中的内容可变&#xff09; 为什么不用String拼接呢&#xff1f; 因为拼接字符串会造成前两个字符串的空间浪费 package dayhou40.day44; ​ public class test {public static voi…

Java线程池让使用线程变得更加高效

使用一个线程需要经过创建、运行、销毁三大步骤&#xff0c;如果业务系统每个线程都要经历这个过程&#xff0c;那势必带来过多不必要的资源消耗。线程池就是为了解决这个问题而生&#xff0c;需要时就从池中拿取&#xff0c;使用完毕就放回去&#xff0c;池化思想通过复用对象…

SpringBoot---------Hutool

第一步&#xff1a;引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-parent</artifactId><version>5.7.17</version></dependency> 第二步&#xff1a;各种用法 ①生成随机数 //生成验证码 String s …

游戏新手村21:再谈游戏广告页面设计

前文我们说到了网页游戏的LandingPage页面设计中需要遵循的一些规范和注意事项&#xff0c;本章我们重点谈下网络游戏的广告页面设计。 之前在金山的时候&#xff0c;大家习惯或者喜欢称LandingPage为分流页&#xff0c;这个页面需要加入哪些游戏信息才能在短时间内俘获玩家的…

cJSON的使用

文章目录 一、CJSON初识二、CJSON解析器基础三、CJSON解析数据JSON解析基础CJSON解析数组数据CJSON解析嵌套数据 五、创建JSON数据 一、CJSON初识 JSON (JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;常用于在网络之间传输数据。它是一种文本格式&#…

Linux计划任务书以及定时任务的编写

一、程序可以通过两种方式执行&#xff1a; 手动执行利用调度任务&#xff0c;依据一定的条件自动执行 自动执行可通过一下两个命令来实现: &#xff08;1&#xff09;At &#xff08;单一工作调度&#xff09; &#xff08;2&#xff09;Cron &#xff08;循环工作调度&a…

微信小程序的开发

1.了解项目的基本组成结构 pages 用来存放所有小程序的页面 utils 用来存放工具性质的模块(例如:格式化时间的自定义模块) app.js 小程序项目的入口文件 app.json 小程序项目的全局配置文件 app.wxss 小程序项目的全局样式文件 project.config.json 项目的配置文件 sitem…

(GEE)2000-2020年黄河流域时序渐变图及高程模型计算 JavaScript版

文章目录 一. 选取目标区域二. NDVI实现三. 高程模型DEM实现四. 时序图五. 植被覆盖类型六. 参考文献 首先推荐吴秋生老师团队开源的便捷构建网站&#xff1a;适用于地理空间应用的Streamlight 吴秋生老师团队的工具请自行探索。本文讲解基于GEE云开发平台实现&#xff0c;基于…

吾日三省吾身---对平常遇到的错误总结

✨个人主页&#xff1a; 不漫游-CSDN博客 前言 本篇文章是对平常练习遇到的问题总结&#xff0c;多吸取经验教训才能避免未来再犯~ Java语法部分 &#xff08;一&#xff09;多态 思考&#xff1a;这道题很明显考察的是多态的知识点&#xff0c;即一个对象可以被赋值给其父类…

11.盛最多水的容器 C++

一开始我最先想到的是暴力解法&#xff0c;就是两个循环嵌套依次遍历&#xff0c;所有情况都过一遍找出最大值&#xff0c;这样示例的结果虽然是正确的&#xff0c;但是超时。所以暴力解法行不通&#xff0c;双指针思考才是正道&#xff0c;双指针一般都是一边一个&#xff0c;…
最新文章