返回课堂

完整深入材料 · 保留原页与全部停点。回到相关主讲

一次更新,为什么不只需要模型权重?

N44/b0 · 当前参数先做预测

同一段 A/B 记录 → 真实后词作为目标工作权重BF16 · 当前 θ预测概率真实后词:8loss− log p(8)中间激活与临时工作量前向:用当前参数给真实后词计分。
当前参数先做预测

先不急着加容量。我们把训练缩小为一次更新,看屏幕上这些对象分别在什么时候出现。模型用当前工作权重读入一段文本,对真实后词分配概率;原文提供目标,所以我们能算出损失。这一段是前向计算,它回答当前参数把题做得怎样。

教师备课:指图与模拟问答

指图与推进 · 不朗读沿上排工作权重→预测概率→loss 指读;再指右侧虚线中间激活框,不提前指下方优化器。

N44/b1 · 反向计算梯度

同一段 A/B 记录 → 真实后词作为目标工作权重BF16 · 当前 θ预测概率真实后词:8loss− log p(8)中间激活与临时工作量反向传播 → 参数梯度当前梯度与 θ 逐项对齐梯度为更新提供信息;尚未改动参数。
反向计算梯度

接着看红线。损失沿真实计算图向回传播,得到与参数逐项对应的梯度。梯度描述当前损失对参数变化的局部关系,为更新提供信息;它不是又生成了一份答案。右侧的中间激活也要帮助反向计算,或者在需要时重算,所以训练现场已经比一个权重下载文件复杂。

教师备课:指图与模拟问答

指图与推进 · 不朗读从 loss 沿红线指到参数梯度;指出虚线激活属于计算过程,尚未进行绿色参数更新。

N44/b2 · 优化器完成更新

同一段 A/B 记录 → 真实后词作为目标工作权重BF16 · 当前 θ预测概率真实后词:8loss− log p(8)中间激活与临时工作量反向传播 → 参数梯度当前梯度与 θ 逐项对齐FP32 主权重当前保存值历史统计 m、v两份 FP32 状态Adam 更新读取三类输入新主权重保存 FP32新 m、v保存,供下次更新仅新主权重转换为 BF16 → 工作权重 → 下一步前向
优化器完成更新

现在看绿色更新区。当前梯度、FP32 主权重、历史统计 m 和 v,从三条不同路径进入 Adam。它们是一次更新共同读取的输入,不能把 m、v 先变成主权重再去更新。Adam 计算后,新的主权重和新的 m、v 分别保存下来。只有新的主权重再转换成工作精度,沿左侧回线写回工作权重,下一步前向才使用新的参数。

这就是我们指定的混合精度 Adam 设定;其他实现可以采用不同精度与保存策略。现在每个对象都有了用途:用于前向的工作权重、当前梯度、较高精度主权重、两份更新历史。刚才选定的八十亿参数,要为它们各付多少空间?下一页逐项记账。

进一步解释

示意省略 Adam 的具体递推式和偏差修正。m/v 的更新与主权重更新在同一次优化步骤内协作;图中的三路输入、两类保存结果和主权重到工作权重的转换用于说明数据依赖,不规定某个库的逐条执行顺序。

教师备课:指图与模拟问答

指图与推进 · 不朗读先依次指三条绿色输入到 Adam;再指两种更新后状态的保存端;最后沿“仅新主权重转换为 BF16”回线回到工作权重。

补充推导、边界与来源

一次更新先用工作权重做前向,给真实后词分配概率并计算 loss;反向沿计算图求出参数梯度。梯度表示当前损失对参数的局部变化关系,不是另一份模型知识或生成答案。反向还要使用前向激活或重算得到的中间量。

本课程采用混合精度 Adam 教学设定:BF16 工作权重与低精度梯度、FP32 主权重,以及两份 FP32 历史统计 m/v。优化器据此更新主权重,再形成工作权重供后续计算。实际实现可以采用不同精度和状态策略;这不是唯一训练实现。

完整训练状态账本;ZeRO §3.1(原论文讨论 FP16,本课用 BF16 设定)。

本页证据与条件

8B / 四卡混合精度 Adam 教学构造;ZeRO 机制,非硬件实测

进入主题正文