预训练相关知识

news2025/1/12 6:45:10

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.coloradmin.cn/o/1017076.html

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

相关文章

【JavaScript】HTML文件插入JavaScript函数

介绍 在HTML文件中插入JavaScript函数的方法如下&#xff1a; 1、在HTML文件中使用<script>标签来定义JavaScript函数&#xff0c;例如&#xff1a; <script> function myFunction() {// 在这里编写JavaScript函数代码 } </script>2、在HTML文件中调用Jav…

2023年稀有金属行业研究报告

第一章 行业概况 稀有金属是一类在地球上分布较为稀少或从原矿中分离较为困难的金属。这类金属包括稀土、锂、钼、钨、铟、钛等。由于其独特的物理和化学性质&#xff0c;稀有金属在许多高技术领域中都是不可或缺的材料&#xff0c;如航天、原子能、电子和国防等。 稀有金属在…

小红书加密参数X-s详解

小红书加密参数X-s详解 小红书加密参数X-s详解 省略调试过程 定位到相关文件 如图所示&#xff1a; 修改代码 将代码复制下来&#xff0c;找到以下代码&#xff1a; , function(p0, p1, p2, p3, p4, p5, p6) {var _ace_25a6 _ace_ae44(p0, p1), _ace_d2389 _ace_34d1(p2…

Windows下编译安装FreeCAD 0.21

本文记录在Windows下编译安装FreeCAD 0.21的流程。 一、下载代码与依赖 1.1 下载代码 git clone https://github.com/FreeCAD/FreeCAD.git cd cd ./FreeCAD/ git checkout -b FreeCAD-0-21 origin/releases/FreeCAD-0-21 1.2 下载依赖 从GitHub下载FreeCAD LibPack-0.21 Ve…

21天学会C++:Day9----初识类与对象

CSDN的uu们&#xff0c;大家好。这里是C入门的第九讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 面向过程与面向对象 2. 类的定义 3. 类中的访问限定符 3.1 访问限定符的…

Linux网络编程:使用UDP和TCP协议实现网络通信

目录 一. 端口号的概念 二. 对于UDP和TCP协议的认识 三. 网络字节序 3.1 字节序的概念 3.2 网络通信中的字节序 3.3 本地地址格式和网络地址格式 四. socket编程的常用函数 4.1 sockaddr结构体 4.2 socket编程常见函数的功能和使用方法 五. UDP协议实现网络通信 5.…

SSL双向认证-Nginx配置

SSL双向认证需要CA证书&#xff0c;开发过程可以利用自签CA证书进行调试验证。 自签CA证书生成过程&#xff1a;SSL双向认证-自签CA证书生成 Nginx配置适用于前端项目或前后端都通过Nginx转发的时候&#xff08;此时可不配置后端启用双向认证&#xff09; 1.Nginx配置&#…

20230908_python练习_selenium模块爬取网页小说练习

霍比特人小说爬取&#xff0c;使用 selenium 模块调用谷歌浏览器&#xff0c;无界面模式爬取小说网站信息&#xff0c;将数据按照每次2000字符在mysql中保存。 # https://www.shukuai9.com/b/324694/ # 导入需要的库 from selenium import webdriver # 导入Keys模块&#xff…

AlteraXilinx公司FPGA简介

Intel / Altera公司 Intel/Altera 系列FPGA简介 - 知乎 (zhihu.com) Altera FPGA 提供了多种可配置嵌入式 SRAM、高速收发器、高速 I/O、逻辑模块以及布线。其内置知识产权 (IP) 结合优秀的软件工具&#xff0c;缩短了 FPGA 开发时间&#xff0c;降低了功耗和成本。 Altera FP…

五、数学建模之层次分析法

1.概念 2.例题 一、概念 1.提出 层次分析法&#xff08;Analytic Hierarchy Process&#xff0c;AHP&#xff09;是一种多标准决策分析方法&#xff0c;用于帮助人们在面对复杂的决策问题时进行定量和定性的比较和评估。它最初由美国运筹学家和管理学家托马斯萨蒙&#xff08…

