赞
踩
参考资料
现在做NLP方面的研究实在离不开预训练语言模型,尤其是BERT。
huggingface的transformers包是目前使用BERT最主流最方便的工具之一,写一遍博客记录如何快速上手。
注:由于官方文档和网页时常更新,链接失效是很有可能的!
本篇博客使用的transformers版本为 4.15.0
huggingface/transformers
支持的所有模型:https://huggingface.co/models
如果环境支持科学上网,可以通过git lfs
命令直接下载模型。
git lfs install
git clone https://huggingface.co/bert-base-chinese
如果需要手动下载模型并上传至服务器,则可以在 huggingface 的网页中手动下载模型。
通常我们需要保存的是三个文件及一些额外的文件
配置文件 config.json
词典文件 vocab.json
预训练模型文件,如果你使用pytorch则保存 pytorch_model.bin,如果你使用tensorflow 2则保存 tf_model.h5
额外的文件,指的是merges.txt、special_tokens_map.json、added_tokens.json、tokenizer_config.json、sentencepiece.bpe.model等,这几类是tokenizer需要使用的文件,如果出现的话,也需要保存下来。没有的话,就不必在意。如果不确定哪些需要下,哪些不需要的话,可以把类似的文件全部下载下来。
以 bert-base-chinese 模型为例,点击 Files and versions,下载所需的文件,放入与模型同名的文件夹中。
下载后,需保持文件夹和文件名称与仓库中的一致。
模型的快速使用
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
model = AutoModelForMaskedLM.from_pretrained("bert-base-chinese")
from_pretrained()
的参数pretrained_model_name_or_path
,可以接受的参数有如下几种:
short-cut name(缩写名称,类似于gpt2这种)
identifier name(类似于microsoft/DialoGPT-small这种)
文件夹
文件
对于short-cut name 或 identifier name,这种情况下,本地有文件,可以使用本地的,本地没有文件,则会自动下载。
一些常用的short-cut name,可以在 https://huggingface.co/models 中查看
对于文件夹,则会从文件夹中找vocab.json、pytorch_model.bin、tf_model.h5、merges.txt、special_tokens_map.json、added_tokens.json、tokenizer_config.json、sentencepiece.bpe.model等进行加载。所以这也是为什么下载的时候,一定要保证这些名称是这几个,不能变。
对于文件,则会直接加载文件。
官方给的样例,通常都是 short-cut name,我们可以将之替换为下载好的模型文件夹路径。
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained(local_model_path)
model = AutoModelForMaskedLM.from_pretrained(local_model_path)
Quick tour代码实时运行(google Colab)
在给定任务上使用预训练模型的最简单方法是使用pipeline()
。Transformers为以下任务提供了开箱即用的接口:
下面以情感分析任务为例
from transformers import pipeline
classifier = pipeline('sentiment-analysis')
第一次键入此命令时,将下载对应的预训练模型和它的分词器(tokenizer)。分词器的作用是将文本先进行预处理,然后将分词结果输入模型进行预测。管道将所有这些信息组合在一起,并对预测进行后期处理,使其可读。
简单使用:
classifier('We are very happy to show you the 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/362271
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。