本页学习说明
指定 8B 混合精度 Adam 账本包含 BF16 工作权重 16 GB、低精度梯度 16 GB、FP32 主权重 32 GB,以及各 32 GB 的 m/v。持久小计为 128 GB;激活、临时空间与通信缓冲另计,因此它不是运行峰值。
进一步阅读
条件与来源
以下从计算对象、条件与原始证据继续展开。
原 N44:一次更新,为什么不只需要模型权重?
一次更新先用工作权重做前向,给真实后词分配概率并计算 loss;反向沿计算图求出参数梯度。梯度表示当前损失对参数的局部变化关系,不是另一份模型知识或生成答案。反向还要使用前向激活或重算得到的中间量。
本课程采用混合精度 Adam 教学设定:BF16 工作权重与低精度梯度、FP32 主权重,以及两份 FP32 历史统计 m/v。优化器据此更新主权重,再形成工作权重供后续计算。实际实现可以采用不同精度和状态策略;这不是唯一训练实现。
完整训练状态账本;ZeRO §3.1(原论文讨论 FP16,本课用 BF16 设定)。
原 N45:16 GB 的模型,训练状态可以是 128 GB
以下全部采用十进制 GB,$1GB=10^9$ bytes,N=8×10⁹ 参数。
| 状态 |
每参数字节 |
本课容量 |
| BF16 工作权重 |
2 |
16 GB |
| 低精度梯度 |
2 |
16 GB |
| FP32 主权重 |
4 |
32 GB |
| FP32 统计 m |
4 |
32 GB |
| FP32 统计 v |
4 |
32 GB |
| 持久状态小计 |
16 |
128 GB |
图中五条从相同零点起,16GB 条长是32GB条的一半。128GB 不包括激活、临时算子空间、通信缓冲及运行环境;不能当实际运行峰值,也不是所有8B模型的固定训练需求。
分布训练正文 保留精度、激活重算和峰值条件;原账本说明。
阅读完整讲义