深度学习-18-深入理解BERT实战使用预训练的DistilBERT模型
文章目录
- 1 预训练的BERT模型
-
- 2.1 单词级的嵌入表示
- 2.2 句子级的嵌入表示
- 2.3 从最顶层编码器层中抽取嵌入表示
-
- 2.3.1 预处理输入
- 2.3.2 获得嵌入表示
- 2.4 从所有的编码器层中抽取嵌入表示
-
- 2.4.1 预处理输入
- 2.4.2 嵌入表示
- 3 为下游任务微调BERT
-
- 3.1 文本分类
-
- 3.1.1 原理(微调BERT模型)
- 3.1.2 实战(为情绪识别微调BERT)
- 3.1.3 加载数据集
- 3.1.4 加载模型
- 3.1.5 预处理数据集
- 3.1.6 训练模型
- 3.2 自然语言推理
- 3.3 命名实体识别
- 4 问题及解决
-
- 4.1 module 'dill._dill' has no attribute 'PY3'
- 4.2 cannot import name is_mlu_available
- 4.3 FailedPreconditionError: logs is not a directory
- 5 参考附录
1 预训练的BERT模型
从开始预训练BERT模型是很耗资源的,所以我们可以下载预训练好的BERT模型。
在BERT-uncased中,所有的标记都是小写的。
在BERT-cased中的标记没有转换为小写,而是直接用来训练。
其中BERT-uncased模型是最常用的。
我们可以以下面两个方式使用预训练模型:
(1)作为抽取嵌入表示的特征抽取器。
(2)通过在下游任务像文本分类、问答等任务的微调预训练的BERT模型。
实战文本分类中的情绪识别任务和自然语言推理中的问答任务。# 2 作为抽取嵌入表示的特征抽取器
学习具体如何从预训练的BERT模型中抽取单词级和句子级的嵌入表示。
2.1 单词级的嵌入表示
考虑一个句子 I love Paris,假设我们要抽取该句子中的每个标记的上下文嵌入。
首先,我们对句子分词然后喂给预训练的BERT模型,它会返回每个标记的嵌入表示。
除了可以获取标记级(单词级)的嵌入表示,我们还可以获取句子级的表示。
假设我们想要完成一个情感分析任务,然后我们有下面的数据集: