预训练语言模型综述(二)—— 预训练任务及训练策略

2023-05-16

本系列文章是笔者以邱锡鹏老师《Pre-trained Models for Natural Language Processing: A Survey》为主要参考材料所做的关于“预训练语言模型综述”的记录,所涉及之素材也包括其他相关综述与未被纳入此综述的工作,分享出来与大家交流讨论。此篇为系列第二篇,记录预训练任务及训练策略。

第一、三篇跳转可阅:

预训练语言模型综述(一)—— 预训练语言模型及其历史
预训练语言模型综述(三)—— 预训练语言模型的实际使用

预训练任务

预训练任务按学习范式可归类成监督学习、无监督学习和自监督学习三类任务。自监督学习略微特殊,它也有输入和输出标签,所以训练方法其实和监督学习一致,但是它的标签是自动生成而非人工标注的,最典型的就是Masked Language Model(MLM)任务了(监督学习这里特指标签由人工标注的情况)。受限于训练语料的丰富程度,目前基于监督学习的预训练任务仅有机器翻译(Machine Translation),其他主流预训练任务都是无监督或自监督的。随着时间的推移,也有可能发展出其他更为细化的、基于监督学习的预训练任务。总的来说,目前预训练任务的具体分类可参考下表:
预训练任务的分类

1. Language Modeling

Language Modeling/Probabilistic Language Modeling(LM) 是经典概率密度估计问题,属无监督学习问题,可以通过MLE来估计。
通常特指自回归语言模型或单向语言模型,因此存在只编码了从左到右的上下文信息的缺点;改进版本是BiLM,即同时编码从左到右的上下文信息和从右到左的上下文信息。

2. Masked Language Modeling

掩码语言建模(Masked Language Modeling)归类为自监督学习问题,并通常作为分类问题来处理。
BERT的MLM是遮挡一个词,然后用含遮挡词标记的整个输入序列来预测被遮挡的词;同时由于fine-tuning时并没有mask token,BERT采取的办法是在数据预处理时选择句子15%的词作为目标掩码词(这些词将不再改变,称之为静态masking),并让数据生成器80%的时间内用[Mask]替代目标遮挡词、10%时间用随机词替代目标遮挡词、10%时间用目标遮挡词替代目标遮挡词。
从Mask Token(s)的角度来看,不同于BERT只mask一个词,Seq2Seq MLM用到Seq2Seq模型,被遮挡了多个连续的词的输入序列由Encoder进行编码,再由Decoder解码被遮挡词序列;SpanBERT也是遮挡多个连续词,同时还引入了用边界预测Mask Tokens的损失。
从执行Masking的角度,不同于BERT的静态masking,RoBERTa采用动态masking,它没有在预处理的时候执行 masking,而是在把序列输入模型时动态生成 mask,并且遮挡词不是固定的,有利于模型学习各种掩码策略下语料表现出来的特征。
还有一类更为综合的MLM,是将知识融入到掩码策略中,典型代表就是百度的ERNIE了。百度的ERNIE在掩码时额外使用了短语级别和实体级别的掩码,藉此向语言模型中引入了知识。

3. Permuted Language Modeling

置换语言建模(Permuted Language Modeling)的开山之作XLNet指出,掩码语言建模中使用的一些特殊符号,尤其是[MASK],在下游任务中时不存在的,因此在预训练过程和微调过程中就存在一定的gap。所以,XLNet的作者就提出使用置换来替代掩码,即使用置换词而不使用掩码[MASK]。

4. Denoising Autoencoder (DAE)

上述MLM、PLM都属于基于Denoising Autoencoder来进行预训练的方式,即对一个输入进行一定干扰,然后让模型来恢复未受干扰的原始输入。此外还有文本填充(多个Token被同时替换,任务的目标是预测被替换Token的数量)、句子置换(置换文本中句子的顺序)等可用于干扰输入的方法。

5. Contrastive Learning (CTL)

不同于上述几种预训练任务(都是自编码形式),对比学习提供了一种全新的无监督预训练方式,将来也很有希望成为NLP中另一种大行其道的训练方式。对比学习的核心是通过对比进行训练。例如,对比合法的句子与不合法的句子之间的相似度,从而调整训练。邱老师的综述中列举了替换词检测(RTD)、下一句预测(NSP)等使用了对比学习的工作。

