NLP(4)--BERT

news/2024/5/10 2:19:34/文章来源:https://blog.csdn.net/m0_60177079/article/details/132794501

目录

一、自监督学习

二、BERT的两个问题

三、GLUE

四、BERT与Transformer的关系

五、BERT的训练方式

六、BERT的四个例子

1、语句分类(情感分析)

2、词性标注

3、立场分析 

4、问答系统 

七、BERT的后续

1、为什么预训练后的微调可以满足多场景

2、BERT在非自然语言领域应用

3、Multi-BERT

4、奇怪的Bias

 八、GPT


一、自监督学习

        为什么讲BERT要先提到自监督学习呢,因为BERT中的Mask language model思想就来自于自监督学习。

        自监督学习:通过使用无标签数据,通过利用自身数据的特征、关系来训练出一个满足数据特征的模型。但其实也并非用不到标签,而是构造辅助的数据集和标签来进行训练。

二、BERT的两个问题

        BERT主要研究两个问题Masking input和Next sentense prediction。        

        在NLP领域,做文字接龙时可以将数据集中一部分文字做随机的Mask,构造辅助的数据集和标签,来训练那些被删除掉的字或词。如下面这张图中,“湾”这个字就是被Mask掉的,可能输入是一个特殊的token,也有可能是一个随机的噪声字,输出时通过归一化后,做了一个分类,分类最高分就是我们要求训练的东西,也就是被删除的字。

        在NLP领域,还有一个句子序列是否相接正确问题。在BERT中,通过[SEP]划分两个句子,将[CLS]丢入BERT模型,再经过Linear后输出句子1和句子2是否连接的真值。但很多文献说这个方法并没有什么用。

        另一个模型ALBERT使用的是SOP而不是传统BERT的NSP方法,能达到更好的预训练效果。

三、GLUE

        在NLP领域分为NLU(自然语言理解)和NLG(自然语言生成)两个部分,为了寻求NLU的评判标准,诞生了GLUE(Gerenal Language Understanding Evaluation)这个涵盖多任务的自然语言理解基准和分析平台,GLUE包含CoLA、SST-2、MRPC、STS-B、QQP、MNLI、QNLI、RTE、WNLI九个任务涵盖自然语言推断、文本蕴含、情感分析等方面。

四、BERT与Transformer的关系

        其实BERT也是基于Transformer的架构的一种“预训练模型”,相比于传统Transformer有几个区别:

1、BERT是双向性的,可以利用context来进行预测每个词,而传统Transformer和GPT都是利用左侧的信息。

2、预训练任务,BERT采用了Masked Language Model任务,也就是随机Mask一些词,来预测被Mask掉的词。

3、NSP,判断两个句子是否相连,理解句子与句子之间的关系。

4、数据量更大,参数更多,层次更多,模型更大,相比于传统Transformer输入一串序列,输出一串序列,BERT可以生成更高质量的文本信息。

五、BERT的训练方式

        BERT训练分为两个阶段,预训练(Pre-training)和微调(Fine-tuning)。

        预训练,使用大量无标签的文本进行训练,并进行MLM和NSP两个部分,来学习到通用的语言表示,包括词的级别和句子级别的信息。

        微调,将带有标签的任务数据对BERT进一步训练,可以针对不同的下游任务,比如问答、情感分类等,将任务特定的输出层添加到BERT模型的顶部,利用标注数据进行监督学习。依靠不同的下游任务学习到更符合不同任务的模型。

六、BERT的四个例子

1、语句分类(情感分析)

        语句分类,也就是对于某一个句子分类他的感情色彩,比如positive和negitive。

        具体做法仍然是将一个句子的CLS扔入BERT中,输出向量做Linear+Softmax的归一化,得到的类别进行二分类问题。

2、词性标注

        对于每一个token的输出向量做Linear+Softmax操作,得到的向量进行多分类问题,来预测各个词的词性。

3、立场分析 

        输入两个句子,前提和假设,让模型去判断假设是与前提立场相同,或是反对,亦或是保持中立。

        在具体操作中,仍然是将CLS作为两个句子之间的立场关系,通过CLS的输出向量进入Linear+Softmax后进行多分类操作,预测立场。 (这一点与NSP类似)

