• 下载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

    解决方案

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

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

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

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

    在这里插入图片描述
    这里主要是因为BertTokenizer.from_pretrained() 可以接受的参数有几种,short-cut name(缩写名称,类似于bert-base-uncased这种)、identifier name(类似于microsoft/DialoGPT-small这种)、文件夹、文件。

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

    参考:

    1. huggingface transformers预训练模型如何下载至本地,并使用?
    2. 如何从huggingface官网下载模型
  • 相关阅读:
    小程序简单版音乐播放器
    多维下numpy实现torch下的log_softmax
    Deep Recurrent Q-Learning for Partially Observable MDPs(DRQN)
    华为机试真题实战应用【赛题代码篇】-天然货仓(附Java和C++代码)
    让大脑自由
    X86指令基础系列教程
    MySQL客户端工具的使用与MySQL SQL语句
    番外5:下载+安装+配置Linux
    math_review
    MySQL8.0优化 - 事务的隔离级别
  • 原文地址:https://blog.csdn.net/fovever_/article/details/134422603