分布式训练
AITraining 通过 Accelerate 支持多 GPU 训练,并为大型模型提供可选的 DeepSpeed Zero-3 优化。要求
分布式后端
快速开始
DDP(默认)
使用多个 GPU 时,自动使用 DDP:DeepSpeed
对于大型模型,使用 DeepSpeed Zero-3:Python API
YAML 配置
工作原理
Accelerate 启动
训练通过 Accelerate 启动:- AITraining 检测可用 GPU
- 通过
accelerate launch启动训练 - 对于 DeepSpeed,添加
--use_deepspeed和 Zero-3 标志 - 记录
accelerate env用于调试
DDP 设置
使用 DDP 时:- 为性能设置
ddp_find_unused_parameters=False - 每个 GPU 处理批次的一部分
- 梯度在 GPU 之间同步
DeepSpeed Zero-3
使用 DeepSpeed 时:- 模型参数在 GPU 之间分片
- 多节点使用
--deepspeed_multinode_launcher standard - 自动应用 Zero-3 配置
- 模型保存使用
accelerator.get_state_dict()并解包
多节点训练
对于多节点 DeepSpeed 训练:--deepspeed_multinode_launcher standard 标志会自动传递。
任务特定行为
LLM 训练
- 默认:检测到多个 GPU 时使用 DDP
- DeepSpeed:显式设置
--distributed-backend deepspeed
Seq2Seq 和 VLM
- 多 GPU 情况自动选择 DeepSpeed
- 对于 PEFT + 量化 + bf16 组合使用多 GPU DDP
使用 DeepSpeed 的检查点
GPU 选择
控制使用哪些 GPU:故障排除
检查 Accelerate 环境
常见问题
下一步
LoRA/PEFT
高效微调
Quantization
减少内存使用