最近查了一下C盘爆满的原因,发现了huggingface的缓存文件这个罪魁祸首。
每次远程导入模型
、数据集
时,都会启用huggingface的缓存机制,将整个大文件下载至缓存目录中,从而保证下一次加载时非常快速。
我们可以发现,默认的缓存目录就是设置在C盘。
# datasets缓存目录的查看
from datasets import config
print(config.HF_DATASETS_CACHE)
# D:\cache\huggingface\datasets
# transformers缓存目录的查看(不建议,非常麻烦,知道默认是哪就行)
from transformers import AutoModel
model = AutoModel.from_pretrained('bert-base-chinese')
cache_path = model.config.get_from_cache('bert-base-chinese')
print(cache_path)
# D:\cache\huggingface\transformers
下面是更改存放路径的方法,分为临时的和永久的:
注:本人此时的
datasets
库版本是2.14.5;transformers
库版本是4.29.1。不同版本的库可能会有差异,huggingface的库更新太快了qwq。
-
代码更改(仅对当前python会话,下一次在新的环境中执行时就失效了)
# datasets缓存目录的修改 from datasets import config config.HF_DATASETS_CACHE = 'D:\cache\huggingface\datasets' # transformers缓存目录得在导入具体的模型时指定 from transformers import AutoModel AutoModel.from_pretrained('bert-base-chinese', cache_dir='D:\cache\huggingface\transformers')
-
修改系统环境变量(永久方法,对于Windows系统)
- 打开环境变量的设置界面。设置系统变量。
- 输入变量名
XDG_CACHE_HOME
和变量值为新缓存路径的根路径 (例如D:\cache
)。 - 点击"确定"保存,电脑重启后生效。
这样,以后的缓存结构将会是:
- 模型缓存:
D:\cache\huggingface\transformers
或D:\cache\huggingface\hub
(一般是这里) - 数据集缓存:
D:\cache\huggingface\datasets
- 此外
metrics
和modules
也分别是在D:\cache\huggingface\metrics
和D:\cache\huggingface\modules
之下。
如果库版本不一样,其实可以从库的源代码中去了解。比如我现在的
datasets
库config.py
文件,如下图所示:从这里就可以看出datasets的缓存路径的确定逻辑了。
我现在的
transformers
库utils/hub.py
文件,如下图所示:文章来源:https://www.toymoban.com/news/detail-719234.html文章来源地址https://www.toymoban.com/news/detail-719234.html
到了这里,关于修改huggingface的缓存路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!