使用 HFD 加快 Hugging Face 模型和数据集的下载

Hugging Face 提供了丰富的预训练模型和数据集,而且使用 Hugging Face 提供的 from_pretrained() 方法可以轻松加载它们,但是,模型和数据集文件通常体积庞大,用默认方法下载起来非常花时间。

本文将指导你如何使用 HFD(Hugging Face Downloader) 来高效地下载 Hugging Face 上的模型和数据集。HFD 是一个轻量级的下载工具,支持多线程下载和镜像加速。

文章目录

准备工作

在开始之前,请确保你的系统已经安装了以下工具(如果安装可以跳过下面的安装命令):

  • Git:版本控制系统,用于管理代码和大文件。
  • WgetCurl:用于下载脚本和文件。
  • Aria2c(可选):一个支持多线程下载的下载工具,可以进一步提升下载速度。

所需工具安装

1. 安装 Git

首先,你需要安装 Git 版本控制系统。如果你的系统还没有安装 Git,可以通过以下命令进行安装:

  • Linux (Ubuntu)

    bash 复制代码
    sudo apt-get update
    sudo apt-get install git
  • macOS

    bash 复制代码
    brew install git
  • Windows

    Git for Windows 下载并安装。

2. 安装 Wget 或 Curl

HFD 脚本依赖于 wgetcurl 来下载资源,确保你至少安装了其中之一:

  • Linux (Ubuntu)

    bash 复制代码
    sudo apt-get install wget curl
  • macOS

    bash 复制代码
    brew install wget curl
  • Windows

    Wget for WindowsCurl 官方网站 下载并安装。

3. 安装 Aria2c

为了使用多线程下载提升速度,我们推荐安装 aria2c 下载工具:

  • Linux (Ubuntu)

    bash 复制代码
    sudo apt-get install aria2
  • macOS

    bash 复制代码
    brew install aria2
  • Windows

    Aria2 官方网站 下载并安装。

安装 Git LFS

Git LFS 用于处理和管理大文件,确保你能够顺利下载 Hugging Face 上的模型和数据集。

Linux

安装 Git LFS,这里以 Ubuntu 为例:

bash 复制代码
sudo apt-get update
sudo apt-get install git-lfs

安装完成后,初始化 Git LFS:

bash 复制代码
git lfs install
macOS

使用 Homebrew 安装 Git LFS:

bash 复制代码
brew install git-lfs
git lfs install
Windows
  1. 下载并安装 Git for Windows
  2. 下载 Git LFS 安装程序:Git LFS 官方下载页面
  3. 运行安装程序并初始化 Git LFS:
powershell 复制代码
git lfs install

安装 HFD

HFD 是一个用于加速 Hugging Face 资源下载的脚本工具。以下是安装和配置步骤。

下载 HFD

使用 wget 下载 HFD 脚本:

bash 复制代码
wget https://hf-mirror.com/hfd/hfd.sh

如果你使用的是 curl,可以使用以下命令:

bash 复制代码
curl -O https://hf-mirror.com/hfd/hfd.sh
执行权限

下载完成后,给脚本增加执行权限:

bash 复制代码
chmod a+x hfd.sh

配置环境变量

为了让 HFD 能够正确地使用镜像加速下载,你需要设置 HF_ENDPOINT 环境变量。根据你使用的操作系统,设置方法有所不同。

Linux

在终端中运行以下命令:

bash 复制代码
export HF_ENDPOINT=https://hf-mirror.com

为了让环境变量在每次启动终端时自动生效,可以将上述命令添加到 ~/.bashrc~/.zshrc 文件中:

bash 复制代码
echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.bashrc
source ~/.bashrc

Windows PowerShell

在 PowerShell 中运行以下命令:

powershell 复制代码
$env:HF_ENDPOINT = "https://hf-mirror.com"

为了让环境变量在每次启动 PowerShell 时自动生效,可以将上述命令添加到 PowerShell 配置文件中(通常位于 Documents\PowerShell\Microsoft.PowerShell_profile.ps1):

