浅谈AI落地之-关于分布式训练中batch size对性能影响的思考

 前言

曾在游戏世界挥洒创意,也曾在前端和后端的浪潮间穿梭,如今,而立的我仰望AI的璀璨星空,心潮澎湃,步履不停!愿你我皆乘风破浪,逐梦星辰!

Synchronous SGD(同步SGD)

首先介绍一个概念,SGD: 同步随机梯度下降(Synchronous Stochastic Gradient Descent, Sync-SGD)是一种分布式深度学习的训练方法,它在多个GPU上并行计算梯度,并在每次更新时同步所有计算结果(All-Reduce),以确保参数的一致性。

工作原理

  1. 数据并行

    • 数据集被划分成多个子集,每个 GPU 负责一个子集。
    • 假设有 n 个 GPU,每个 GPU 处理 b 个样本,则总的批量大小为 nb。
  2. 前向传播 (Forward Pass)

    • 每个 GPU 计算自己批次数据的前向传播,得到损失。
  3. 后向传播 (Backward Pass)

    • 每个 GPU 计算自己批次数据的梯度(即参数的偏导数)。
  4. 梯度同步 (All-Reduce 操作)

    • 计算出的梯度会通过全局同步(如 All-Reduce 操作)聚合:g=1/n(gi+g2+....+gi)
    • 其中 gi 是第 i 个 GPU 计算出的梯度,g 是平均后的全局梯度。
  5. 参数更新

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值