Bert学习笔记(简单入门版)

目 录

一、基础架构

二、输入部分

三、预训练:MLM+NSP

3.1 MLM:掩码语言模型

3.1.1 mask模型缺点

3.1.2 mask的概率问题

3.1.3 mask代码实践

3.2 NSP

四、如何微调Bert

五、如何提升BERT下游任务表现

5.1 一般做法

5.2 如何在相同领域数据中进行further pre-training

5.3 参数设置Trick

六、如何在脱敏数据中使用Bert等预训练模型


一、基础架构

基础架构为Transformer的Encoder:
具体解释可参考简单易懂的Transformer学习笔记_十七季的博客-CSDN博客

Base bert -12层Encoder堆叠。
 

其中位置编码部分与Trm的positional encoding不同,具体在下面进行解释。

二、输入部分

Input=token \space emb +segment \space emb+position \space emb

CLS向量不能代表整个句子的语义信息

区分句子:上图中第一个句子E_A=0, 第二个句子E_B=1

位置信息:TRM正余弦;Bert随机初始化,模型自学习

三、预训练:MLM+NSP

3.1 MLM:掩码语言模型

没有标签,无监督。

AR:自回归模型,只能考虑单侧信息;GPT
AE:自编码模型,从损坏的输入数据中预测重建原始数据,可以使用上下文信息;Bert

Eg:

3.1.1 mask模型缺点
 

认为两个mask之间是独立的(但实际未必独立)

3.1.2 mask的概率问题
 

3.1.3 mask代码实践

3.2 NSP

NSP样本如下:

  1. 从训练语料库中取出两个连续的段落作为正样本

  2. 从不同的文档中随机创建一对段落作为负样本

缺点:

主题预测(是否属于同一个文档)和连贯性预测合并为一个单项任务

四、如何微调Bert

对输出Softmax

五、如何提升BERT下游任务表现

5.1 一般做法

1.获取谷歌中文Bert

2.基于任务数据进行微调

以微博文本情感分析为例:

  1. 在大量通用语料上训练一个LM(Pretrain);——中文谷歌BERT

  2. 在相同领域上继续训练LM(Domain transfer);——在大量微博文本上继续训练这个BERT

  3. 在任务相关的小数据上继续训训练LM(Task transfer); ——在微博情感文本上(有的文本不属于情感分析的范畴)

  4. 在任务相关数据上做具体任务(Fine-tune)。-

先Domain transfer再进行Task transfer最后Fine-tune性能是最好的

5.2 如何在相同领域数据中进行further pre-training

  1. 动态mask: 每次epoch去训练的时候mask,而不是一直使用同一个。

  2. n-gram mask: 比如ERNIE和SpanBerti都是类似于做了实体词的mask

5.3 参数设置Trick

Batch size:16,32——影响不太大
earning rate(Adam):5e^{-5},3e^{-5},2e^{-5}——尽可能小一点避免灾难性遗忘
Number of epochs:3,4
Weighted decay修改后的adam,使用warmup, 搭配线性衰减

数据增强/自蒸馏/外部知识的融入

六、如何在脱敏数据中使用Bert等预训练模型

对于脱敏语料使用BERT,一般可以分为两种:

  1. 直接从零开始基于语料训练一个新的BERT出来使用;

  2. 按照词频,把脱敏数字对照到中文或者其他语言【假如我们使用中文】,使用 中文BERT做初始化,然后基于新的中文语料训练BERT。

参考资料
BERT从零详细解读,看不懂来打我_哔哩哔哩_bilibili

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

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

相关文章

学习UI第一天

在工作闲暇之余,自己画的原型图,再次做一次记录,哈哈哈 萌宠领养UI设计原型图 https://modao.cc/proto/lq2KqIVBs48xwylNZlA7OP/sharing?view_moderead_only #萌宠领养-分享 可以点击此链接,进行查看O(∩_∩)O哈哈~

基于uni-app的汽车租赁app的设计与实现

1.项目背景及意义 项目背景: 随着人们生活水平的提高,汽车租赁服务在城市中变得越来越普及。传统的租车方式存在一些问题,比如租车流程繁琐、费用不透明、选择有限等。因此,开发一款基于uni-app的汽车租赁app成为了满足用户需求…

基于RFID的自动化仓储设备研发项目可行性研究报告

一、项目概况 基于RFID的自动化仓储设备研发项目,是深圳市飞鸟国际供应链股份有限公司在公司有色金属供应链一站式服务的基础上,针对有色金属供应链的仓储环节进行的研发。 多年来,公司一直坚持以“科技金融”为核心的未来发展战略&#xf…

二进制部署k8s集群-过程中的问题总结(接上篇的部署)

1、kube-apiserver部署过程中的问题 kube-apiserver.conf配置文件更改 2、calico的下载地址 curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O 这里如果kubernetes的节点服务器为多网卡配置会产生报错 修改calino.yaml配置文件 解决方法: 调…

连接服务器上mysql数据库

1. 首先在服务器的安全组上设置开放3306端口(默认是这个,有自定义可以酌情更改) 2. 更改服务器上的数据库配置文件vi /etc/mysql/my.cnf 增加下面bind- address配置 [mysqld] bind-address0.0.0.0 3. 授予本地IP地址的主机连接权限 - 创建…

论文阅读——DiffusionDet

