如何避免 Hugging Face 模型重复下载

张开发
2026/4/18 3:27:15 15 分钟阅读

分享文章

如何避免 Hugging Face 模型重复下载
本文详解在使用 Hugging Face diffusers 加载 Stable Diffusion 等大模型时如何通过本地缓存或手动保存模型来彻底避免每次运行都重复下载数 GB 文件的问题并提供可直接复用的代码示例与关键注意事项。 本文详解在使用 hugging face diffusers 加载 stable diffusion 等大模型时如何通过本地缓存或手动保存模型来彻底避免每次运行都重复下载数 gb 文件的问题并提供可直接复用的代码示例与关键注意事项。在深度学习开发中频繁重复下载大型预训练模型如 Stable Diffusion v1-4体积超 4GB不仅浪费带宽和时间还会显著拖慢实验迭代效率。Hugging Face 的 diffusers 库默认将模型缓存在用户主目录下的全局缓存区如 ~/.cache/huggingface/hub/但若环境隔离如 Docker 容器、无持久化临时环境或缓存路径被意外清理from_pretrained() 就会重新触发完整下载。幸运的是Hugging Face 提供了两种稳定、高效且生产就绪的解决方案显式指定缓存目录 和 本地持久化保存/加载模型。? 方案一通过 cache_dir 参数强制复用本地缓存这是最轻量、推荐的首选方式。只需在首次加载时传入自定义 cache_dir后续调用将自动命中该路径跳过网络请求from diffusers import StableDiffusionPipeline# 首次运行自动下载并缓存到 ./my_cache/pipe StableDiffusionPipeline.from_pretrained( CompVis/stable-diffusion-v1-4, cache_dir./my_cache/, use_auth_tokenTrue, # 如需访问私有模型请确保已登录或提供 token).to(cuda)# 后续运行完全离线秒级加载pipe StableDiffusionPipeline.from_pretrained( CompVis/stable-diffusion-v1-4, cache_dir./my_cache/, use_auth_tokenTrue,).to(cuda)?? 注意事项 cache_dir 必须是绝对路径或相对于当前工作目录的稳定路径若使用相对路径请确保脚本执行位置固定。 该目录下会生成以模型 ID 命名的子文件夹如 CompVis/stable-diffusion-v1-4内含所有 .safetensors、配置文件及 tokenizer 数据。 若需跨项目共享缓存可统一设置环境变量 HF_HOME./shared_cache所有 Hugging Face 库将自动使用该根目录。? 方案二手动保存与加载模型完全离线部署适用于需要模型文件 100% 可控、打包分发或部署到无外网环境的场景。它将模型序列化为标准文件结构后续完全脱离 Hugging Face Hub 运行 幻导航网 发现优质实用网站,开启网络探索之旅

更多文章