大型语言模型:RoBERTa — 一种稳健优化的 BERT 方法

@slavahead

一、介绍

        BERT模型的出现BERT模型带来了NLP的重大进展。 BERT 的架构源自 Transformer,它在各种下游任务上取得了最先进的结果:语言建模、下一句预测、问答、NER标记等。

        尽管 BERT 性能出色,研究人员仍在继续尝试其配置,希望获得更好的指标。幸运的是,他们成功了,并提出了一种名为 RoBERTa 的新模型 - 鲁棒优化的 BERT 方法。

        在本文中,我们将参考官方 RoBERTa 论文,其中包含有关模型的深入信息。简而言之,RoBERTa 对原始 BERT 模型进行了多项独立改进——包括架构在内的所有其他原则保持不变。本文将介绍和解释所有的进步。

二、动态遮蔽

        从 BERT 的架构中我们记得,在预训练期间,BERT 通过尝试预测一定百分比的屏蔽标记来执行语言建模。原始实现的问题在于,为不同批次的给定文本序列选择的掩码标记有时是相同的。

        更准确地说,训练数据集被复制 10 次,因此每个序列仅以 10 种不同的方式进行屏蔽。请记住,BERT 运行 40 个训练周期,具有相同掩码的每个序列都会传递给 BERT 四次。研究人员发现,使用动态掩码效果稍好,这意味着每次将序列传递给 BERT 时都会唯一生成掩码。总体而言,这会减少训练期间的重复数据,从而使模型有机会处理更多不同的数据和屏蔽模式。

静态掩蔽与动态掩蔽

三、下一句预测

        该论文的作者进行了研究,寻找对下一个句子预测任务进行建模的最佳方法。结果,他们发现了一些有价值的见解:

  • 删除下一个句子的预测损失会带来稍微更好的性能。
  • 与传递由多个句子组成的序列相比,将单个自然句子传递到 BERT 输入会损害性能。解释这种现象的最可能的假设之一是模型很难仅依靠单个句子来学习远程依赖关系。
  • 通过从单个文档而不是多个文档中采样连续的句子来构造输入序列更有利 。 通常,序列始终由单个文档的连续完整句子构建,因此总长度最多为 512 个标记。当我们到达文档末尾时,问题就出现了。在这方面,研究人员比较了是否值得停止对此类序列进行句子采样,或者额外采样下一个文档的前几个句子(并在文档之间添加相应的分隔符标记)。结果表明第一种方案效果较好。

        最终,对于最终的 RoBERTa 实现,作者选择保留前两个方面并省略第三个方面。尽管观察到第三个见解背后的改进,但研究人员并没有继续下去,因为否则,它会使之前的实现之间的比较更加成问题。发生这种情况的原因是,到达文档边界并停在那里意味着输入序列将包含少于 512 个标记。为了在所有批次中具有相似数量的令牌,在这种情况下需要增加批次大小。这导致批量大小可变和研究人员希望避免的更复杂的比较。

四、增加批量大小

        NLP 的最新进展表明,增加批量大小并适当降低学习率和训练步骤数通常会提高模型的性能。

        提醒一下,BERT 基础模型是在 256 个序列的批量大小上训练一百万步的。作者尝试在 2K 和 8K 的批量大小上训练 BERT,并选择后者来训练 RoBERTa。相应的训练步数和学习率值分别变为31K和1e-3。

同样重要的是要记住,通过一种称为“梯度累积”的特殊技术,批量大小的增加会导致更容易的并行化。< /span>

五、字节文本编码

        在 NLP 中,存在三种主要类型的文本标记化:

  • 字符级标记化
  • 子字级标记化
  • 词级标记化

        原始 BERT 使用词汇大小为 30K 的子字级标记化,这是在输入预处理和使用多种启发式之后学习的。 RoBERTa 使用字节而不是 unicode 字符作为子词的基础,并将词汇量扩展至 50K,无需任何预处理或输入标记化。这导致 BERT 基础模型和 BERT 大模型分别增加 15M 和 20M 的额外参数。 RoBERTa 中引入的编码版本表现出比以前稍差的结果。

        尽管如此,与 BERT 相比,RoBERTa 词汇量大小的增长允许在不使用未知标记的情况下对几乎任何单词或子词进行编码。这给 RoBERTa 带来了相当大的优势,因为该模型现在可以更全面地理解包含稀有单词的复杂文本。

六、预训练

        除此之外,RoBERTa 应用了上述所有四个方面,并具有与 BERT Large 相同的架构参数。 RoBERTa的参数总数为355M。

        RoBERTa 在五个海量数据集的组合上进行了预训练,产生总共 160 GB 的文本数据。相比之下,BERT Large 仅在 13 GB 数据上进行预训练。最后,作者将训练步骤数从 100K 增加到 500K。

        因此,在最流行的基准测试中,RoBERTa 在 XLNet Large 上的表现优于 BERT Large。

七、RoBERTa 版本

        与 BERT 类似,研究人员开发了两个版本的 RoBERTa。基本版本和大版本中的大多数超参数是相同的。下图展示了主要区别:

        RoBERTa 中的微调过程与 BERT 类似。

八、结论

        在本文中,我们研究了 BERT 的改进版本,它通过引入以下几个方面来修改原始训练过程:

  • 动态掩蔽
  • 省略下一句预测目标
  • 较长句子的训练
  • 增加词汇量
  • 使用更大批量的数据进行更长时间的训练

        由此产生的 RoBERTa 模型在顶级基准测试中似乎优于其祖先。尽管配置更复杂,RoBERTa 仅添加了 15M 额外参数,保持了与 BERT 相当的推理速度。

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

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

相关文章

旅游景区项目信息化建设运营方案:PPT47页,附下载

关键词&#xff1a;智慧景区解决方案&#xff0c;智慧景区建设&#xff0c;智慧景区开发与管理&#xff0c;智慧景区建设的意义&#xff0c;智慧景区管理 一、旅游景区项目信息化建设背景 1、旅游业发展迅速&#xff1a;随着旅游业的不断发展&#xff0c;游客对旅游体验的需求…

多级缓存:亿级流量的缓存方案

文章目录 一.多级缓存的引入二.JVM进程缓存三.Lua语法入门四.多级缓存1.OpenResty2.查询Tomcat3.Redis缓存预热4.查询Redis缓存5.Nginx本地缓存6.缓存同步 一.多级缓存的引入 传统缓存的问题 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未…

【LeetCode刷题】--245.最短单词距离III

245.最短单词距离III class Solution {public int shortestWordDistance(String[] wordsDict, String word1, String word2) {int len wordsDict.length;int ans len;if(word1.equals(word2)){int prev -1;for(int i 0;i<len;i){String word wordsDict[i];if(word.equa…

Xcode 恢复Discard Changes

当开发的时候&#xff0c;Discard All Changes后 文件的修改都被放弃了&#xff0c;怎么才可以撤销更改呢 Xcode和Git没有这个功能&#xff0c;Finder可以实现 首先我们先退出Xcode用TextEdit打开你想恢复的文件转到文件 > 还原到 > 浏览所有版本...选择你想恢复的版本即…

Notepad++:多行数据操作

1&#xff09;删除关键字之后&#xff08;或之前&#xff09;的所有字符 删除s之后&#xff08;包含s&#xff09;的所有内容&#xff1b;快捷键&#xff1a;s.*$ 替换成功 删除s之前&#xff08;包含s&#xff09;的所有内容&#xff1b;快捷键&#xff1a;^.*s 2&#xff09…

互式流程图|BPMN JointJS+ JavaScript 3.7.3 Crack

JointJS 是 JavaScript 图表库为卓越的 UI 提供支持 使用经过验证的库快速、自信地构建高级视觉和无代码/低代码应用程序。 赋能全球行业领导者 使用 JointJS 构建的图表 一个库&#xff0c;‍无限 UI 选项 直接在您的应用程序中享受交互式流程图、BPMN 和其他图表工作室。利用…

乐理基础-情绪与速度、具体的速度、BPM

首先音乐中的一拍并不是一个具体的时间&#xff08;详情看这两个 认识音符、什么是一拍&#xff09;&#xff0c;一拍并不是1图6&#xff1a;秒、2秒、3秒这样一个具体的时间&#xff0c;只能说在同样一份乐谱和同样一个速度下&#xff0c;全音符、二分音符、四分音符等等会依次…

aws配置以及下载 spaceNet6 数据集

一&#xff1a;注册亚马逊账号 注册的时候&#xff0c;唯一需要注意的是信用卡绑定&#xff0c;这个可以去淘宝买&#xff0c;搜索aws匿名卡。 注册完记得点击登录&#xff0c;记录一下自己的账户ID哦&#xff01; 二&#xff1a;登录自己的aws账号 2.1 首先创建一个用户 首…

QTNet:Query-based Temporal Fusion with Explicit Motion for 3D Object Detection

参考代码&#xff1a;QTNet 动机和出发点 自动驾驶中时序信息对感知性能具有较大影响&#xff0c;如在感知稳定性维度上。对于常见的时序融合多是在feature的维度上做&#xff0c;这个维度的融合主要分为如下两个方案&#xff1a; 1&#xff09;BEV-based方案&#xff1a;将之…

鸿蒙 - arkTs:渲染(循环 - ForEach,判断 - if)

ForEach循环渲染&#xff1a; 参数&#xff1a; 要循环遍历的数组&#xff0c;Array类型遍历的回调方法&#xff0c;Function类型为每一项生成唯一标识符的方法&#xff0c;有默认生成方法&#xff0c;非必传 使用示例&#xff1a; interface Item {name: String,price: N…

Linux之yum管理器

目录 yum管理器 yum相关指令 yum list yum list | grep yum install yum remove 拓展 1.yum install -y man-pages 2.切换yum源 3.yum install -y epel-release 4. yum install -y lrzsz rz指令 sz指令 在window系统上&#xff0c;我们会在电脑自带的应用商…

【python基础】-- yarn add 添加依赖的各种类型

目录 1、安装 yarn 1.1 使用npm安装 1.2 查看版本 1.3 yarn 淘宝源配置 2、安装命令说明 2.1 yarn add&#xff08;会更新package.json和yarn.lock&#xff09; 2.2 yarn install 2.3 一些操作 2.3.1 发布包 2.3.2 移除一个包 2.3.3 更新一个依赖 2.3.4 运行脚本 …

华清远见嵌入式学习——ARM——作业1

要求&#xff1a; 代码&#xff1a; mov r0,#0 用于加mov r1,#1 初始值mov r2,#101 终止值loop: cmp r1,r2addne r0,r0,r1addne r1,r1,#1bne loop 效果&#xff1a;

【VRTK】【VR开发】【Unity】16-磁吸区域

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 记得《半条命艾利克斯》中神奇的磁吸手套吗?这就是用本篇介绍的Snap Zone实现的!Snap Zone可以达到将两个物体以特定方式对齐的效果,比如让…

YOLOv8改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)

一、本文介绍 本文给大家带来的改进机制是MobileNetV1&#xff0c;其是专为移动和嵌入式视觉应用设计的轻量化网络结构。这些模型基于简化的架构&#xff0c;并利用深度可分离卷积构建轻量级深度神经网络&#xff0c;其引入了两个简单的全局超参数&#xff0c;用于在延迟和准确…

自学精灵--专业的编程学习网站

这是我看过的最靠谱的编程学习网站&#xff0c;名字是&#xff1a;自学精灵&#xff0c;网站是&#xff1a;learn.skyofit.com。&#xff08;某度搜"自学精灵"也可找到此站&#xff0c;搜不到可以用必应搜&#xff09;。 自学精灵是全网最强的学习平台&#xff0c;我…

Flink Table API 与 SQL 编程整理

Flink API总共分为4层这里主要整理Table API的使用 Table API是流处理和批处理通用的关系型API&#xff0c;Table API可以基于流输入或者批输入来运行而不需要进行任何修改。Table API是SQL语言的超集并专门为Apache Flink设计的&#xff0c;Table API是Scala和Java语言集成式…

Ubuntu录屏方法带声音

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装二、使用步骤总结 前言 有时候需要在Ubuntu录制下屏幕&#xff0c;在Windows下面录制比较简单使用Nvidia自带的效果就蛮好&#xff0c;如果不是N卡就使…

直排轮滑教程3

轮滑三大要求&#xff1a; 三点直线、腿要直、轮要正。 直线蹬地技术 1&#xff0c;直排轮滑&#xff0c;直线蹬地技术的陆地模仿练习。 2&#xff0c;在滑行做动作之前&#xff0c;先陆地上模仿。支撑腿、运动腿怎么蹬地&#xff0c;髋怎么移动。来讲一下要领。 3&#xf…

WPF Halcon机器视觉和运动控制软件通用框架,插件式开发,开箱即用 仅供学习!

点我下载&#xff0c;仅供个人学习使用 参考easyvision开发&#xff0c;集成几十个软件算子此版本以添加ui设计器。具体功能如上所示&#xff0c;可以自定义变量&#xff0c;写c#脚本&#xff0c;自定义流程&#xff0c;包含了halcon脚本和封装的算子&#xff0c;可自定义ui&a…