写在前面

大家好,我是刘聪NLP。

今天分享给大家一篇哈工大讯飞联合实验室的论文,一种基于乱序语言模型的预训练模型-PERT,全名《PERT: PRE-TRAINING BERT WITH PERMUTED LANGUAGE MODEL》。该篇论文的核心是,将MLM语言模型的掩码词预测任务,替换成词序预测任务,也就是在不引入掩码标记[MASK]的情况下自监督地学习文本语义信息,随机将一段文本的部分词序打乱,然后预测被打乱词语的原始位置。

PERT模型的Github以及对应的开源模型其实年前就出来了,只是论文没有放出。今天一瞬间想起来去看一眼,这不,论文在3月14号的时候挂到了axirv上,今天分享给大家。

paper:https://arxiv.org/pdf/2203.06906.pdf
github:https://github.com/ymcui/PERT

介绍

预训练语言模型(PLMs)目前在各种自然语言处理任务中均取得了优异的效果。预训练语言模型主要分为自编码和自回归两种。自编码PLMs的预训练任务通常是掩码语言模型任务,即在预训练阶段,使用[MASK]标记替换原始输入文本中的一些token,并在词汇表中恢复这些被[MASK]的token。

常用预训练语言模型总结:https://zhuanlan.zhihu.com/p/406512290

那么,自编码PLMs只能使用掩码语言模型任务作为预训练任务吗?我们发现一个有趣的现象“在一段文本中随机打乱几个字并不会影响我们对这一段文本的理解”,如下图所示,乍一看,可能没有注意到句子中存在一些乱序词语,并且可以抓住句子的中心意思。该论文探究了是否可以通过打乱句子中的字词来学习上下文的文本表征,并提出了一个新的预训练任务,即乱序语言模型(PerLM)。

模型

PERT模型结构如上图所示。PERT模型结构与BERT模型结构相同,仅在模型输入以及预训练目标上略有不同。

PERT模型的细节如下:

  • 采用乱序语言模型作为预训练任务,预测目标为原始字词的位置;

  • 预测空间大小取决于输入序列长度,而不是整个词表的大小(掩码语言模型预测空间为词表);

  • 不采用NSP任务;

  • 通过全词屏蔽和N-gram屏蔽策略来选择乱序的候选标记;

  • 乱序的候选标记的概率为15%,并且真正打乱顺序仅占90%,剩余10%保持不变。

由于乱序语言模型不使用[MASK]标记,减轻了预训练任务与微调任务之间的gap,并由于预测空间大小为输入序列长度,使得计算效率高于掩码语言模型。 PERT模型结构与BERT模型一致,因此在下游预训练时,不需要修改原始BERT模型的任何代码与脚本。注意,与预训练阶段不同,在微调阶段使用正常的输入序列,而不是打乱顺序的序列。

中文实验结果与分析

预训练参数

  • 数据:由中文维基百科、百科全书、社区问答、新闻文章等组成,共5.4B字,大约20G。

  • 训练参数: 词表大小为21128,最大序列长度为512,batch大小为416(base版模型)和128(large版模型),初始学习率为1e-4,使用 warmup动态调节学习率,总训练步数为2M,采用ADAM优化器。

  • 训练设备:一台TPU,128G。

机器阅读理解MRC任务

在CMRC2018和DRCD两个数据集上对机器阅读理解任务进行评测,结果如下表所示。

PERT模型相比于MacBERT模型有部分的提高,并且始终优于其他模型。

文本分类TC任务

在XNLI、LCQMC、BQ Corpus、ChnSentiCorp、TNEWS和OCNLI 6个数据集上对文本分类任务进行评测,结果如下表所示。

在文本分类任务上,PERT模型表现不佳。推测与MRC任务相比,预训练中的乱序文本给理解短文本带来了困难。

命名实体识别NER任务

在MSRA-NER和People’s Daily两个数据集上对命名实体识别任务进行评测,结果如下表所示。

PERT模型相比于其他模型均取得最优的效果,表明预训练中的乱序文在序列标记任务中的良好能力。

