DeepSpeed 分布式训练优化
DeepSpeed 提供 ZeRO 显存优化、混合精度、Offload 和推理加速。通过 JSON 配置启用不同 ZeRO stage,适合单机多卡和多机大模型训练。
安装:
pip install deepspeed
ds_report
ZeRO-2 配置:
cat > ds_config.json <<'EOF'
{
"train_batch_size": 32,
"gradient_accumulation_steps": 4,
"fp16": {"enabled": true},
"zero_optimization": {
"stage": 2,
"allgather_partitions": true,
"overlap_comm": true
}
}
EOF
启动训练:
deepspeed --num_gpus=4 train.py --deepspeed ds_config.json
ZeRO-3 + CPU Offload:
{
"zero_optimization": {
"stage": 3,
"offload_optimizer": {"device": "cpu"},
"offload_param": {"device": "cpu"}
}
}
多机启动:
deepspeed --hostfile hosts --master_addr 10.0.0.10 \
--master_port 29500 train.py --deepspeed ds_config.json
train_batch_size 与实际 batch、梯度累积、世界大小不匹配,启动时报错。deepspeed.zero.Init 或配置正确,模型加载即 OOM。