告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: 【8月更文挑战第2天】告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验

告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验

Huggingface国内开源镜像:https://hf-mirror.com/

里面总结了很多下载的方法,下面进行一一讲解

方法一:网页下载

在模型主页的Files and Version中中可以获取文件的下载链接。无需登录直接点击下载,还可以复制下载链接,用其他下载工具下载。

方法二:huggingface-cli(🔺)

huggingface-cli 是 Hugging Face 官方提供的命令行工具,自带完善的下载功能。

  1. 安装依赖

创建项目的虚拟环境后,激活该环境并执行:

pip install -U huggingface_hub

可以运行huggingface-cli download --h命令来查看download功能的参数,如下图

  1. 设置环境变量
  • Linux
export HF_ENDPOINT=https://hf-mirror.com
  • Windows Powershell
$env:HF_ENDPOINT = "https://hf-mirror.com"
  • python
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

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

vim ~/.bashrc
export HF_ENDPOINT=https://hf-mirror.com
source ~/.bashrc
  1. 下载模型

以下载Qwen/Qwen2-7B-Instruct模型为例,模型地址:https://huggingface.co/Qwen/Qwen2-7B-Instruct,运行以下命令

可以添加 --local-dir-use-symlinks False 参数禁用文件软链接,这样下载路径下所见即所得

#以下命令都可
huggingface-cli download --resume-download --local-dir-use-symlinks False Qwen/Qwen2-7B-Instruct --local-dir /www/algorithm/agent/Qwen2-7B-Instruct

huggingface-cli download --resume-download Qwen/Qwen2-7B-Instruct --local-dir /www/algorithm/agent/Qwen2-7B-Instruct --local-dir-use-symlinks False --token hf_*****

#huggingface-cli download --resume-download gpt2 --local-dir gpt2

huggingface-cli download --resume-download --local-dir-use-symlinks False THUDM/glm-4-9b-chat --local-dir /www/algorithm/agent/glm-4-9b-chat

下载的挺快的7B大模型大概7-8min就下载完成

  1. 下载数据集
huggingface-cli download --repo-type dataset --resume-download wikitext --local-dir wikitext

方法三:专用多线程下载器 hfd

常规工具如浏览器默认采用单线程下载,由于国内网络运营商线路质量、QoS等因素有时候会很慢,多线程加速是一种有效、显著提高下载速度的方法。

经典多线程工具推荐两个:IDM、Aria2。 IDM 适用于 Windows、aria2 适用于 Linux。因此获取URL后,可以利用这些多线程工具来下载。以我的一次实测为例,单线程700KB/s,IDM 8线程 6MB/s。千兆宽带下,利用IDM能跑到80MB/s+。

hfd 是基于 Git 和 aria2 实现的专用于huggingface 下载的命令行脚本: hfd.sh(Gitst链接)。hfd 相比 huggingface-cli ,鲁棒性更好,很少会有奇奇怪怪的报错,此外多线程控制力度也更细,可以设置线程数量。

  • 具体步骤:

    • Step1:Git clone 项目仓库中lfs文件之外的所有文件,并自动获取 lfs 文件的 url;

    • Step2:利用 aria2 多线程下载文件。

hfd 是本站开发的 huggingface 专用下载工具,基于成熟工具 git+aria2,可以做到稳定下载不断线。

  1. 下载 hfd
wget https://hf-mirror.com/hfd/hfd.sh
chmod a+x hfd.sh

find . -name hfd.sh #查看文件位置

依赖安装:

sudo apt-get install aria2
  • 下载Git LFS
    下载Git LFS的最新版本。可以在Git LFS的官方网站上找到最新版本的下载链接。在Ubuntu系统上,可以使用以下命令下载Git LFS:
    apt-get install git-lfs
    
  1. 设置环境变量
  • Linux
export HF_ENDPOINT=https://hf-mirror.com
  • Windows Powershell
$env:HF_ENDPOINT = "https://hf-mirror.com"
  1. 下载模型

模型网址:THUDM/glm-4-9b-chat,https://hf-mirror.com/THUDM/glm-4-9b-chat/tree/main

./hfd.sh gpt2 --tool aria2c -x 4
  1. 下载数据集
./hfd.sh wikitext --dataset --tool aria2c -x 4

如果没有安装 aria2,则可以默认用 wget:

  • 完整命令格式:
$ ./hfd.sh -h
Usage:
hfd <model_id> [--include include_pattern] [--exclude exclude_pattern] [--hf_username username] [--hf_token token] [--tool wget|aria2c] [-x threads] [--dataset]

Description:
使用提供的模型ID从Hugging Face下载模型或数据集。

Parameters:
model_id Hugging Face模型ID,格式为'repo/model_name'。
--include (可选)标志,用于指定要包括在下载中的文件的字符串模式。
--exclude (可选)标志,用于指定要从下载中排除的文件的字符串模式。
exclude_pattern 匹配文件名以排除的模式。
--hf_username (可选)Hugging Face用户名,用于身份验证。
--hf_token (可选)Hugging Face令牌,用于身份验证。
--tool (可选)使用的下载工具。可以是wget(默认)或aria2c。
-x (可选)aria2c的下载线程数。
--dataset (可选)标志,表示下载数据集。
示例:
hfd bigscience/bloom-560m --exclude safetensors
hfd meta-llama/Llama-2-7b --hf_username myuser --hf_token mytoken --tool aria2c -x 8
hfd lavita/medical-qa-shared-task-v1-toy --dataset

方法四:使用环境变量(非侵入式)

非侵入式,能解决大部分情况。huggingface 工具链会获取HF_ENDPOINT环境变量来确定下载文件所用的网址,所以可以使用通过设置变量来解决。

HF_ENDPOINT=https://hf-mirror.com python your_script.py

不过有些数据集有内置的下载脚本,那就需要手动改一下脚本内的地址来实现了。

常见问题:

Q1: 有些项目需要登录,如何下载?

A:部分 Gated Repo 需登录申请许可。为保障账号安全,本站不支持登录,需先前往 Hugging Face 官网登录、申请许可,在官网这里获取 Access Token 后回镜像站用命令行下载。
部分工具下载 Gated Repo 的方法:

huggingface-cli: 添加--token参数

huggingface-cli download --token hf_*** --resume-download meta-llama/Llama-2-7b-hf --local-dir Llama-2-7b-hf

hfd: 添加--hf_username``--hf_token参数

hfd meta-llama/Llama-2-7b --hf_username YOUR_HF_USERNAME --hf_token hf_***

其余如from_pretrainedwgetcurl如何设置认证 token。

Q2:不推荐 Git clone原因

此外官方还提供了 git clone repo_url 的方式下载,这种方法相当简单,然而却是最不推荐直接用的方法,缺点有二:

  1. 不支持断点续传,断了重头再来;
  2. clone 会下载历史版本占用磁盘空间,即使没有历史版本,.git文件夹大小也会存储一份当前版本模型的拷贝以及元信息,导致整个模型文件夹磁盘占用两倍以上,对于有些存在历史版本的模型,下载时间两倍以上,对于网络不够稳,磁盘不够大的用户,严重不推荐!

Q3:其他方法推荐(🔺)

可以去其他平台下载:

  • ollama

网址:https://ollama.com/library

  • 魔塔社区

网址:https://www.modelscope.cn/models

相关文章
|
6月前
|
机器学习/深度学习 编解码 Shell
|
11月前
|
人工智能 开发者
解决HuggingFace模型下载难题:AI快站的高效加速服务
在AI研发领域,获取优质模型资源是关键。国内开发者常因海外服务器导致的下载困难而苦恼,尤其是大型模型下载更是耗时且充满挑战。AI快站(aifasthub.com)作为huggingface镜像网站,提供了高效的加速下载服务。它不仅解决了huggingface大模型下载的速度问题,还支持断点续传,保证下载连续性。此外,AI快站还提供全面及时更新的模型资源,是国内AI开发者的理想选择。
1291 0
|
人工智能 Linux API
LangChain开发环境准备-AI大模型私有部署的技术指南
今天开始小智将开启系列AI应用开发课程,主要基于LangChain框架基于实战项目手把手教大家如何将AI这一新时代的基础设施应用到自己开发应用中来。欢迎大家持续关注
838 0
|
19天前
|
自然语言处理 监控 API
"阿里云ModelScope深度测评:从预训练模型到一键部署,揭秘高效模型开发背后的秘密,开发者必备利器!"
【10月更文挑战第23天】阿里云ModelScope是一款便捷的模型开发、训练、部署和应用平台。它提供丰富的预训练模型,涵盖自然语言处理、计算机视觉等领域,支持一键式模型训练和部署,具备模型版本管理和监控功能,显著降低开发门槛,提高模型应用效率。
43 0
|
29天前
|
人工智能 弹性计算 自然语言处理
体验Comfyui后迷上了GenAI
《触手可及,函数计算玩转 AI 大模型》解决方案通过阿里云函数计算的无服务器架构,详细介绍了从选择模型模板到部署和调用的全过程。描述清晰,涵盖技术架构、部署步骤和示例代码,适合初学者。建议增加更多场景介绍(有时候用户不知道怎么变现)、常见问题解答和视频教程,以进一步提升用户体验。部署过程中未遇异常,函数计算的按需付费和弹性伸缩优势明显,适用于多种业务场景。建议提供更多性能优化、实际案例和安全合规建议。
41 0
|
3月前
|
前端开发 Linux API
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
【8月更文挑战第3天】无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
|
4月前
|
存储 人工智能 自然语言处理
社区供稿 | 源大模型的快速部署与高效推理——GGUF格式模型介绍与使用教程
在人工智能领域,大型语言模型的发展日新月异,它们在自然语言处理、机器翻译、智能助手等多个领域展现出了前所未有的能力。
社区供稿 | 源大模型的快速部署与高效推理——GGUF格式模型介绍与使用教程
|
6月前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
447 3
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow Serving 部署指南超赞!让机器学习模型上线不再困难,轻松开启高效服务之旅!
【8月更文挑战第31天】TensorFlow Serving是一款高性能开源服务系统,专为部署机器学习模型设计。本文通过代码示例详细介绍其部署流程:从安装TensorFlow Serving、训练模型到配置模型服务器与使用gRPC客户端调用模型,展示了一站式模型上线解决方案,使过程变得简单高效。借助该工具,你可以轻松实现模型的实际应用。
51 0
|
3月前
|
机器学习/深度学习 自然语言处理 TensorFlow
迁移学习入门指南超棒!教你如何利用预训练模型加速 TensorFlow 项目开发,开启高效之旅!
【8月更文挑战第31天】在深度学习领域,迁移学习是种在资源有限的情况下快速开发高性能模型的技术。本指南介绍如何在TensorFlow中利用预训练模型实现迁移学习,包括选择、加载预训练模型、自定义顶层、冻结预训练层及训练模型等内容,以帮助提升模型性能和训练速度。
71 0

热门文章

最新文章