chatGLM-6B 變更緩存目錄
緩存目錄
C:\Users\[用戶名]\.cache
C:\Users\[用戶名]\.cache\huggingface\hub
C:\Users\[用戶名]\.cache\huggingface\modules
chatGLM-6B 啟動后,會創(chuàng)建上面的目錄,并在其中添加添加一些文件:
1. 如果模型是本地則會復制一些模型文件夾中的py文件到 C:\Users\[用戶名]\.cache\huggingface\modules 中,但占不了幾M。
2.?如果是模型不是本地的,則可能會從huggingface下載模型到這里,這個沒試過,網(wǎng)上看到有人這么說。
不管怎么說,它往系統(tǒng)盤放東西就忍不了,畢竟存儲空間有限。

修改緩存目錄
1. 參數(shù)指定
可以在調(diào)用from_pretrained函數(shù)時使用cache_dir入?yún)?,指定緩存文件夾名。
但沒有作用,可能不是給本地模型用的,而是他說的下載模型的緩存位置?
2. 環(huán)境變量?TRANSFORMERS_CACHE?
添加環(huán)境變量?TRANSFORMERS_CACHE ,設置一個位置,但固定一個位置不太好,可以在啟動時臨時設置環(huán)境變量。
但不好使,只是改了?C:\Users\[用戶名]\.cache\huggingface\hub 的位置。
3. 環(huán)境變量?XDG_CACHE_HOME?
前面的 TRANSFORMERS_CACHE??并不是緩存目錄的根本路徑,這很不好。
環(huán)境變量?XDG_CACHE_HOME? 可以把?C:\Users\[用戶名]\.cache 整個改變到指定位置。

網(wǎng)上找不到更多信息,要不就不認識。。。最后來回看代碼
[略]\site-packages\transformers\dynamic_module_utils.py 的?get_cached_module_file 函數(shù)中找到了把本地模型的py文件復制到?C:\Users\[用戶名]\.cache\huggingface\modules 的內(nèi)容。
然后找到了?[略]\site-packages\transformers\utils\hub.py,在這里看到了前面的?TRANSFORMERS_CACHE ,它的默認值是由其他變量拼接的,源頭就是?XDG_CACHE_HOME?

期間看到dynamic_module_utils.py的一個奇怪函數(shù)?get_class_in_module ,內(nèi)容大概是:
把 .cache\huggingface\modules\[模型]?的一些文件復制到 系統(tǒng)temp 目錄中。
把 原文件刪除。
把?系統(tǒng)temp 中的文件復制到 原位置。