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

目 录

一、基础架构

二、输入部分

三、预训练:MLM+NSP

[3.1 MLM:掩码语言模型](#3.1 MLM:掩码语言模型)

[3.1.1 mask模型缺点](#3.1.1 mask模型缺点)

[3.1.2 mask的概率问题](#3.1.2 mask的概率问题)

[3.1.3 mask代码实践](#3.1.3 mask代码实践)

[3.2 NSP](#3.2 NSP)

四、如何微调Bert

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

[5.1 一般做法](#5.1 一般做法)

[5.2 如何在相同领域数据中进行further pre-training](#5.2 如何在相同领域数据中进行further pre-training)

[5.3 参数设置Trick](#5.3 参数设置Trick)

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


一、基础架构

基础架构为Transformer的Encoder:

具体解释可参考简单易懂的Transformer学习笔记_十七季的博客-CSDN博客

Base bert -12层Encoder堆叠。

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

二、输入部分

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) :------尽可能小一点避免灾难性遗忘
Number of epochs :3,4
Weighted decay 修改后的adam ,使用warmup, 搭配线性衰减

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

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

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

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

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

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

相关推荐
Dann Hiroaki2 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
KhalilRuan3 小时前
Unity-MMORPG内容笔记-其三
笔记
G皮T3 小时前
【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
人工智能·chatgpt·llm·大语言模型·deepseek·deepseek-v3·deepseek-r1
九年义务漏网鲨鱼3 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
jz_ddk3 小时前
[学习] C语言数学库函数背后的故事:`double erf(double x)`
c语言·开发语言·学习
元宇宙时间3 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享3 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾3 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码4 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
kfepiza4 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian