【llm-algo-leetcode学习笔记】训练侧显存优化

梯度累积

为什么需要梯度累积

Step1: 核心机制

  • 一个完整batch被切成Kmicro-batch
  • 每个micro-batch各自前向 + 反转,梯度在.grad中累加。
  • 攒够k次后统一执行一次optimizer.step(), 再zero_grad()清零。

Step2: 数学等价性

Step3: 代码实现框架

代码测试输出

完整学习参考

Gradient Accumulation源码示例

激活检查点与激活卸载

痛点: 显存压力不只来自参数

  • 前向传播为了反向传播,必须把每层中间输出(激活值)一直保存到显存里;层级越深、序列越长、batch越大,激活值占比越高。
  • 显存占用等于 O(L X B X S X D), L-层级数,B-batch size, S-序列长度, D-隐藏维度。
  • 问题:能不能少存激活,仍然完成反向传播?

Step1: 两条优化路线

  • Activation Checkpointing(重计算换显存):不保存所有层激活,每隔几层存一个"检查点(Checkpoint)"
  • Activation Offload(搬运换显存): 把部分激活临时搬到CPU或者其他存储层级。
  • 代价对比: checkpointing多花约20% ~ 30%时间,节省成倍甚至数倍显存;本质是"时间换空间"

Step2: 显存节省分析

Step3: 代码实现部分

工程优化要点

完整学习参考

Activation Checkpointing源码示例

总结

  • 梯度累积:决定batch能开多大,训练稳不稳

  • 激活检查点与卸载: 决定显存怎么省

相关推荐
动词ing15 分钟前
【学习笔记】数据结构(数组滑动窗口+无重复字符的最长字串题目)
数据结构·笔记·学习
真空回流焊炉15 分钟前
数字功率芯片真空共晶设备实操教程与要点解析
前端·人工智能
DS随心转APP16 分钟前
【 AI做的表格怎么导出 】?AI 导出鸭让数据流转回归优雅
人工智能·chatgpt·数据挖掘·回归·word·ai导出鸭
YHHLAI18 分钟前
天龙八部 RAG 知识库实战:从零构建你的武侠 AI 助手
人工智能
慢云智慧空间20 分钟前
空间智能与计算机视觉的本质差异:不止于识别,更是空间决策能力
人工智能·python·计算机视觉
java1234_小锋20 分钟前
YOLO26 计算机视觉 - YOLO26 模型架构解析
人工智能·yolo·计算机视觉·机器视觉·yolo26
weixin_4462608521 分钟前
LLM数据智能体的追踪完整性:真实系统中可审计结构化推理的愿景
人工智能
阿龙AI日记23 分钟前
快速入门深度学习01:神经元和神经网络
人工智能·深度学习·神经网络
回眸&啤酒鸭24 分钟前
【回眸】AI新鲜事——Ox-Alpha 智能决策与场景化应用指南
人工智能