4.3 Kohya install
本小节主要介绍使用kohya 进行模型的微调Lora 的训练
Kohya 是一个开源的、轻量化模型微调训练服务,提供了图形化的用户界面,被广泛用于扩散模型类文生图模型的训练。 用户可以通过图形化界面,完成模型的全参精调及LoRA 训练,无需涉及到代码层面的细节。 训练好的模型符合Kohya 生态架构,可以低成本与WebUI 等推理界面结合,实现一整套“训练-生图”工作流。
4.3.1 项目介绍
项目地址:https://github.com/bmaltais/kohya_ss
4.3.2安装步骤:
Linux Pre-requirements
To install the necessary dependencies on a Linux system, ensure that you fulfill the following requirements:
Ensure that
venv
support is pre-installed. You can install it on Ubuntu 22.04 using the command:Install the CUDA 11.8 Toolkit by following the instructions provided in this link.
Make sure you have Python version 3.10.9 or higher (but lower than 3.11.0) installed on your system.
Setup Linux
To set up the project on Linux or macOS, perform the following steps:
Open a terminal and navigate to the desired installation directory.
Clone the repository by running the following command:
Change into the
kohya_ss
directory:If you encounter permission issues, make the
setup.sh
script executable by running the following command:Run the setup script by executing the following command:
Note: If you need additional options or information about the runpod environment, you can use
setup.sh -h
orsetup.sh --help
to display the help message.
4.3.3安装注意事项
要注意本地的python 环境的,这里我们使用官方文档的时候的使用的是envn python自带虚拟环境管理,如果因为配置文件找不到的情况下,我们需要的到kohya ss 目录下的,手动创建的虚拟环境,然后的激活虚拟环境后,重新启动的安装命令进行安装操作
python10 envn 但是找不到,这个时候我们手动创建虚拟环境并启动安装setup.sh
首先查看下pthon 3.10 envn 所在的位置在哪个地方 find . -type d -name "venv"
./usr/lib/python3.10/venv
创建虚拟环境,并激活虚拟环境
/usr/bin/python3.10 -m venv venv
source venv/bin/activate
安装完成之后我们可以验证下是否正确进行安装:
你可以通过以下命令手动检查虚拟环境是否存在并正确配置:
ls -l /media/kohya_ss/venv
确保 venv
目录包含以下目录和文件:
bin/
lib/
include/
pyvenv.cfg
4.3.4 配置gpu accelerate
我们需要手动配置GPU 服务器的加速设置的,
因为目前是Tesla T4 GPU,可以配置accelerate以使用混合精度(fp16)来优化训练过程。这不仅可以加速训练,还可以减少显存使用。确保正确安装并配置accelerate,并在你的训练脚本中使用它来优化计算资源的利用。如果你有多个GPU,可以选择分布式训练选项以进一步提升性能。
这里我们要记住fp16 混个精度,一般来说我们的平时遇到的模型的使用都是这个精度fp16 的,但是的不排除在后续的时间内我们遇到精度更小的的fp8 的模型。
基本配置步骤
安装
accelerate
库: 确保你已经安装了accelerate
库:运行
accelerate
配置命令: 使用accelerate
的配置命令来生成配置文件:回答配置问题: 根据你的GPU信息,以下是一些问题及其推荐的回答:
In which compute environment are you running?
选择
No distributed training
,如果你只在单个GPU上运行。选择
Multi-GPU
,如果你计划使用多个GPU(Tesla T4通常用于多GPU设置,但如果你只有一个T4则选择No distributed training
)。
Which type of machine are you using?
选择
This machine
,如果你在本地机器上运行。选择
AWS
,GCP
等,如果你在云端运行(例如在Google Cloud Platform上使用Tesla T4)。
Do you want to use fp16 (mixed precision)?
选择
Yes
,Tesla T4支持混合精度训练,这通常可以加速训练并减少显存使用。
How many processes in total will you use?
通常为
1
,除非你进行分布式训练。-all
Do you wish to optimize your configuration with DeepSpeed?
根据需要选择
Yes
或No
。DeepSpeed 是一个优化库,可以进一步加速和优化训练过程。如果你不确定,可以先选择No
,以后可以根据需要再启用。
完成这些问题后,accelerate
会生成一个配置文件,通常位于 ~/.cache/huggingface/accelerate/default_config.yaml
。
那么为什么使用配置的文件,因为在使用gpu 进行训练推理的过程之中的,可以的使用混合精度进行的训练。混合精度(Mixed Precision)训练。混合精度训练可以显著提高训练速度和减少显存使用,但需要GPU的支持。以下是每个选项的解释和推荐:
fp16 (半精度浮点数):
解释: 使用16位浮点数进行混合精度训练。
推荐: Tesla T4 GPU支持FP16混合精度训练,选择这个选项可以显著提高训练速度和减少显存使用。
注意: 可能会引入一些数值不稳定性,但对于大多数现代模型和任务,这通常不是问题。
bf16 (脑浮点数):
解释: 使用bfloat16进行混合精度训练。
推荐: 如果你的GPU支持BF16(例如,最新的NVIDIA A100 GPU),这是一个很好的选择,因为它提供了与FP32类似的数值范围,同时具有FP16的性能优势。
注意: Tesla T4 GPU并不支持BF16,因此不推荐选择这个选项。
fp8:
解释: 使用8位浮点数进行训练。
推荐: 这个选项目前处于实验阶段,只有最新的硬件支持。如果你的硬件不支持,选择这个选项会导致错误或不稳定性。
注意: Tesla T4 GPU并不支持FP8,因此不推荐选择这个选项。
根据官方的文件目前的在 mac上使用kohya 还是不行的,所以我们只能采用其他的方案进行的,比如在 ubuntu服务器上 或者使用window 系统进行才可以。
Last updated