1. 问题概述
本次修复的主要问题出现在使用 train_network.py
脚本进行 LoRA 模型训练时,具体表现为:
程序运行一段时间后报错并终止,出现
subprocess.CalledProcessError
异常。异常返回非零退出状态 3221225477,以及
returned non-zero exit status 1
、returned non-zero exit status 3221225477
等多种错误提示。
2. 问题分析
经过初步分析,可能导致问题的原因如下:
Python 环境冲突:系统中存在多个不同版本的 Python 环境,可能引发库的兼容性问题。
PyTorch 与 CUDA 版本不匹配:可能导致内存泄漏或模型调用时的错误。
Windows 11 自动更新导致底层库冲突:系统自动更新可能造成库版本变动,引发内存泄漏或底层调用错误。
硬件故障:多次重装系统失败,可能存在硬件损坏或接口故障。
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
测试结果:所有测试版本组合均未解决问题,依然报错。
测试流程:
卸载所有环境,清空所有缓存。
逐一安装 PyTorch 和 CUDA 版本组合。
使用
kohya_ss
训练 LoRA,直到测试通过或确认问题依旧。
3.3 系统重装与硬件测试
操作步骤:重装 Windows 11 旧版并再次测试,发现依然报错,排除系统版本更新导致的影响。
硬件初步分析:重装系统时多次出现异常,怀疑硬件(如硬盘、内存或显卡)存在故障。
CPU 状态分析:使用 Windows 10 安装
AIDA
检查时,发现 CPU 待机温度高达 88 度,进一步验证 CPU 温度异常可能导致系统不稳定。供电调整测试:将 CPU 供电电压从 1.5V 降低至 1.3V,每次降压幅度为 0.05V。调整后,待机温度降至 44 度,训练时温度维持在 60 度。
测试流程:
在 BIOS 中将 CPU 电压每次降低 0.05V。
重新启动并运行 LoRA 训练脚本,记录是否出现崩溃或蓝屏。
重复步骤直至找到稳定电压设置或确认无法解决问题。
4. 进一步修复计划
经过一个月的排查,包括多次系统崩溃、蓝屏、死机及 CPU 过热现象,建议后续采取以下方案:
CPU 降压持续使用:
保持目前的电压设置,尽量降低 CPU 负载。
避免在高温环境中使用,以防止温度过高导致系统不稳定。
优化室温控制:
保持室内温度适宜,尽量将室温控制在 20-24 度之间,避免温度过高。
在长时间高负载训练时,建议使用额外的风扇或空调进行辅助降温。
进一步硬件排查或更换:
联系硬件卖家或技术支持,检查 CPU 是否存在老化或其他潜在问题。
根据实际情况考虑更换 CPU 或其他故障硬件组件。
疑似显卡显存或者内存条有问题,开启缓存到硬盘可以解决(Cache latents to disk),缺点是训练过程会变慢。
5. 当前问题总结
问题源自 CPU 高温与硬件老化:多次测试和调压后,发现问题主要集中在 CPU 温度过高及晶体管可能老化引发的系统不稳定。
降压与温控有效降低报错频率:降压至 1.3V 后,系统蓝屏次数明显减少,但问题未彻底解决。
后续仍需进一步硬件排查或更换:建议在室温较低的环境下继续测试,同时联系技术支持确定是否需要更换硬件。