预训练相关知识

1、上下文无关语义表示方式存在问题

     语义不同的词具有相同的表示,(apple 电子产品苹果/水果苹果)

     容易出现oov问题

2、神经语言编码器
2.1、序列模型

       cnn/rnn等,捕获局部信息和序列依赖信息,无法捕获长距离依赖。易训练

2.2、非序列模型

      树/图模型,transformer等,参数较多,难训练;表达能力较强,但需要大量的训练语料

3、预训练模型的引入原因

3.1、标注数据有限

3.2、无标签数据可以学习到通用数据的表示,用来初始化模型,加快特定任务的收敛

3.3、防止在小样本标注数据中模型过拟合

4、预训练任务

4.1、mlm:通常可以堪看成为类别为词汇量|V|大小的分类;由于pretrain和fine-tuning不一致,在预训练的过程中采用了比较trick的方式,80%的采用[mask],10%随机token,10%原来的token,例如bert

4.2、seq2seq mlm:被mask的token先扔给encoder,encoder再通过decoder进行解码,生产一个句子,mass、t5就是这些方式。

4.3、动态mlm:动态掩码的方式,每次构建min-batch时,动态构建sampling一次,确定需要sample的对象,例如RoBERTa

4.4、unified ml:包含双向mlm、单向ml、seq2seq ml

4.5、XLMs: 即cross-lingual language models(包含mlm和tlms两个任务),在一个双语序列上执行MLM;特别的,其TLMs (translation LMs)把一个parallel sentence 串接起来,扔给BERT。类似于输入的序列为“[/s] 我 爱 你 [/s] I love you [/s]”。

4.6、SpanBERT:sbo+mlm语言模型,一个span的掩码语言模型,span大小由几何分布的期望多次采样决定,span论文中的大小为4.4左右。类似于enire(实体掩码)和wwm bert(整个词全部掩码);无type embedding和nsp任务

4.7、structbert:nsp和sop的结合,预测上个句子/下个句子/随机句子三分类问题;一个span内随机打乱次的顺序,在已知词的情况下,预测词正确位置的概率。

4.8、xnet:,解决pretrain和fine-tuning的鸿沟,排序语言模型Permuted Language Modeling (PLM)被提出,PLM中,排列顺序是从输入文本中的所有可能的token排列中随机抽取的排列。选择一些目标token,依据排列顺序中目标token前的字符和输入文本原本顺序的自然位置,训练模型(引入two-stream self-attention 机制,实际中,由于收敛速度较慢,仅选择排列序列中的最后几个token作为目标token)。

4.9、dae:DAE 将输入部分的损坏(corrupted),模型目标是恢复成原始的未失真的输入 (MLM 属于一种DAE)。DAE应该不限于BART以下几种方法损坏输入:1)、Token Masking: 从输入中随机采样token,并用【MASK】替换,类似 MLM;2)、Token Deletion: 从输入中随机删除token,输出需确定删除token的位置;3)、Text Infilling: 类似SpanBERT,对多个文本跨度进行采样并替换为单个[MASK]令牌。4)、Sentence Permutation: 根据句号将文档分为多个句子,然后将这些句子随机排列。5)、Document Rotation: 均匀地选择一个token并旋转,以便从该token开始。此任务训练模型识别开始位置。

BART期望可以应用任何的预训练目标,实现NLP中NLU、NLG两大类任务的统一模型

4.10、CTLCTL核心思想是 通过比较来学习(learning by comparison)。与LM相比,CTL通常具有较少的计算复杂性,比较受欢迎。最小化x,与正负样本y+,y-的负项距离。

4.11、Deep InfoMax (DIM):序列的全局表示形式定义为上下文编码器f_{enc}(x) 输出的第一个token的隐状态。DIM的目的是计算得到的f_{enc}(x_{i:j})f_{enc}(\bar{x_{i:j}})f_{enc}(\bar{x_{i:j}})f_{enc}(\tilde{x_{i:j}})大, 其中 x_{i:j} 为从 i 到 j的n-gram, \bar{x_{i:j}} 为被mask的序列, \tilde{x_{i:j}} 为随机的负样本。n-gram中的span 是从高斯分布 N(5,1) 中采样,并截取长度为1~10的值。

