预训练机制(3)~GPT、BERT

news2024/10/5 20:20:34

目录

1. BERT、GPT 核心思想

1.1 word2vec和ELMo区别

 2 GPT​编辑

3. Bert 

3.1 Bert集大成者

extension:单向编码--双向编码区别

3.2  Bert和GPT、EMLo区别

3.3 Bert Architecture

3.3.1 explanation:是否参数多、数据量大,是否过拟合?

3.3.2 Bert training

3.4 Bert为什么要做掩码语言模型(MLM, Masked Language Model)

3.5 Bert 下句预测(NSP)

3.6 Bert下游任务改造

3.6.1 句对分类

3.6.2 单句分类

3.6.3 文本问答

3.6.4 单句标注

参考:


1. BERT、GPT 核心思想

BERT基础模型时transformer的编码器(做特征提取--> embedding vector),去认识客观世界的万事万物,并通过下游任务的改造,去发掘物与物之间的联系。

GPT基础模型是Transformer的解码器(做生成式任务),因为decoder中有Masked,masked注定了你不能发掘后面的信息,去预测下面的东西。

缺点:Bert和GPT参数量非常大(GPT1,3亿参数;GPT2,15亿参数),训练一个模型需要几百万美金expense。

1.1 word2vec和ELMo区别

word2vec,是为了得到词向量。通过上下文得到词向量,而不是去预测下一个词。

ELMo,是为了做语言模型。通过上下文去准确预测下一个词。like BERT model。

 2 GPT

3. Bert 

大量无标记数据集中训练得到的深度模型,可以显著提高各项nlp任务的准确率。

3.1 Bert集大成者

  • 参考了ELMo模型的双向编码思想
  • 借鉴了GPT用Transformer作为特征提取器的思路
  • 采用了word2vec所使用的的CBOW方法

extension:单向编码--双向编码区别

e.g. “今天天气很{},我们不得不取消户外运动”,分别从单项编码和双向编码的角度去考虑{}中应该填什么词:

  • 单向编码:单向编码只会考虑“今天天气很”,以人类的经验,大概率会从“好”、“不错”、“差”、“槽糕”这几个词中选择,这些词可以被华为截然不同的两类。
  • 双向编码双向编码会同时考虑上下文的信息,即出了会考虑“今天天气很”这五个字,还会考虑“我们不得不去取消户外运动”来帮助模型判断,则大概率会从“差”、“槽糕”这一类词中选择。

3.2  Bert和GPT、EMLo区别

Bert是真正的双向编码;ELMo是伪双向编码,sequence传递,无法完全利用上下文信息。

3.3 Bert Architecture

 从上图可以发现,Bert的模型结构其实就是Transformer Encoder模块的堆叠。在模型参数选择上,论文给出了两套大小不一致的模型。

其中,L代表Transformer Block的层数;H代表特征向量的维数(此处默认Feed Forward层中的中间隐层的维数为4H);A表示self-attention的头数,使用这三个参数基本可以确定Bert的量级。

3.3.1 explanation:是否参数多、数据量大,是否过拟合?

大参数量 -> 可能造成过拟合。

如果一个小模型,数据量大了,用大数据集就会过拟合

但是,如果数据量大,模型也大,就不会过拟合了,就能学到更多的东西

conclusion:不是模型越大越好,也不是数据集越多越好,而是模型与数据集进行一个匹配。 

--> 当Bert总参数量为3.4亿时,它可以利用很多数据集,学习很多东西。

3.3.2 Bert training

和GPT一样,bert也采用二段式训练方法:

1. 第一阶段:使用易获取的大规模无标签语料,来训练基础语言模型。

2. 第二阶段:根据指定任务的少量带标签训练数据进行微调训练。

3.4 Bert为什么要做掩码语言模型(MLM, Masked Language Model)

Bert无法使用CBOW词袋模型思想

对于一句话,我输入的时候mask 15%的词,然后用上下文预测这个masked token是什么 --> 类似CBOW model(训练阶段才会这样做,但测试阶段没有mask词)

测试阶段给你一句话,你就要给我一句话的句向量。

预训练好一个bert模型,给你微调,

problem:这样设计MLM的训练方法会引入弊端:在模型微调训练阶段或模型测试阶段,输入的文本中将没有[MASK],进而导致产生由训练和测试数据偏差导致的性能损失

solution:之前的做法,会让模型所有精力全部聚焦在mask上面,对于其他的词不管了

用了下述的方法,所有词都有可能是mask词,这样模型会把精力聚焦在大部分词上(包括mask)

3.5 Bert 下句预测(NSP)

目的:为了学会捕捉句子之间的语义联系,Bert采用了下句预测(NSP)作为无监督训练的一部分。

NSP具体做法是,Bert输入的语句将由两个句子构成,其中,50%的概率将语义连贯的两个句子作为训练文本(连续句对对一般选自篇章级别的语料,以此确保前后语句的语义强相关),另外50%的概率将完全随机抽取两个句子作为训练文本。

连续句对:[CLS]今天天气很槽糕[SEP]下午的体育课取消了[SEP]