powershell 复制代码
Add-Content -Path $PROFILE -Value '$env:HF_ENDPOINT = "https://hf-mirror.com"'

使用 HFD 下载模型

HFD 提供了一种简便的方法来下载 Hugging Face 上的预训练模型。以下是下载 gpt2 模型的步骤。

下载 GPT-2 模型

在终端中运行以下命令:

bash 复制代码
./hfd.sh gpt2 --tool aria2c -x 4
参数说明
  • gpt2:要下载的模型名称,对应替换为你自己想下载的。
  • --tool aria2c:指定使用 aria2c 作为下载工具,以支持多线程下载。
  • -x 4:设置 aria2c 的最大连接数为 4,以加快下载速度,你可以设置得更高。

运行(-x 16):

导入模型

假设下载完之后保存在当前目录的gpt2文件夹下,可以使用以下命令直接导入,注意 AutoModelForCausalLM 仅用于当前模型,你需要根据实际情况进行替换:

python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer

# 设置模型和分词器的本地路径
model_path = "./gpt2"

# 加载模型和分词器
model = AutoModelForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

# 测试模型加载是否成功
input_text = "Hello, how are you?"
inputs = tokenizer(input_text, return_tensors="pt")

# 使用模型生成文本
outputs = model.generate(**inputs)

# 解码输出
output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(output_text)

如果下载的是量化模型

如果你使用了 4-bit 或 8-bit 量化技术(如在 HFD 中使用 quantization_config),那么需要额外配置量化参数,可以使用 Hugging Face 的 bitsandbytes 库加载量化后的模型。

python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers import BitsAndBytesConfig

model_path = "./gpt2"

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.float16,  # 或 torch.bfloat16
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type='nf4'  # 使用的量化类型
)

# 加载模型和分词器
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    quantization_config=quantization_config
)
tokenizer = AutoTokenizer.from_pretrained(model_path)

# 测试量化模型
input_text = "Hello, how are you?"
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs)
output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(output_text)

使用 HFD 下载数据集

类似于下载模型,HFD 也支持下载 Hugging Face 上的各种数据集。以下是下载 wikitext 数据集的步骤。

下载 WikiText 数据集

在终端中运行以下命令:

bash 复制代码
./hfd.sh wikitext --dataset --tool aria2c -x 4
参数说明
  • wikitext:要下载的数据集名称,对应替换为你自己想下载的。
  • --dataset:指定下载数据集。
  • --tool aria2c-x 4:同上,使用 aria2c 进行多线程下载。

参考链接

HF-Mirror

相关推荐
数据智能老司机6 小时前
从零开始构建大型语言模型——微调用于分类
深度学习·神经网络·llm
大耳朵爱学习8 小时前
大模型预训练的降本增效之路——从信息密度出发
人工智能·深度学习·机器学习·自然语言处理·大模型·llm·大语言模型
AI极客菌9 小时前
Stable Diffusion绘画 | 生成高清多细节图片的各个要素
人工智能·ai·ai作画·stable diffusion·aigc·midjourney·人工智能作画
SHI-HANG13 小时前
13 Midjourney从零到商用·实战篇:漫画设计一条龙
ai作画·aigc·midjourney
NLP工程化15 小时前
Dify 中的讯飞星火平台工具源码分析
aigc·dify
Seal软件15 小时前
GPUStack 0.2:开箱即用的分布式推理、CPU推理和调度策略
大模型·llm·aigc·gpu·genai·gpu集群
GPUStack15 小时前
GPUStack 0.2:开箱即用的分布式推理、CPU推理和调度策略
ai·大模型·aigc·gpu·genai·gpu集群
阿里云大数据AI技术15 小时前
对接开源大模型应用开发平台最佳实践
人工智能·阿里云·llm·opensearch
skywalk816316 小时前
使用PaddleNLP调用大模型ChatGLM3-6b进行信息抽取
人工智能·llm·chatglm