[字符串和内存函数]strcat字符串函数的详解和模拟

strcat函数 strcat函数是C语言中用于将一个字符串追加到另一个字符串末尾的函数。其函数原型如下&#xff1a; char *strcat(char *dest, const char *src);其中&#xff0c;dest是目标字符串&#xff0c;src是要追加的字符串。函数将src中的内容追加到dest的末尾&#xff…

软件测试的基础知识

目录 前言 软件测试的生命周期 如何描述一个bug 如何定位bug的级别 bug的生命周期 和开发人员产生争执怎么办 设计一个测试用例 前言 上篇文章主要写了软件测试的一些基本概念以及软件测试的前置知识,这篇文章主要带大家了解在进行软件测试之前要准备的工作. 软件测试…

常见的数码管中的引脚分布情况

简单介绍 数码管&#xff0c;实际就是用了7段亮的线段表示常见的数字或字符。常见的像下面几种&#xff08;图片是网络中的截图&#xff09;。事件中使用到的知识还是单片机中最基础的矩阵扫描。记得其中重要的有“余晖效应”&#xff0c;好像是要把不用的亮段关闭&#xff0c…

【C++】string 之 assign、at、append函数的学习

前言 在学习string类的过程中&#xff0c;我发现了assign这个函数&#xff0c;感觉很有用&#xff0c;就来记录一下 assign函数原型&#xff1a; void assign(size_type n, const T& x T());void assign(const_iterator first, const_iterator last);assign函数有两种使…

格林公式推导

∫ D ∫ ( ∂ Q ∂ x − ∂ P ∂ y ) d x d y ∮ P d x Q d y \int _D \int (\frac{\partial Q}{\partial x} - \frac{\partial P}{\partial y})dx dy \oint P dx Qdy ∫D​∫(∂x∂Q​−∂y∂P​)dxdy∮PdxQdy 证明&#xff1a; 假设 ∫ Q ( x , y ) d y 的原函数是 q …

linux万字图文学习进程信号

1. 信号概念 信号是进程之间事件异步通知的一种方式&#xff0c;属于软中断。 1.1 linux中我们常用Ctrlc来杀死一个前台进程 1. Ctrl-C 产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样Shell不必等待进程结束就可以接受新的命令,启动新的进程。2. S…

Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

git的ssh配置 HTTPS和SSH的区别设置SSH方式配置单个仓库配置账户公钥 大家通过git拉取代码的时候&#xff0c;一般都是通过http的方式&#xff0c;简单方便。但是细心的童鞋肯定也注意到Git也是支持ssh方式的。可能很多人也试过使用这个方式&#xff0c;但是好像没有那么简单。…

企业架构LNMP学习笔记57

MongoDB的安全设置&#xff1a; 安全&#xff1a; MongoDB的安全事件&#xff1a; 2017年年初&#xff1a; 利用SMB漏洞可以获得系统最高权限。wannacry勒索病毒。当年确实遇到过这个事情。 比特币的概念&#xff1a;开源软件 P2P网络 P2P形式的数字货币。交易记录公开透明。…

Mysql--Java的JDBC编程

Java的数据库编程&#xff1a;JDBC JDBC&#xff0c;即Java Database Connectivity&#xff0c;java数据库连接。是一种用于执行SQL语句的Java API&#xff0c;它是 Java中的数据库连接规范。 下载驱动包作为项目的依赖&#xff0c;数据库驱动包的版本要和数据库服务器的版本…

前端中的跨域请求及其解决方案

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 跨域&#xff08;Cross-Origin&#xff09;⭐CORS&#xff08;跨域资源共享&#xff09;⭐JSONP&#xff08;JSON with Padding&#xff09;⭐代理服务器⭐ WebSocket⭐服务器设置响应头⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a…