强调一下,这个教程只是用来亡羊补牢的,可以通过先设置好 local_dir 和 cache_dir 避免。
1. huggingface的文件下载逻辑
首先我们先介绍一下huggingface的文件下载逻辑。
这里参考如何快速下载huggingface模型——全方法总结 - 知乎中的4.1节。
简而言之,local_dir里只有符号链接,真正的模型文件在.cache里。
2. 解决方法
2.1 方法一:修改符号链接
很容易想到把.cache里的文件移到数据盘,然后修改符号链接至新地址。
教程如下:
第一步,我们要知道local_dir中哪些文件是符号链接。
如上图所示,标了箭头的就是。
然后是怎么修改它。
看这个,重复的就不写了,不如自己看教程。
Python 修改符号链接(symlink)的方法|极客教程
2.2 方法二:官方api
还有一种方法我没试,是官方文档里的。
使用snapshot_download重新“下载”一遍,指定参数 local_dir 和 local_dir_use_symlinks 取 false。
if you don’t want symlinks at all you can disable them (local_dir_use_symlinks=False
). The cache directory will still be used to check wether the file is already cached or not. If already cached, the file is duplicated from the cache (i.e. saves bandwidth but increases disk usage). If the file is not already cached, it will be downloaded and moved directly to the local dir. This means that if you need to reuse it somewhere else later, it will be re-downloaded.
简而言之,它会把你.cache里的文件复制到 local_dir 里,具体结果如何就得看各位自己试了:),有问题可以放在评论区。