【期末向】“我也曾霸榜各类NLP任务”-bert详解

预训练语言模型

预训练语言模型于 2015 年被首次提出(Dai & Le,2015)。首先我们要了解一下什么是预训练模型,举个例子,假设我们有大量的维基百科数据,那么我们可以用这部分巨大的数据来训练一个泛化能力很强的模型,当我们需要在特定场景使用时,例如做文本相似度计算,那么,只需要简单的修改一些输出层,再用我们自己的数据进行一个增量训练,对权重进行一个轻微的调整。预训练的好处在于在特定场景使用时不需要用大量的语料来进行训练,节约时间效率高效。

也可以简单把预训练模型理解为一个特征提取器,通过对大量无标注数据的训练获得能够表示大部分文字80%特征信息的词向量,然后再根据特定的下游任务用自己的标注数据进行微调。每个预训练模型都有自己的预训练任务,通过预训练任务来提升模型参数提取特征的能力。

而第一个比较出名的预训练语言模式是ELMo,利用双向LSTM模型结合上下文语境信息生成词的embedding。而ELMo的预训练任务是预测下一个词。

Bert

(1)bert的结构

bert是谷歌公司于2018年提出的预训练语言模型,其本身在模型结构上并没有太多创新点,BERT主要用了Transformer的Encoder,而没有用Decoder,因为BERT是一个预训练模型,只要学到其中的语义关系即可,不需要去解码完成具体的任务。

 (2)bert的输入数据格式

bert的输入格式由3种嵌入向量拼接而来,分别是标记嵌入、段落嵌入和位置嵌入。标记嵌入就是转换为词向量,在区分句子是开头会加上CLS,每个句子结尾会加上SEP。位置嵌入就是加上位置向量,这2个和transformer的输入没有区别,而所谓的段落嵌入是指,bert输入可能由2个以上的句子组成,那么需要给每个句子训练一个向量,并加在该句子的每个词向量上。具体看下图:

(3)bert的预训练任务 

bert采用2种预训练任务,分别是Masked LM掩码语言模型(可以理解为完形填空)和Next Sentence Prediction 下一句预测。

  • Masked LM任务

即对于给定的输入序列,我们随机屏蔽15%的单词,然后训练模型去预测这些屏蔽的单词。为了做到这一点,我们的模型以两个方向读入序列然后尝试预测屏蔽的单词。例如对于一句话“I don't like Pairs, and I like Barcelona.” 它会变成:

tokens = [ [CLS], I, don't, like, [MASK], [SEP], and, I, like,Barcelona, [SEP] ]

这里有一个小问题。 以这种方式屏蔽标记会在预训练和微调之间产生差异。即,我们训练BERT通过预测[MASK]标记。训练完之后,我们可以为下游任务微调预训练的BERT模型,比如情感分析任务。但在微调期间,我们的输入不会有任何的[MASK]标记。因此,它会导致 BERT 的预训练方式与微调方式不匹配。

为了解决这个问题,我们应用80-10-10%规则。我们知道我们会随机地屏蔽句子中15%的标记。现在,对于这些15%的标记,我们80%概率用MASK替换,10%用一个随机单词替换,10%不替换保持不变。

而预测MASK则是把最后代表MASK的向量通过softmax,取概率最大的在字典中对应的字。

  • Next Sentence Prediction

下一句预测(next sentence prediction,NSP)是另一个用于训练BERT模型的任务。NSP属于二分类任务,在此任务中,我们输入两个句子,B有50%的可能是A的下一句,也有50%的可能是来自语料库的随机句子,预测B是不是A的下一句。如果是,则这对句子标记IsNext;如果不是,则标记NotIsNext。然后用聚合了所有句子信息的CLS来预测

 

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

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

相关文章

C语言编程经典100例——21至30例

目录 第 21 例 第 22 例 第 23 例 第 24 例 第 25 例 第 26 例 第 27 例 第 28 例 第 29 例 第 30 例 第 21 例 程序源码: /* 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾&#xf…

渗透测试框架——Cobalt Strike

渗透测试框架——Cobalt Strike Cobalt Strike是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的,可以使用Metasploit的漏洞库。从3.0版本开始,Cobalt Strike不再使用Metasploit的漏洞库,成为一个独立的…

JavaEE:多线程(1):线程是啥?怎么创建和操作?

进程的问题 本质上来说,进程可以解决并发编程的问题 但是有些情况下进程表现不尽如人意 1. 如果请求很多,需要频繁的创建和销毁进程的时候,此时使用多进程编程,系统开销就会很大 2. 一个进程刚刚启动的时候,需要把…

Ubuntu安装MySQL未设置密码/修改密码/删除密码

一、导致问题的可能原因 1、操作系统安装时的默认设置 在Ubuntu系统中,安装MySQL后默认不会设置密码。如果没有手动进行设置,就会导致未设置密码的问题。 2、管理员在安装过程中忘记设置密码 在MySQL安装过程中,管理员很容易因为疏忽而忘…

微信小程序scroll-view的scroll-into-view和vanUI的tabs标签结合使用

背景:当tabs下的tab切换时,scroll-view滑动到对应的位置 注意点: van-tabs和scroll-view标签分开编写 van-tab的name属性代表标签名称,作为匹配的标识符 scroll-into-view的id值必须是动态值,即tab切换后的值 scr…

Python 自动化之处理图片(一)

图片美化与大小调整 文章目录 图片美化与大小调整前言一、基本结构二、引入库三、用户输入模块四、图片美化模块五、大小调整模块总结 前言 本文主要分为两部分。一是图片的美化吧算是,主要从亮度、对比、色彩饱和度、锐度四个方面进行美化;二是图片的像…

自动化测试Selenium node 配置

查看自己chrome浏览器的版本 下载chromedriver对应版本,下载当前版本中最大版本。 https://npm.taobao.org/mirrors/chromedriver 安装java jdk ,版本至少1.7, 并配置jdk环境变量 以下2个文件放在同一个目录下 Cmd地址切换到第四点目录下,然…

【基础知识】Hadoop生态系统

Hadoop是一个开源的分布式计算框架,主要用于大数据的存储和处理,即一个包含多种组件的综合分布式系统,组件相互协作完成从数据存储到计算分析的完整功能。 关键词——容灾 主从结构、多副本 主要特点 分布式存储 - Hadoop采用HDFS文件系统,可以将大数据分布式存…

Android开发的技术与开发流程

目录 引言 1. Android开发环境搭建 1. 安装Java Development Kit(JDK) 2. 安装Android Studio 3. 配置虚拟设备(可选) 4. 创建你的第一个Android项目 5. 连接实体设备(可选) 2. Android基础知识 1…

影响云渲染质量的几大要素是什么?影响云渲染质量的主要原因有?

对于3D渲染从业者而言,实现高效和高质量的渲染是一个常见的挑战。由于三维场景的复杂性,相关计算和处理通常需要大量的计算能力和存储,尤其是当面对着高分辨率图像、详细的动画或全局光照效果等要求时,渲染时间往往会大幅增加。针…

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。(第三天)

有什么不懂可以去看我前两天的笔记 https://blog.csdn.net/weixin_70007095/article/details/134905674 目录 有什么不懂可以去看我前两天的笔记 JavaScript 进阶 - 第3天笔记 编程思想 面向过程 面向对象 构造函数 原型对象 constructor 属性 对象原型 原型继承 原型链 JavaSc…

HarmonyOS学习 第2节 DevEco Studio工程介绍

工程配置页 界面布局介绍 代码编辑区、通知栏、工程目录区、预览区 工程目录区 便于理解,可以切换为 Ohos AppScope主要用于存放整个应用公共的信息与资源 entry默认的初始模块ets文件用于存放编写的代码文件configuration存放相应模块的配置文件resources对应模块…

IIS配置多域名跨域

搜索了一轮,自己实践发现iis中填多条Access-Control-Allow-Origin记录、逗号分隔、正则表达式这些是不行的。另外好像无论Ngxin还是Tomcat等都要rewrite之类的方法。由于仅仅是测试,所以暂时用*通配符算了。记录一下参考,要的时候再研究 CORS…

java编程者快速掌握ts变量类型

JAVA编程者快速掌握typeScript TypeScript是JavaScript的超集。 它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。 TS代码需要通过编译器编译为JS,然后再交由JS解析器执行。 TS完全兼容JS,换言之,任…

python通过slots指定实例属性列表

1 python通过slots指定实例属性列表 python类通过__slots__属性列表,指定类实例可以创建的属性。 1.1 slots基础 用法 >>> class SlotsC:__slots__[attr1,...,attrn]描述 (1) 实例只能创建__slots__列表内声明的属性&#xff1…

leetcode 1466

leetcode 1466 使用dfs 遍历图结构 如图 node 4 -> node 0 -> node 1 因为节点数是n, 边长数量是n-1。所以如果是从0出发的路线,都需要修改,反之,如果是通向0的节点,例如节点4,则把节点4当作父节点的节点&…

保障网络安全:了解威胁检测和风险评分的重要性

在当今数字时代,网络安全问题变得愈发突出,而及时发现和迅速应对潜在威胁成为保障组织信息安全的首要任务。令人震惊的是,根据2023年的数据,平均而言,检测到一次网络入侵的时间竟然长达207天。这引起了对安全策略和技术…

威睿三合一电驱动系统斩获“2023汽车新供应链百强-金辑奖”

10月19日,2023第五届“金辑奖”颁奖盛典在上海圆满落幕。威睿公司“高效低噪碳化硅电驱动系统”在动力总成电气化领域脱颖而出,荣获“2023中国汽车新供应链百强”荣誉称号。 “金辑奖”由盖世发起,旨在“发现好公司推广好技术成就汽车人”&a…

12月14日,每日信息差

以下是2023年12月14日的10条信息差 第一、极氪发布首款自研电池,将在极氪007上首发搭载。该电池为量产快充磷酸铁锂电池,将在极氪007上首发搭载,充电15分钟续航增加超过500公里,-10C低温环境快充速度提升25% 第二、芒果TV与抖音…

利用机器学习实现客户细分:提升市场营销效果的技术策略

客户细分是一项关键的市场营销策略,可以帮助企业更好地了解其目标受众,个性化定制产品和服务,提高市场营销效果。本文将介绍如何利用机器学习算法实现客户细分,包括数据准备、特征工程、算法选择、模型训练和评估等关键步骤。通过…