对比机器阅读理解、文本分类和命名实体识别三个任务,可以发现,PERT模型在MRC和NER任务上表现较好,但在TC任务上表现不佳,这意味着TC任务对词语顺序更加敏感,由于TC任务的输入文本相对较短,有些词语顺序的改变会给输入文本带来完全的意义变化。然而,MRC任务的输入文本通常很长,几个单词的排列可能不会改变整个文章的叙述流程;并且对于NER任务,由于命名实体在整个输入文本中只占很小的比例,因此词语顺序改变可能不会影响NER进程。

语法检查任务

在Wikipedia、Formal Doc、Customs和Legal 4个数据集上对文本分类任务进行评测语法检查任务进行评测,结果如下表所示。

PERT模型相比于其他模型均取得最优的效果,这是由于下游任务与预训练任务非常相似导致的。

预训练的训练步数对PERT模型的影响

不同的下游任务的最佳效果可能出现在不同的预训练步骤上,如下图所示。

我们发现对于MRC和NER任务,随着预训练步数的增加,下游任务也会随之提高。然而,对于TC任务,不同数据的指标在不同的步数上取得最优。如果考虑到特定任务的效果,有必要在早期训练中保存部分模型。

不同的打乱粒度对PERT模型的影响

不同粒度间的打乱,可以使使输入文本更具可读性。通过在不同粒度内乱序输入文本来比较性能,如下表所示。

我们发现,在各种打乱粒度中,无限制乱序的PERT模型在所有任务中都取得了最优的效果;而选择最小粒度(词语之间)的模型,效果最差。可能原因是,虽然使用更小的粒度的乱序可以使输入文本更具可读性,但是对预训练任务的挑战性较小,使模型不能学习到更好地语义信息。

不同预测空间对PERT模型的影响

将PERT模型使用词表空间作为预测目标是否有效?如下表所示。

实验结果表明,PERT模型不需要在词表空间中进行预测,其表现明显差于在输入序列上的预测;并且将两者结合的效果也不尽如人意。

预测部分序列和预测全部序列对PERT模型的影响

ELECTRA模型的实验发现预测完全序列的效果比部分序列的更好,因此ELECTRA模型采用RTD任务对判别器采用完全序列预测。但通过本论文实验发现,预测完全序列在PERT模型中并没有产生更好的效果。表明在预训练任务中使用预测全部序列并不总是有效的,需要根据所设计的预训练任务进行调整。

总结

PERT模型的预训练思路还是挺有意思的,并在MRC、NER和WOR任务上均取得了不错的效果。并且由于结构与BERT模型一致,因此在下游任务使用时,仅修改预训练模型加载路径就实现了模型替换,也比较方便。当打比赛或者做业务时候,可以不妨试一试,说不定有奇效。(ps:我在我们自己的MRC数据集上做过实验,效果不错呦!!)

整理不易,请多多点赞,关注,有问题的朋友也欢迎加我微信「logCong」、公众号「NLP工作站」、知乎「刘聪NLP」私聊,交个朋友吧,一起学习,一起进步。

我们的口号是“生命不止,学习不停”。

PERT:一种基于乱序语言模型的预训练模型相关推荐

  1. 【NLP】6种用于文本分类的开源预训练模型

    来源 | PURVA HUILGOL 编译 | VK 作者 | Analytics Vidhya [导读]我们正站在语言和机器的交汇处,这个话题我很感兴趣.机器能像莎士比亚一样写作吗?机器能提高我自己 ...

  2. 【知识图谱系列】基于互信息最大化的图谱预训练模型DGI InfoGraph

    作者:CHEONG 公众号:AI机器学习与知识图谱 研究方向:自然语言处理与知识图谱 本文介绍两篇基于互信息最大化的图谱预训练模型DGI(ICLR 2019)和InfoGraph(ICLR 2020) ...

  3. 多模态语义检索 | 基于 MetaSpore 快速部署 HuggingFace 预训练模型

    首先,附上 Github 链接MetaSpore:https://github.com/meta-soul/MetaSpore,可搜索公众号元灵数智,在底部菜单了解我们 - 用户交流获取官方技术交流群 ...

  4. 基于动态提前退出的预训练模型推理加速简介

    ©PaperWeekly 原创 · 作者 | 李磊 单位 | 北京大学硕士生 研究方向 | 自然语言处理 随着如 BERT.RoBERTa 等预训练模型在一众自然语言处理任务上取得了出色的表现,如何在 ...

  5. 【论文精度】CodeBERT——基于自然语言和编程语言的预训练模型

    CodeBERT 论文地址:https://arxiv.org/abs/2002.08155 Abstract ​ 提出了一种用于编程语言(PL)和自然语言(NL)的双模态预训练模型CodeBERT, ...

  6. 基于Mindspore2.0的GPT2预训练模型迁移教程

    摘要: 这篇文章主要目的是为了让大家能够清楚如何用MindSpore2.0来进行模型的迁移. 本文分享自华为云社区<MindNLP-基于Mindspore2.0的GPT2预训练模型迁移教程> ...

  7. OpenAI打破文本和图像次元壁,提出基于对比学习的多模态预训练模型CLIP

    OpenAI 打破了自然语言与视觉的次元壁,推出了一个连接文本与图像的神经网络模型CLIP. 相关资料 CLIP原论文:Radford et al. Learning transferable vis ...

  8. 自然语言处理NLP——ERNIE-M:基于回译机制的“预训练-微调”多语言模型

    目录 系列文章目录 一.背景介绍 1.多语言任务 1.1 多语言任务定义 1.2 多语言任务难题 2.多语言模型 2.1 多语言模型定义与原理 2.2 多语言模型困难 3.论文简介 3.1 背景与开发 ...

  9. 8种优秀预训练模型大盘点,NLP应用so easy!

    https://www.toutiao.com/a6674855848902132235/ 大数据文摘出品 编译:李雷.蔡婕 如今,自然语言处理(NLP)可谓遍地开花,可以说正是我们了解它的好时机. ...

最新文章

  1. poj 2352 Stars 线段树(先建后查/边建边查)/树状数组三种方法思路详解,带你深入了解线段树难度⭐⭐⭐★
  2. pyinstaller 打包selenium脚本 取消cmd
  3. 以及其任何超类对此上下文都是未知的_web前端入门到实战:Javascript 中的「上下文」你只需要看这一篇
  4. 最短路常用的四种模板(poj1847)
  5. Workbox CLI v3.x 中文版
  6. TrueNAS SCALE是什么
  7. 必须要掌握的七种谈话技巧
  8. SQL Server高级查询之子查询(多行子查询)
  9. CentOS+NodeJS环境
  10. 【IIOT】欧姆龙PLC数采之NX/NJ系列
  11. Openwrt修改flash大小
  12. oracle数据库greatest函数,ORACLE函数之GREATEST函数详解范例
  13. Python tkinter改变光标样式
  14. 华为认证: 高级redhat例题及答案
  15. android源代码中repo升级后出现的问题
  16. 1.神奇的字符串之快速求和
  17. 级联rc滤波_RC低通,高通滤波电路的基本工作原理
  18. 寒假算法训练1-J(分棍子,求最长棍子的数量,另外学习map的排序方法)
  19. sina获取股票代码java
  20. 微信小程序开发费用制作费用是多少?

热门文章

  1. C语言 全局变量和局部变量的特点
  2. 56-20210402华为海思Hi3516DV300的linux系统下读取TF卡(eMMC模式)
  3. 深度linux安装spotify,在Ubuntu/Mint中安装 Spotify
  4. 理论:详解Linus的目录和文件管理
  5. linux usb只读文件系统,linux文件系统只读
  6. Qt之自定义带游标的QSlider
  7. java编写桌球游戏素材小球图片_JAVA——桌球游戏(动画)
  8. jemalloc C++实践
  9. 马尔可夫链(Markov chain)
  10. 数字信号处理——CFAR检测器设计(4)