logo
0
0
WeChat Login
ForkfromIAMJOYBO/PyTorch-DEV_ENV, aheadmain22 commits

🌟 Qwen-Image LoRA 训练系统

📋 项目概述

这是一个完整的Qwen-Image LoRA训练系统,专为云平台环境设计,支持H20和L40显卡,提供智能训练、数据备份和CNB平台推送功能。

🚀 快速开始

⚡ 一键启动训练

# H20显卡 (97GB显存) ./quick_start_h20.sh # L40显卡 (46GB显存) ./quick_start_l40.sh # 智能训练系统 (自动检测硬件) ./smart_train.sh

💾 数据备份保护

# 完整数据备份 ./backup_all.sh # 快速备份 ./quick_backup.sh # 推送到CNB平台 ./push_to_cnb.sh

📁 项目结构

workspace/ ├── 🎯 训练脚本 │ ├── quick_start_h20.sh # H20显卡快速启动 │ ├── quick_start_l40.sh # L40显卡快速启动 │ ├── smart_train.sh # 智能训练系统 │ ├── train_qwen_lora.sh # H20训练脚本 │ └── train_qwen_lora_l40.sh # L40训练脚本 │ ├── ⚙️ 配置文件 │ ├── dataset_config.toml # H20数据集配置 │ ├── dataset_config_l40.toml # L40数据集配置 │ └── configs/ # 配置目录 │ ├── h20/ # H20配置 │ └── l40/ # L40配置 │ ├── 💾 数据备份 │ ├── backup_all.sh # 完整备份系统 │ ├── backup_cache.sh # Cache备份 │ ├── quick_backup.sh # 快速备份 │ └── push_to_cnb.sh # CNB平台推送 │ ├── 🔧 管理工具 │ ├── continue_training.sh # 继续训练 │ ├── monitor_training.sh # 训练监控 │ ├── organize_project.sh # 项目整理 │ └── smart_optimizer.py # 智能优化器 │ ├── 📊 数据目录 │ ├── cache/ # 训练缓存 (3.6GB) │ ├── output/ # 训练输出 │ ├── dataset/ # 数据集 │ └── models/ # 模型文件 │ └── 📚 文档指南 ├── README.md # 项目说明 ├── COMPLETE_BACKUP_GUIDE.md # 备份指南 ├── CNB_PUSH_GUIDE.md # CNB推送指南 └── CONTINUE_TRAINING_GUIDE.md # 继续训练指南

🎯 核心功能

1️⃣ 智能训练系统

  • 自动硬件检测: 识别GPU型号和显存容量
  • 智能参数优化: 根据硬件自动配置最佳参数
  • 多分辨率支持: 支持1152x1536、1536x1152、1536x1536
  • 实时监控: 显存使用率、训练进度监控

2️⃣ 完整数据保护

  • 多重备份: 本地、外部存储、云存储
  • 智能压缩: 自动压缩节省空间
  • 增量备份: 仅备份变更内容
  • 自动恢复: 一键恢复到任意状态

3️⃣ CNB平台集成

  • 智能推送: 自动处理大文件和Git LFS
  • 分批上传: 网络不稳定时分批推送
  • 版本控制: 完整的Git版本管理
  • 状态监控: 实时推送状态检查

🔧 硬件支持

NVIDIA H20 (97GB显存)

# 优化配置 批处理大小: 4-8 学习率: 8e-5 LoRA维度: 64-96 训练时间: ~1.5-2小时

NVIDIA L40 (46GB显存)

# 优化配置 批处理大小: 2-4 学习率: 6e-5 LoRA维度: 48-64 训练时间: ~2-3小时

📊 数据集要求

支持的图片格式

  • 分辨率: 1152x1536, 1536x1152, 1536x1536
  • 格式: PNG, JPG, JPEG
  • 数量: 建议800-1000张
  • 标注: 每张图片对应.txt标注文件

目录结构

dataset/1152x1536/ ├── 001.png ├── 001.png.txt ├── 002.png ├── 002.png.txt └── ...

🚀 使用指南

新手快速上手

  1. 检查环境: 确认GPU和数据集
  2. 选择脚本: H20用quick_start_h20.sh,L40用quick_start_l40.sh
  3. 开始训练: 脚本会自动处理一切
  4. 监控进度: 使用monitor_training.sh
  5. 保存数据: 训练完成后运行backup_all.sh

高级用户定制

  1. 智能训练: 使用smart_train.sh自动优化
  2. 参数调优: 修改配置文件中的参数
  3. 继续训练: 使用continue_training.sh断点续训
  4. 数据管理: 使用完整备份系统保护数据

💡 最佳实践

✅ 推荐做法

  1. 训练前备份: 备份原始数据集和配置
  2. 定期保存: 每轮训练后保存检查点
  3. 监控资源: 实时监控显存和温度
  4. 及时推送: 训练完成后推送到CNB平台
  5. 文档记录: 记录训练参数和结果

❌ 避免做法

  1. 不要在训练中修改配置文件
  2. 不要删除cache目录
  3. 不要同时运行多个训练
  4. 不要忽略显存监控
  5. 不要忘记备份重要数据

🔧 故障排除

常见问题

1. 显存不足 (CUDA out of memory)

# 解决方案 1. 减少batch_size 2. 启用gradient_checkpointing 3. 使用智能训练系统自动优化 ./smart_train.sh

2. 配置文件错误

# 解决方案 1. 检查配置文件格式 2. 使用备份配置恢复 3. 重新生成配置文件

3. 训练中断

# 解决方案 1. 使用继续训练脚本 ./continue_training.sh 2. 检查最新检查点 3. 从断点继续训练

4. 数据丢失

# 解决方案 1. 从备份恢复 ./backup_all.sh # 选择恢复选项 2. 从CNB平台拉取 git clone your_cnb_repo

📈 性能优化

H20显卡优化

  • 使用FP8混合精度训练
  • 启用Flash Attention
  • 优化数据加载器
  • 调整批处理大小

L40显卡优化

  • 启用梯度检查点
  • 使用较小的LoRA维度
  • 优化内存使用
  • 分阶段训练

🌟 高级功能

智能参数优化

# 自动根据硬件配置参数 gpu_memory = detect_gpu_memory() optimal_batch_size = calculate_batch_size(gpu_memory) optimal_lr = calculate_learning_rate(dataset_size)

多分辨率训练

# 支持混合分辨率训练 resolution = [1152, 1536] enable_bucket_sampling = true bucket_reso_steps = 64

实时监控

# 训练监控面板 ./monitor_training.sh # 显示GPU使用率、训练进度、Loss曲线

📞 技术支持

快速命令

# 检查系统状态 nvidia-smi # 查看训练日志 tail -f output/*/logs/train.log # 紧急停止训练 pkill -f qwen_image_train # 快速备份 ./quick_backup.sh emergency

联系方式

🎉 更新日志

v2.0.0 (2025-01-19)

  • ✨ 新增CNB平台推送功能
  • 🚀 智能训练系统优化
  • 💾 完整备份系统重构
  • 🔧 H20/L40显卡专项优化
  • 📚 完整文档体系

v1.5.0 (2025-01-15)

  • 🎯 多分辨率训练支持
  • 📊 实时监控系统
  • 🔄 断点续训功能
  • 🛡️ 数据备份保护

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

感谢以下项目和贡献者:


🌟 开始您的Qwen-Image LoRA训练之旅吧! 🌟

About

构建一个 PyTorch CUDA 开发环境

Language
Python71.3%
Markdown15%
Shell11.6%
TOML0.3%
Others1.8%