news 2026/9/13 2:01:26

从 0 到 1 跑通 kohya_ss:AMD ROCm 训练环境实战手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 0 到 1 跑通 kohya_ss:AMD ROCm 训练环境实战手册

从 0 到 1 跑通 kohya_ss:AMD ROCm 训练环境实战手册

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

在 AMD 显卡机器上配置 kohya_ss 训练环境,最容易卡在 PyTorch 构建的选择上:装错 CUDA 版 wheel,环境就要推倒重来。项目官方提供了 ROCm 依赖通道,本文按四个阶段把环境搭好,并确认第一次训练能落地。

kohya_ss 训练环境定位:适用边界与硬性前置条件

kohya_ss 是基于 Gradio 的扩散模型训练前端,把底层训练脚本的优化器、学习率、分桶分辨率等参数封装成图形界面,你不需要手写完整的训练命令行。它的边界也要说清:项目面向训练侧,不做模型下载与版本管理,也不提供 WebUI 式的在线生图,训练产物的评测需要配合其他工具完成。

对 AMD 用户而言,ROCm 在这里不是社区补丁,而是与 CUDA 并列的官方安装路径:安装脚本会根据rocminfo是否存在自动切换依赖清单,你不用自己拼 wheel 索引地址。ROCm 依赖清单 requirements_linux_rocm.txt 中已锁定torch==2.7.1+rocm6.3tensorflow-rocm,Python 3.10 与 3.11 都有对应条目。

开始之前确认三个硬性前置条件:

  • Linux 系统(Ubuntu/Debian 系验证最充分),ROCm 6.3+ 已安装且rocminfo可执行
  • Python 3.10 或 3.11,ROCm 清单未覆盖 3.12
  • 独立显卡,显存 12GB 起(SDXL 的 LoRA 训练是常见目标)

环境搭建与首次启动 ROCm 训练链路

ROCm 运行时准备与验证

GUI 里每个训练任务最终都跑在 PyTorch 的 HIP 后端上,所以先确认系统层 ROCm 可用,否则 Python 侧装再多包也没有意义。用发行版源装 ROCm 基础工具:

sudo apt update sudo apt install -y rocm-smi

运行rocminfo应列出你的显卡与 gfx 架构,rocm-smi能看到显存总量与占用。若输出里找不到 GPU,先修驱动与内核模块,不要继续下一阶段。

拉取代码并安装 ROCm 依赖

把仓库拉到本地后交给setup.sh创建 venv、安装依赖并写入 accelerate 配置,它内部按平台选择依赖清单,避免手动 pip 装错构建:

git clone https://gitcode.com/GitHub_Trending/ko/kohya_ss cd kohya_ss
bash setup.sh --use-rocm

ROCm 分支下脚本会先升级 pip(PyTorch ROCm 的 wheel 体积大,旧版 pip 容易中断),再按清单批量安装。正常结束会打印Setup finished! Run ./gui.sh to start.,且项目根目录下已生成venv/

⚠️ 注意:若机器同时装过 NVIDIA 驱动,脚本可能优先命中 CUDA 分支。务必显式传--use-rocm,装完后确认torch.version.hip非空,否则拿到的是 CUDA 版 PyTorch。

PyTorch ROCm 环境自检

装完依赖做一次显式自检,确认 Python 侧真正连上了 AMD GPU,而不只是装了包:

source venv/bin/activate python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.version.hip)"

预期输出形如2.7.1+rocm6.3 True 6.3.4:版本带+rocm后缀、可用性为True、HIP 版本号非空。三者缺一不可,任何一项异常都说明构建选错,回到上一阶段重装。

首次启动 kohya_ss GUI 并定位训练页

自检通过后直接启动,启动脚本会激活 venv 并按平台复核依赖清单,然后拉起主界面:

bash gui.sh

浏览器打开启动日志中打印的本地地址(默认 127.0.0.1:7860),进入 LoRA 页确认模型路径与数据集目录可填写、"Accelerate Launch" 区域正常渲染,即算跑通首链路。

⚠️ 注意:gui.sh会检查LD_LIBRARY_PATH,未设置时打印黄色警告;WSL2 环境下不补/usr/lib/wsl/lib/可能导致 HIP 运行库加载失败。

核心能力速览:LoRA、DreamBooth 与 masked loss

