AMD显卡上训练kohya_ss:ROCm环境3步装好,显存调优与报错速查完整指南
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
如果你用 AMD 显卡跑 kohya_ss 做模型微调(LoRA、Dreambooth 这类在已有大模型上继续训练的操作),大概率会先撞上两类麻烦:一是装环境时装不上,二是启动训练时直接报错甚至显存溢出。这篇文章按“先装好、再跑通、最后调顺”的顺序带你把流程走一遍,所有版本号、命令、参数值都直接写死,照着敲就行。
装之前,先核对这 4 项前提
ROCm 是什么?一句话:AMD 官方出的 GPU 计算平台,作用类似 CUDA,只是服务 AMD 显卡。kohya_ss 对 AMD 的支持就是基于它实现的。
动手之前,先花两分钟确认下面的条件,能省掉后面 80% 的排错时间:
- 操作系统:Linux,内核 5.4 以上,推荐 Ubuntu 20.04 / 22.04 LTS。
- ROCm 驱动版本:必须 6.3 及以上,这是本项目依赖清单锁定的 ROCm 大版本。
- Python 版本:3.11 和其他版本都能用,但依赖包会按版本分开锁。以 TensorBoard 为例,Python 3.11 用 2.14.1,其他版本用 2.16.2;tensorflow-rocm 对应是 2.14.0.600(3.11)和 2.16.2(其他版本)。
- ⚠️onnxruntime-rocm==1.21.0 不支持 Python 3.11,如果你需要用到 ONNX 相关功能,建议避开 3.11。
这些版本约束都写死在 requirements_linux_rocm.txt 里,不要手动改版本号。
3 步装好:从驱动到可训练环境
第 1 步:装 ROCm 驱动栈
在 Ubuntu 终端执行,装上 ROCm 的 HIP 运行库(HIP 可以理解为 AMD 版的 CUDA 内核接口):
sudo apt update && sudo apt install rocm-hip-sdk第 2 步:把项目拉下来
git clone https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss第 3 步:安装 AMD 专用依赖
pip install -r requirements_linux_rocm.txt这一步会自动装好 ROCm 版的 PyTorch、TensorFlow 等训练框架和 ONNX 运行时,文件最后一行的-r requirements.txt还会把 kohya_ss 的公共依赖一并带进来,不需要单独再装一遍。
依赖文件里这几个关键版本,为什么不能动
打开 requirements_linux_rocm.txt 看前几行就能明白它的门道:
- 第 2 行
--extra-index-url https://download.pytorch.org/whl/rocm6.3:告诉 pip 额外去 PyTorch 官方 ROCm 源找包,因为 ROCm 版的 torch 在 PyPI 主站没有。 - 第 3 行
--find-links https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.1:指向 AMD 官方的 ROCm 6.4.1 仓库,这个链接已经预留,为后续升级 ROCm 大版本做准备。 - 第 5-6 行锁死核心版本:
torch==2.7.1+rocm6.3和torchvision==0.22.1+rocm6.3。
简单说:这个文件存在的意义,就是解决“AMD 显卡的软件包散落在多个专用源、PyPI 上找不到”的问题。你只需要执行上面那一条 pip 命令,源解析它自己会处理。
显存不够怎么办:按顺序动这 3 个参数
显存溢出(OOM)是 AMD 卡训练时最常见的运行时问题。不要一上来就换小数据集,按下面的顺序逐个加,每个都加一句解释:
- 加
--fp16:让训练用半精度浮点跑,显存占用大约直接减半,这是性价比最高的一档。 - 加
--gradient_checkpointing(梯度检查点):用重新计算换显存,速度会慢一点,但能明显降低峰值占用。 - 调 batch_size(批大小,一次同时处理几张图):以 RX 7900 XTX 为例,先从
batch_size=4起步能跑,再根据剩余显存往上调或往下调,找到一个既不满溢又能喂饱显卡的值。
训练参数怎么填可以参考仓库里的示例配置 config example.toml 和官方说明 docs/train_README.md,带界面的用户也可以走 GUI,入口在 kohya_gui/。
报错速查表
| 你看到的现象 | 真正的原因 | 处理办法 |
|---|---|---|
| 训练中途显存溢出(OOM) | batch_size 配大了 | 降 batch_size,同时加--gradient_checkpointing和--fp16 |
| TensorFlow 相关组件加载失败 | Python 版本和锁定的包版本对不上 | 严格按 requirements_linux_rocm.txt 第 8-11 行的版本约束安装,不要手动升/降级 |
启动时提示hipErrorNoBinaryForGpu | ROCm 驱动版本和 torch 编译目标不匹配 | 升级/重装到 6.3+ 的 ROCm 驱动栈(即第 1 步的 rocm-hip-sdk),保持与torch==2.7.1+rocm6.3对应 |
装好之后接着做什么
- 先跑一次最小的 LoRA 训练把链路验证通,再上正式数据集;
- 之后留意 requirements_linux_rocm.txt 的版本更新,ROCm 大版本升级(如 6.4.x 正式切换)都会体现在这里,跟着文件升就行。
【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考