首页优化地图方法索引基础概念
返回技术汇总表 ↗

F004 · 基础讲解

训练基础:前向、Loss、梯度与重计算

训练先产生预测,再计算误差和梯度,最后更新可训练参数。

本页目录

01 · 一次训练更新发生什么

  • 前向:输入经过模型,得到预测。
  • Loss:预测与目标标签比较,汇总误差。
  • 反向:按链式求导计算参数和中间量的梯度。
  • 更新:优化器根据梯度、学习率及状态修改参数。

样本 token 在一次前向开始前已知。因果语言模型仍用掩码避免未来信息泄漏,但不需要像在线生成一样逐个等新 token。

02 · 为什么反向需要前向中间值

一个简单运算 y=w×x 的参数梯度需要输入 x。如果后续还有非线性函数,它的导数也可能依赖前向产生的值。框架会保留求导需要的 Tensor,直到对应反向执行。保存的数据常被归为激活。

激活重计算选择不长期保存其中一部分,只保留边界;反向需要时再执行那段前向,重建中间值。它减少保存容量,同时增加部分计算。

依据:PyTorch · 激活 Checkpoint(main) ↗

03 · Adam 状态与模型权重不同

模型权重决定前向行为;Adam 等优化器还维护梯度的统计状态。两者用途、生命周期和精度可能不同。训练内存通常包含参数、梯度、优化器状态、激活和工作区,不能只按模型文件大小估计。

Microbatch 是一次前反向处理的小批数据;多次梯度累积后再更新,可实现更大的有效批量。累积次数、DP 卡数与每卡批量共同影响一次更新包含多少样本。

04 · 随机数为什么影响重算

Dropout 会随机屏蔽部分激活。若重算时使用了另一组随机掩码,求导可能不再对应原来的前向。因此重算实现需要管理随机数状态,并避免区域内不可重复的副作用。RNG 是 Random Number Generator,即随机数生成器。

依据:PyTorch · 激活 Checkpoint(main) ↗

带着这些概念,继续读优化方法

参考资料

继续:参数高效微调:LoRA / QLoRA / 冻结 →返回优化总览
AI Infra 知识库 · 总览 → 独立讲解网站更新 2026-10-08
搜索知识库

搜索方法与基础概念 · Esc 关闭