This post is all you need(下卷)——步步走进BERT

1 前言

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

近7万字、60余幅示例图、4个下游任务微调场景、从零实现NSP和MLM预训练任务,掌柜带你步步走进BERT模型。

自从几个月前发布

月来客栈:This post is all you need(上卷)——层层剥开Transformer978 赞同 · 151 评论文章​编辑

以来,就一直有不少客官来催掌柜更新BERT的相关内容。终于,经过几个月磨磨蹭蹭地梳理掌柜总算是把整个BERT模型的基本原理、代码实现以及原论文中所提到的4个微调任务场景都给详细地介绍了一遍。不管是对于模型本身还是各个下游任务场景,掌柜都通过图示清晰的展示了任务场景数据集的构建流程、模型的构建原理等,力争以最简单、最直白和最清晰的方式向大家介绍各个任务的模型构建原理,并且同时还能够掌握对应的代码实现。

以下为各个部分的内容讲解:

月来客栈:从零实现BERT网络模型66 赞同 · 24 评论文章​编辑

月来客栈:BERT原理与NSP和MLM108 赞同 · 14 评论文章​编辑

月来客栈:基于BERT预训练模型的中文文本分类任务70 赞同 · 12 评论文章​编辑

月来客栈:基于BERT预训练模型的英文文本蕴含任务16 赞同 · 0 评论文章​编辑

月来客栈:基于BERT预训练模型的SWAG选择任务9 赞同 · 2 评论文章​编辑

月来客栈:基于BERT预训练模型的英文文本蕴含任务16 赞同 · 0 评论文章​编辑

月来客栈:基于BERT预训练模型的SQuAD问答任务69 赞同 · 27 评论文章​编辑

月来客栈:基于BERT预训练模型的命名体识别任务12 赞同 · 3 评论文章​编辑

项目代码仓库为:

https://github.com/moon-hotel/BertWithPretrained​github.com/moon-hotel/BertWithPretrained

由于整个BERT模型的内容讲解过长,近7万余字,所以大家直接通过下载PDF阅读即可:

This post is all you need(下卷)——步步走进BERT v1.2.0.pdf

6M

·

百度网盘

完整内容目录如下:

