最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

下载HuggingFace模型和数据集(免翻墙)

业界 admin 16浏览 0评论

首推 huggingface 镜像站: https://hf-mirror 。
首推工具:官方的 huggingface-cli 命令行工具

这个知乎博主总结的很全面 如何快速下载huggingface模型——全方法总结

我用下面这个流程下载就OK

1. 安装依赖

pip install -U huggingface_hub

注意:huggingface_hub 依赖于 Python>=3.8,此外需要安装 0.17.0 及以上的版本,推荐0.19.0+。

2. 代码下载

以这个模型为例amritgupta/qafacteval

# 设置环境变量
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror"

# 代码下载
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="amritgupta/qafacteval",filename="README.md",local_dir="./qafacteval")

参数

  • repo_id:模型/数据集的完整id(如amritgupta/qafacteval
  • filename:Files中的某个文件(如README.md

3. 命令行下载

3.1 设置环境变量

  • Linux
export HF_ENDPOINT=https://hf-mirror
  • Windows Powershell
$env:HF_ENDPOINT = "https://hf-mirror"

建议将上面这一行写入 ~/.bashrc。

以这两个模型和数据集为例

huggingface-cli 隶属于 huggingface_hub 库,不仅可以下载模型、数据,还可以可以登录huggingface、上传模型、数据等。huggingface-cli 属于官方工具,优先推荐!

3.2 下载模型

点下复制,得到 模型名字 huggyllama/llama-7b

huggingface-cli download huggyllama/llama-7b --local-dir /data/llama-7b

参数

  • --local-dir:安装路径(若路径不存在,则自动创建)

3.3 下载数据集

点下复制,得到 数据集名字 uoft-cs/cifar10

huggingface-cli download --repo-type dataset uoft-cs/cifar10 --local-dir cifar10

参数

  • --repo-type:类型(模型/数据集)
  • --local-dir:安装路径(若路径不存在,则自动创建)

其他可选参数

以下参考 如何快速下载huggingface模型——全方法总结

  • 可选参数 --resume-download (已废弃)
    【更新:huggingface_hub v0.23.0 已弃用 --resume-download参数,现在默认断点续传】
    通过添加该参数,huggingface-cli的下载可断点续传,可以恢复上次因主动取消或网络波动异常退出的未完成的下载。

  • 可选参数 --local-dir-use-symlinks False
    【更新:请注意,v0.23.0开始加--local-dir 时会关闭符号链接】

    值得注意的是,有个--local-dir-use-symlinks False 参数可选,因为huggingface的工具链默认会使用符号链接来存储下载的文件,导致--local-dir指定的目录中都是一些“链接文件”,真实模型则存储在~/.cache/huggingface下,如果不喜欢这个可以用 --local-dir-use-symlinks False取消这个逻辑。

    但我不太喜欢取消这个参数,其最大方便点在于,调用时可以用模型名直接引用模型,而非指定模型路径。

什么意思呢?我们知道,from_pretrain 函数可以接收一个模型的id,也可以接收模型的存储路径。

假如我们用浏览器下载了一个模型,存储到服务器的 /data/llama-7b 下了,调用的时候你得写模型的绝对路径

AutoModelForCausalLM.from_pretrained("/data/llama-7b")

然而如果你用的 huggingface-cli download gpt2 --local-dir /data/llama-7b 下载,即使你把模型存储到了自己指定的目录,但是你仍然可以简单的用模型的名字来引用他。即:

AutoModelForCausalLM.from_pretrained("llama-7b")

原理是因为 huggingface工具链会在 .cache/huggingface/ 下维护一份模型的符号链接,无论你是否指定了模型的存储路径 ,缓存目录下都会链接过去,这样可以避免自己忘了自己曾经下过某个模型,此外调用的时候就很方便。

所以用了官方工具,既可以方便的用模型名引用模型,又可以自己把模型集中存在一个自定义的路径,方便管理。

首推 huggingface 镜像站: https://hf-mirror 。
首推工具:官方的 huggingface-cli 命令行工具

这个知乎博主总结的很全面 如何快速下载huggingface模型——全方法总结

我用下面这个流程下载就OK

1. 安装依赖

pip install -U huggingface_hub

注意:huggingface_hub 依赖于 Python>=3.8,此外需要安装 0.17.0 及以上的版本,推荐0.19.0+。

2. 代码下载

以这个模型为例amritgupta/qafacteval

# 设置环境变量
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror"

# 代码下载
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="amritgupta/qafacteval",filename="README.md",local_dir="./qafacteval")

参数

  • repo_id:模型/数据集的完整id(如amritgupta/qafacteval
  • filename:Files中的某个文件(如README.md

3. 命令行下载

3.1 设置环境变量

  • Linux
export HF_ENDPOINT=https://hf-mirror
  • Windows Powershell
$env:HF_ENDPOINT = "https://hf-mirror"

建议将上面这一行写入 ~/.bashrc。

以这两个模型和数据集为例

huggingface-cli 隶属于 huggingface_hub 库,不仅可以下载模型、数据,还可以可以登录huggingface、上传模型、数据等。huggingface-cli 属于官方工具,优先推荐!

3.2 下载模型

点下复制,得到 模型名字 huggyllama/llama-7b

huggingface-cli download huggyllama/llama-7b --local-dir /data/llama-7b

参数

  • --local-dir:安装路径(若路径不存在,则自动创建)

3.3 下载数据集

点下复制,得到 数据集名字 uoft-cs/cifar10

huggingface-cli download --repo-type dataset uoft-cs/cifar10 --local-dir cifar10

参数

  • --repo-type:类型(模型/数据集)
  • --local-dir:安装路径(若路径不存在,则自动创建)

其他可选参数

以下参考 如何快速下载huggingface模型——全方法总结

  • 可选参数 --resume-download (已废弃)
    【更新:huggingface_hub v0.23.0 已弃用 --resume-download参数,现在默认断点续传】
    通过添加该参数,huggingface-cli的下载可断点续传,可以恢复上次因主动取消或网络波动异常退出的未完成的下载。

  • 可选参数 --local-dir-use-symlinks False
    【更新:请注意,v0.23.0开始加--local-dir 时会关闭符号链接】

    值得注意的是,有个--local-dir-use-symlinks False 参数可选,因为huggingface的工具链默认会使用符号链接来存储下载的文件,导致--local-dir指定的目录中都是一些“链接文件”,真实模型则存储在~/.cache/huggingface下,如果不喜欢这个可以用 --local-dir-use-symlinks False取消这个逻辑。

    但我不太喜欢取消这个参数,其最大方便点在于,调用时可以用模型名直接引用模型,而非指定模型路径。

什么意思呢?我们知道,from_pretrain 函数可以接收一个模型的id,也可以接收模型的存储路径。

假如我们用浏览器下载了一个模型,存储到服务器的 /data/llama-7b 下了,调用的时候你得写模型的绝对路径

AutoModelForCausalLM.from_pretrained("/data/llama-7b")

然而如果你用的 huggingface-cli download gpt2 --local-dir /data/llama-7b 下载,即使你把模型存储到了自己指定的目录,但是你仍然可以简单的用模型的名字来引用他。即:

AutoModelForCausalLM.from_pretrained("llama-7b")

原理是因为 huggingface工具链会在 .cache/huggingface/ 下维护一份模型的符号链接,无论你是否指定了模型的存储路径 ,缓存目录下都会链接过去,这样可以避免自己忘了自己曾经下过某个模型,此外调用的时候就很方便。

所以用了官方工具,既可以方便的用模型名引用模型,又可以自己把模型集中存在一个自定义的路径,方便管理。

发布评论

评论列表 (0)

  1. 暂无评论