Bert模型实战

Catalogue
  1. 1. 了解Bert模型
    1. 1.1 Bert的配置
      1. 1. BERT-base
      2. 2. BERT-large
      3. 3. 其它
    2. 1.2 BERT模型预训练
    3. 1.3 BERT实战应用方式
      1. 1. 微调
      2. 2. 特征提取
      3. 3. 知识蒸馏
      4. 4. 模型修改和扩展
    4. 1.4 从预训练Bert中提取嵌入
  2. 2. 实战1:文本分类任务

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中提取嵌入。

2. 实战1:文本分类任务