0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种基于乱序语言模型的预训练模型-PERT

深度学习自然语言处理 来源:NLP工作站 作者:刘聪NLP 2022-05-10 15:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写在前面

今天分享给大家一篇哈工大讯飞联合实验室的论文,一种基于乱序语言模型的预训练模型-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)。e8d52ce8-cf96-11ec-bce3-dac502259ad0.png

模型

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两个数据集上对机器阅读理解任务进行评测,结果如下表所示。e8e7ca9c-cf96-11ec-bce3-dac502259ad0.png
PERT模型相比于MacBERT模型有部分的提高,并且始终优于其他模型。

文本分类TC任务

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

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

命名实体识别NER任务

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

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

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

语法检查任务

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

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

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

不同的下游任务的最佳效果可能出现在不同的预训练步骤上,如下图所示。e98c68c2-cf96-11ec-bce3-dac502259ad0.png

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

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

不同粒度间的打乱,可以使使输入文本更具可读性。通过在不同粒度内乱序输入文本来比较性能,如下表所示。e9a25be6-cf96-11ec-bce3-dac502259ad0.png

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

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

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

e9b7dda4-cf96-11ec-bce3-dac502259ad0.png

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

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

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

总结

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


审核编辑 :李倩



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    575

    浏览量

    11382
  • 自然语言处理

    关注

    1

    文章

    630

    浏览量

    14767

原文标题:PERT:一种基于乱序语言模型的预训练模型

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    百度文心大模型5.1正式发布

    代基础大模型文心大模型 5.1正式发布!文心 5.1采用“多维弹性训练”技术,仅以业界同规模模型
    的头像 发表于 05-11 14:21 366次阅读
    百度文心大<b class='flag-5'>模型</b>5.1正式发布

    零基础手写大模型资料2026

    Transformer核心结构的大模型,揭示大模型从理论到落地的技术本质。 、数学基础:大模型的三大基石 1. 矩阵运算:神经网络的语言
    发表于 05-01 17:44

    HM博学谷狂野AI大模型第四期

    的工程内幕 个大模型的诞生,离不开海量数据的训练与精调。狂野 AI 第四期将视角深入到模型训练的引擎室,详细拆解
    发表于 05-01 17:30

    Edge Impulse 唤醒词模型训练 | 技术集结

    今天,将手把手带领学习如何训练个语音关键词模型部署到嵌入式硬件上,采用Edgi-Talk平台适配EdgeImpulse,当然原理在其他的ARM嵌入式平台也是通用的。让我们看看如何让
    的头像 发表于 04-20 10:05 1819次阅读
    Edge Impulse 唤醒词<b class='flag-5'>模型</b><b class='flag-5'>训练</b> | 技术集结

    什么是大模型,智能体...?大模型100问,快速全面了解!

    ,LLM)是大模型中最主要的类,专门用于处理和生成人类语言。大语言模型通过“阅读”海量的文本数据(如书籍、网页、文章等)进行
    的头像 发表于 02-02 16:36 1217次阅读
    什么是大<b class='flag-5'>模型</b>,智能体...?大<b class='flag-5'>模型</b>100问,快速全面了解!

    摩尔线程新代大语言模型对齐框架URPO入选AAAI 2026

    近日,摩尔线程在人工智能前沿领域取得重要突破,其提出的新代大语言模型对齐框架——URPO统奖励与策略优化,相关研究论文已被人工智能领域的国际顶级学术会议AAAI 2026收录。这
    的头像 发表于 11-17 16:03 675次阅读
    摩尔线程新<b class='flag-5'>一</b>代大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>对齐框架URPO入选AAAI 2026

    在Ubuntu20.04系统中训练神经网络模型些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是
    发表于 10-22 07:03

    基于大规模人类操作数据训练的VLA模型H-RDT

    近年来,机器人操作领域的VLA模型普遍基于跨本体机器人数据集训练,这类方法存在两大局限:不同机器人本体和动作空间的差异导致统训练困难;现
    的头像 发表于 08-21 09:56 1307次阅读
    基于大规模人类操作数据<b class='flag-5'>预</b><b class='flag-5'>训练</b>的VLA<b class='flag-5'>模型</b>H-RDT

    如何进行YOLO模型转换?

    我目前使用的转模型代码如下 from ultralytics import YOLOimport cv2import timeimport nncaseimport# 加载训练的YOLO模型
    发表于 08-14 06:03

    利用自压缩实现大型语言模型高效缩减

    随着语言模型规模日益庞大,设备端推理变得越来越缓慢且耗能巨大。个直接且效果出人意料的解决方案是剪除那些对任务贡献甚微的完整通道(channel)。我们早期的研究提出了一种
    的头像 发表于 07-28 09:36 726次阅读
    利用自压缩实现大型<b class='flag-5'>语言</b><b class='flag-5'>模型</b>高效缩减

    龙芯中科与文心系列模型开展深度技术合作

    ”解决方案。 强强联合!自主架构赋能大模型训练 文心大模型 文心4.5系列模型均使用飞桨深度学习框架进行高效训练、推理和部署。在大
    的头像 发表于 07-02 16:53 1538次阅读

    兆芯率先展开文心系列模型深度技术合作

    对文心系列大模型的快速适配、无缝衔接。   文心大模型   文心4.5系列开源模型共10款,均使用飞浆深度学习框架进行高效训练、推理和部署。在大语言
    的头像 发表于 07-01 10:49 1154次阅读

    make sence成的XML文件能上传到自助训练模型上吗?

    make sence成的XML文件能上传到自助训练模型上吗
    发表于 06-23 07:38

    运行kmodel模型验证直报错怎么解决?

    我这运行kmodel模型验证直报错,所以没法做kmodel模型好坏验证,不知道怎么解决这个问题,重新训练个kmodel
    发表于 06-10 08:02