Huggingface 下载权重
huggingface
本文字数:475 字 | 阅读时长 ≈ 2 min

Huggingface 下载权重

huggingface
本文字数:475 字 | 阅读时长 ≈ 2 min

1. snapshot_download

用于从 HuggingFace下载整个 repository 的快照。可以使用这个函数下载一个 repository 中的所有文件和文件夹。适用于下载整个模型 repository(包括所有的模型文件和相关配置文件)的情况,当然也可以通过指定 allow_patterns 参数来下载某个文件

from huggingface_hub import snapshot_download

repo_id = "THUDM/chatglm2-6b"  # 模型在huggingface上的名称
local_dir = "/data/wangyh/mllms/LoRA-main/examples/NLG/pretrained_checkpoints/"  # 本地模型存储的地址
# token = "XXX"  # 在hugging face上生成的 access token
# proxies = {'http': 'XXXX', 'https': 'XXXX',}

snapshot_download(
    repo_id=repo_id,
    repo_type="model",  # 可选 [dataset,model,space] 
    local_dir=local_dir,
    # revision="refs/pr/1", # default latest version
    # allow_patterns=["*.md", "*.json"],  # allow download
    # ignore_patterns="vocab.json",  # ignore download
    # token=token,
    # proxies=proxies
)

2. hf_hub_download

用于从 HuggingFace下载特定的文件。可以使用这个函数下载单个模型文件或其他特定文件,而不是下载整个 repository

from huggingface_hub import hf_hub_download

repo_id = "gpt2-medium"  # 模型在huggingface上的名称
file_name = "pytorch_model.bin"
local_dir = "/data/wangyh/mllms/LoRA-main/examples/NLG/pretrained_checkpoints_2/"  # 本地模型存储的地址
local_dir_use_symlinks = False  # 本地模型使用文件保存,而非blob形式保存
# token = "XXX"  # 在hugging face上生成的 access token
# proxies = {'http': 'XXXX', 'https': 'XXXX'}

hf_hub_download(
    repo_id=repo_id,
    repo_type="model",  # 可选 [dataset,model] 
    filename=file_name,
    local_dir=local_dir,
    local_dir_use_symlinks=local_dir_use_symlinks,
    # token=token,
    # proxies=proxies
)

3. 设置默认的 cache

cache-setup

总结一下就是,在 linux 系统和 windows 系统中,默认缓存路径是不一样的

更改默认路径,1,2,3 为优先级顺序,更改第一个即可(我也不清楚为啥有优先级顺序)

  1. Shell environment variable (default): HUGGINGFACE_HUB_CACHE or TRANSFORMERS_CACHE
  2. Shell environment variable: HF_HOME
  3. Shell environment variable: XDG_CACHE_HOME + /huggingface

🤗直接设置 HF_HOME 环境变量即可

  1. 临时生效(当前命令行): export HF_HOME=/path/to/your/cache
  2. 永久生效: vim ~/.bashrc 加入 export HF_HOME=/path/to/your/cache 保存运行 source ~/.bashrc