4、问答系统 

        通过学习已知文章库,找出某个问题的答案,答案的内容必须在文章中,也就是说截一个片段,一个词语作为答案。问答系统中,通过输入问题和文章库,输出两个值s和e,则答案就是从第s到第e个词汇的片段。

        具体做法是,随机初始两个向量,为答案的开始和结束,分别在下图为橘色和蓝色框框,这个长度要与输出长度一致,通过分别和输出的向量做内积后判断最大值得到两个最大值的输出索引,分别就是s和e。

七、BERT的后续

1、为什么预训练后的微调可以满足多场景

        其实感觉还是有一定的玄学因素,下图是通过测量不同语境下同一个词的余弦相似度,做了混淆矩阵证明Pre-train确实可以让BERT在无标签文本数据中学会词与词,句子之间的信息关系,这样可以迁移到不同的下游任务中。

2、BERT在非自然语言领域应用

        将BERT应用于蛋白质、DNA、音乐等非自然语言领域的分类,通过每个氨基酸给定一个词汇、每一个音符给定一个词汇,将任何非文字的形式也可以转换成词向量,然后按照最开始语句分类来做。由于BERT模型在Pre-train中学习到了通用的语言表示,有一定的泛化能力,最后发现实验的效果很不错。

3、Multi-BERT

        更玄学的东西。

        使用中文甚至多种语言来进行Pre-train,利用Chinese+English进行微调,但测试Chinese竟然分数比单纯用Chinese的微调,竟然分数高。另外Pre-train中只是进行了完形填空,但微调做了中文的Q&A,也可以做到很好地Test Score。

        这也说明了虽然不同的语言,但在Pre-train Multi-Languages时其实已经学会了其中的语义,而不只是语言,可以理解为BERT一视同仁了。

4、奇怪的Bias

        通过微调学习中文的Q&A,但添加了中文微调Q&A与英文微调Q&A之间的Bias,就可以在不直接微调学习英文Q&A的情况下,得到微调学习英文Q&A的效果,间接学习!

 八、GPT

        GPT模型,仍然是一种无监督的进行预训练,有监督的下游任务微调的结构,是基于Transformer的一种预训练语言模型。

        GPT相较于Transformer来说,使用了多次迭代12次的decoder模块(且删除了中间的Multi-Head Attention模块)

        相比于BERT进行做完形填空,GPT目的是进行生成下一个token。

        另外就是,GPT也是只知道上文不知道下文的注意力机制,要不然就出现了漏题的效果。

参考视频:2021 - 自监督式学习 (三) – BERT的奇闻轶事_哔哩哔哩_bilibili

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

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

相关文章

Python:安装Flask web框架hello world

安装easy_install pip install distribute 安装pip easy_install pip 安装 virtualenv pip install virtualenv 激活Flask pip install Flask 创建web页面demo.py from flask import Flask app Flask(__name__)app.route(/) def hello_world():return Hello World! 2023if _…

微信小程序上拉触底事件

一、什么是上拉触底事件 上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为。 二、监听上拉触底事件 在页面的.js文件中,通过onReachBottom()函数即可监听当前页面的上拉触底事件。 三、配置上拉触底距…

使用perf_analyzer和model-analyzer测试tritonserver的模型性能超详细完整版

导读 当我们在使用tritonserver部署模型之后,通常需要测试一下模型的服务QPS的能力,也就是1s我们的模型能处理多少的请求,也被称为吞吐量。 测试tritonserver模型服务的QPS通常有两种方法,一种是使用perf_analyzer 来测试&#…

《React vs. Vue vs. Angular:2023年的全面比较》

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

SSM - Springboot - MyBatis-Plus 全栈体系(四)

第二章 SpringFramework 四、SpringIoC 实践和应用 1. SpringIoC / DI 实现步骤 1.1 配置元数据(配置) 配置元数据,既是编写交给SpringIoC容器管理组件的信息,配置方式有三种。基于 XML 的配置元数据的基本结构: …

基于堆叠⾃编码器的时间序列预测 深层神经网络

自适应迭代扩展卡尔曼滤波算法(AIEK)是一种滤波算法,其目的是通过迭代过程来逐渐适应不同的状态和环境,从而优化滤波效果。 该算法的基本思路是在每一步迭代过程中,根据所观测的数据和状态方程,对滤波器的…

13-RocketMQ主从同步(HA实现)源码原理

slave每次接收到master发过来的一批commitlog数据时,会看master传过来的这段commitlog的起始端,对应的全局物理偏移量,和slave本地存储的批commitlog数据的最大物理偏移量,是否相等 如果相等,也说明master端没有给sla…

系统架构设计专业技能 · 软件工程之UML建模设计

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 软件工程之UML建模设计 一、需求分析 - UML图二、用例图2.…

十五、Webpack打包图片-js-Vue、Label命令、resolve模块解析

一、webpack打包图片 (1)加载图片案例准备 为了演示我们项目中可以加载图片,我们需要在项目中使用图片,比较常见的使用图片的方式是两种: img元素,设置src属性;其他元素(比如div&…

【GAMES202】Real-Time Ray Tracing 1—实时光线追踪1

一、前言 这篇我们开始新的话题—Real-Time Ray Tracing简称RTRT,也就是实时光线追踪,关于光线追踪,我们已经不止一次提到过它的优点,无论是软阴影还是全局光照,光线追踪都很容易做,唯一的缺点就是速度太慢…

【新版】系统架构设计师 - 软件架构设计<SOA与微服务>

个人总结,仅供参考,欢迎加好友一起讨论 架构 - 软件架构设计<SOA与微服务> 考点摘要 面向服务SOA(★★★★)微服务(★★★★) 基于/面向服务的(SOA) 在SO…

Ubuntu23.10将推出全磁盘加密功能,提高系统安全性

Canonical 宣布其即将推出的 Ubuntu 23.10(Mantic Minotaur)将引入基于 TPM 的全磁盘加密的初步支持。这个特性将利用系统可信平台模块(TPM),在系统级别上进行全磁盘加密,从而提高系统的安全性。 但需要注…

布局过程的完全解析

前言 那么为什么要分为两个流程呢 因为测量流程是一个复杂的流程,有时候不一定一遍就能得出测量结果,可能需要 2 - 3 次甚至更多 自定义布局的几种类型,也是自定义布局的两个方法 实战,第一种类型:改写已有View 的步骤…

Unity中Shader抓取屏幕并实现扭曲效果

文章目录 前言一、屏幕抓取,在上一篇文章已经写了二、实现抓取后的屏幕扭曲实现思路:1、屏幕扭曲要借助传入 UV 贴图进行扭曲2、传入贴图后在顶点着色器的输入参数处,传入一个 float2 uv : TEXCOORD,用于之后对扭曲贴图进行采样3、…

SQL Server2022安装教程

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移…

mac电脑安装paste教程以及重新安装软件后不能使用解决方法

问题背景 mac电脑安装paste教程以及重新安装软件后不能使用解决方法。 mac电脑安装paste失败,安装好后还是无法使用,paste显示还是历史粘贴信息,导致无法使用。新 copy的内容也无法进入历史粘贴版里面。 笔者电脑配置信息:MacB…

GLSL ES着色器 精度限定字

目录 前言 WebGL支持的三种精度 数据类型的默认精度 float类型没有默认精度 预处理指令 在GLSL ES中常用的三种预处理指令。 预定义的内置宏 前言 GLSL ES新引入了精度限定字,目的是帮助着色器程序提高运行效率,削减内存开支。顾名思义&#xf…

Linux C : select简介和epoll 实现

目录 一、基础知识 二、select 模型服务流程 二、select 模式的缺点。 三、poll 概要 四、epoll 服务端实现流程 1.epoll_create: 2.epoll_ctl 3.epoll_wait 五、epoll示例代码实现 1.epoll实现服务端 2.客户端采用tcp进行访问 一、基础知识 首先要知道&…

wpf C# 用USB虚拟串口最高速下载大文件 每包400万字节 平均0.7s/M,支持批量多设备同时下载。自动识别串口。源码示例可自由定制。

C# 用USB虚拟串口下载大文件 每包400万字节 平均0.7s/M。支持批量多设备同时下载。自动识别串口。可自由定制。 int 32位有符号整数 -2147483648~2147483647 但500万字节时 write时报端口IO异常。可能是驱动限制的。 之前用这个助手发文件,连续发送&#xff0…

微信小程序AI类目-深度合成-AI问答/AI绘画 互联网信息服务算法备案审核通过教程

近期小程序审核规则变化后,很多使用人类小徐提供的chatGPT系统的会员上传小程序无法通过审核,一直提示需要增加深度合成-AI问答、深度合成-AI绘画类目,该类目需要提供互联网信息服务算法备案并上传资质,一般对企业来说这种务很难实…