Bert模型实战
1. 了解Bert模型
BERT 是 Bidirectional Encoder Representations from Transformers 的缩写,意为多 Transformer 的双向编码器表示法
BERT是基于上下文的嵌入模型。它的原理是基于Transformer,可以把BERT看作只有编码器的 Transformer。
- 在Transformer中学习了如何将句子送入 Transformer 的编码器,它将输出句子中每个词的特征值。
- 另外,BERT的双向是什么意思呢?Transformer 的编码器是双向的,它可以从两个方向读取一个句子。因此,BERT
由 Transformer 获得双向编码器特征。(可以理解为 对文本进行编码时,能够同时考虑一个词左右两侧的上下文信息)
原始的Transformer架构本身不是天然双向的。然而,BERT基于Transformer架构,并通过特定的训练方法和任务设置(如掩码语言模型)实现了双向的语言理解。
具体的工作原理在另外的篇幅再展开介绍。
1.1 Bert的配置
- 编码器的层数用 L 表示。
- 注意力头的数量用 A 表示。
- 隐藏神经元的数量用 H 表示。
1. BERT-base
12 层编码器叠加而成;每层编码器都使用 12 个注意力头,其中前 馈网络层由 768 个隐藏神经元组成,所以从 BERT-base 得到的特征向量的大小是 768。
因此,BERT-base 模型的配置可以表示为 L = 12、A = 12、H = 768,它的网络参 数总数可达 1.1 亿个。
2. BERT-large
BERT-large 由 24 层编码器叠加而成。每层编码器都使用 16 个注意力头,其中前 馈网络层包含 1024 个隐藏神经元,所以从 BERT-large 得到的特征向量的大小是 1024.
BERT-large 模型的配置可以表示为 L = 24、A = 16、H = 1024,它的网络参数总数 可达 3.4 亿个。
3. 其它
- BERT-tiny:L = 2、H = 128。
- BERT-mini:L = 4、H = 256。
- BERT-small:L = 4、H = 512。
- BERT-medium:L = 8、H = 512。
1.2 BERT模型预训练
在大多数实际业务场景中,一般不会直接进行BERT的预训练。 预训练通常是由大型研究机构或公司在大规模数据上完成的。
1.3 BERT实战应用方式
Bert模型应用方式有以下几种:微调下游任务(分类、); 特征提取; 知识蒸馏;对预训练的Bert模型进行修改和扩展。
1. 微调
(主要的应用方式)
微调下游任务: 文本分类任务、自然语言推理任务、问答任务、命名实体识别任务
2. 特征提取
利用预训练的Bert模型生成文本的向量表示,然后将这些向量输入到其它机器学习模型中进行后续的任务处理。
3. 知识蒸馏
得到更轻量且适合特定业务场景的模型。
4. 模型修改和扩展
1.4 从预训练Bert中提取嵌入
要进行具体的实战,先看看怎么 从预训练bert中提取嵌入。