S20:Batch 与 Checkpoint 配置的可选观察
Batch 与 checkpoint 配置共同决定设备峰值、通信频率、重算量和有效吞吐;可选探索的目标是解释一个变化,而不是寻找全局最优参数。
内容类型:预习教材(不代表已完成)
日期:2026-12-12
阶段:P2 · AI Systems Engineering 90
总路线:Day 110 / 360
周次 / 节奏:W3 · 周六可选探索 / 补学
状态:教材已备;学习未完成
主题:micro-batch、accumulation、activation checkpointing
一句话定义
Batch 与 checkpoint 配置共同决定设备峰值、通信频率、重算量和有效吞吐;可选探索的目标是解释一个变化,而不是寻找全局最优参数。
学习目标
- 能区分 micro-batch、gradient accumulation、global batch 和 activation checkpoint。
- 能预测单变量变化对内存和时间的方向性影响。
- 能在已有小模型或纸面 calculator 上做一次轻量对照。
- 能避免用一次本地结果推广到多机生产环境。
核心知识
Micro-batch 是一次前后向在单 rank 上处理的样本量;gradient accumulation 让多次 micro-batch 梯度累积后再更新;global/effective batch 还乘 data-parallel world size。增大 accumulation 通常不要求同时保存所有 micro-batch activation,但延长一次 optimizer update 的时间,并可能改变 loss scaling、scheduler 与梯度裁剪语义。
Activation checkpointing 不保存某些中间激活,在 backward 时重算 forward 片段,以计算换内存。它与持久化训练 checkpoint 完全不同:前者是单步内存技术,后者是跨故障恢复 artifact。两者同名易混淆。
增大 micro-batch 可能提高 kernel 利用率,但也增加 activation 峰值;太大可能 OOM,太小可能算子效率差。更长 sequence 对 attention 计算与激活的影响可能非线性。一次观察必须固定模型、数据 shape、精度、设备和测量区间。
机制与推导
有效 batch:
[ B_{global}=B_{micro}\times accumulation_steps\times DP ]
固定 global batch 时,可用更小 micro-batch 与更大 accumulation 降低 activation 峰值,但增加前后向次数和调度开销。Activation checkpointing 的总时间近似 T' = T + T_recompute,峰值内存下降幅度依赖切分位置,不能用固定比例承诺。
对比应至少记录 peak memory、step/update time、useful tokens/s 与是否发生 OOM。若无可运行环境,可以用 S16 calculator 做方向性推演,明确这是模型而非测量。
最小练习或观察步骤
- 选择“micro-batch 1→2”或“activation checkpoint off→on”一个变量。
- 固定模型、sequence、precision 与总测量步数,先写出预期方向。
- 若 Phase 1 环境可运行小模型,观察峰值和 update time;否则在 calculator 中推演。
- 记录结果、异常与无法比较的因素,不追求 benchmark。
- 若今天精力不足,只重画 global batch 公式即可,随后休息。
常见误区与边界
- 把 activation checkpoint 当训练恢复 checkpoint。
- 改 micro-batch 时忘记 global batch 和学习率也可能改变。
- 只测第一步,把编译、缓存或 warmup 当稳定吞吐。
- 本地 MPS/CPU 结果直接推断 GPU 集群通信效率。
- 周六探索变成大规模参数 sweep。
系统场景连接
训练平台的默认配置需要在易用与资源效率间平衡。Golden path 可提供保守 micro-batch、自动 accumulation 和 OOM 提示,但仍应暴露关键假设。云成本评估也应看完成固定 token/质量的时间,而不是单步看似更快。理解两个 checkpoint 含义可避免架构沟通中的严重歧义。
自检问题
- Micro-batch 与 global batch 的关系是什么?
- Activation checkpointing 为什么节省内存但增加计算?
- 固定 global batch 时,改变 accumulation 还会影响哪些时序?
- 一次本地对照不能支持哪些生产结论?
专业课程对齐
- 阅读 PyTorch Checkpoint 官方文档 的 activation checkpointing 原理,重点看 forward 重算与 RNG state 的边界。
- 阅读 CMU Deep Learning Systems 的 memory optimization 与 execution 内容,把保存激活和重算映射到计算图。
- 阅读 PyTorch Distributed 官方文档 的 data parallel 基础,理解 DP world size 如何进入 global batch 与梯度同步。
深入学习提示
开始前先预测方向,结束后解释偏差。严格区分“公式估计”“allocator 测量”“wall-clock 观察”。如果结果与预期相反,优先检查 warmup、数据加载、同步和测量区间,不立即得出硬件结论。今日只要能解释一个变量对两项资源的影响,就已达到学习目标。
学后填写区
- 选择的单一变量:
- 事前预测:
- 实际观察或纸面推演:
- 无法控制的因素:
- 今日是否选择休息: