【深度学习】BERT变种—百度ERNIE 1.0

news2024/12/22 20:46:54

      ERNIE: Enhanced Representation through Knowledge Integration是百度在2019年4月的时候,基于BERT模型,做的进一步优化,在中文的NLP任务上得到了state-of-the-art的结果。

        ERNIE 是百度开创性提出的基于知识增强的持续学习语义理解框架,该框架将大数据预训练与多源丰富知识相结合,通过持续学习技术,不断吸收海量文本数据中词汇、结构、语义等方面的知识,实现模型效果不断进化。ERNIE 在工业界得到了大规模应用,如搜索引擎、新闻推荐、广告系统、语音交互、智能客服等。 

     ERNIE 1.0主要做了以下三方面的改进:

        1.在mask的机制上做了改进,在pretrainning阶段增加了外部的知识。

        2.使用了多样的预训练语料。

        3.DLM (Dialogue Language Model) task

1 Knowledge Masking

        ERNIE 1.0主要是在mask的机制上做了改进,它的mask不是基本的word piece的mask,而是在pretrainning阶段增加了外部的知识。使用先验知识来增强预训练的语言模型,因此提出了一种多阶段知识屏蔽策略,将短语和实体级知识集成到语言表示中。由三种level的mask组成,分别是basic-level masking(word piece)+ phrase level masking(WWM style) + entity level masking。

        模型在预测未知词的时候,没有考虑到外部知识。但是如果我们在mask的时候,加入了外部的知识,模型可以获得更可靠的语言表示。

        例如:哈利波特是J.K.罗琳写的小说

  • 单独预测 哈[MASK]波特 或者 J.K.[MASK]琳 对于模型都很简单,仅仅需要通过局部共现关系,完全不需要上下文的帮助;
  • 但是模型不能学到哈利波特和J.K. 罗琳的关系。

        如果把哈利波特直接MASK掉的话,那模型可以根据作者,就预测到小说这个实体,实现了知识的学习。这些知识的学习是在训练中隐性地学习,而不是直接将外部知识的embedding加入到模型结构中(ERNIE-TsingHua[4]的做法),模型在训练中学习到了更长的语义联系,例如说实体类别,实体关系等,这些都使得模型可以学习到更好的语言表达。

        ERNIE的mask的策略通过三个阶段学习的,在第一个阶段,采用的是BERT的模式,用的是basic-level masking,然后再加入词组的mask(phrase-level masking), 然后再加入实体级别entity-level的mask。

 1-1 Basic level masking 

        第一阶段,采用基本层级的masking,使用与BERT一样的基础Mask机制,同样是15%的Mask概率,随机mask掉中文中的一个字。

        在这个阶段,模型难以获得高级别的语义知识的建模能力。

1-2 Phrase level masking

        第二阶段,采用词组(短语)级别的MASK机制,对于英文文本,使用lexical analysis工具获取短语的边界,对于中文或者其他语言的文本,使用对应语言的分词/分段工具,来得到单词/短语。mask掉句子中一部分词组,然后让模型预测这些词组。

        在这个阶段,词组的信息就被encoding到word embedding中了。

1-3 Entity level masking

        在第三阶,使用实体级别的Mask机制,如:人名,机构名,商品名等,在这个阶段被mask掉。

        在这个阶段,首先会解析出句子中的所有实体(应该是通过命名实体识别模型,论文未明确说明),然后Mask掉某些实体,并进行预测。模型在训练完成后,也就学习到了这些实体的信息。

        通过这三个阶段的预训练学习,模型可以通过更丰富的语义信息,得到增强的词表征。

         从整个语料库中抽取10%的训练数据来验证知识掩蔽策略的有效性。结果如表所示。在基线词级屏蔽的基础上增加短语级屏蔽可以提高模型的性能。在此基础上,增加了实体级屏蔽策略,模型的性能得到了进一步提高。此外,结果还显示,在预训练数据集规模大10倍的情况下,在XNLI测试集上实现了0.8%的性能提升。

