https://huggingface.co/transformers/quicktour.html
在transformer官网,的快速入手中,会提供些pipeline,封装了些实例,让我们快速上手,只需要简单的调用就能实现,分词,命名实体识别。
from transformers import pipeline
classifier = pipeline('sentiment-analysis')
classifier('We are very happy to show you the 🤗 Transformers library.')
得到[{'label': 'POSITIVE', 'score': 0.9997795224189758}]
1.pretrained models
模型model和分词器tokenizer的创建用到了from_pretrained
方法
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "distilbert-base-uncased-finetuned-sst-2-english"
pt_model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
首先使用tokenizers对语料进行分词,分词规则跟预训练时所使用的分词规则要一致,分词后得到一个个tokens
第二步,将tokens转化为数字,这样才能传输进模型中,要做到这步,分词器tokenizers有个词汇表,通过from_pretrained
实例化得到。这个词汇表跟与训练模型时用到的词汇表是一样的。将tokens转化为数字可以进行如下操作
inputs = tokenizer("We are very happy to show you the 🤗 Transformers library.")
也可以传进去一个句子列表,如果你的目的是将一系列句子作为一个batch传进模型中,你可能要将这些句子补长(padding)和截断(truncate)到模型所定的最大长度。
pt_batch = tokenizer(
["We are very happy to show you the 🤗 Transformers library.", "We hope you don't hate it."],
padding=True,
truncation=True,
return_tensors="pt"
)
进行补长padding操作后,会根据模型默认地对句子进行补偿,注意力掩码attention mask也会自动将补长地部分标注为0
for key, value