【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能开多大,训练稳不稳

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

相关推荐
liukuang11015 小时前
WorkBuddy、千问办公、TRAE Work、百度搭子:四大AI办公硬碰硬
人工智能
大模型真好玩15 小时前
仅需3轮对话,Seed-Evolving大模型帮我创造出 “知识跳动”——一个智能化时代的知识学习系统!
人工智能·agent·豆包marscode
IvorySQL15 小时前
AI 时代,PostgreSQL 正在发生什么变化?
数据库·人工智能·postgresql
学习日记52515 小时前
AI PPT生成系统实践:从自由生成到可控生成的工程演进复盘
人工智能·ai·prompt
用户37057436083915 小时前
Claude Agent SDK 和 LangGraph 都用过之后,我发现选型先问一个问题
人工智能
钓鱼的肝15 小时前
csp-j-s总结(1)
c++·笔记·算法·青少年编程
资讯综合15 小时前
2026 高精度 AI 3D 模型生成工具实测对比:Hyper3D 、Tripo、Meshy 谁更适合生产级管线?
人工智能
2601_9637491015 小时前
越华环保集团污水云边协同自控架构:边缘 PLC 闭环与断网自治实现方案
人工智能
用户52746756142115 小时前
给岗位Agent试岗,别只看它说了什么
人工智能