2 Heterogeneous Corpus Pre-training

        ERNIE 1.0 借助百度在中文社区的强大能力,使用了各种异质(Heterogeneous)的数据集进行预训练。抽取了混合语料库中文维基百科(Chinese Wikepedia)、百度百科(Baidu Baike)、百度新闻(Baidu news)和百度贴吧(Baidu Tieba )。句子的数量分别为21M、51M、47M、54M。

        百度百科包含了用正式语言编写的百科全书文章,作为语言建模的有力基础。百度新闻提供有关电影名称、演员名称、足球队名称等最新信息。百度贴吧是一个类似于Reddits的开放式讨论区,每个帖子都可以被视为一个对话线程。贴吧语料库被用于我们的DLM任务,这将在下一节讨论。

        对汉字进行繁体到简体的转换,并对英文字母进行大写到小写的转换。最终词表大小为17,964个unicode字符的共享词汇。

3 DLM (Dialogue Language Model) task

        百度贴吧属于对话类型的数据,对话数据对语义表征是很重要的,因为一个问题下的回答通常下是相似的。为了适应多轮的贴吧数据,ERNIE在Query-Response的对话结构下,使用一种新的DLM (Dialogue Language Model) 任务。DLM还增加了任务来判断这个多轮对话是真的还是假的。

        对话的数据对语义表示很重要,因为对于相同回答的提问一般都是具有类似语义的,不同于BERT的输入形式,ERNIE能够使用多轮对话的形式,采用的是三个句子的组合,与BERT添加标志的方式一致,采用[CLS]和[SEP]完成对句子的区分,形成S1[SEP]S2[SEP]S3[SEP] 的格式。

        这种组合可以表示多轮对话,例如QRQ,QRR,QQR。Q:提问,R:回答。

        为了表示dialog的属性,句子添加了dialog embedding组合,这个和segment embedding很类似。

        负样本会随机替换掉句子的问题或者回答,模型需要预测它是正样本还是负样本,类似于NSP和SOP。
        DLM任务可以让ERNIE学习对话之间的内在关系,这也可以提升模型语义表征的学习能力。

         对话语言模型。源句:[cls] How [mask] are you [sep] 8 . [sep] Where is your [mask] ?[sep]. 目标句子(预测的词):old,8,hometown)

        像BERT中的MLM一样,应用掩码来强制模型预测以查询和回应为条件的缺失词。此外,我们通过用随机选择的句子替换查询或回应来产生虚假样本。

        DLM任务帮助ERNIE学习对话中的隐含关系,这也增强了模型学习语义表征的能力。DLM任务的模型结构与MLM任务的结构兼容,因此它与MLM任务交替进行预训练。

        使用所有训练语料的10%,以不同的比例来说明DLM任务对XNLI开发集的贡献。我们在这些数据集上从头开始预训练ERNIE,并报告5次随机重启微调对XNLI任务的平均结果。详细的实验设置和开发集结果见表3,在这个DLM任务上,开发/测试的准确率提高了0.7%/1.0%。

 4 实验结果

        ERNIE被应用于5个中文NLP任务,包括自然语言推理、语义相似度、命名实体识别、情感分析和问题回答。

        1.自然语言推理

        跨语言自然语言推理(XNLI)语料库是MultiNLI语料库的一个众包集合。 这些对子都有文本导出的注释,并被翻译成包括中文在内的14种语言。标签包含矛盾、中性和蕴涵的内容。

        2.语义相似性

        大型中文问题匹配模型(LCQMC)旨在识别两个句子是否具有相同的意图。 数据集中的每一对句子都与一个二进制标签相关联,表明这两个句子是否有相同的意图,该任务可以被形式化为预测二进制标签。

        3.命名实体识别

        MSRA-NER数据集是为命名实体识别而设计的,它由微软亚洲研究院发布。实体包含几种类型,包括人名、地名、组织名称等。这个任务可以被看作是一个序列标签任务。

        4.情感分析

        ChnSentiCorp(Song-bo)是一个数据集,旨在判断一个句子的情感。它包括几个领域的评论,如酒店、书籍和电子计算机。这个任务的目标是判断句子是积极还是消极的。

        5.检索问题回答

        NLPCC-DBQA数据集的目标是选择相应问题的答案。这个数据集的评价方法包括MRR和F1得分。
        下表展示了5个汉语NLP任务的测试结果。可以看出,ERNIE 1.0在所有任务上的表现都优于BERT,在这些中文NLP任务上创造了新的最先进的结果。在XNLI、MSRA-NER、ChnSentiCorp和NLPCC-DBQA任务中,ERNIE比BERT获得了超过1%的绝对准确率。

        为了验证ERNIE1.0的知识学习能力,使用了几个完形填空测试样本来检验该模型。在实验中,名字实体被从段落中删除,模型需要推断出它是什么。如下表比较了BERT和ERNIE的预测答案。

Reference:

详解百度ERNIE进化史及典型应用场景

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果又一黑科技产品 Apple Vision Pro,正式问世!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 在电影《钢铁侠》中,托尼通过简单的手势动作,配合空间中的虚拟界面,成功将贾维斯创造出来。 当时片中的这个镜头,让无数科幻迷为之疯狂&…

pyspark数据输入

学习目标: 现在只需要知道PDD是一个数据集。 【运行实例(1)】: from pyspark import SparkConf, SparkContext # conf:创建对象;Sparkconf:创建入口;setMaster:运行方式&#xff1…

chatgpt赋能python:Python如何输出两个值

Python如何输出两个值 在Python编程中,经常需要输出多个值。下面我们来介绍几种常用的方法。 方法一:使用逗号分隔符 使用逗号分隔符可以在一行代码中输出多个值。例如: a, b 1, 2 print(a, b) # 输出 1 2在输出时,多个值之…

图解未成年人个人信息保护要求(附下载)

未成年人互联网普及率持续提升。据2023年中国互联网络信息中心发布的第51次《中国互联网络发展状况统计报告》数据,2021年我国未成年人互联网普及率达96.8%;截至2022年12月,使用过短视频的青少年群体占比65.6%,未成年人已成网络参…

【Linux:进程间信号】

文章目录 1 生活角度的信号2 技术应用角度的信号3 信号的产生3.1 由系统调用向进程发信号3.1.1 signal3.1.2 kill3.1.3 raise 3.2 由软件条件产生信号3.3 硬件异常产生信号3.4 通过终端按键产生信号3.5 总结思考一下 4 信号的保存4.1信号其他相关常见概念4.2在内核中的表示4.3 …

如何评价 Facebook 发布的数字货币 Libra?

一句话总结:Libra 最大的亮点,在于它是 Facebook 做的。 随着数字货币市场的迅速发展,各类加密货币层出不穷。然而,在这个领域中,Facebook 所推出的 Libra 显得尤为引人关注。那么,Libra 到底有何特点&…

专家助阵!IoTDB X EMQ 智慧工厂主题 Meetup 讲师曝光!

期待已久的智慧工厂主题 Meetup 活动将在 4 天后线下线上同步举办! 天谋科技将联手 EMQ,通过数据基础设施平台的核心技术与实践经验分享,提供流程协同、运营提效、生产质量保障等智能制造目标的可行方案。快来在推文结尾预约直播,…

【大数据工具】Flink集群搭建

Flink 集群安装 1. 单机版 Flink 安装与使用 1、下载 Flink 安装包并上传至服务器 下载 flink-1.10.1-bin-scala_2.11.tgz 并上传至 Hadoop0 /software 下 2、解压 [roothadoop0 software]# tar -zxvf flink-1.10.1-bin-scala_2.11.tgz3、创建快捷方式 [roothadoop0 soft…

100天精通Python(可视化篇)——第90天:Pyecharts可视化神器基础入门

文章目录 专栏导读一、pyecharts 介绍1. 简介2. 版本说明 二、pyecharts 特点三、pyecharts 安装四、基本步骤五、快速开始1. 数据准备1)类别数据2)时间数据3)颜色数据4)地理数据5)世界人口数据6)选择数据7…

