简介
最近了解到一个概念叫微调大模型的多概念训练,类似同时训练多个实体让大模型识别
目前了解到的开源项目有4种:
1.Dreambooth:这种是目前市面上教程最多的
2.Custom Diffusion:这款是Adobe的研究机构出的一个项目,但是我目前没有部署成功deepspeed框架和triton框架没安装成功
3.Cones:目前还没有深入了解
4.Cones-V2:Cones 2 使用简单而有效的表示来注册主题。每个科目所需的存储空间约为5 KB。此外,Cones 2 允许灵活组合各种主题,无需任何模型调整。
踩坑记录
我这里部署的是Cones-V2,在这个过程中遇到的一些问题进行记录一下
1.框架安装的过程遇到的就是Pytorch和cuda的版本的问题,这个问题会导致accelerate config 配置完成后,启动训练时会使用cpu进行训练,无法开启GPU训练。确认GPU是否能正常使用可以使用accelerate env命令查看,正常的话会显示True,否则就显示False。
如果显示False怎么解决,可以到pytorch官方上下载更新对应的Pytorch和cuda的版本
命令:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
2.MODEL_NAME这里填写模型的地址,这个地址如何本地化目前还不知道 ,要填写runwayml/stable-diffusion-v1-5,这个是huggingface.co/models上的文件,训练脚本开启后他会自动连到huggingface上下载。如果不知道MODEL_NAME要怎么填写可以查看huggingface上的Use in Diffusers代码中模型名字复制过来就可以用了
3.自动下载模型还会遇到一个连不上huggingface的问题,除了网络问题之外,还有可能就是你没有在命令行登陆huggingface的,可以使用huggingface的命令登陆一下
huggingface-cli login
4.accelerate config 选择精度的时候不管选择fp16还是bf16都会出现一个问题就是数据类型不匹配的问题,错误如下:
Input type (float) and bias type (struct c10::BFloat16) should be the same
Input type (float) and bias type (struct c10::Half) should be the same
本着先让项目能跑起来的原则,对train_cones2.py文件中的代码做了一些修改:
# weight_dtype = torch.float32 注释原来的这行代码
if accelerator.mixed_precision == "fp16":
weight_dtype = torch.float16
elif accelerator.mixed_precision == "bf16":
weight_dtype = torch.bfloat16
weight_dtype = torch.float #在这行添加这行代码
踩完上面这些坑基本上就能跑起来了,后面遇到其他问题还是陆续更新