01
显存基础
什么是显存?显存与内存的区别,为什么大模型训练容易OOM?
概念OOM
02
监控显存
nvidia-smi命令详解,gpustat实时监控,Python脚本监控显存变化。
工具nvidia-smi
03
PyTorch显存机制
Tensor存储原理,CUDA缓存分配器,显存碎片化问题。
PyTorch缓存
04
梯度累积
原理与实现,Batch Size与梯度累积的关系,实战代码示例。
梯度Batch
05
混合精度训练
FP16与BF16原理,AMP自动混合精度,损失缩放(Loss Scaling)。
AMPFP16
06
梯度检查点
时间换空间的思想,torch.utils.checkpoint使用,与梯度累积结合。
检查点重计算
07
显存卸载
CPU Offloading原理,DeepSpeed ZeRO-Offload,模型参数卸载到CPU。
OffloadDeepSpeed
08
ZeRO优化器
ZeRO-Stage1、2、3原理,DeepSpeed配置实战,显存节省对比。
ZeRO显存节省
09
模型并行
张量并行(Tensor Parallelism)原理,Megatron-LM实现,通信开销分析。
张量并行Megatron
10
流水线并行
GPipe与PipeDream,微批次划分,负载均衡策略。
流水线GPipe
11
数据并行
DDP与FSDP对比,FSDP分片策略,实战配置建议。
FSDPDDP
12
激活值优化
激活值显存占用分析,重计算策略,选择性激活检查点。
激活值重计算
13
优化器状态优化
Adam与SGD显存对比,Adafactor低显存优化器,8-bit优化器。
优化器8-bit
14
模型结构优化
Attention机制优化(Flash Attention),稀疏化与量化,MoE架构。
FlashAttnMoE
15
数据加载优化
DataLoader内存管理,prefetch_factor设置,内存映射文件。
DataLoader内存
16
梯度裁剪与通信
梯度裁剪对显存的影响,梯度压缩,异步通信优化。
通信裁剪
17
显存碎片整理
CUDA缓存清理,torch.cuda.empty_cache,碎片化预防策略。
碎片缓存
18
动态显存分配
PyTorch显存分配器调优,PYTORCH_CUDA_ALLOC_CONF配置。
分配器配置
19
模型量化
INT8量化原理,PTQ与QAT,量化对显存的节省。
INT8量化
20
知识蒸馏
教师-学生模型,蒸馏损失函数,小模型替代大模型。
蒸馏小模型
21
分布式训练基础
NCCL与GLOO后端,节点间通信,网络带宽影响。
NCCL分布式
22
DeepSpeed实战
DeepSpeed配置详解,ZeRO-3实战,训练中断恢复。
DeepSpeedZeRO-3
23
Hugging Face Accelerate
Accelerate库使用,多GPU自动配置,混合精度集成。
AccelerateHF
24
ColossalAI实战
ColossalAI特性,2D/3D并行,与DeepSpeed对比。
ColossalAI并行
25
训练中断恢复
Checkpoint保存策略,自动恢复机制,断点续训实战。
Checkpoint恢复
26
OOM错误排查
常见OOM原因分析,错误日志解读,定位显存泄漏。
OOM调试
27
显存性能分析工具
PyTorch Profiler,NVIDIA Nsight Systems,内存快照分析。
ProfilerNsight
28
大规模训练案例
LLaMA训练显存优化,GPT-3训练配置,实际项目经验分享。
LLaMAGPT-3
29
云端训练优化
AWS/Azure GPU实例选择,Spot实例中断处理,分布式存储。
云端Spot
30
综合实战
从零搭建显存优化训练流程,多策略组合,性能与显存平衡。
综合实战