一个完整的 Hugging Face Transformers 微调学习项目,包含GPU加速训练、详细教程和最佳实践。
- 📚 完整的端到端训练教程 - 基于官方文档的详细实战指南
- 🎮 GPU加速支持 - 双RTX 4090优化配置
- 🐳 Docker GPU环境 - 一键启动GPU训练环境
- 📊 训练监控 - W&B集成可视化训练过程
- 🔮 推理演示 - 完整的模型推理示例
Transformers_l/
├── 📚 教程脚本
│ ├── docker/advanced_training_tutorial.py # 🎓 完整端到端训练教程
│ ├── docker/transformers_training_tutorial.py # 📖 三种训练方法教程
│ └── docker/pretrain_test1.py # 🔧 优化的预训练脚本
├── 🧪 测试脚本
│ ├── docker/gpu_test.py # 🎮 GPU功能测试
│ └── docker/autoclass_test/ # 📝 AutoClass功能测试
├── 🐳 Docker配置
│ ├── run_default_0.0.0.sh # 🚀 GPU容器启动脚本
│ ├── run_py.sh # 🐍 Python便捷执行脚本
│ └── Dockerfile # 🐳 Docker镜像配置
└── 📋 配置文件
├── .gitignore # 🚫 忽略文件配置
└── README.md # 📖 项目说明
git clone https://github.com/thomasWts/Transformers_l.git
cd Transformers_l# 启动GPU加速的Docker容器
./run_default_0.0.0.sh# 方式1: 运行完整的端到端教程 (推荐)
./run_py.sh advanced_training_tutorial.py
# 方式2: 运行交互式三方法教程
./run_py.sh transformers_training_tutorial.py
# 方式3: 运行GPU测试
./run_py.sh gpu_test.py完整的端到端Transformers微调教程
- ✅ GPU环境检测和优化
- ✅ 数据集加载和预处理
- ✅ 模型训练和评估
- ✅ 详细的推理演示
- ✅ 最佳实践指南
特色功能:
- 🚀 GPU加速训练 (3分钟完成1000样本训练)
- 📊 实时训练监控 (W&B集成)
- 🎯 智能超参数配置
- 🔮 置信度分析推理
三种训练方法详细对比教程
- 🤗 Transformers Trainer (推荐) - 最简单易用
- 🔶 TensorFlow/Keras - 适合TF用户
- ⚡ 原生PyTorch - 完全控制训练过程
优化后的预训练脚本
- 基于您的原始代码改进
- 修复了所有运行错误
- 添加了GPU支持和最佳实践
- NVIDIA GPU (支持CUDA)
- 推荐: RTX 4090 / A100 / V100
- 🚀 训练速度: ~60 samples/second
- ⚡ 推理速度: ~245 samples/second
- 💾 显存使用: ~8GB per GPU
- 🔥 混合精度: 自动启用 fp16
./run_py.sh gpu_test.py测试内容:
- ✅ CUDA可用性检测
- ✅ GPU内存信息
- ✅ PyTorch GPU计算
- ✅ Transformers GPU推理
🎯 Yelp Review 5分类任务 (1000样本训练)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 训练前准确率: 20.8% (随机猜测)
📈 训练后准确率: 54.8% (提升34个百分点)
⏱️ 训练时间: ~50秒 (GPU加速)
🎯 推理准确率: 100% (5/5测试样本)
输入: "This restaurant is absolutely fantastic!"
输出: 5星 (置信度: 0.669) ✅
输入: "Terrible food, terrible service."
输出: 1星 (置信度: 0.831) ✅# 已配置完整的Python环境
- PyTorch 2.3.0+cu121
- Transformers latest
- Datasets, Evaluate
- CUDA 12.4.0
- Conda navila环境
### 本地安装
```bash
pip install torch transformers datasets evaluate wandb
TrainingArguments(
num_train_epochs=3, # 2-4轮适合文本分类
per_device_train_batch_size=8, # 根据GPU显存调整
learning_rate=5e-5, # BERT微调标准学习率
weight_decay=0.01, # 防止过拟合
fp16=True, # 混合精度训练
)- 使用 W&B 可视化训练过程
- 每轮评估,及时发现过拟合
- 保存最佳模型检查点
- 启用混合精度训练 (fp16)
- 使用梯度累积处理大批次
- DataLoader 多进程加载
- 📖 Hugging Face Transformers文档
- 🎯 官方训练教程
- 🏆 模型Hub
- 💬 社区论坛
- ✨ 添加完整的端到端训练教程
- 🎮 GPU加速支持和优化
- 📊 W&B训练监控集成
- 🔮 详细的推理演示
- 🐳 Docker GPU环境配置
- 📚 三种训练方法对比教程
- 💡 最佳实践指南
- 基础的Transformers代码示例
- Docker环境配置
thomasWts - 基于 Hugging Face 官方文档和最佳实践
本项目遵循 MIT 许可证 - 查看 LICENSE 文件了解详情
⭐ 如果这个项目对您有帮助,请给个Star!
🐛 发现问题?欢迎提交 Issue
🔀 想要贡献?欢迎提交 Pull Request
✅ 避免重复下载: 模型只需下载一次,容器重启后仍然可用 ✅ 节省时间: 大型模型下载一次即可重复使用 ✅ 节省带宽: 避免重复下载相同的模型文件 ✅ 离线使用: 下载后可在离线环境中使用
# 查看已缓存的模型
./manage_cache.sh list
# 查看缓存大小
./manage_cache.sh size
# 清理所有缓存
./manage_cache.sh clean- 容器内路径:
/root/.cache/huggingface/ - 主机映射路径:
/media/zf.huang/EVO_4T/workspace_wts/transformers_l/huggingface_cache/
如果需要自定义缓存位置,可以在容器内设置:
export HF_HUB_CACHE=/custom/cache/path
export TRANSFORMERS_CACHE=/custom/cache/path