分布式训练知识

  • 单进程多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,那么就会使用分布式训练
posted @ 2025-12-13 22:26  最爱丁珰  阅读(0)  评论(0)    收藏  举报