🚀下面步骤以手动下载代替代码自动下载预训练模型。
在代码中用如下 from_pretrained() 函数下载bert等预训练模型时下载巨慢:
from transformers import BertTokenizer,BertModel,BertConfig
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
config = BertConfig.from_pretrained('bert-base-uncased')
config.update({'output_hidden_states':True})
model = BertModel.from_pretrained("bert-base-uncased",config=config)
这里以 ‘bert-base-uncased’ 预训练模型为例(下其它预训练模型也一样的步骤),自己手动下载:
hugging face官网:https://huggingface.co/models
【建议用谷歌浏览器打开,我用qq浏览器打开会有奇奇怪怪的问题】
⭐步骤1:在搜索栏搜索 ‘bert-base-uncased’,如下:
⭐步骤2:然后点进去会有模型的使用方法介绍及其对应论文等相关资料信息,点击Files and version,一般下载一下3个文件即可,因为我使用的是pt,所有下对应的pytorch_model.bin,如果是tf就下tf对应的。
⭐步骤3:下好这3个文件后,在当前代码路径下建一个文件夹起名叫:bert-base-uncased,然后把这3个文件放进去即可。
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
config = BertConfig.from_pretrained('bert-base-uncased')
config.update({'output_hidden_states':True})
model = BertModel.from_pretrained("bert-base-uncased",config=config)
ids = tokenizer(['hello world fuck','I love you'],return_tensors='pt')
outs = model(**ids)
print(len(outs))
print(outs[0].shape)
print(outs[1].shape)
print(outs[2][0].shape)
输出如下,成功调用预训练模型:
3
torch.Size([2, 5, 768])
torch.Size([2, 768])
torch.Size([2, 5, 768])
🚀!!!后来发现了一个更方便的方法:
清华源镜像了 Hugging Face Model Hub,为国内用户下载预训练模型数据提供便利。
在from_pretrained()中加入参数mirror='tuna’即可加速下载,绝了。
【!!!⭐不过清华源上可能有些模型没有,且可能没hugging face官网更新的及时。所以有时还是得手动下载】
当这种方法下载不了时,就手动下载就好。
model = BertModel.from_pretrained('bert-base-uncased', mirror='tuna')