从浏览器下载大模型权重下到一半断了,进度归零,这种事我碰到过不止一次。后来换成 git 操作 Hugging Face 仓库,基本没再为“下载不完整”“断线重来”发过愁。这篇就把我实际用过的一套方法完整写出来:从理解 Hugging Face 仓库为什么适合用 git 拉取,到环境准备、常用命令、断点续传、只下部分文件、下载提速和镜像端点切换,最后是几个高频翻车场景的修复办法。
1. 先从根上理解:为什么模型仓库不能只靠浏览器下载
很多人第一次接触 Hugging Face 时,习惯直接在网页上点 Download 按钮,文件不大倒还好说,一旦遇到 7B、13B 这种动辄几十 GB 的模型权重,浏览器下载的弱点很快就暴露出来了。
1.1 大文件与 Git LFS 的关系
Hugging Face 的模型仓库本质上是一个 git 仓库,但和普通代码仓库有一个关键区别:普通代码仓库存的是文本源码,模型仓库存的是几个 GB 甚至几十 GB 的权重文件。为了不让这些大文件把 git 仓库撑爆,Hugging Face 用了 Git LFS(Large File Storage)机制。
Git LFS 的核心逻辑可以这样理解:仓库里真正提交到 git 版本记录中的,是一个很小的“指针文件”,几十到几百字节,里面只记录了三样东西——LFS 规范版本、文件的 SHA256 哈希值、原始文件大小。真正的大文件本体被存放在独立的 LFS 存储服务器上。当执行 git clone 或者 git checkout 时,git 会根据指针文件里的信息去 LFS 服务器拉取实际内容。
所以你在 Hugging Face 仓库页面看到的 model-00001-of-00002.safetensors 这种文件,点进去如果是几十字节的文本内容,说明你看到的是 LFS 指针,不是文件本体。用浏览器点 Download 时,Hugging Face 网页会替你处理 LFS 逻辑,直接返回真正的大文件,但浏览器的下载机制决定了它不支持断点续传到一半再接着来,一旦网络抖动,前面的进度全废。
1.2 什么时候值得用 git 方式
我自己的判断标准是:文件超过 1GB,或者仓库里有多个大文件、想整体同步一个模型目录时,直接上 git。如果是下载一两个 100MB 以下的小文件,比如 tokenizer 配置、config.json,用浏览器或者 wget 反而更快,没必要走 git 的完整流程。
另外,git 方式还有一个隐藏优势:模型仓库通常带版本记录。你可以用 git log 看模型更新历史,用 git checkout <commit> 切到指定版本。这在复现实验、对齐官方权重版本时非常实用,浏览器下载就没有这个能力。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手前的环境准备:git、LFS 与两项必要配置
在跑任何命令之前,先把环境装齐。这一步看起来基础,但很多人下载失败就卡在 LFS 没装好或者 git 版本太老。
2.1 安装 Git 与 LFS
如果你之前只装过 Git for Windows 或者 Xcode Command Line Tools 自带的 git,LFS 大概率没在里面。Hugging Face 仓库 clone 完之后本地全是指针文件,就是这个原因。
Windows 下推荐直接到 Git 官网下载 Git for Windows,安装时默认勾选 Git LFS 和 Git Bash 组件。装完打开 Git Bash,先验证两个命令:
bash复制git --version
git lfs version
如果 git lfs version 提示找不到命令,手动执行一次安装:
bash复制git lfs install
这条命令会在全局配置里写入 LFS 相关配置,之后所有仓库都会自动使用 LFS 过滤规则。macOS 用户可以用 Homebrew:
bash复制brew install git git-lfs
git lfs install
Linux 用户注意,部分发行版默认源里的 git 版本较低,建议先更新 git 再装 git-lfs:
bash复制sudo apt update
sudo apt install git git-lfs
git lfs install
2.2 全局配置与 Windows 小坑
装完之后,建议做两件基础配置。第一是设置用户名和邮箱,否则部分操作会报 “Please tell me who you are”:
bash复制git config --global user.name "your name"
git config --global user.email "you@example.com"
第二是处理 Windows 下的长路径问题。模型仓库里有些文件路径很长,比如 some-dir/sub-dir/.../model-00001-of-00008.safetensors,Windows 默认路径长度限制会导致 checkout 失败。执行下面两条配置可以规避:
bash复制git c