训练策略

语料的使用

预训练语言模型离不开对大规模语料的使用。我们可以将语料大致可以分为三类:通用语料、特定领域语料、下游任务直接相关的语料。一般预训练中所用是大规模通用语料与特定领域语料。ULMFiT提出了三阶段训练,其中预训练包含两个阶段,第一阶段使用大规模通用语料进行语言模型预训练,使其学习语言的通用规律;第二阶段使用大规模特定领域语料,得到适合于特定领域的预训练模型,最后再在具体任务上进行微调。此外,从语言种类的角度,多语言预训练语言模型的训练中也存在语料使用的问题。multilingual BERT使用共享词汇表来解决多语言语料的使用问题, XLM则是在此基础上进一步引入了翻译语言建模(translation language modeling),以提升多语言预训练语言模型的效果。

预训练任务的选择

我们在上一部分介绍了各种预训练任务,这些预训练任务都有这各自的特点和优势,在选择应当遵循一些基本的原则。从效率角度考虑,与其他任务相比,对比学习具有更小的计算复杂度,在资源受限时可做优先考虑。从效果角度考虑,需要考虑预训练任务对下游任务的影响,毕竟这才是最终目的。例如:NSP可以使预训练语言模型理解两句话之间的关系,因此针对问答、自然语言推理等下游任务,可以考虑NSP作为预训练任务训练预训练语言模型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预训练语言模型综述(二)—— 预训练任务及训练策略 的相关文章

  • NTFS for Mac - 免费让 Mac 原生支持NTFS读写

    使用 Mac 电脑的朋友可能都遇过 xff0c 在使用 NTFS 文件格式的移动硬盘或U盘时 xff0c 默认只能以 只读 模式打开 xff0c 也就是说你只能读取复制文件而不能移动 修改 重命名或删除里面的东西 这确实很不便 xff0c
  • C++ 将十六进制字符串转换为二进制字符串

    C 43 43 将十六进制字符串转换为二进制字符串 前言一 源代码 前言 一种简单的方法将十六进制字符串转为二进制字符串 xff0c 不限制十六进制的字节数 一 源代码 传入的十六进制字符串需要转换为大写 xff01 X toupper s
  • python——paramiko详解

    目录 一 SSHClient类 ssh远程连接服务器 connet 远程主机没有本地主机密钥或HostKeys对象时的连接方法 xff0c 需要配置set missing host key policy policy 远程执行命令 在远程服
  • 绿盟网站安全防护服务(vWAF)

    平台 xff1a linux 类型 xff1a 虚拟机镜像 软件包 xff1a basic software devops nsfocus security waf 服务优惠价 按服务商许可协议 云服务器费用 查看费用 立即部署 产品详情
  • 华为服务器操作系统EulerOS V2.0

    平台 xff1a linux 类型 xff1a 虚拟机镜像 软件包 xff1a java 1 8 0 php 5 4 16 python 2 7 5 qt 4 8 5 tomcat 7 0 69 basic software euleros
  • 星环一站式大数据平台-4.6

    平台 xff1a arm 类型 xff1a ARM 模板 软件包 xff1a 星环一站式大数据平台 basic software big data hadoop tdh tos transwarp 大数据 星环科技 星环一站式大数据平台 云
  • 故障排除:无法启动、访问或连接到 Azure 虚拟机上运行的应用程序

    有多种原因可导致无法启用或连接到在 Azure 虚拟机 VM 上运行的应用程序 原因包括应用程序未在预期端口上运行或侦听 侦听端口受到阻止 xff0c 或网络规则未将流量正确传递到应用程序 本文说明有条理地找到问题并更正问题 如果在使用 R
  • 文件系统损坏导致虚拟机无法正常启动的问题及解决方法

    简介 计算机的文件系统是一种存储和组织计算机数据的方法 xff0c 它使得对其访问和查找变得容易 xff0c 文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念 xff0c 用户使用文件系统来保存数据不必关心
  • 连接到 Azure (Resource Manager) 上的 SQL Server 虚拟机

    概述 本主题介绍如何连接到运行于 Azure 虚拟机的 SQL Server 实例 它介绍了一些常规连接方案 xff0c 并提供了在 Azure VM 中配置 SQL Server 连接的详细步骤 Note Azure 具有用于创建和处理资
  • 网络安全组(NSG)简介

    韩源 xff0c 资深工程师 xff0c 存储和灾备专家 Azure 网络安全解析 作为公有云最重要环节之一 xff0c 网络安全一直是 Azure 的重中之重 在 Azure 中 xff0c 多种安全技术共同构成了立体的网络保护 xff1
  • gnome manjaro设置无法打开

    本文转载自 xff1a https joshtronic com 2018 04 02 unable to open gnome settings on arch linux after gnome upgrade 我经常会写关于主题的博客
  • 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM

    本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘 计划迁移到托管磁盘 本部分可帮助你针对 VM 和磁盘类型做出最佳决策 位置 选取 Azure 托管磁盘可用位置 如果要迁移到高级托管磁盘 xff0c
  • 适用于 Azure 虚拟网络的常见 PowerShell 命令

    如果想要创建虚拟机 xff0c 需要创建虚拟网络或了解可在其中添加 VM 的现有虚拟网络 通常情况下 xff0c 创建 VM 时 xff0c 还需考虑创建本文所述资源 有关安装最新版 Azure PowerShell 选择订阅和登录到帐户的
  • 创建包含多个子网的虚拟网络

    本教程介绍如何创建包含独立公共子网和专用子网的基本 Azure 虚拟网络 虚拟网络中的资源可以彼此通信 xff0c 并可以与连接到虚拟网络的其他网络中的资源通信 可在虚拟网络中相同或不同的子网中创建 Azure 资源 xff0c 如虚拟机
  • matplotlib笔记

    文章目录 matplotlib笔记cmap选择cmap创建cmap 子图断点轴 Broken axis 子图大小 坐标轴scale matplotlib笔记 有一个在线使用matplotlib的网址 cmap 选择cmap choose c
  • Fortran pgplot安装

    pgplot 首先确保已经安装了gfortran 以下为linux下安装流程 从这里下载安装包解压tar zxvf pgplot5 2 tar gz到某个目录比如 src pgplot创建一个文件夹xxx pgplot用于安装 xff0c
  • CUDA和Compute Capability

    CUDA Enabled GPUs Cuda支持的GPU 在这个参考包含了GPU的Compute Capacity列表 比如我的笔记本搭载了一块Geforce830m xff0c 查询列表就可以发现如下图 那么这块830M GPU的Comp

