欢迎光临散文网 会员登陆 & 注册

chatGLM-6B 变更缓存目录

2023-07-13 16:46 作者:幽灵跃迁  | 我要投稿

缓存目录

C:\Users\[用户名]\.cache

C:\Users\[用户名]\.cache\huggingface\hub

C:\Users\[用户名]\.cache\huggingface\modules


chatGLM-6B 启动后,会创建上面的目录,并在其中添加添加一些文件:

1. 如果模型是本地则会复制一些模型文件夹中的py文件到 C:\Users\[用户名]\.cache\huggingface\modules 中,但占不了几M。

2. 如果是模型不是本地的,则可能会从huggingface下载模型到这里,这个没试过,网上看到有人这么说。


不管怎么说,它往系统盘放东西就忍不了,毕竟存储空间有限。



修改缓存目录

1. 参数指定

可以在调用from_pretrained函数时使用cache_dir入参,指定缓存文件夹名。

但没有作用,可能不是给本地模型用的,而是他说的下载模型的缓存位置?


2. 环境变量 TRANSFORMERS_CACHE 

添加环境变量 TRANSFORMERS_CACHE ,设置一个位置,但固定一个位置不太好,可以在启动时临时设置环境变量。

但不好使,只是改了 C:\Users\[用户名]\.cache\huggingface\hub 的位置。


3. 环境变量 XDG_CACHE_HOME 

前面的 TRANSFORMERS_CACHE  并不是缓存目录的根本路径,这很不好。

环境变量 XDG_CACHE_HOME  可以把 C:\Users\[用户名]\.cache 整个改变到指定位置。


网上找不到更多信息,要不就不认识。。。最后来回看代码

[略]\site-packages\transformers\dynamic_module_utils.py 的 get_cached_module_file 函数中找到了把本地模型的py文件复制到 C:\Users\[用户名]\.cache\huggingface\modules 的内容。

然后找到了 [略]\site-packages\transformers\utils\hub.py,在这里看到了前面的 TRANSFORMERS_CACHE ,它的默认值是由其他变量拼接的,源头就是 XDG_CACHE_HOME 



期间看到dynamic_module_utils.py的一个奇怪函数 get_class_in_module ,内容大概是:

把 .cache\huggingface\modules\[模型] 的一些文件复制到 系统temp 目录中。

把 原文件删除。

把 系统temp 中的文件复制到 原位置。


chatGLM-6B 变更缓存目录的评论 (共 条)

分享到微博请遵守国家法律