Hugging Face Accelerate 分布式训练
Accelerate 用少量代码改动把普通 PyTorch 训练脚本跑在多 GPU、TPU 或混合精度环境。它封装了设备放置、分布式初始化和混合精度,适合快速从单卡扩展到多卡。
生成配置:
accelerate config
查看配置:
accelerate env
单机多卡启动:
accelerate launch --num_processes 4 train.py
混合精度:
accelerate launch --mixed_precision fp16 --num_processes 4 train.py
多机启动:
accelerate launch \
--multi_gpu --num_machines 2 --num_processes 16 \
--machine_rank 0 --main_process_ip 10.0.0.10 \
--main_process_port 29500 train.py
代码中使用:
from accelerate import Accelerator
accelerator = Accelerator()
model, optimizer, dataloader = accelerator.prepare(model, optimizer, dataloader)
accelerator.backward(loss)
accelerator.prepare 包装模型和数据,设备不一致。num_processes 与实际 GPU 数不一致,进程争抢设备。main_process_ip 使用 localhost,其他节点连不上。set_epoch,每个 epoch 数据顺序相同。