目 录 第1节 BERT原理与预训练任务 1
1.1 引言 1
1.2 动机 3
1.2.1 面临问题 3
1.2.2 解决思路 4
1.3 技术实现 4
1.3.1 BERT网络结构 5
1.3.2 Input Embedding 5
1.3.3 BertEncoder 7
1.3.4 MLM与NSP任务 7
第2节 BERT实现 10
2.1 工程结构 10
2.2 参数管理 13
2.2.1 初始化类成员 13
2.2.2 导入本地参数 14
2.2.3 使用示例 14
2.3 Input Embedding实现 15
2.3.1 Token Embedding 15
2.3.2 Positional Embedding 16
2.3.3 Segment Embedding 16
2.3.4 Bert Embeddings 17
2.3.5 使用示例 19
2.4 BertModel实现 19
2.4.1 BertAttention实现 20
2.4.2 BertLayer实现 22
2.4.3 BertEncoder实现 24
2.4.4 BertModel实现 26
2.4.5 使用示例 27
第3节 模型的保存与迁移 29
3.1 运用场景 29
3.2 查看网络参数 29
3.2.1 查看参数 29
3.2.2 自定义参数前缀 31
3.3 模型推理过程 31
3.3.1 模型保存 31
3.3.2 模型复用 32
3.4 模型再训练过程 33
3.5 模型迁移学习 34
3.5.1 定义新模型 34
3.5.2 读取可用参数 34
3.5.3 模型迁移学习 36
第4节 基于BERT预训练模型的文本分类任务 38
4.1 任务构造原理 38
4.2 数据预处理 38
4.2.1 输入介绍 38
4.2.2 语料介绍 39
4.2.3 数据集预览 39
4.2.4 数据集构建 40
4.3 加载预训练模型 46
4.3.1 查看模型参数 46
4.3.2 载入并初始化 48
4.4 文本分类 49
4.4.1 前向传播 49
4.4.2 模型训练 50
4.4.3 模型推理 53
第5节 基于BERT预训练模型的文本蕴含任务 55
5.1 任务构造原理 55
5.2 数据预处理 55
5.2.1 输入介绍 55
5.2.2 语料介绍 55
5.2.3 数据集预览 56
5.2.4 数据集构建 57
5.3 文本蕴含 62
5.3.1 前向传播 62
5.3.2 模型训练 62
5.3.3 模型推理 63
第6节 基于BERT预训练模型的SWAG选择任务 64
6.1 任务构造原理 64
6.2 数据预处理 65
6.2.1 输入介绍 65
6.2.2 语料介绍 65
6.2.3 数据集预览 66
6.2.4 数据集构造 67
6.3 选择任务 71
6.3.1 前向传播 71
6.3.2 模型训练 73
6.3.3 模型推理 76
第7节 自定义学习率动态调整 77
7.1 引言 77
7.2动态学习率使用 78
7.2.1 constant使用 78
7.2.2 constant_with_warmup使用 80
7.2.3 linear使用 81
7.2.4 polynomial使用 81
7.2.5 cosine使用 82
7.2.6 cosine_with_restarts使用 83
7.2.7 get_scheduler使用 83
7.3 动态学习率实现 84
7.3.1 constant实现 84
7.3.2 constant_with_warmup实现 84
7.3.3 linear实现 85
7.3.4 polynomial实现 85
7.3.5 cosine实现 86
7.3.6 cosine_with_restarts实现 87
7.3.7 transfromer实现 88
7.4 LambdaLR原理 89
7.4.1 实现逻辑 89
7.4.2 学习率恢复 91
第8节 基于BERT预训练模型的SQuAD问答任务 93
8.1 任务构造原理 93
8.2 数据预处理 94
8.2.1 输入介绍 94
8.2.2 结果筛选 95
8.2.3 语料介绍 97
8.2.4 数据集预览 99
8.2.4 数据集构造 100
8.3 问答任务 112
8.3.1 前向传播 112
8.3.2 模型训练 113
8.4 模型推理 116
8.4.1 模型评估 116
8.4.2 模型推理 117
8.4.3 结果筛选 118
8.5 样本过长问题 121
8.5.1 消除长度限制 121
8.5.2 重构模型输入 123
第9节 PyTorch中使用Tensorboard 126
9.1 安装与调试 126
9.1.1 安装启动 126
9.1.2 远程连接 127
9.2 使用Tensoboard 130
9.2.1 add_scalar方法 131
9.2.2 add_graph方法 132
9.2.3 add_scalars方法 133
9.2.4 add_histogram方法 134
9.2.5 add_image方法 135
9.2.6 add_images方法 136
9.2.7 add_figure方法 136
9.2.8 add_pr_curve方法 138
9.2.9 add_embedding方法 139
9.3 使用实例 140
9.3.1 定义模型 140
9.3.2 定义分类模型 141
9.3.3 可视化展示 144
第10讲 从零实现NSP和MLM预训练任务 147
10.1 引言 147
10.2 数据预处理 148
10.2.1 英文数据格式化 148
10.2.2 中文数据格式化 150
10.2.3 构造NSP任务数据 150
10.2.4 构造MLM任务数据 152
10.2.5 构造整体任务数据 154
10.2.6 构造训练数据集 156
10.2.7 使用示例 157
10.3 预训练任务实现 159
10.3.1 NSP任务实现 159
10.3.2 MLM任务实现 160
10.3.3 前向传播 162
10.4 模型训练与微调 164
10.4.1 模型训练 164
10.4.2 模型推理 167
10.4.3 模型微调 169
总结 169
引用 170

问题选择数据集预览

问答模型数据集处理

MLM和NSP任务数据集处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值