一、Transformers
Transformers是2017年论文《Attention is all you need》中提出的多层Transformer结构,是一种Encode-Decode结构。
Transformers如何训练呢,2018年论文《BERT》进行了说明。BERT是基于Transformers结构进行了mask训练,官方论文中的BERT只使用了Encoder层进行pre-train获得embedding,再加上fine-tune(如多层全连接层)进行训练预测。
- 原论文:BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding
- 官方源码:google-research/bert
- 博客笔记:Bert介绍
- Transformers笔记:The Illustrated Transformer
这样的话:
玩家们就可以自己基于多种任务进行训练,并将pre-train的embedding分享出来。这样其他玩家在遇到相似
的任务的时候,基于embedding自己加上fine-tune训练使用。玩家们可以将自己的模型结构及训练数据分享出来。这样其他玩家可以在此基础上继续添加数据并基于模型结构自己训练。
而从哪儿获取embedding及模型、数据呢?这就是下面要介绍的Huggingface。
二、Huggingface
2.1 介绍
Transformers有很多实现,在github上面搜索,fork、start最多的实现是Huggingface。
huggingface首页:
可以看到huggingface包括了模型、数据集等。
2.2 常用的一些类以及方法
2.2.1 模型
How to use from the 🤗/transformers library
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForMaskedLM.from_pretrained("bert-base-uncased")
Or just clone the model repo(推荐,下载到文件夹,方便以后迁移)
git lfs install
git clone https://huggingface.co/bert-base-uncased
下载后使用:
from transformers import AutoTokenizer, AutoModelForMaskedLM
# modelPath = "./chinese-roberta-wwm-ext" # 相对路径
modelPath = "D:/chinese-roberta-wwm-ext" # 绝对路径
tokenizer = AutoTokenizer.from_pretrained(modelPath )
model = AutoModelForMaskedLM.from_pretrained(modelPath )
2.2.2 数据集
TODO
2.2.3 上传至huggingface
TODO
参考及引用
本系列大部分都基于致Great在和鲸的课程, Huggingface Transformers实战教程,作者:致Great