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

梯度累积

为什么需要梯度累积

Step1: 核心机制

  • 一个完整batch被切成K个micro-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能开多大,训练稳不稳

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

相关推荐
智感子1 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
人工智能技术咨询.5 小时前
具身智能中的世界模型训练
人工智能
LaughingZhu5 小时前
Product Hunt 每日热榜 | 2026-10-06
人工智能·深度学习·神经网络·搜索引擎·百度
AOI小白新手上路5 小时前
AOI 缺陷检测复现实操指南:Anomalib + MVTec AD(glass)与 YOLOv8 + NEU-DET 两条路线
人工智能·深度学习·yolo
阳光九叶草LXGZXJ5 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
henrylin99995 小时前
RD-AGENT 第一讲 · AI 因子工厂是怎么运转的
人工智能
陈卫军老师5 小时前
陈卫军语录全集总结:12句话,一条主线
经验分享·笔记
高洁016 小时前
具身智能中的世界模型训练
人工智能·python·深度学习·机器学习·transformer
无线通信科研笔记6 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
Devlive 开源社区6 小时前
AuthX 正式更名 GrantForge:我们重新做了一遍权限管理系统
大数据·人工智能·架构