下载huggingface预训练模型到本地并调用

写在前面

在大模型横行的时代,无法在服务器上连接外网的研究僧真的是太苦逼了,每次想尝试类似于CLIP,BLIP之类的大模型都会得到“requests.exceptions.ConnectionError: (MaxRetryError("HTTPSConnectionPool(host=‘huggingface.co’, port=443)” 或“requests.exceptions.ConnectionError: (MaxRetryError(“HTTPSConnectionPool(host=‘huggingface.co’, port=443): Max retries exceeded with url: /api/models/bert-base-uncased/tree/main?recursive=True&expand=False (Caused by NewConnectionError(‘: Failed to establish a new connection: [Errno 101] Network is unreachable’))”), ‘(Request ID: 390a0157-95dd-416d-80c5-79f4fdd4b6d1)’)”类似的“奖励”。

其实主要就是因为无法访问外网,从而不能从huggingface下载预训练的权重导致的。一个简单的方式就是在本地将预训练的权重文件下载好,然后再上传到服务器上,但是找了一下现在网上的相关教程都不是特别容易上手,特此在这里记录一下便于后续自己遇到类似的问题参考。

下面以BLIP调用BERT为例。

报错的语句为:

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

解决方案

1. 进入huggingface官网:https://huggingface.co/
下载huggingface预训练模型到本地并调用_第1张图片
2. 在搜索框输入想要下载的模型名称,如 bert-base-uncased
下载huggingface预训练模型到本地并调用_第2张图片
3. 如图找到自己需要的模型对应的连接,点进去。 点击 Files and versions
下载huggingface预训练模型到本地并调用_第3张图片
4. 下载需要的文件,这里以Torch为例 需要下载四个文件, 分别是 config.json pytorch_model.bintokenizer.json vocab.txt
下载huggingface预训练模型到本地并调用_第4张图片
5. 在本地新建一个文件夹我这里叫BERT,然后把上面四个文件下载到这个目录下面,注意:不能改变文件名和后缀
下载huggingface预训练模型到本地并调用_第5张图片
6. 将该文件夹上传到服务器项目所在的文件夹下,from_pretrained() 里面的参数

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

修改为 服务器上改文件夹路径,如

tokenizer = BertTokenizer.from_pretrained('/data/timer/BLIP/BERT')

下载huggingface预训练模型到本地并调用_第6张图片
这里主要是因为BertTokenizer.from_pretrained() 可以接受的参数有几种,short-cut name(缩写名称,类似于bert-base-uncased这种)、identifier name(类似于microsoft/DialoGPT-small这种)、文件夹、文件。

其实相关的教程网上也有,但就是没有给一个实例或者不够全面。特别地对于下载的文件如何放置没有一个特别详细的说明。希望这篇博客能够帮助到大家。

参考:

  1. huggingface transformers预训练模型如何下载至本地,并使用?
  2. 如何从huggingface官网下载模型

你可能感兴趣的:(深度学习,服务器,大模型,人工智能)