从零学大语言模型 L2:Pytorch, Resource Accounting | 斯坦福 CS336 2025 春季

111次播放
2025-06-27

视频 AI 总结:讲座系统性地讲解了构建和训练深度学习模型的核心技术,重点聚焦于内存与计算资源的精确核算。从 PyTorch 张量的基本操作和不同浮点精度(FP32、BF16、FP8)的内存消耗出发,详细推导了矩阵乘法等运算的 FLOPs 计算规则(2倍三维乘积),并引入模型 FLOPs 利用率(MFU)评估硬件效率。通过简单的两层线性网络示例,说明了前向与反向传播的 FLOPs 比为 2:4,进而解释了训练总 FLOPs 为 6×参数×数据点数量这一通用公式。随后演示了模型参数初始化、数据加载、优化器(特别是 AdaGrad)的实现与内存占用,最后讨论了混合精度训练的策略与权衡。 关键信息: 1. 张量内存计算:元素数 × 数据类型字节数(FP32 占4字节,BF16/FP16 占2字节,FP8 占1字节)。 2. 矩阵乘法 FLOPs = 2 × (左维度 × 中间维度 × 右维度)。 3. 训练总 FLOPs ≈ 6 × 参数 × 数据点(前向2倍,反向4倍)。 4. 模型内存占用 ≈ 参数内存 + 梯度内存 + 优化器状态内存 + 激活值内存。 5. 推荐使用混合精度训练:前向/反向用 BF16 加快速度,优化器状态保持 FP32 保证稳定。 6. 训练循环需定期保存模型和优化器状态,以防崩溃丢失进度。

课件与代码:https://cs336.stanford.edu/spring2025/