Training - PyTorch Lightning 分布式训练的 global_step 参数 (accumulate_grad_batches)

欢迎关注我的CSDN:https://spike.blog.csdn.net/

本文地址:https://blog.csdn.net/caroline_wendy/article/details/137640653

在 PyTorch Lightning 中,pl.Traineraccumulate_grad_batches 参数允许在执行反向传播和优化器步骤之前,累积多个批次的梯度。这样,可以增加有效的批次大小,而不会增加内存开销。例如,如果设置 accumulate_grad_batches=8,则会在执行优化器的 .step() 方法之前,累积 8 个批次的梯度。

accumulate_grad_batchesglobal_step 的关系:

  1. global_step 会在每次调用优化器的 .step() 方法后递增。
  2. 使用梯度累积,global_step 增长小于 批次(batch) 的数量
  3. 多个批次贡献到 1 个 global_step 的更新中。

例如,如果 accumulate_grad_batches=8,那么每 8 个批次,只会增加 1 次 global_step,如果多卡,则 global_step 表示单卡的次数。日志,如下:

bash 复制代码
[INFO] [CL] global_step: 0, iter_step: 8
[INFO] [CL] global_step: 1, iter_step: 16

其中 pl.Trainer 的源码:

bash 复制代码
    trainer = pl.Trainer(
        accelerator="gpu",
        # ...
        accumulate_grad_batches=args.accumulate_grad,
        strategy=strategy,  # 多机多卡配置
        num_nodes=args.num_nodes,  # 节点数
        devices=1,  # 每个节点 GPU 卡数
    )

输出日志:

bash 复制代码
log = {'epoch': self.trainer.current_epoch, 'step': self.trainer.global_step}
wandb.log(log)
相关推荐
中关村科金23 分钟前
大模型训练平台:重构 AI 研发范式的智慧基建
人工智能·大模型·大模型训练平台
一点.点44 分钟前
自动驾驶领域专业词汇(专业术语)整理
人工智能·自动驾驶·专业术语
烟锁池塘柳01 小时前
【深度学习】评估模型复杂度:GFLOPs与Params详解
人工智能·深度学习
果冻人工智能1 小时前
🧠5个AI工程师在第一次构建RAG时常犯的错误
人工智能
白熊1881 小时前
【计算机视觉】CV实战项目- DFace: 基于深度学习的高性能人脸识别
人工智能·深度学习·计算机视觉
layneyao1 小时前
自动驾驶L4级技术落地:特斯拉、Waymo与华为的路线之争
人工智能·华为·自动驾驶
訾博ZiBo1 小时前
AI日报 - 2025年04月30日
人工智能
毒果1 小时前
深度学习大模型: AI 阅卷替代人工阅卷
人工智能·深度学习
吾日三省吾码1 小时前
GitHub Copilot (Gen-AI) 很有用,但不是很好
人工智能·github·copilot
一颗橘子宣布成为星球2 小时前
Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(一)
人工智能·unity·语言模型·游戏引擎