如果服务器home空间小影响使用,可以迁移以下文件到别的盘。
—————————————————————————————————————
1 数据、已安装过的安装包等
数据和安装包,没用直接删除 or 迁移文件夹,迁移指令:
mv /home/yourusername/datas /data/username/datas
把/home/username/datas
文件夹迁移到/data/username/datas
2 python虚拟环境及环境缓存
(1)已有环境迁移
每新建一个虚拟环境会包含一个独立的python解释器,以及在该环境下安装的库和模块。Python解释器在运行时会自动生成缓存,包含在运行过程中所创建的各种对象,例如模块、类、函数、变量等等。这些库和缓存都会占用较大空间,du -sh指令查看环境或缓存所占空间:
du -sh /home/username/miniconda/envs/myenv1
PS:一个含pytorch、tensorflow框架的环境至少2G以上
已创建的虚拟环境可以直接将/home/username/miniconda/envs
下的环境文件直接mv到其他盘。注意:若在vs code或pycharm等IDE工具上使用服务器环境,将环境文件移动后,要修改解释器路径,最好重新配置解释器。
(2)新建环境时,指定环境和缓存存储路径
conda info
查看默认的虚拟环境位置、环境缓存:
若默认路径是在home盘,可以指定环境及缓存的路径。两种方式:
<1> 修改配置文件,以后create的所有环境都会默认存放在你指定的路径下了
打开/home/username/下的.condarc
文件,添加以下几行,注意路径要修改成你自己的!!
envs_dirs:
- /data/username/conda/envs
pkgs_dirs:
- /data/username/conda/pkgs
保存之后,执行conda info
检查一下:
默认位置已经修改啦,此时你新建环境create -n myenv1,在你指定的默认路径下才能看到了!
<2> create环境时指定路径,只修改你新建的这一个虚拟环境文件路径
conda create --prefix=/data/username/envs/myenv1 python=3.7
注意:myenv1是环境名称。
3 自动下载的数据、模型权重文件等
在运行一些程序时,发现home空间会突然地被大量占用,这是为啥?
很有可能是你用到的库在下载数据、下载模型文件时默认路径就在你的home/username/
下!!
那么怎么找到这些文件呢,根据你用到的库或函数去查。举一些我遇到的栗子:
(1)Hugging face
在用hugging face的transformers
包加载模型时,经常用到的函数from_pretrained()
加载指定模型。
from_pretrained()
有一个必要的参数pretrained_model_name_or_path
:表示要加载的名称或路径,可以是模型在 Hugging Face 平台上的名称(例如:THUDM/chatglm-6b
、bert-base-chinese
),也可以是本地已下载的模型文件的路径(例如:/path/to/model/bert-base-chinese-linux-x86_64-1+cuda+10.2
)。
如果是第一种情况,from_pretrained()
函数会首先检查本地计算机是否已经存在相应的预训练模型文件。如果存在,则直接返回已加载的模型对象;否则,它会向 Hugging Face 平台发送请求,下载相应的预训练模型文件并保存到本地计算机上。而这个自动下载的路径还是在/home/username
下,找到.cache/huggingface
,你下载的预训练模型都在里面。
修改下载路径:
在from_pretrained()里指定cache_dir
参数为新路径:
tokenizer = BertTokenizer.from_pretrained('THUDM/chatglm-6b', cache_dir='/data/username/pre_models')
这样加载模型时会自动下载到指定路径了,如果已占用了home,对应的模型文件也可以删掉了。