碎碎念
国内要用hugging face最大的一个问题就是连不上外网。
我每次复现一个代码都喜欢记录一下遇到的问题,就举个最近的例子:
看看这几个问题:
-
第一个问题,spacy下载模型的时候连不上github,下载不了。
-
第二个问题,连不上网
一共没遇到几个问题,网络问题占了三分之一。
因为墙的原因,你的服务器没办法直接从抱抱脸上直接下载模型。所以我的建议是,两个办法:
-
给你服务器上搞个梯子,开全局
-
本地缓存模型,上传到服务器中
本文就是讲怎么本地缓存模型,上传到服务器中。
这只是我的解决方法,如果大家有什么更好的办法速速教我,Thanks♪(・ω・)ノ
开搞
首先,在本地复现你的服务器版本库。
必要性:
我的问题列表里第三个问题(训练阶段的问题2)
之前这个方法屡试不爽,但是突然这次失灵了,后才我才发现是本地库的版本和服务器没对上,导致我缓存的模型服务器用不了。所以一定要确保本地和服务器的库能对上。
一般不需要环境中的所有包都复现,你只要确保pytorch
、transformers
、huggingface-hub
、datasets
能对上即可。
然后去你代码里找到from_pretrained
的必要代码复制到本地,运行。
等他下载完模型,去hugging face缓存目录里找。如果你没修改过缓存地址,那么默认应该是在:
C:\Users\username\.cache\huggingface
将这个缓存文件夹替换你服务器根目录下的缓存目录。
服务器的默认缓存文件夹在在目录下,默认是:
~/.cache
如果你知道刚才下载的什么模型(你肯定知道的吧),你直接把你刚才缓存的内容挪过来,如果你不知道,你就直接整个文件夹覆盖。
为了防止下载的不够全,建议你下载完了之后再去hugging face上对照一下:
Hugging Face -- The AI community building the future.
搜索你需要的模型,把该有的config什么的看看却没缺。圈出来的这几个模型是对应不用框架的,pytorch的只需要.bin
和.safetensors
即可。
实际操作一下
看一下下边这个报错,说的无非就是:
-
连不上hugging face
-
想找缓存,你也没有缓存
报错从下往上解决,所以我们解决最底下的TraceBack就够了。错误是从train_dreambooth_lora_sdxl.py
里传出来的。打开这个文件,找到他这些from_pretrained
,重新在本地搞个文件。
为什么只处理from_pretrained
即可,因为需要from_pretrained
的大都是训练模型,其中还有训练过程会消耗大量的算力,但是我们的目的只是缓存模型,所以只需要把从hugging face下载这个过程复刻即可。
给大家看几个我缓存模型 、数据集 、评价指标的示例,大家对照修改即可。
下载模型:
下载数据集:
下载评价指标: