Diffusers代码学习-LoRA训练

LoRA(Low-Rank Adaptation of Large Language Models)是一种流行的轻量级训练技术,它显著减少了可训练参数的数量。它的工作原理是在模型中插入少量的新权重,并且只训练这些权重。这使得使用LoRA进行训练的速度更快、内存高效,并产生更小的模型权重(几百MB),更容易存储和共享。LoRA还可以与DreamBooth等其他训练技术相结合,以加快训练速度。

  1. 下载源代码及安装。

在运行脚本之前,请确保从以下源安装库:

git clone https://github.com/huggingface/diffusers

cd diffusers

pip install .

导航到包含train_dreambooth.py脚本的示例文件夹,并为正在使用的脚本安装所需的依赖项:

cd examples/dreambooth

pip install -r requirements.txt

注意需要修改train_dreambooth.py,将accelerator_project_config改为project_config。否则会报错returned non-zero exit status 1.

2. 安装及注册wandb

pip install wandb

登录Weights & Biases: The AI Developer Platform (wandb.ai)

图片

3. 准备训练数据集

同时下载好训练所用的数据集。

import os

os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

from huggingface_hub import snapshot_download

local_dir = "./dog"

snapshot_download(

    "diffusers/dog-example",

    local_dir=local_dir,

    repo_type="dataset",

    ignore_patterns=".gitattributes",

)

注意如果下载的文件中除了图片以外还有其他目录比如.huggingface目录,需要删掉。否则会报错PermissionError: [Errno 13] Permission denied

4. 初始化accelerate

然后需要用到accelerate库,可帮助在多个GPU/TPU上或以混合精度进行训练。它将根据硬件和环境自动配置训练设置。

这里不选择任何配置,使用设置默认值运行accelerate库

accelerate config default

5. 运行训练脚本

accelerate launch train_dreambooth_lora.py 

--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5" 

--instance_data_dir="dog" 

--output_dir="model_dog" 

--instance_prompt="a photo of sks dog" 

--resolution=512 

--train_batch_size=1 

--gradient_accumulation_steps=1 

--checkpointing_steps=100 

--learning_rate=1e-4 

--report_to="wandb" 

--lr_scheduler="constant" 

--lr_warmup_steps=0 

--max_train_steps=500 

--validation_prompt="A photo of sks dog in a bucket" 

--validation_epochs=50 

--seed="0" 

6. 查看生成结果

图片

7. 登录wandb查看训练过程

图片

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duhaining1976

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值