目前效果较好的大部分的nlp任务都会应用预训练语言模型的迁移知识,主要是采用两阶段的模型。第一阶段进行预训练,一般是训练一个语言模型。最出名的是BERT,BERT的预训练阶段包括两个任务,一个是Masked Language Model,还有一个是Next Sentence Prediction。通过预训练能够利用海量的无标注的语料,以从中抽取出语言学特征,并在第二阶段结合具体任务,把这些从海量无标注语料中抽取出的语言学特征作为特征补充,迁移到下游任务中进行应用。第一阶段预训练出的模型具有很强的泛化能力,一方面是因为语料非常丰富能够得到很好的表征,另一方面是因为使用多层的Transformer作为特征提取器能够抽取出泛化能够更强的特征。从GPT2.0可以看出加大用于进行预训练模型的语料,同时提高这些语料的质量能够使训练出的模型更具泛化性能。从微软提出的多任务深度神经网络以及清华和华为ERNIE: Enhanced Language Representation with Informative Entities以及百度的ERNIE: Enhanced Representation through Knowledge Integration来看补充更多的先验知识供预训练语言模型学习能够使模型泛化能力更高。ERNIE相当于融入了知识图谱,清华的ERNIE在BERT的MLM以及Next Sentence Prediction任务的基础上增加了denoising entity auto-encoder (dEA)任务,这是自然而然应该想到了,MLM相当于在字上的降噪,增加了实体信息,自然应该在实体层次进行降噪。

在具体的第二阶段的任务中我们只需结合第一阶段的预训练(pre-train)模型简单的修改一些输出层,再用我们自己的数据进行一个增量训练,对权重进行一个轻微的调整(fine-tune)。例如BERT训练好的模型会保存在checkpoint中,在我们进行具体的第二阶段的任务时,例如分类任务,只需传入当前的训练语料会加载预训练模型的图以及训练好的具备丰富特征的参数,因为预训练好的模型泛化能力很强,所以具体任务中只需要对可训练的这些参数进行fine-tuning(微调)便能满足当前任务,因为可用的标注语料很少,只用这些语料通过特征抽取器可能并无法抽取出泛化能力强的表征,通过预训练的模型能够进行很好的特征补充,使得抽取出的特征更加适用于我们具体的任务。结合具体任务的训练语料对可训练的参数进行微调,然后把这些微调后的参数以及图保存起来,以便于我们进一步进行预测时使用。

论文的详细介绍参考另一篇博客:https://www.cnblogs.com/dyl222/p/10960842.html

转载于:https://www.cnblogs.com/dyl222/p/10779742.html

BERT、MT-DNN、GPT2.0、ERNIE相关推荐

  1. sql server 2008 r2卸载重装_免费下载:Intouch软件、Windows操作系统、SQL数据库,VB6.0、C#...

    为大家整理了常用的Windows操作系统和安装软件,基本上都是经过我们项目测试OK的版本,以后项目调试就齐全了,不用再"东奔西走","小鹿乱撞"了.整理不易,若 ...

  2. Android调用相册、相机(兼容6.0、7.0、8.0)

    又好久没有写博客了,好习惯不能断,该写点就得写点,今天带来的笔记是关于Android 项目调用系统相机 与调用系统相册的之后拿到照片的基本操作,我感觉好多人还是不太熟悉的哈.项目兼容 Android ...

  3. 解析:数组名a、数组名取地址a、数组首地址a[0]、数组指针*p

    数组和指针向来就是傻傻分不清,当他们一起出现的时候就更加懵逼. 1 解析不同变量之间的区别: 数组名a: 数组名可以作为数组第一个元素的指针.我们由数组和指针的关系知道,a代表这个地址数值,它相当于一 ...

  4. tkinter中分割线Separator、frame控件pack_propagate(0)、frame滚动条的用法

    1.设置屏幕最大化方法: #设置窗口最大化: #方法一 root = Tk() w, h = root.maxsize() root.geometry("{}x{}".format ...

  5. Java中collection.toArray(new String[0])、resultSet.toArray(new Integer[0])、Set.toArray()new 数组的性能比较

    一.在调用Set的toArray()方法的时候 在使用HashMap的时候,它的keySet()方法将返回一个Set集合 且Set是继承自Collection的,在使用toArray()的时候其实转换 ...

  6. C++ 数组名a、数组名取地址a、数组首地址a[0]、数组指针*p

    数组名a: 数组名可以作为数组第一个元素的指针.由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址.数组中的其他元素可以通过a的位移 ...

  7. Android 系统自带图片裁剪功能(适配7.0、8.0、对了还有小米手机)

    前段时间写了如何获取相册和拍照之后的照片并且进行显示和上传,这一次是如何进行圆形图像制作,经常看我写的笔记的人会知道,我很懒.那么我就懒的自定义了,目前需求就用原生的就好了,大神的轮子,我会在后面进行 ...

  8. Julia入门-0、在Windows下安装Julia

    文章目录 0.前言 1.相关网站 2.Windows 系统下安装Julia 3.Julia 交互式命令窗口 0.前言 Julia 是一个面向科学计算的高性能动态高级程序设计语言. Julia 最初是为 ...

  9. DL之CNN:卷积神经网络算法简介之卷积矩阵、转置卷积(反卷积Transpose)、膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略

    DL之CNN:卷积神经网络算法简介之卷积矩阵.转置卷积(反卷积Transpose).膨胀卷积(扩张卷积Dilated/带孔卷积atrous)之详细攻略 目录 卷积矩阵的简介 卷积.转置卷积--Tran ...

最新文章

  1. cmd应用基础 扫盲教程
  2. html进制转换js代码,JS中的进制转换以及作用
  3. redis和memcached缓存
  4. java sound 多线程同一音频文件_Java在编程语言中占据何等优势?
  5. 基于Tensorflow实现DeepFM
  6. 谁扰乱了中国的工资秩序?
  7. 监控系统哪家强?eBay 在监控系统上的实践应用!
  8. 1500个常用计算机单词
  9. 用firework中合并图标的方法
  10. 使用dockerfile搭建java运行环境
  11. 为啥海康摄像头网页无法预览
  12. 第十三届蓝桥杯复盘及未来规划
  13. css实现图片旋转360°
  14. FigDraw 11. SCI 文章绘图之小提琴图 (ViolinPlot)
  15. 58同城校招题-判断既是回文,又是质数的数字
  16. Halcon 单目标定,畸变矫正,图像坐标系转世界坐标系
  17. 神经网络 注意力机制 Q K V 理解
  18. 音圈电机工作原理与直线电机的对比
  19. 今日头条笔试题(一)
  20. 2019年中国在线酒店预订行业发展分析报告

热门文章

  1. iTerm2 for MacOS(终端模拟器/终端仿真器/命令终端工具)设置详解
  2. Linux 命令之 pico -- 文本编辑器
  3. java 插入mysql 日期_Java日期-插入数据库
  4. dalsa工业相机8k参数_工业传感器再掀巨浪 | Teledyne 以80亿美元收购FLIR,互补性产品组合又增体量...
  5. wxpython界面切换_wxpython实现按钮切换界面的方法
  6. mac json格式化工具_简洁好用的工具都是相似的
  7. java 监听 变量_[Java学习小记]使用PropertyChangeSupport来监听变量的变化
  8. 计算机科学与技术及应用,计算机科学与技术的应用及发展趋向
  9. Google or Baidu
  10. 什么是四路串口服务器?