LoRA 训练是 AMD 平台最常跑的入口。典型场景:准备几十张同风格图片,每张配同名.txt标注;仓库示例 test/img/10_darius kawasaki person/ 就是这种"图像+标注"成对结构。LoRA 页里把 network rank 设为 16、学习率落在 4e-7 量级(SDXL 基准)、最大分辨率给到 1024,即可发起一次完整训练。

DreamBooth(finetune)面向单角色或单主体的全量微调,参数在 finetune 页。它比 LoRA 更慢、显存占用更高,适合主体需要高度还原且能接受完整权重产出的场景。

⚠️ 注意:SDXL 分辨率到 1024 后显存需求明显上升,12GB 显存建议 batch 从 1 起步并开启 gradient checkpointing。

masked loss是数据侧的进阶项:给训练图配一张前景掩码(黑白图,白色为要学习的区域),损失只在掩码内计算,适合背景杂乱、只想提取主体特征的数据集。test/masked_loss/ 下存放了成对的掩码示例:

训练模式适用数据量显存压力产物
LoRA10~100 张轻量 LoRA 权重
DreamBooth20 张以上完整 ckpt/safetensors
加 masked loss视背景杂乱度与主模式相同同左,收敛更聚焦主体

参数不必全部手填:配置模板 config example.toml 里train_data_diroptimizergradient_checkpointing等字段带默认值与注释,是可以照抄的对照底稿。

排错与调优速查

显存吃紧时按顺序处理:先开 gradient checkpointing 换显存,再把 batch 压到 1 配梯度累积,最后才降分辨率;多卡训练在 "Accelerate Launch" 区域设置gpu_idsnum_processes

问题现象可能原因排查命令或操作
rocminfo列不出 GPUROCm 驱动或内核模块未装好运行rocm-smi,查 dmesg 中 amdgpu 记录
PyTorch 变成 CUDA 构建setup 未识别 ROCm 走了 CUDA 分支重跑bash setup.sh --use-rocm,核对torch.version.hip
训练中途 OOM分辨率或 batch 过高开 gradient checkpointing,下调 max_resolution
gui.sh提示 venv 缺失跳过 setup 直接启动先完成bash setup.sh --use-rocm
HIP 运行库加载失败LD_LIBRARY_PATH未设置按 gui.sh 警告补充后重启

资源索引

  • 中文训练说明:docs/train_README-zh.md,界面字段与参数含义一一对应
  • SDXL LoRA 基准配置:docs/LoRA/top_level.md,含优化器与学习率参考值
  • 现成训练预设:presets/lora/ 下按场景整理好的参数 JSON
  • 数据集 TOML 示例:test/config/ 覆盖多分辨率与 masked loss 写法

到这里,ROCm 环境从依赖到首个训练任务的链路都已落地,后续工作集中在参数与数据集调优本身。

【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 2:00:33

ESP32-P4 USB Host实战:从枚举到FatFs的U盘读写完整指南

1. 实验背景与整体方案设计1.1 为什么ESP32-P4的USB Host值得花一章来讲DNESP32P4开发板上市之后,我第一时间就拿它做了不少外设实验。说实话,串口、GPIO、I2C这些常规外设玩起来都挺顺手,但真正让我觉得这块板子“有内味”的,是它…

作者头像 李华
网站建设 2026/9/13 2:00:28

Android车机USB外设开发实战:从串口、CAN到HID设备的完整接入指南

车机调试台上经常摆着一堆 USB 外设:OBD 诊断盒子、USB-CAN 转换器、外接手柄、键盘、甚至还有临时接的串口传感器采集板。Android 车机和普通手机的 USB 开发有个非常大的区别——手机上的 USB 基本就是充电、传文件、连 ADB,而车机上 USB Host 是一个正…

作者头像 李华
网站建设 2026/9/13 1:58:24

端到端卷积神经网络SAR图像自动目标识别实战解析

简介:面向SAR图像自动目标识别(ATR)研究者的端到端卷积神经网络源码包,完整覆盖从复杂场景检测潜在目标、提取图像切片到分类识别的处理链条。方案以恒虚警率(CFAR)检测为基础,采用两级全卷积网…

作者头像 李华
网站建设 2026/9/13 1:57:01

Vector 开源发布解读:一款可编程、高性能的可观测性数据管道

Vector 开源发布解读:一款可编程、高性能的可观测性数据管道 【免费下载链接】vector A high-performance observability data pipeline. 项目地址: https://gitcode.com/GitHub_Trending/vect/vector 导读 本文围绕 Vector 官方发布公告(Introd…

作者头像 李华