使用Hugging Face提供的transformer工具有一段时间了。使用Bert等一些预训练模型的友友应该对此不陌生,懂得都懂,嘿嘿,但是网上也没有一些详细的教程。当急着用这个工具的包的时候,又没有时间去详细看官方文档,于是乎在网上或者github download一个demo,再结合官方文档完成相关的任务。这似乎有些虎头蛇尾。于是乎,趁周末时间准备对这个工具进行总结,以备自己后期查阅,并以飨读者。
再介绍Transformer工具之前,需要先说明一下,后面的内容大多是根据官方文档、一本书以及个人使用总结而来。官方文档地址如下:https://huggingface.co/docs/transformers/index。书籍名称是:《Natural Language Processing with Transformers》,就是如下这本书:
如果需要这本书的电子版的话,可以在我的订阅号:AIAS编程有道 上回复:transformers获取。
后面的文章使用没有如果没有特殊说明使用的环境如下:
下面我们就开始吧。
hugging face是一个开源社区,它提供了一个可以上传先进NLP模型、数据集的一个平台,我们可以在这个平台上下载相关的模型,以及还提供了其他便利的工具,例如我们要介绍的transformers工具。我们来看看一些数据集吧,https://huggingface.co/datasets,
在这里,可以根据任务task以及语言等来去查找。除了数据集之外,就是我们最为关注的预训练模型了:https://huggingface.co/models,
例如我们在做中文NLP相关任务经常使用的bert-base-chinese模型。这些模型也会有任务相关、语言相关的分类,我们可以看到可以有支持不同语言的模型等等。上面包含的自回归模型如:GPT2,Transformer-XL,XLNet,自编码类型的BERT,ALBERT,RoBERTa,ELECTRA以及seq2seq类型的BART,Pegasu,T5等模型。模型很多,就怕你的电脑跑步起来,好想像B站李沐大神一样配一个自己的工作站呀。
这些模型,数据集怎么使用呢?社区还提供了一个官方文档库:https://huggingface.co/docs,
当然,我们主要介绍的是transformers这个工具,后面难免会使用其他工具,读者也可以根据自己的需要选择性的学习。
我这里使用anaconda创建了一个虚拟环境(ts),安装transformers使用pip install transoformers==4.21.2
就行,如果有GPU的友友,可以安装带有对应版本cuda的pytorch,我这里使用官方安装命令语句conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=10.2 -c pytorch
。最后就有了:
执行官方的一个例子查看:
由于是第一次执行,程序会自动下载对应的模型,下载模型的速度也是蛮快的。执行效果如下:
程序环境已配置完成,后面我们再看看transformers的相关使用吧。