admin管理员组

文章数量:1606446

AutoDL如何下载huggingface模型

文章目录

    • AutoDL如何下载huggingface模型
      • 方法一(AutoDL学术上网)
      • 方法二(Colab+阿里网盘)
      • 方法三(使用镜像):

本人使用AutoDL下载huggingface时,下面是我尝试过的一些方法,但有的方法对我来说没用,最后一种方法是最方便的,如果不想尝试前面的几种方法可以直接用最后一种。

方法一(AutoDL学术上网)

如果使用huggingface官网下载模型,首先需要利用token登陆,如果没有token,需要先在这里创建token,如果使用jupyter notebook,那就需要运行以下代码:

from huggingface_hub import notebook_login
notebook_login()

如果是.py文件就运行:

from huggingface_hub import login
login()

如果输入token后还是报错:

i-v2 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f88db505660>, ‘Connection to huggingface.co timed out. (connect timeout=None)’))"),

接下来我们需要利用AutoDL提供的学术加速功能,注意如果只是在本地使用ti子是没用的

如果在终端中使用:

source /etc/network_turbo

如果是在Notebook中使用:

import subprocess
import os

result = subprocess.run('bash -c "source /etc/network_turbo && env | grep proxy"', shell=True, capture_output=True, text=True)
output = result.stdout
for line in output.splitlines():
    if '=' in line:
        var, value = line.split('=', 1)
        os.environ[var] = value

如果下载报错,可以尝试更新以下库:

pip install requests==2.27.1
pip install urllib3==1.25.11

但我更新了以上库之后使用from_pretrained或者下载safetensor还是报错了:

HTTPSConnectionPool(host='cdn-lfs-us-1.huggingface.co', port=443): Read timed out.

查阅资料后解释是模型太大,下载过程网路不稳定,需要关闭VPN,所以该方法对下载太大的模型可能行不通。

方法二(Colab+阿里网盘)

由于AutoDL和阿里网盘是可以相互传输数据的,所以就先通过colab将模型下载到阿里网盘,再将模型上传到AutoDL。

首先需要用过chrome浏览器登录阿里网盘官网(https://www.alipan/drive/),按F12进入控制台获取refresh_token。

然后运行下面的代码将模型下载到阿里云盘上:

  • 安装并导入相关库
!pip install gradio bypy huggingface_hub aligo
import os
import shutil
import huggingface_hub as hh
import pandas as pd
  • huggingface授权,如何获取token见方法一
from huggingface_hub import notebook_login
notebook_login()
  • 下载你需要的模型
from huggingface_hub import snapshot_download
model_path = "./download/" #模型下载路径,可以改为你自己的,你可以在colab上创建一个download文件夹,将模型下载于此
snapshot_download(repo_id="bert-base-uncased", local_dir=model_path)
  • 填入前面获取的fresh_token
from aligo import Aligo
refresh_token = "这里填入你的fresh_token"
ali = Aligo(refresh_token=refresh_token)
  • 将模型上传到阿里云盘
ali.upload_folder(model_path)

之后我们就可以将阿里云盘的模型上传到AutoDL了,具体操作可以参考帮助文档。但是在下载模型的时候我遇到了一个问题,就是下载之后模型的大小与huggingface官网列出的模型大小不一致,即使去官网手动下载也是这样,下载的模型会偏小,从而导致以下报错:

SafetensorError: Error while deserializing header: HeaderTooSmall

目前还没有找到问题所在,希望知道的大佬指点一下,十分感谢。

方法三(使用镜像):

这种方法是最简单也是对我最有用的,只需要在下载模型前设置好镜像源即可,在导入transformer等与模型有关的库前运行如下语句:

import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror'

之后下载模型就畅通无阻了

参考资料:

  1. 如何快速下载huggingface模型——全方法总结

  2. 通过阿里云盘+colab下载 huggingface大模型

  3. 简单记录下在Autodl使用huggingface下载模型血泪经验

  4. How to download a model from huggingface?

  5. https://github/huggingface/transformers/issues/29177

本文标签: 模型如何下载AutoDLHuggingface