Netty核心源码剖析(三)

1.Pipeline,Handler和HandlerContext创建源码剖析 1.1.三者的关系 1>.每当ServerSocket创建一个新的连接,就会创建一个Socket,对应的就是目标客户端; 2>.每一个新创建的Socket都将会分配一个全新的ChannelPipeline(以下简称pipeline); 3>.每一个ChannelPipeline内…

LKY_OfficeTools 一键优雅的安装并激活你的Office

何为优雅? 说到Office办公软件 相信都不陌生,一般包括Word、Excel、PowerPoint默认三件套,和Outlook、OneNote、Access。 几乎每台电脑都会配置的 但大多数的情况下 都是先去软件仓库下载 Office 然后使用激活工具去激活Office 这种操作听起…

国内首款医疗大语言模型MedGPT发布,专业医疗标注数据成关键

5月25日,国内互联网医院、慢病管理平台医联今日正式发布了自主研发的基于Transformer架构的国内首款医疗大语言模型——MedGPT。 与通用型的大语言模型产品不同,MedGPT主要致力于在真实医疗场景中发挥实际诊疗价值,实现从疾病预防、诊断、治疗…

机器学习 day14 ( 神经网络,计算机视觉中的引用:人脸识别和汽车识别)

神经网络的发展 最开始的动机:是通过构建软件来模拟大脑,但今天的神经网络几乎与大脑的学习方式无关 我们依据大脑中的神经网络,来构建人工神经网络模型。左图中:一个神经元可以看作一个处理单元,它有很多的输入/树突…

图论与算法(6)最小生成树

1. 带权图及实现 1.1 带全图概述 带权图是一种图形结构,其中图中的边具有权重或成本。每条边连接两个顶点,并且具有一个与之关联的权重值,表示了两个顶点之间的某种度量、距离或成本。 带权图可以用邻接矩阵或邻接表来表示。邻接矩阵是一个…

集成电路(芯片)中VCC、VDD、VSS、GND和AGND等概念

IC芯片 Integrated Circuit Chip 即集成电路芯片,是将大量的微电子元器件(晶体管、电阻、电容、二极管等) 形成的集成电路放在一块塑基上,做成一块芯片。目前几乎所有看到的芯片,都可以叫做 IC芯片 。 SOP与DIP SOP(Small Outline Package…

浅谈备考 系统架构师

这里写自定义目录标题 准备步骤考试形式考试内容学习考试内容训练考试内容其他觉得好的同类参考资料2023年度计算机技术与软件专业技术资格(水平)考试工作计划 第一次产生萌芽的时候三年前,当初备考没有想过要评职称或者成为什么人才&#xf…

antd3和dva-自定义组件初始化值的操作演示和自定义组件校验

前言 在antd3 (react)版和dva下,好像有的项目使用的是getFieldDecorator来获取表单的值的,现在就遇到了一个问题,getFieldDecorator针对antd自带的组件实现效果很好,除去一个form.item只能有一个getFieldDecorator的限制,其他都很好用,但是假如是自定义组件或者说在getFieldDec…

Linux内存管理7——深入理解 slab cache 内存分配全链路实现

1. slab cache 如何分配内存 当我们使用 fork() 系统调用创建进程的时候,内核需要为进程创建 task_struct 结构,struct task_struct 是内核中的核心数据结构,当然也会有专属的 slab cache 来进行管理,task_struct 专属的 slab cac…

iperf3使用

目录 写在前面:带宽和吞吐量安装使用测试TCP吞吐量测试UDP吞吐量测试上下行带宽(TCP双向传输)测试多线程TCP吞吐量测试上下行带宽(UDP双向传输)测试多线程UDP吞吐量 iperf3常用参数通用参数server端参数client端参数 i…

一种星载系统软件定义平台的设计与实现.v3

摘要 针对星载综合射频开放式系统架构,为了在软件综合层面上实现波形应用软件与具体平台的解耦,设计并实现了一种基于软件通信架构(Software Communication Architecture, SCA)的软件平台及其环境工具。通过解决星载平台软件的分…