致敬所有前辈:
① 知乎上的transformers 教程
② 博客园上的Colab 使用教程
③ huggingface 官网
Huggingface Transformers 是基于一个开源基于 transformer 模型结构提供的预训练语言库,它支持 Pytorch,Tensorflow2.0,并且支持两个框架的相互转换。框架支持了最新的各种NLP预训练语言模型,使用者可以很快速的进行模型的调用,并且支持模型further pretraining 和 下游任务fine-tuning。
该库是使用 BERT 等预训练模型的最常用的库,甚至超过了google等开源的源代码。它的设计原则保证了它支持各种不同的预训练模型,并且有统一的合理的规范。使用者可以很方便的进行模型的下载,以及使用。同时,它支持用户自己上传自己的预训练模型到Model Hub中,提供其他用户使用。对于NLP从业者,可以使用这个库,很方便地进行自然语言理解(NLU) 和 自然语言生成(NLG)任务的SOTA模型使用。
特点:
1.超级 简单,快速上手
2.适合于所有人 - NLP研究员,NLP应用人员,教育工作者
3.NLU/NLG SOTA 模型支持
4.减少预训练成本,提供了30+预训练模型,100+语言 - 支持Pytorch 与 Tensorflow2.0 转换。
四种方法:
pip install transformers
pip install transformers[torch] (仅仅cpu)
pip install git+https://github.com/huggingface/transformers
conda install -c huggingface transformers
安装之后测试一下:
python -c "from transformers import pipeline; print(pipeline('sentiment-analysis')('we love you'))"
结果是这样的
[{'label': 'POSITIVE', 'score': 0.9998704791069031}]
有三种方式可以实现脱机使用,这里介绍最常用的一种:
Use the PreTrainedModel.from_pretrained() and PreTrainedModel.save_pretrained() workflow:
①Download your files ahead of time with PreTrained Model.from_pretrained()
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("bigscience/T0_3B")
model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0_3B")
②Save your files to a specified directory with PreTrainedModel.save_pretrained():
tokenizer.save_pretrained("./your/path/bigscience_t0")
model.save_pretrained("./your/path/bigscience_t0")
③Now when you’re offline, reload your files with PreTrainedModel.from_pretrained() from the specified directory:
tokenizer = AutoTokenizer.from_pretrained("./your/path/bigscience_t0")
model = AutoModel.from_pretrained("./your/path/bigscience_t0")