概览
从 Hugging Face 下载模型主要有五种常用方式:使用 Transformers 的 from_pretrained
接口、Hugging Face 提供的命令行工具(CLI)、huggingface_hub
库中的 hf_hub_download
函数、snapshot_download
方法、以及通过 Git LFS 克隆模型仓库。每种方法各有优势,可根据网络环境、自动化需求和私有仓库权限灵活选择。
方法一:Transformers Python API
通过 Transformers 库的高层接口,可以一行代码从模型仓库下载并加载模型:
python
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
首次运行时,所需权重文件会被下载并缓存到本地,再次加载时即从缓存读取,无需重复下载。
对于需要离线加载的场景,可设置 local_files_only=True
,让 from_pretrained
仅从本地缓存加载:
python
model = AutoModel.from_pretrained("bert-base-uncased", local_files_only=True)
这样可以在无网络环境下使用已下载模型。
方法二:命令行工具(CLI)
Hugging Face 官方提供 huggingface-cli
,可直接在终端下载模型文件:
python
pip install huggingface_hub
huggingface-cli download HuggingFaceH4/zephyr-7b-beta
该命令会将指定模型仓库的所有文件下载到本地缓存目录,适合快速批量下载或脚本化操作。
登录并授权后,CLI 也能访问私有仓库:
python
huggingface-cli login huggingface-cli download <private-repo-id>
授权令牌会自动保存在本地,后续下载无需重复登录。
方法三:hf_hub_download
函数
使用 huggingface_hub
库时,可精确下载指定文件而非整个仓库:
python
from huggingface_hub import hf_hub_download
local_path = hf_hub_download(repo_id="lysandre/arxiv-nlp", filename="config.json")
print(local_path) # /root/.cache/huggingface/hub/models--lysandre--arxiv-nlp/.../config.json
函数会将文件缓存在本地,并返回缓存路径,有助于在自定义脚本中灵活获取模型组件。
方法四:snapshot_download
整仓下载
当需要离线或墙内环境完整获取模型时,可使用 snapshot_download
:
python
from huggingface_hub import snapshot_download
snapshot_download(repo_id="meta-llama/Llama-2-7b-hf", repo_type="model")
该方法会下载整个仓库快照,包括所有版本的文件,并存储于本地缓存目录,支持指定分支或提交哈希。
方法五:Git LFS 克隆
模型仓库本质上是 Git 仓库,可通过 Git LFS 完整克隆:
python
git lfs install git clone https://huggingface.co/bigscience/bloom
若对私有模型有写权限,可使用 SSH:
python
git clone [email protected]:<MODEL_ID>
克隆后,仓库中包含 config.json
、权重文件(.bin
或 .safetensors
)等,可直接在本地加载。
本地缓存与管理
所有下载的模型文件默认缓存在 ~/.cache/huggingface/
目录下,包含版本管理和权限控制信息,不建议手动修改缓存文件以免损坏。
若需清理缓存,可删除对应子目录或使用官方工具:
python
huggingface-cli cache delete
管理缓存有助于节省磁盘空间并重置下载状态。
小结
-
快速体验 :使用
from_pretrained
或pipeline
即可一行加载模型。 -
批量/自动化 :推荐
huggingface-cli download
或snapshot_download
。 -
精细控制 :采用
hf_hub_download
按需获取文件。 -
克隆镜像:通过 Git LFS 完整克隆,适合二次开发和私有化部署。
根据自身需求和网络环境灵活选择,均可在 Hugging Face Hub 上安全、高效地获取所需模型。