找回密码
 立即注册
查看: 1341|回复: 0

[教程] LoRA(kohya-ss)AutoDL Linux 训练端部署教程

[复制链接]

3869

主题

36

回帖

4331

积分

管理员

积分
4331
发表于 2023-4-9 12:00:15 | 显示全部楼层 |阅读模式
前言

本教程适用于在AutoDL上的Linux系统内部署LoRA的训练端kohya-ss/sd-scripts(https://github.com/kohya-ss/sd-scripts),用于训练LoRA模型。训练出的模型适用于stable-diffusion-webui的插件kohya-ss/sd-webui-additional-networks(https://github.com/kohya-ss/sd-webui-additional-networks)。

在AutoDL上的测试结果,3090、A5000上均成功进行训练。


1. 选择conda镜像  

使用干净的miniconda镜像,便于切换python版本,并且可以避免容量不够;版本选择3.8(ubuntu20.04);cuda版本为11.6,因为kohya-ss安装的pyTorch适用的cuda版本为cu116。如果和webui安装在一台服务器,通过conda虚拟环境区分,理论上可行,未进行试验。

2. 构建conda虚拟环境

# 构建一个python3.10的conda虚拟环境my-env,并激活,必须3.10

# 保证之后所有python相关的安装均会在这个虚拟环境下进行

  1. conda create -n my-env python=3.10 -y
  2. conda init bash && source /root/.bashrc
  3. conda activate my-env
复制代码

3. 安装LoRA相关依赖

# 进入https://www.autodl.com/docs/network_turbo/

# 参考自己服务器所在区域,设置学术资源加速,加速github下载

# export http_proxy=http://xxxx && export https_proxy=http://xxxx


  1. git clone https://github.com/kohya-ss/sd-scripts.git
  2. cd sd-scripts
复制代码


# 设置pip清华源,加速pip下载

  1. pip config set global.index-url
复制代码


4. 安装xformers(可选)

  1. cd ../
复制代码

# 返回到sd-scripts的上一级目录

  1. git clone https://github.com/facebookresearch/xformers/
  2. cd xformers
复制代码

# 回退到0.0.4dev0版本,保持和kohya-ss使用的windows预编译版本一致,避免可能的兼容问题

  1. git reset --hard 3633e1afc7bffbe61957f04e7bb1a742ee910ace
  2. git submodule update --init --recursive
复制代码

# 强制使用CUDA,不开启可能会导致xformers未和CUDA一起编译
  1. export FORCE_CUDA="1"
复制代码

# 进入https://developer.nvidia.com/cuda-gpus#compute

# 设置所用显卡对应的Compute Capability,3090和A5000都是8.6

  1. export TORCH_CUDA_ARCH_LIST=8.6
复制代码

# PATH环境变量中追加cuda目录,确保编译时能识别镜像预置的cuda11.6

  1. export PATH=$PATH:/usr/local/cuda
复制代码

# 确保gcc编译时能够识别cuda的头文件


  1. export CPATH=/usr/local/cuda/targets/x86_64-linux/include
复制代码
  1. pip install -r requirements.txt
  2. pip install -e .
复制代码

说明:

xformers可以选择不安装,训练时不使用--xformers参数即可,此时可使用--mem_eff_attn降低显存占用,但速度极慢。xformers极大压缩了显存的使用,个人实测3090上512*768可训练,但显存占用达到18G,640*960即使24G也会炸显存。开启xformers后显存占用只有8G不到。如果对训练集有大分辨率的要求建议安装。

自行下载代码并编译的过程可能需要1-2个小时,在A5000上实测编译将近2小时,并且没有进度提示,需要耐心等待。编译过程不需要显卡,确保能认到cuda即可,所以在AutoDL可以使用无卡模式进行编译来节省费用。

自行编译的原因:根据pytorch作者的回答,xformers的预编译包只有在CUDA/pytorch/python版本一致的情况下才能分享使用,xformers官方在conda的linux预编译包只有最新版,大概率不兼容;pip install xformers实际等于编译安装,而且由于包本身的问题也可能会报错。所以最终还是使用最为稳妥的自行下载代码编译。
民间的预编译包如果要找对版本异常困难,需要保证CUDA/pytorch/python版本一致。如果恰好能找到,或者相同环境编译后自行打包成whl,可自行研究如何安装。

xformers正确编译特别参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/3525

5. 首次设置和启动

  1. accelerate config
复制代码

# 选择选项

# This machine

# No distributed training

# NO

# NO

# NO

# all

# fp16

# accelerate launch xxx                # 启动命令或使用其他启动脚本不再赘述


6. 以后启动

  1. cd sd-scripts
  2. conda activate my-env
复制代码

# accelerate launch xxx                # 启动命令或使用其他启动脚本不再赘述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|金房子

GMT+8, 2024-12-22 21:45 , Processed in 0.038184 second(s), 21 queries .

© 2023 金房子|AI发烧友社区

快速回复 返回顶部 返回列表