在目标检测上使用扩散模型 前向过程:真实框-->随机框 后向过程:随机框-->真实框 前向过程: 一般一张图片真实框的数目不同,填补到同一的N个框,填补方法可以是重复真实框,填补和图片大小一样的框&a…

Redis 学习

Redis 集群共3种集群模式: 1. 主从模式 (主写从读),写请求分配到主库,完后数据同步到从库,从库主要负责读请求 同步过程: 从库启动向主库发送同步请求,数据传输的形式是RDB文件&am…

C++算法入门练习——树的带权路径长度

现有一棵n个结点的树(结点编号为从0到n-1,根结点为0号结点),每个结点有各自的权值w。 结点的路径长度是指,从根结点到该结点的边数;结点的带权路径长度是指,结点权值乘以结点的路径长度&#x…

1688商品详情API跨境专用接口php java

一、引言 随着全球电子商务的快速发展,跨境电子商务已经成为一种重要的国际贸易形式。1688作为全球最大的B2B电子商务平台之一,不仅拥有大量的商品资源,还为商家提供了丰富的API接口,以实现更高效、更便捷的电子商务活动。其中&a…

C语言-求一个整数储存在内存中的二进制中1的个数

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int main() {/*求一个整数储存在内存中的二进制中1的个数*/int number;scanf("%d", &number);int i 0;int count 0;for (i 0; i < 32; i){if (1 ((number >> i) & 1)){count;}}printf(…

CentOS 7搭建Gitlab流程

目录 1、查询docker镜像gitlab-ce 2、拉取镜像 3、查询已下载的镜像 4、新建gitlab文件夹 5、在gitlab文件夹下新建相关文件夹 6、创建运行gitlab的容器 7、查看docker容器 8、根据Linux地址访问gitlab 9、进入docker容器&#xff0c;设置用户名的和密码 10、登录git…

压力测试总共需要几个步骤?思路总结篇

在运维工作中&#xff0c;压力测试是一项很重要的工作。比如在一个网站上线之前&#xff0c;能承受多大访问量、在大访问量情况下性能怎样&#xff0c;这些数据指标好坏将会直接影响用户体验。今天我们就来深入了解下压力测试&#xff01; 1、首先&#xff0c;什么是压力测试&…

sqlite 判断数据表是否存在 失效的一种情况

前提条件 1.主项目下挂在了多个子项目 主项目 和 各个子项目又用的是不同的数据库 2.将判断是否存在的代码 和 建表代码都放进了线程中 Thread t new Thread(SqLiteUse.CreatePianChaTable);t.Start();检测数据表是否存在的语句没问题 cmd.CommandText "SELECT count(…

卫生纸标准及鉴别

一、标准分类及含义 &#xff08;1&#xff09;标准分类 ①GB——国家强制标准&#xff08;即最低标准&#xff09; ②GB/T——国家推荐标准 ③QB——轻工行业标准 ④QB/T——轻工行业推荐标准 &#xff08;2&#xff09;含义 ①国家标准是指国家标准化主管机构批准发布的。…

HIT 模式识别 手写汉字分类 Python实现

训练集数据 TrainSamples-400.csv&#xff0c;含 100 个不同汉字&#xff0c;每个汉字 400 个实例&#xff0c;每个实例均为 64*64 的二值图像&#xff1b; 训练集标注TrainSamples-400.csv&#xff0c;为 40000 个 0 到 99 间的整数&#xff0c;表示训练集中每个实例所属汉字类…

适用于4×4MiMo 4G/5G,支持GNSS和WiFi 6E的车载天线解决方案

德思特Panorama智能天线致力于为用户提供在各类复杂场景中稳定供给5G、WIFI和GNSS信号的卓越性能和支持。随着5G新频段逐渐应用、WIFI 6E频率升级以及多频定位应用的普及&#xff0c;传统的BAT[G]M-7-60[-24-58]系列天线已不再适用于当前多变的环境。 然而&#xff0c;BAT天线的…

分库分表

分库&#xff0c;分表&#xff0c;分库分表 “只分库“&#xff0c;“只分表“&#xff0c;“既分库又分表" 何时分库 在面对高并发的情况下&#xff0c;数据库连接成为性能瓶颈。当数据QPS过高导致数据库连接数不足时&#xff0c;考虑分库。在读多写少的场景下&#x…

python3:循环 2023-11-20

键盘输入一组人员的姓名、性别、年龄等信息&#xff0c;信息间采用空格分隔&#xff0c;每人一行&#xff0c;空行回车结束录入&#xff0c;示例格式如下: 张三 男 23 李四 女 21 王五 男 18 计算并输出这组人员的平均年龄(保留2位小数)和其中男性人数&#xff0c;格式如下: 平…

c++ list容器使用详解

list容器概念 list是一个双向链表容器&#xff0c;可高效地进行插入删除元素。 List 特点&#xff1a; list不可以随机存取元素&#xff0c;所以不支持at.(position)函数与[]操作符。可以对其迭代器执行&#xff0c;但是不能这样操作迭代器&#xff1a;it3使用时包含 #includ…

信安.网络安全.UDP协议拥塞

第一部分 如何解决UDP丢包问题 一、UDP 报文格式 每个 UDP 报文分为 UDP 报头和 UDP 数据区两部分。报头由 4 个 16 位长&#xff08;2 字节&#xff09;字段组成&#xff0c;分别说明该报文的源端口、目的端口、报文长度和校验值。UDP 报文格式如图所示。 UDP 报文中每个…