4.12、Replaced Token Detection (RTD):RTD是通过上下文预测token 是否被替换。

ELECTRA 模型利用一个generator G 和一个 discriminator D 网络,采用两部策略对其进行训练:step1:仅对 G 网络 进行MLM任务训练;step2:用G 的权重初始化D, 然后将G frozen,而D去判断G输出中,每个token是否被替换过,下游任务采用D网络 fine-tune。这里用G来生成的反例,相比随机生成的反例,能大大提高任务难度。

当然此任务同样有pre-training 和 fine-tune不匹配的问题。

4.13、nsp任务:NSP任务目标是判断两个输入句子是否是连续的,以此学习两个句子之间的关系,从而使双句子形式的下游任务受益,例如QA和NLI任务。 构造数据集时,第二个句子有50%的概率是第一个句子实际的下一个句子,50%是随机的句子。

4.14、Sentence Order Prediction (SOP):SOP使用同一文档中的两个连续片段作为正例;使用两个连续片段,但顺序互换为反例。为了更好地建模句子之间的连贯性,ALBERT 采用SOP 来代替了 NSP。ALBERT 认为 NSP 将 topic prediction 和 coherence prediction糅合到了一个任务中。 因此该数据集构造情况下,模型仅仅是依靠了较容易的任务:topic prediction 就实现了分类。

5、模型对应的损失函数

6、模型对应的语料、参数量、性能

7、参考文献

NLP中预训练模型的综述I[深度长文-慎点] - 知乎 (预训练综述文章)

SpanBert:对 Bert 预训练的一次深度探索 - 知乎  (spanbert)

https://arxiv.org/pdf/2003.08271.pdf (21年前预训练模型的综述论文)

