Transformers库简单使用

Transformers库也叫(pytorch-transformers and pytorch-pretrained-bert),提供了很多SOTA的预训练模型,比如BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet, CTRL…

这个库比上一篇博客中讲的 pytorch-pretrained-bert库更完整,bert的使用方法略有不同,不需要自己手动去下载模型和词表这两个东西了,第一次运行的时候程序会自动下载,同时forward函数里也没有output_all_encoded_layers这个参数了,默认返回的就是最后一层的所有token的embedding和cls字符的embedding

比如Bert的简单使用:

from transformers import BertModel, BertTokenizer
import numpy as np
import torch


tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
bert = BertModel.from_pretrained('bert-base-uncased')

s = "I'm not sure, this can work, lol -.-"

# tokens = tokenizer.tokenize(s)
# tokens = ["[CLS]"] + tokens + ["[SEP]"]
# ids1 = torch.tensor([tokenizer.convert_tokens_to_ids(tokens)])
# print(ids1)

# 上面三行代码也可以用这一行来代替
ids2 = torch.tensor([tokenizer.encode(s, add_special_tokens=True)])
print(ids2)


result = bert(ids2)
print(result)

更具体的细节可以看官网Transformers
Github地址在这

你可能感兴趣的:(pytorch,机器学习,NLP)