马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
国内做 AI 应用或大模型微调,绕不开从 Hugging Face 拉模型权重,但直连经常遇到龟速、连接超时甚至直接失败。这篇内容整理自一篇实操笔记,我把镜像配置、token 权限、单文件下载和 hf-transfer 加速这几条路径重新梳理了一遍,并补上了我自己踩过的坑和选型判断,适合正在搭建本地推理环境、做模型评测或企业私有化部署的 IT 与算法团队参考。
核心观点
Hugging Face 下载慢的根因大多不是带宽,而是默认走的官方域名在国内网络环境下不稳定;把请求端点切到镜像站(HF_ENDPOINT=https://hf-mirror.com),再配合 --resume-download 断点续传,能解决绝大多数超时和中断问题。私有或受限模型则必须配好带 Write 权限的 token,否则会在鉴权环节静默失败。
先配镜像:一条环境变量解决大部分慢速问题
博主实测环境是 x86_64 Linux 服务器。第一步就是把下载端点指向国内镜像,命令很短:
export HF_ENDPOINT=https://hf-mirror.com
这条设置的作用是让 huggingface-cli 和 huggingface_hub 的请求不再打到 huggingface.co,而是走镜像域名。建议直接写进 ~/.bashrc 或 Dockerfile 的 ENV 里,否则每开一个新终端都要重设一次,我自己就因为这个漏设过一次,排查了半天才发现是环境变量没生效。
顺带说一句,镜像站只解决"能不能稳定连上",不解决"下载速度上限",如果模型几十 GB,仍然要关注磁盘空间和续传配置。
命令行下载:token 与断点续传参数怎么填
第二步是用 CLI 拉取模型。原文给出的命令结构如下(实际使用时去掉引号):
huggingface-cli download --token "获取的hf_*******token" --resume-download --local-dir-use-symlinks False "HuggingFace上对应的模型名称" --local-dir "下载到本地的地址"
几个参数值得单独解释,很多人卡在这里:
--token:决定这次下载是否需要登录鉴权,部分模型(如 Llama 系列)必须带 token 才能拉取,公开模型可以省略。
--resume-download:断点续传,网络中断后重跑不会从头再来,大模型下载强烈建议保留。
--local-dir-use-symlinks False:关闭符号链接缓存模式,文件直接落到目标目录,便于打包和迁移。
--local-dir:指定本地落盘路径,注意预留足够磁盘空间。
token 怎么拿,权限为什么必须勾 Write
token 在 Hugging Face 账号的 Settings → Access Tokens 里创建。原文特别提醒:权限必须勾选 Write。这一点容易被忽略——很多人以为下载只需要读权限,但部分仓库在鉴权流程上对 token 类型有要求,权限不足时会直接报错或拉取失败,而不是给出明确提示。


风险提示:token 等同于账号凭证,不要硬编码进公开仓库或截图外发。企业环境建议按项目分配独立 token,并定期轮换。
只下单个文件或子目录:走 Python API 更灵活
如果不需要整个仓库,只想拿某个文件或某个文件夹,用 Python 接口更顺手。原文给的方式是先登录再下载:
from huggingface_hub import login
login()
hf_hub_download(repo_id="meta-llama/Meta-Llama-3-8B-Instruct ", filename="original/*", local_dir="/data")
注意 repo_id 里原文末尾带了一个空格,实际执行时要去掉,否则会报找不到仓库。这种按需下载的方式适合做模型评测——只拉配置文件或分词器文件验证兼容性,不用等几十 GB 权重下完。
下载方式三:hf-transfer 提速
原文提到的"黑科技"是 hf-transfer,先装包:
pip install -U hf-transfer
然后设置环境变量(Linux 下):
export HF_HUB_ENABLE_HF_TRANSFER=1
它的原理是替换底层传输实现,在高带宽环境下对下载速度提升比较明显。需要留意的是,它和镜像端点可以叠加使用,但如果你所在网络本身出口受限,提速效果会打折。装完记得验证是否真的生效,而不是装了就默认启用。
适用场景与选型建议
- 个人开发 / 小团队本地调试:镜像端点 + CLI 断点续传就够用,配置成本最低。
- 企业私有化部署:建议把 HF_ENDPOINT 固化进镜像构建流程,token 走密钥管理,避免散落在脚本里。
- 只做模型评测或格式验证:用 hf_hub_download 按需拉单个文件,比整仓下载省时省盘。
- 高带宽服务器批量拉取:叠加 hf-transfer,并确认磁盘 IO 不是瓶颈。
关键信息
- 镜像端点设置:
export HF_ENDPOINT=https://hf-mirror.com,实测环境为 x86_64 Linux 服务器。
- CLI 下载核心参数:
--token、--resume-download、--local-dir-use-symlinks False、--local-dir。
- token 权限必须包含 Write,否则部分模型鉴权会失败。
- 单文件下载走
hf_hub_download(repo_id=..., filename=..., local_dir=...),注意 repo_id 不要带多余空格。
- 提速可选装 hf-transfer,并开启对应环境变量。
qidao123.com企服评测-应用市场 编辑提示
本文方法适用于国内网络环境下从 Hugging Face 拉取模型的常见场景,命令和参数以原文实操为准。企业用户请重点关注 token 权限管理和镜像端点的合规性,建议在测试环境验证后再推到生产流程。
标题:Hugging Face 下载慢/连接超时两步解决:hf_transfer 加速与断点续传实操
国内拉取大模型权重时,卡在下载环节是常态:进度条长时间不动、报连接超时、下到一半断掉只能重来。这篇接着上一段,把剩下两步讲完——开启 hf_transfer 高速传输,以及用 huggingface-cli 配合 token 做断点续传到指定目录。对做 ToB 私有化部署、模型微调和本地推理的团队来说,这两步能直接省掉反复重试的时间成本。
先开 hf_transfer,再谈下载命令
很多人一上来就复制下载命令,结果速度还是几十 KB/s。问题往往出在没启用 Hugging Face 官方的高性能传输后端 hf_transfer。它基于 Rust 实现,用多线程并发分片下载,比默认的 Python 传输方式在带宽充足时提升明显。
Linux 或 macOS 下,直接在终端导出环境变量:
export HF_HUB_ENABLE_HF_TRANSFER=1
Windows PowerShell 写法不同,用 $env: 前缀:
$env:HF_HUB_ENABLE_HF_TRANSFER = 1
这里有个容易踩的坑:这两条命令都是临时生效的,只对当前这个终端会话有效。关掉窗口再开,变量就没了,下载又会退回默认速度。如果你经常拉模型,建议写进 shell 配置文件(如 ~/.bashrc)或系统环境变量里持久化。另外,启用前需要先装好这个包,命令是 pip install hf_transfer,否则设置变量也不会真正走加速通道。
带 token 的断点续传下载命令
环境变量配好后,用下面这条命令实际拉取模型。它的几个参数各有用处,我逐个拆开说:
huggingface-cli download --token "获取的hf_*******token" --resume-download --local-dir-use-symlinks False "HuggingFace上对应的模型名称" --local-dir "下载到本地的地址"
- --token:填入你在 Hugging Face 账号设置里生成的访问令牌(形如 hf_*******)。下载 gated 模型(需要授权同意的模型,比如部分 Llama 系列)时必须带,否则会返回 401。公开模型其实可以省略,但带上能规避匿名请求的限流。
- --resume-download:断点续传。网络中断或手动 Ctrl+C 后,重新执行同一条命令会从已下载的部分继续,不用从头再来。这是应对国内网络抖动最实用的一项。
- --local-dir-use-symlinks False:关闭软链接模式,文件以实体形式直接落到你指定的目录。旧版本默认走缓存加软链,容易出现"明明下了却找不到文件"的情况,关掉后目录结构更直观。
- --local-dir:指定下载目标路径。不写的话文件会进默认缓存目录(通常是一大堆哈希命名的文件夹),后期找模型很痛苦。建议按
模型名/版本 的规范建目录。
适用场景与选型建议
这套组合最适合三类人:一是需要把模型权重落到固定目录做私有化部署的运维和交付团队;二是本地跑推理、做微调,动辄要拉几十 GB 权重的算法同学;三是在 CI/CD 流水线里自动拉模型的工程团队,--resume-download 能显著降低流水线因网络失败而中断的概率。
如果 hf_transfer 开了速度依然上不去,通常不是命令的问题,而是出口带宽或对端连通性受限,这时候可以考虑配置镜像端点(如设置 HF_ENDPOINT 环境变量指向国内镜像)作为替代方案。注意镜像同步存在延迟,对时效性要求高的新模型要留意版本是否已同步。
关键信息
- 加速开关:
export HF_HUB_ENABLE_HF_TRANSFER=1(Linux/macOS)或 $env:HF_HUB_ENABLE_HF_TRANSFER = 1(Windows PowerShell),需先 pip install hf_transfer。
- 下载命令核心参数:
--token 鉴权、--resume-download 断点续传、--local-dir-use-symlinks False 实体文件落地、--local-dir 指定目录。
- 环境变量为临时生效,长期使用需持久化到配置文件或系统变量。
- 下载受限时,可考虑用
HF_ENDPOINT 指向镜像作为替代,但要确认镜像同步时效。
|