随机句对:[CLS]今天天气很槽糕[SEP]鱼快被烤焦啦[SEP]

其中,[SEP]标签表示分隔符。[CLS,class label]表示标签用于类别预测,输入为连续句对时,标签为1;输入为随机句对时,标签为0。

training阶段:Bert捕捉两个句对是否连续 --> attention在做注意力机制时,[CLS]标签会和两个语句里的每一个词都会做权重叠加,Bert经过多层transformer编码后,[CLS]包含句子的信息,进而也获得了句子的语义信息。

通过训练[CLS]编码后的输出标签,Bert可以学会捕捉两个输入句对的文本语义。在连续句对的预测任务中,Bert的正确率可以达到97%-98%。

3.6 Bert下游任务改造

Bert最大作用就是提取特征向量。Bert通过transformer编码器构造获取了强大的特征编码能力,获取到了词向量,获取了句子的语义信息

bert就像一个小孩子,学会了单词的意思,学会了句子意思和连贯,那么只要再稍微点拨一下:

  • 再让他学一下句子的正面和负面意思  --》就可以做情感分类 sentiment classification;
  • 再让他标注一下地点名、人名、机构 --> 词性标注pos

3.6.1 句对分类

判断两个句子是否属于同一个类别。

句对用[SEP]分隔符拼接成文本序列,在句首加入[CLS]标签,将句首标签所对应的输出值作为分类标签,计算预测分类标签与真实分类标签的交叉熵,将其作为优化目标,在任务数据上进行微调训练。

3.6.2 单句分类

给定一个句子,判断该句子的类别。

单句分类在句首加入标签[CLS],将句首标签所对应的输出值作为分类标签,计算预测分类标签与真实分类标签的交叉熵,将其作为优化目标,在任务数据上进行微调训练。

3.6.3 文本问答

上面两个是对bert的输入input进行改造,还可以对bert输出output进行改造

给定一个问句和一个蕴含答案的句子,找出答案在句中的位置,称为文本问答。

为了标注答案的起始位置和终止位置,Bert引入两个辅助向量s(start,判断答案的起始位置)和e(end,判断答案的终止位置)。

Bert判断句子B中答案位置的做法是,将句子B中的每一个词得到的最终特征向量T'经过全连接层(利用全连接层将词的抽象语义特征转化为任务指向的特征)后,分别与向量s和e求内积,对所有内积分别进行softmax操作,即可得到Tok m作为答案起始位置和终止位置的概率。最后,取概率最大的片段作为最终答案。

3.6.4 单句标注

类似命名实体识别NES。

给定一个句子,标注每个词的标签,称为单句标注。

在进行单句标注任务时,需要在每个词的最终语义特征向量之后添加全连接层,将语义特征转化为序列标注任务所需的特征,单句标注任务需要对每个词都做标注,因此不需要引入辅助向量,直接对经过全连接层后的结果做softmax操作,即可得到各类标签的概率分布。

参考:

01 GPT 和 BERT 开课了(两者和 Transformer 的区别)_哔哩哔哩_bilibili

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

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

相关文章

天干地支蓝桥杯国赛

题目 分析 蓝桥杯国赛2020简单模拟题&#xff0c;你敢信&#xff0c;就是弄两个字符串数组。重点在于知道0000年是从哪个天干和地支开始的。 代码 #include <iostream> using namespace std;int year;int main() {cin >> year;string tiangan[10] {"geng&…

rip路由协议

目录 1.rip路由协议介绍 2.版本 3.工作原理 4.缺点 5.RIP配置 1.rip路由协议介绍 RIP---路由信息协议/矢量路由选择协议&#xff08;Routing Information Protocol&#xff09;是基于距离矢量路由协议&#xff0c;最大的特点是利用跳数来最为计量的标准&#xff08;最多支…

【roLabelImg】windows下旋转框标注软件安装、使用、rolabelimg打包成exe

主要参考&#xff1a; roLabelImg安装、使用、数据格式roLabelImg在Win10系统下打包成exe - 问雪的文章 - 知乎 一、安装 1.1 直接下载exe运行 劝大家直接去下别人编译好的吧&#xff0c;本来是训练模型标记的&#xff0c;结果搞了半天去了解这个软件了&#xff0c;哎~ 我…

数仓实战 - 滴滴出行

项目大致流程&#xff1a; 1、项目业务背景 1.1 目的 本案例将某出行打车的日志数据来进行数据分析&#xff0c;例如&#xff1a;我们需要统计某一天订单量是多少、预约订单与非预约订单的占比是多少、不同时段订单占比等 数据海量 – 大数据 hive比MySQL慢很多 1.2 项目架…

【K6】使用InfluxDB和Grafana图像化展示k6.io的测试数据

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一&#xff1a;什么是K6二&#xff1a;K6的安装三&#xff1a;脚本准备四&#xff1a;执行脚本五&#xff1a;结果分析六、输出结果总结前言 ●&#x1f9d1;个人…

(考研湖科大教书匠计算机网络)第四章网络层-第六节4:边界网关协议BGP的基本工作原理

