课程地址:【HuggingFace简明教程,BERT中文模型实战示例.NLP预训练模型,Transformers类库,datasets类库快速入门.】
什么是huggingface?
huggingface是一个开源社区,提供了先进的NLP模型、数据集以及工具。
主要模型:

安装环境:推荐pip安装

字典和分词工具
简单的编码
大于max_length截断,小于padding
返回列表,包括max_length长度的数字
bert_chinese对中文处理时,每个字作为一个词(token)

增强的编码函数
增强编码返回的input_ids和简单编码相同
多输出了几个mask


批量编码句子
函数名字加上了plus,参数传入的方式也改变了


批量成对编码

结果

字典操作
以字为词,每个字对应了一个词

数据集操作
加载一个情感分类的数据集

数据集有很多操作函数,但大多比较简单,也不是重点






使用评价函数
有很多评价指标


计算正确率和f1

使用管道函数
使用pipeline可以解决一些简单的NLP任务。不需要训练模型就能调用的工具。但是实用价值不高
如,情感分类

阅读理解。答案需要在文本中

完型填空

文本生成

命名实体识别,识别城市名,公司名,人名等等

文本总结

翻译

实战任务1:中文分类
定义数据集
数据集包括:酒店评价、书籍评价等,分为好评和差评(二分类)
训练集:9600句话

加载tokenizer
即加载字典和分词工具
采用bert-base-chinese分词工具,需要与预训练模型相匹配

定义批处理函数
数据一条一条的转化为一批,进行分词和编码,并将分词的结果取出来

定义数据加载器

加载bert中文模型
不调整预训练模型的参数,直接应用于下游的任务中
定义每句话500个词的长度,768是词编码的维度,将每个词编码为768维度的向量

定于下游任务模型
只是一个单层的全连接网路。
将预训练模型输出的数据特征,放到全连接网络中运算,只取第0个词的特征来进行分类,这与bert模型的设计有关

训练
简单算一个交叉熵损失

迁移学习:利用bert预训练模型迁移到下游任务中,可以在非常短的时间上得到非常高的正确率。以后的NLP任务都应该是基于预训练模型来抽取特征,极大节约训练的时间和精力