【NLP】 RoBERTa: A Robustly Optimized BERT Pretraining Approach

2023-10-28 01:59

本文主要是介绍【NLP】 RoBERTa: A Robustly Optimized BERT Pretraining Approach,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Dynamic Masking🌺

RoBERTa 是对 BERT 的优化提升,改进之一就是在 Masked Language Model (MLM) 任务中,使用 dynamic masking 代替原先的 static masking

BERT :随机15%的 token 进行 mask,这个过程在数据预处理阶段进行的,而非模型训练阶段。每个样本只会进行一次随机 mask,每个 epoch 都是相同的。

RoBERTa:复制同一语句10次,对每一句进行随机15%的 token 进行 mask,假设训练40轮,,每个训练 sentence 都有着相同的 mask 四次。当预训练轮数较大或数据量较大时,动态掩码方法能够提高数据的复用效率。

2. Without NSP💐

在原始的 BERT 的预训练过程中,会将两个文本片段拼接在一起作为输入,并通过 Next Sentence Prediction(NSP) 任务预测这两段文本是否构成“下一个句子”关系。
在论文中,作者对比了4组实验结果,发现去掉 NSP,实验结果反而更好。

3. 更多的预训练数据集🍀

RoBERTa 中,进一步将预训练数据的规模扩展至160GB,是 BERT 的10倍。

4. 更大的 Batch Size 及更多的 Steps🍂

RoBERTa 采用了 8K 的批次大小,并且进一步将训练步长加大至 500K,使用更大的批次能够有效减少训练时长,当固定批次大小并增加训练步数后,也能得到更好的实验结果,如下图所示。

5. 更大的词表🌼

RoBERTa 采用了更大的词表,使用 byte-level BPE(BPE: Byte Pair Encoding)作为 tokenizer。 RoBERTa 的词表大小是 50265,比 BERT 的 30522 更大。这是为了更好地处理英语语言的多样性和复杂性。

byte-level BPE 则是一种 subword tokenization 方法,通过将单词切分成较小的子单元来帮助模型更好地理解单词。与传统的 BPE 不同,byte-level BPE 考虑了字符级别的信息,因此可以更好地处理一些语言中常见的字符序列,例如单词内部的连字符或下划线等。

在原始 BERT 中,采用一个30K大小的 WordPiece 词表。这种词表的一个弊端是,如果输入文本无法通过词表中的 WordPiece 子词进行拼接组合,则会映射到 “unknown” 这种未登录词标识。

RoBERTa 采用 SentencePiece 这种字节级别 byte-level 的 BPE 词表的好处是能够编码任意输入文本,因此不会出现未登录词的情况。

这篇关于【NLP】 RoBERTa: A Robustly Optimized BERT Pretraining Approach的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/289931

相关文章

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

8. 自然语言处理中的深度学习:从词向量到BERT

引言 深度学习在自然语言处理(NLP)领域的应用极大地推动了语言理解和生成技术的发展。通过从词向量到预训练模型(如BERT)的演进,NLP技术在机器翻译、情感分析、问答系统等任务中取得了显著成果。本篇博文将探讨深度学习在NLP中的核心技术,包括词向量、序列模型(如RNN、LSTM),以及BERT等预训练模型的崛起及其实际应用。 1. 词向量的生成与应用 词向量(Word Embedding)

文本分类场景下微调BERT

How to Fine-Tune BERT for Text Classification 论文《How to Fine-Tune BERT for Text Classification?》是2019年发表的一篇论文。这篇文章做了一些实验来分析了如何在文本分类场景下微调BERT,是后面网上讨论如何微调BERT时经常提到的论文。 结论与思路 先来看一下论文的实验结论: BERT模型上面的

【python 走进NLP】两两求相似度,得到一条文本和其他文本最大的相似度

应用场景: 一个数据框里面文本,两两求相似度,得到一条文本和其他文本最大的相似度。 content source_id0 丰华股份军阀割据发生的故事大概多少w 11 丰华股份军阀割据发生的故事大概多少 22 丰华股份军阀割据发生的故事大概多少 33 丰华股份军阀割据发生的故事大概多少

【Python 走进NLP】NLP词频统计和处理停用词,可视化

# coding=utf-8import requestsimport sysreload(sys)sys.setdefaultencoding('utf-8')from lxml import etreeimport timetime1=time.time()import bs4import nltkfrom bs4 import BeautifulSoupfrom

【java 走进NLP】simhash 算法计算两篇文章相似度

python 计算两篇文章的相似度算法simhash见: https://blog.csdn.net/u013421629/article/details/85052915 对长文本 是比较合适的(超过500字以上) 下面贴上java 版本实现: pom.xml 加入依赖 <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</a

【python 走进NLP】simhash 算法计算两篇文章相似度

互联网网页存在大量的重复内容网页,无论对于搜索引擎的网页去重和过滤、新闻小说等内容网站的内容反盗版和追踪,还是社交媒体等文本去重和聚类,都需要对网页或者文本进行去重和过滤。最简单的文本相似性计算方法可以利用空间向量模型,计算分词后的文本的特征向量的相似性,这种方法存在效率的严重弊端,无法针对海量的文本进行两两的相似性判断。模仿生物学指纹的特点,对每个文本构造一个指纹,来作为该文本的标识,从形式上来

【python 走进NLP】文本相似度各种距离计算

计算文本相似度有什么用? 1、反垃圾文本的捞取 “诚聘淘宝兼职”、“诚聘打字员”…这样的小广告满天飞,作为网站或者APP的运营者,不可能手动将所有的广告文本放入屏蔽名单里,挑几个典型广告文本,与它满足一定相似度就进行屏蔽。 2、推荐系统 在微博和各大BBS上,每一篇文章/帖子的下面都有一个推荐阅读,那就是根据一定算法计算出来的相似文章。 3、冗余过滤 我们每天接触过量的信息,信息之间存在大量

【python 走进NLP】句子相似度计算--余弦相似度

余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。 github 参考链接:https://github.com/ZhanPwBibiBibi/CHlikelihood # -*- coding: utf-8 -*-import jiebaimport numpy as npimpor