NLP预训练模型分类及预训练任务 - 知乎  (与这篇论文对应https://arxiv.org/pdf/2003.08271.pdf)

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

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

相关文章

罗德里格斯公式

1.点乘 A ⃗ ⋅ B ⃗ ∣ A ⃗ ∣ ∣ B ⃗ ∣ c o s ⟨ A ⃗ , B ⃗ ⟩ \vec{A} \cdot \vec{B} \left | \vec{A} \right | \left | \vec{B} \right | cos\left \langle \vec{A}, \vec{B} \right \rangle A ⋅B ​A ​ ​B ​cos⟨A ,B ⟩ 对应几何意义:向量 A ⃗…

STL-常用容器

string容器 string构造函数 string本质:类 string和char*区别: char* 是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。 特点: string类内部封装了很多成员方法 …

Android 12,调用系统库libft2.so 遇到的各种问题记录

问题前提,Android 12系统,vendor静态库中调用 libft2.so。(vendor静态库中调用libft2.so会简单点,没这么麻烦) 【问题1】 (native:vendor) can not link against libft2 (native:platform) 本地debug尝试修改: 为了本地环境debug调试方便,我找了个 mk文件,在里面添加了…

Centos安装显卡

1、安装基础环境 yum -y install epel-release yum -y install gcc kernel-devel kernel-headers 2.对应内核版本 yum info kernel-devel kernel-headers Cat /proc/version 3、yum安装版本不对应。则去官网手动下载 离线安装对应的rpm: https://pkgs.org/dow…

RPC框架学习

一、设计目标 RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者&a…

eCharts实现漏斗图

需求:像漏斗那样进行层层筛选,进行一个可直接看见过程的图表 效果: 代码: option { //标题title: {text: Funnel,left: left,top: bottom}, //刷新加下载toolbox: {orient: vertical,top: center,feature: {restore: {},saveA…

Spring Cloud版本选择

SpringCloud版本号由来 SpringCloud的版本号是根据英国伦敦地铁站的名字进行命名的,由地铁站名称字母A-Z依次类推表示发布迭代版本。 SpringCloud和SpringBoot版本对应关系 注意事项: 其实SpringBoot与SpringCloud需要版本对应,否则可能会造…

资料分析笔记

统计术语 现期:现在的时间 基期:之前的时间 现期量 基期量 增长量(有正负) 增长率 【增幅、增速、r】(有正负) 同比:例:2014年5月 和 2013年5月 环比:例:20…

《算法竞赛·快冲300题》每日一题:“矩阵”

《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 质…

YOLOv5如何训练自己的数据集

文章目录 前言1、数据标注说明2、定义自己模型文件3、训练模型4、参考文献 前言 本文主要介绍如何利用YOLOv5训练自己的数据集 1、数据标注说明 以生活垃圾数据集为例子 生活垃圾数据集(YOLO版)点击这里直接下载本文生活垃圾数据集 生活垃圾数据集组成&…

005:vue2使用vue-type-writer实现打字机效果

Vue Type Writer是一个Vue.js 2打字机效果组件&#xff0c;支持像打字机一样模仿键入文本。 文章目录 1. 效果2. 安装使用 1. 效果 2. 安装使用 npm 安装 npm install vue-type-writer --save完整代码 <template><div class"app-container home"><…

面向使用者的git与gerrit相关笔记

git与gerrit相关笔记 前言一、gerrit是什么&#xff1f;二、一些配置1.先配置全局email 和name2.gerrit配置ssh key3.可能遇到的问题 三、提交代码和合并冲突常用Git命令三件套严格的要求 总结 前言 本文是介绍什么是gerrit和工作中git与gerrit相关的命令来避免一些提交代码的…

JavaScript中的代理对象(proxy)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 创建代理对象⭐ 使用代理对象⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友…

负载均衡 —— SpringCloud Netflix Ribbon

Ribbon 简介 Ribbon 是 Netfix 客户端的负载均衡器&#xff0c;可对 HTTP 和 TCP 客户端的行为进行控制。为 Ribbon 配置服务提供者地址后&#xff0c;Ribbon 就可以基于某种负载均衡算法自动帮助服务消费者去请求。Ribbon 默认提供了很多负载均衡算法&#xff0c;例如轮询、随…

leetcode:2446. 判断两个事件是否存在冲突(python3解法)

难度&#xff1a;简单 给你两个字符串数组 event1 和 event2 &#xff0c;表示发生在同一天的两个闭区间时间段事件&#xff0c;其中&#xff1a; event1 [startTime1, endTime1] 且event2 [startTime2, endTime2] 事件的时间为有效的 24 小时制且按 HH:MM 格式给出。 当两个…

使用 PyTorch 的计算机视觉简介 (5/6)

一、说明 本文主要介绍CNN中在pytorch的实现&#xff0c;其中VGG16网络&#xff0c;数据集来源&#xff0c;以及训练过程&#xff0c;模型生成和存储&#xff0c;模型调入等。 二、预训练模型和迁移学习 训练 CNN 可能需要大量时间&#xff0c;并且该任务需要大量数据。但是&am…

python随手小练3

题目&#xff1a; 写出一个判断闰年的python代码&#xff1a; 闰年的条件&#xff1a; 如果N能够被4整除&#xff0c;并且不能被100整除&#xff0c;则是闰年 或者&#xff1a;N能被400整除&#xff0c;也是闰年 即&#xff1a;4年一润并且百年不润&#xff0c;每400年再润一…

Verilog 不同编码风格对综合电路的影响

文章目录 示例 #1示例 #2示例 #3 Verilog是一种硬件描述语言&#xff08;HDL&#xff09;&#xff0c;用于设计数字电路和系统。统一、良好的代码编写风格&#xff0c;可以提高代码的可维护性和可读性。 同样的功能&#xff0c;不同的Verilog 编码风格也会对综合过程产生重大影…

安全远程访问工具

什么是安全远程访问 安全远程访问是指一种 IT 安全策略&#xff0c;允许对企业网络、任务关键型系统或任何机密数据进行授权、受控访问。它使 IT 团队能够根据员工和第三方的角色和工作职责为其提供不同级别的访问权限&#xff0c;安全的远程访问方法可保护系统和应用程序&…

软件设计模式系列之十三——享元模式

1 模式的定义 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;它旨在减少内存占用或计算开销&#xff0c;通过共享大量细粒度对象来提高系统的性能。这种模式适用于存在大量相似对象实例&#xff0c;但它们的状态可以外部化&#xff08;e…