分布式训练知识
- 单进程多GPU训练
- 特点
- 单进程控制多个GPU:一个Python进程管理所有GPU
- 主GPU收集梯度:在前向传播时,数据被拆分到不同GPU;反向传播时梯度汇总到主GPU进行参数更新
- 特征
- 程序内部使用
DataParallel包装模型 - 用普通的
python命令启动程序
- 程序内部使用
transformers库相关参数self.args.n_gpu等于GPU数
- 特点
- 分布式训练
- 特点
- 多进程架构:每个GPU对应一个独立的进程
- 点对点通信:使用NCCL等通信库,进程间直接通信
- 内存效率高:每个GPU只存储自己的模型副本和优化器状态
- 真正的数据并行:每个进程独立处理数据,梯度通过all-reduce操作同步
- 特征
- 用DDP包装模型
- 使用
torchrun启动程序
transformers库相关参数self.args.n_gpu等于一self.accelerator.num_processes等于进程数(也就是GPU数)
- 特点
- 只要使用了deepspeed,那么就会使用分布式训练

浙公网安备 33010602011771号