如何永久删除Huggingface中无用的NLLB缓存?
解决NLLB缓存反复生成的问题
1. 定位真实的缓存路径
Huggingface Transformers/Datasets的缓存路径不一定在默认的~/.cache/huggingface,可以通过以下方法确认:
- 运行Python代码查看:
from huggingface_hub import get_cache_dir print(get_cache_dir()) - 查看环境变量(覆盖默认缓存位置的优先级更高):
- Linux/macOS终端:
echo $TRANSFORMERS_CACHE或echo $HF_HOME - Windows命令行:
echo %TRANSFORMERS_CACHE%或echo %HF_HOME%
- Linux/macOS终端:
2. 彻底清理缓存
找到路径后,直接删除NLLB相关缓存目录:
- Linux/macOS:
rm -rf <找到的缓存路径>/hub/models--facebook--nllb-* - Windows:在文件资源管理器中找到对应文件夹右键删除,或用命令行:
rmdir /s /q "<找到的缓存路径>\hub\models--facebook--nllb-*"
3. 阻止缓存自动生成
方法一:通过环境变量全局禁用
- Linux/macOS:在
~/.bashrc、~/.zshrc等配置文件中添加:
添加后执行export TRANSFORMERS_CACHE=/dev/null export HF_DATASETS_CACHE=/dev/nullsource ~/.bashrc(对应你的shell配置文件)生效。 - Windows:打开「系统属性」→「高级」→「环境变量」,新建两个系统变量:
- 变量名
TRANSFORMERS_CACHE,变量值NUL - 变量名
HF_DATASETS_CACHE,变量值NUL
重启终端或应用后生效。
- 变量名
方法二:在代码中强制禁用缓存
如果是你自己的代码调用NLLB,初始化模型时直接指定cache_dir=None:
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer model = AutoModelForSeq2SeqLM.from_pretrained( "facebook/nllb-200-distilled-600M", cache_dir=None ) tokenizer = AutoTokenizer.from_pretrained( "facebook/nllb-200-distilled-600M", cache_dir=None )
方法三:修改Huggingface配置文件
在用户目录下创建~/.huggingface/huggingface_hub_config.json(Windows路径为C:\Users\<你的用户名>\.huggingface\huggingface_hub_config.json),添加内容:
{ "cache_dir": "/dev/null" // Windows系统改为"NUL" }
注意事项
如果是第三方应用或脚本在后台调用NLLB,需要确保该应用也应用了上述配置,否则缓存仍会生成;禁用缓存后,每次调用模型会从网络下载(若允许联网),如果需要离线使用,建议仅删除NLLB相关缓存,不要全局禁用。
内容的提问来源于stack exchange,提问作者Philo
相关产品推荐
相关产品推荐