随机推荐

  • Javascript笔记

    数据类型 基本类型 primitive value 简单的数据段 xff0c 包括 Undefined Null Boolean Number String初始化只使用2原始字面量形式 xff0c 如果使用new则会创建Object无法加入
  • 前端面试题笔记

    前端面试八股 发现了一个地方包含了很多前端面试八股 1 用户喜好 为了不断优化推荐效果 xff0c 今日头条每天要存储和处理海量数据 假设有这样一种场景 xff1a 我们对用户按照它们的注册时间先后来标号 xff0c 对于一类文章 xff0
  • Matlab:数据写入Excel

    使用xlswrite 可以help xlswrite查看用法 xlswrite filename A xlswrite filename A sheet xlswrite filename A xlRange xlswrite filena
  • python处理FITS 1:astropy介绍与安装

    1 1介绍 astropy是一个开源的python库 xff0c 专门用于处理天文方面的数据 astropy包是Astropy 项目的内核 xff0c 这个项目致力于发展一个鲁棒性较好的伴随子包 xff08 能兼容优秀的astropy这个库
  • 使用sublime编译运行C程序

    1 打开sublime xff0c 找到顶部工具 xff08 Tool xff09 菜单 gt 编译系统 xff08 Build System xff09 gt 新编译系统 xff08 New Build System xff09 xff1
  • python处理FITS文件 2:astropy.io.fits介绍及打开FITS文件

    astropy这个库有很多功能 xff0c 因为本文主要涉及FITS文件 xff0c 因此仅仅使用astropy io fits 1介绍 astropy io fits包提供FITS文件操作的函数接口 xff0c 使得用户可以忽略FITS文
  • python处理FITS 3:处理头文件和数据单元

    1头文件处理 在获得hdul后 xff0c 可以使用两个属性 header data分别获得头文件和数据单元 gt gt gt hdul 61 fits span class hljs built in open span fits ima
  • Django使用pip安装

    1 pip安装 pip是python的包管理器 xff0c 使用这个工具可以很轻松安装各种python库 直接运行 pip install django 然后就可以安装了 1 1安装问题 输入 pip install django 报错 x
  • 内网穿透方式

    ssh 内网中的机器A 需要访问内网中的c 64 C 公网中的机器B xff0c 用户名b 内网中的机器A ssh CNR 7280 C 22 b 64 B 公网中的机器B ssh fCNL 7279 localhost 7280 loca
  • vue笔记

    rollup 专注于JavaScript打包不包含无关代码 对比webpack tree shaking 最开始由rollup实现 xff0c 之后被webpack借鉴配置output format xff0c 选择输出资源的模块形式 xf
  • geant4学习

    文章目录 配置vscode configuration materialgeant4的类及成员函数physicsList选择构建Physics List 粒子粒子类型能量损失重子和离子 杂项getEnergyoptical photon的速
  • C++枚举与字符串转换工具类

    C 43 43 枚举与字符串转换工具类 最近需要一个能够在字符串和枚举值之间互相转换的功能 xff0c 因为C 43 43 没有对枚举值进行遍历 反射之类的操作 xff0c 不像Java那样可以轻松搞定 网上找到一些代码感觉用起来有点不爽
  • iOS 使用xmpp做聊天客户端

    可以号称史上最详细的xmpp做iOS客户端聊天介绍 简介 xff1a XMPP协议是一种基于Socket长连接 以XML格式进行基本信息交换 C S S S多种架构的聊天协议 XMPPServer 基于XMPP协议的服务端 例如eJabbe
  • 基于树莓派的蓝牙出勤追踪系统

    本文介绍一个基于树莓派的蓝牙出勤追踪系统 xff0c 用于记录和监督自己的工作时长情况 代码与安装指引已更新在GitHub上 xff1a 树莓派蓝牙出勤追踪系统 该系统使用树莓派扫描附近的蓝牙或蓝牙低功耗设备 xff0c 以无感方式收集出勤
  • Python的开发环境与实用工具

    Python的各种实用工具 xff0c 大致可以分为包管理 环境管理 编辑相关 xff08 代码补全 snippet等 xff09 调试工具 xff08 集成开发环境 xff09 笔记本构建工具Jupyter 接下来就介绍下我常用的工具吧
  • 更新系统grub

    1 查看分区 grub rescue gt ls 列出磁盘分区 hd0 hd0 msdos9 hd0 msdos8 hd0 msdos7 hd0 msdos6 hd0 msdos5 hd0 msdos2 hd0 msdos1 2 寻找ubu
  • 预训练语言模型综述(一)—— 预训练语言模型及其历史

    本系列文章是笔者以邱锡鹏老师 Pre trained Models for Natural Language Processing A Survey 为主要参考材料所做的关于 预训练语言模型综述 的记录 xff0c 所涉及之素材也包括其他相
  • 在远程服务器上部署JupyterLab 3.0

    近期 xff0c JupyterLab刚刚升级到3 0版本 xff0c 在安装与使用方面都有不小改进 xff0c 加之之前部署在树莓派上时遇到偶尔需要跟服务器之间做些文件交换的情况 xff0c 处理起来还是稍微麻烦了点 xff0c 所以趁着
  • 基于TensorFlow 2.x的一些CNN模块/网络的实现

    开源一些基于TensorFlow 2 x的CNN模块 网络的实现 xff0c 可能不定时更新 仓库链接 xff1a TensorFlow 2 Implementations of CNN Based Networks 目前的实现包括 xff
  • 预训练语言模型综述(二)—— 预训练任务及训练策略

    本系列文章是笔者以邱锡鹏老师 Pre trained Models for Natural Language Processing A Survey 为主要参考材料所做的关于 预训练语言模型综述 的记录 xff0c 所涉及之素材也包括其他相