获取pdf&#xff1a;密码7281专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;不同自治系统交流需要考虑的问题二&#xff1a;边界网关协议BGP概述三&#xff1a;BGP-4种的四种报文本节对应视频如下 【计算机网络微课堂&#x…

告警修复难?Zabbix+ChatGPT,轻松化解大胆尝试!

感谢本文作者小谈谈&#xff01; ○ 基于 Zabbix 能力&#xff0c;我们将告警发给了 ChatGPT&#xff0c;并通过企业微信内部应用的方式给出告警信息和修复建议。效果如下图&#xff1a; 摘 要 ChatGPT 是最近很火的 AI 智能机器人程序&#xff0c;2 个月活跃用户突破 1 亿&a…

java对象内存结构分析与大小计算

java对象内存结构Java对象保存在堆中时&#xff0c;由三部分组成&#xff1a;对象头&#xff08;object header&#xff09;&#xff1a;包括了关于堆对象的布局、类型、GC状态、同步状态和标识哈希码的基本信息。所有java对象都有一个共同的对象头格实例数据&#xff08;Insta…

55个软件测试工具,正在做测试的你get到了吗

网络“黑色星期五”威胁&#xff0c;安全漏洞&#xff0c;网上银行盗窃&#xff0c;系统停机时间&#xff0c;以及许多这样的恶梦让全球的企业忧心忡忡难以入眠。确保性能具有加载的安全性和增强的经验是这个领域每个有能力的玩家所必备的。 我们为你提供了一个丰富的软件测试…

Word控件Spire.Doc 【Table】教程(15):如何在 C# 中对齐表格

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

Java字符流

5 字符流 5.1 为什么出现字符流 由于字节流操作中文不是特别的方便&#xff0c;所以Java就提供字符流字符流字节流编码表用字节流复制文本文件时&#xff0c;文本文件也会有中文&#xff0c;但是没有问题&#xff0c;原因是最终底层操作会自动进行字节拼接成中文&#xff0c;…

【面试题】对JS中的事件冒泡、事件捕获、事件委托的理解

大厂面试题分享 面试题库后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库DOM事件流&#xff08;event flow &#xff09;存在三个阶段&#xff1a;事件捕获阶段、处于目标阶段、事件冒泡阶段。Dom标准事件流的触发的先…

ChatGPT的原理:机器人背后的模型

ChatGPT的原理&#xff1a;机器人背后的模型 翻译&#xff1a;老齐 本文将深入讲解支持 ChatGPT 的机器学习模型。从介绍大语言模型&#xff08;Large Language Models&#xff09;开始&#xff0c;深入探讨革命性的自注意力机制&#xff0c;该机制使 GPT-3 得以被训练。然后&a…

数据库查询计划:获取与分类

数据库在得到一个查询后&#xff0c;先将查询转化为一个逻辑查询计划&#xff0c;对其进行优化&#xff0c;然后转为物理执行计划&#xff0c;最后按照物理执行计划进行操作&#xff0c;最终得到最终结果。本篇博客介绍获得数据库查询计划的语法与物理计划的分类。 目录得到查询…

文件描述符fd

目录文件描述符fd系统文件IO接口介绍openclosewriteopen的函数返回值0 & 1 & 2文件描述符的分配规则重定向dup2系统调用FILE文件描述符fd 操作系统是文件的管理者&#xff0c;所有语言上的对“文件”的操作&#xff0c;都必须贯穿OS&#xff0c;又因为操作系统不相信任…

A_A07_003 AS608指纹模块上位机软件使用

A_A07_003 AS608指纹模块上位机软件使用一、软件获取二、测试用模块与接线三、上位机界面分块和功能1、指纹图像显示区域2、硬件信息3、打开设备4、设备配置5、信息显示6、图像管理7、指纹处理8、辅助功能四、注意事项一、软件获取 网盘链接 直戳跳转 二、测试用模块与接线 …

【Kubernetes】【五】资源管理和YML

第三章 资源管理 本章节主要介绍yaml语法和kubernetes的资源管理方式 资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 ​ kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务…

软件测试面试刷题app包含了各种难题

软件测试的生命周期&#xff1a; V模型&#xff1a;与软件开发阶段呼应 软件开发&#xff1a;需求分析-->概要设计-->详细设计-->编码阶段软件测试&#xff1a;单元测试-->集成测试-->系统测试-->验收测试从基本流程的角度讲&#xff1a; 需求阶段&#xff…

Java基础:接口

1.接口的概念 当不是所有子类, 而是多个子类都包含一个方法时, 为了代码书写规范性, 可以用自定义的接口来统一该方法的书写规范. 所以接口可以看作是一种书写规则. 接口是对行为的抽象 抽象类一般是书写在父类当中, 接口是单独书写的, 不是一种类 2.接口的定义和使用 3.接口…

MATLAB/Simulink 通信原理及仿真学习(一)

文章目录MATLAB/Simulink 通信原理及仿真学习&#xff08;一&#xff09;基本操作 (23.2.16)MATLAB 变量矩阵运算画图工具函数函数文件操作MATLAB/Simulink 通信原理及仿真学习&#xff08;一&#xff09; 基本操作 (23.2.16) MATLAB 变量 变量以字母开头&#xff0c;后接字…