修复报告:LoRA 训练脚本报错修复

长腿白菜
长腿白菜
发布于 2024-10-21 / 49 阅读
0
0

修复报告:LoRA 训练脚本报错修复

1. 问题概述

本次修复的主要问题出现在使用 train_network.py 脚本进行 LoRA 模型训练时,具体表现为:

  • 程序运行一段时间后报错并终止,出现 subprocess.CalledProcessError 异常。

  • 异常返回非零退出状态 3221225477,以及 returned non-zero exit status 1returned non-zero exit status 3221225477 等多种错误提示。

2. 问题分析

经过初步分析,可能导致问题的原因如下:

  1. Python 环境冲突:系统中存在多个不同版本的 Python 环境,可能引发库的兼容性问题。

  2. PyTorch 与 CUDA 版本不匹配:可能导致内存泄漏或模型调用时的错误。

  3. Windows 11 自动更新导致底层库冲突:系统自动更新可能造成库版本变动,引发内存泄漏或底层调用错误。

  4. 硬件故障:多次重装系统失败,可能存在硬件损坏或接口故障。

  5. CPU 温度异常:使用 Windows 10 安装 AIDA 检查 CPU 状态时,发现 CPU 待机温度高达 88 度,怀疑长期处于高温环境导致晶体管老化。

3. 修复过程

3.1 环境清理与重装测试

  • 操作步骤:卸载所有 Python 环境,清理系统中所有缓存文件,重新安装适用于 kohya_ss 训练脚本的环境。

  • 测试结果:问题未解决,依然报错。

3.2 PyTorch 与 CUDA 版本匹配测试

  • 操作步骤:逐一测试不同版本的 PyTorch 和 CUDA 组合,排查是否存在版本不兼容的问题。

  • 测试版本组合

    • PyTorch 1.10

      • CUDA 9.1

      • CUDA 9.2

      • CUDA 10.2

      • CUDA 11.1

    • PyTorch 1.9

      • CUDA 10.2

      • CUDA 11.0

    • PyTorch 1.8

      • CUDA 10.2

      • CUDA 11.0

    • PyTorch 1.7

      • CUDA 10.1

      • CUDA 10.2

      • CUDA 11.0

    • PyTorch 1.6

      • CUDA 10.1

      • CUDA 10.2

      • CUDA 11.0

    • PyTorch 1.5

      • CUDA 10.1

      • CUDA 10.2

    • PyTorch 1.4

      • CUDA 10.1

      • CUDA 10.2

    • PyTorch 1.3

      • CUDA 10.1

      • CUDA 9.2

    • PyTorch 1.2

      • CUDA 10.1

      • CUDA 9.2

    • PyTorch 1.1

      • CUDA 10.0

      • CUDA 9.2

    • PyTorch 1.0

      • CUDA 9.0

      • CUDA 9.2

  • 测试结果:所有测试版本组合均未解决问题,依然报错。

  • 测试流程

    1. 卸载所有环境,清空所有缓存。

    2. 逐一安装 PyTorch 和 CUDA 版本组合。

    3. 使用 kohya_ss 训练 LoRA,直到测试通过或确认问题依旧。

3.3 系统重装与硬件测试

  • 操作步骤:重装 Windows 11 旧版并再次测试,发现依然报错,排除系统版本更新导致的影响。

  • 硬件初步分析:重装系统时多次出现异常,怀疑硬件(如硬盘、内存或显卡)存在故障。

  • CPU 状态分析:使用 Windows 10 安装 AIDA 检查时,发现 CPU 待机温度高达 88 度,进一步验证 CPU 温度异常可能导致系统不稳定。

  • 供电调整测试:将 CPU 供电电压从 1.5V 降低至 1.3V,每次降压幅度为 0.05V。调整后,待机温度降至 44 度,训练时温度维持在 60 度。

  • 测试流程

    1. 在 BIOS 中将 CPU 电压每次降低 0.05V。

    2. 重新启动并运行 LoRA 训练脚本,记录是否出现崩溃或蓝屏。

    3. 重复步骤直至找到稳定电压设置或确认无法解决问题。

4. 进一步修复计划

经过一个月的排查,包括多次系统崩溃、蓝屏、死机及 CPU 过热现象,建议后续采取以下方案:

  1. CPU 降压持续使用

    • 保持目前的电压设置,尽量降低 CPU 负载。

    • 避免在高温环境中使用,以防止温度过高导致系统不稳定。

  2. 优化室温控制

    • 保持室内温度适宜,尽量将室温控制在 20-24 度之间,避免温度过高。

    • 在长时间高负载训练时,建议使用额外的风扇或空调进行辅助降温。

  3. 进一步硬件排查或更换

    • 联系硬件卖家或技术支持,检查 CPU 是否存在老化或其他潜在问题。

    • 根据实际情况考虑更换 CPU 或其他故障硬件组件。

  4. 疑似显卡显存或者内存条有问题,开启缓存到硬盘可以解决(Cache latents to disk),缺点是训练过程会变慢。

5. 当前问题总结

  1. 问题源自 CPU 高温与硬件老化:多次测试和调压后,发现问题主要集中在 CPU 温度过高及晶体管可能老化引发的系统不稳定。

  2. 降压与温控有效降低报错频率:降压至 1.3V 后,系统蓝屏次数明显减少,但问题未彻底解决。

  3. 后续仍需进一步硬件排查或更换:建议在室温较低的环境下继续测试,同时联系技术支持确定是否需要更换硬件。

6. 附件


评论