训练:目标函数、优化器与 LR 日程

训练:目标函数、优化器与 LR 日程

Charles Lv8

模型架构决定系统允许学什么,数据决定系统能看到什么,目标函数、优化器和学习率日程决定系统实际沿着怎样的路径学到什么。同一个模型、同一批数据,仅仅更换 loss 配方和 schedule,就可能得到截然不同的训练轨迹。

读法定位

这页先回答“目标函数、优化器与 LR 日程”在「训练」里的位置:它解决什么局部问题,依赖哪些前置,最后会影响哪类工程或研究判断。
前置:先知道 loss、optimizer、batch、checkpoint 和评测集的基本含义。 必要时先回 训练入口、基础知识 或 术语表。
主线关系:把目标函数、数据、分布式系统、评测回流和实验治理串起来,看一次训练为什么成功、为什么不稳、为什么贵。

这页给训练目标和优化配置一个统一入口。更系统的数据配方见 Scaling、课程学习与数据配比,数值异常排查见 训练稳定性与故障排查

初学者先抓住

训练配方可以先按“目标、步长、刹车”理解:loss 告诉模型什么叫错,optimizer 决定怎样改参数,learning rate schedule 决定每一步迈多大。三者必须一起看,单独换一个组件,往往会改变整条学习轨迹。

有趣例子:厨师调味

模型像厨师,loss 像食客反馈,optimizer 像改菜谱的方法,learning rate 像每次加盐的量。反馈再准确,如果一次加半罐盐,菜也会报废;如果每次只加一粒盐,改进又会慢到不可接受。

主线定位:降低训练成本和错误优化成本

目标函数、优化器与 LR 日程在世界模型高效训练里负责回答:训练信号到底在奖励什么,哪些能力被大桶数据主导,哪些阶段切换会破坏稳定性。它降低训练成本和错误优化成本;如果 loss 与闭环目标错位,算力会被稳定地花在错误方向上。

符号速查:先把公式读顺

训练公式常显得吓人,通常不是因为数学很深,而是符号太多。先记住这张表:

符号 常见含义 直觉
xx 输入 prompt、图像、视频片段、状态、观测
yy 目标输出 正确 token、参考回答、标签、动作、偏好答案
tt 序列位置或训练步 第几个 token,或第几步更新
θ\theta 当前模型参数 正在被训练的权重
fθ(x)f_\theta(x) 模型预测 当前模型看到输入后的输出
pθ()p_\theta(\cdot) 模型给出的概率 某个 token、类别或动作有多可能
L\mathcal{L}\ell loss 错误有多大,训练压力来自哪里
J(θ)\mathcal{J}(\theta) 总目标 把多个 loss、正则和约束合起来后的训练目标
θL\nabla_\theta \mathcal{L} 梯度 参数往哪个方向改能降低 loss
ηt\eta_t 学习率 tt 步迈多大
λ\lambda loss 权重或正则权重 多个目标之间谁更响亮
πθ\pi_\theta policy / 策略模型 RLHF/GRPO 中正在被训练的生成模型
rrrϕr_\phi reward 完整回答、动作或轨迹得到的分数
β\beta KL 或偏好强度系数 偏好/RL 里的刹车或温度
读公式的固定顺序

先找输入 xx 和目标 yy,再找模型预测 fθ(x)f_\theta(x)pθp_\theta,然后看 loss 在比较什么,最后看 λ\lambdaβ\beta、KL、正则这些项在加什么约束。这样读公式,比一开始就追求推导完整得多。

目标函数在定义学习压力

大多数训练问题可以写成:

minθJ(θ)=E(x,y)pdata[(fθ(x),y)]+λΩ(θ)\min_\theta \mathcal{J}(\theta) = \mathbb{E}_{(x,y)\sim p_{\text{data}}} [\ell(f_\theta(x),y)] + \lambda \Omega(\theta)

现代基础模型复杂在于:yy 可能是下一个 token、噪声、偏好排序、奖励信号、图像 patch 或动作;\ell 可能由多个子目标组成;样本分布是多源、分阶段、随时间变化的。

公式片段 符号含义 白话读法
minθ\min_\theta 寻找一组模型参数 让模型变成更少犯错的版本
(x,y)pdata(x,y)\sim p_{\text{data}} 从训练数据分布采样输入和目标 batch 不是凭空来的,它代表你给模型看的世界
(fθ(x),y)\ell(f_\theta(x),y) 比较模型预测和目标 预测离目标越远,惩罚越大
λΩ(θ)\lambda\Omega(\theta) 正则项或约束项 让模型不要用不希望的方式降低主 loss

不同目标本质上在回答不同问题:

目标 问题 常见用途
交叉熵 怎样拟合数据分布 LLM、代码、多模态 token
扩散损失 怎样恢复被噪声破坏的信号 图像、视频、音频生成
对比损失 怎样塑造表示空间几何 检索、对齐、表征学习
偏好目标 怎样偏向更受欢迎的输出 RLHF、DPO、对齐
强化学习目标 怎样最大化长期回报 agent、机器人、工具使用
多任务目标 怎样同时保留多个能力 VLM、VLA、世界模型

所以“哪种 loss 更好”没有统一答案,必须看它给模型施加了什么学习压力。

常见目标族:按学习信号从直接到间接读

目标函数可以按“答案有多直接”来读。监督学习最直接,扩散和对比学习需要构造中间任务,偏好/RL 最间接,因为模型要先采样,再用人类偏好、reward model 或 verifier 判断结果。

1. 监督学习:交叉熵和 SFT

自回归语言模型最经典的目标是 next-token prediction:

LCE=t=1Tlogpθ(xtx<t).\mathcal{L}_{\text{CE}} = - \sum_{t=1}^{T} \log p_\theta(x_t\mid x_{<t}).

符号 含义 白话
TT 序列长度 一段文本里要预测多少个位置
xtx_t tt 个 token 当前标准答案 token
x<tx_{<t} 前文上下文 模型已经看见的 token
pθ(xtx<t)p_\theta(x_t\mid x_{<t}) 模型给正确 token 的概率 模型有多相信正确答案

白话读法:每个位置都让模型猜下一个 token。正确 token 概率越高,logpθ-\log p_\theta 越小;正确 token 概率越低,惩罚越大。

SFT 仍然是交叉熵,只是输入变成 prompt,目标变成高质量回答:

LSFT=t=1Tlogpθ(ytx,y<t).\mathcal{L}_{\text{SFT}} = - \sum_{t=1}^{T} \log p_\theta(y_t\mid x,y_{<t}).

这里 xx 是用户指令或任务输入,yty_t 是示范回答的第 tt 个 token,y<ty_{<t} 是示范回答前缀。它教模型“在这个输入下应该怎样回答”,但不保证回答一定最受偏好,也不保证真实任务风险最低。

2. 生成建模:扩散损失

扩散模型常用噪声、x0x_0 或 velocity 预测目标。以噪声预测为例:

Ldiff=Ex0,ϵ,t[ϵϵθ(xt,t,c)22].\mathcal{L}_{\text{diff}} = \mathbb{E}_{x_0,\epsilon,t} \left[ \|\epsilon-\epsilon_\theta(x_t,t,c)\|_2^2 \right].

符号 含义 白话
x0x_0 干净样本 原图、原视频或原 latent
ϵ\epsilon 真实噪声 训练时加进去的噪声
tt 噪声时间步 当前破坏到什么程度
xtx_t 加噪后的样本 模型实际看到的输入
cc 条件 文本、类别、图像、动作等条件
ϵθ\epsilon_\theta 模型预测的噪声 模型猜应该去掉什么

白话读法:把干净样本加噪,模型根据 xt,t,cx_t,t,c 猜噪声 ϵ\epsilon。猜得越接近,平方误差越小。不同参数化会影响梯度尺度、采样器兼容性和训练稳定性。

3. 表征学习:InfoNCE 和对比目标

图文对齐和样本匹配常用 InfoNCE:

LInfoNCE=logexp(sim(z,z+)/τ)exp(sim(z,z+)/τ)+iexp(sim(z,zi)/τ).\mathcal{L}_{\text{InfoNCE}} = - \log \frac{\exp(\mathrm{sim}(z,z^+)/\tau)} {\exp(\mathrm{sim}(z,z^+)/\tau)+\sum_i\exp(\mathrm{sim}(z,z_i^-)/\tau)}.

符号 含义 白话
zz anchor 表征 当前样本的向量表示
z+z^+ 正样本表征 应该靠近的配对样本
ziz_i^- ii 个负样本表征 应该远离的错误配对
sim()\mathrm{sim}(\cdot) 相似度函数 两个向量有多像
τ\tau 温度系数 控制分布尖锐程度

白话读法:让正确配对在一堆候选里更相似,让错误配对相对更远。它优化的是表示空间几何,不是直接生成答案。

4. 偏好学习:DPO 和人类排序

偏好学习会比较优选回答 y+y^+ 和劣选回答 yy^-。InstructGPT 的标注界面图能提醒你:很多 reward 信号不是天然分数,而是人类在同一个 prompt 下比较出来的。

InstructGPT labeler ranking interface 原论文图

图源:Training language models to follow instructions with human feedback,Appendix Figure 19(b)。原论文图意:标注者在同一个 prompt 下比较多个模型输出,并把它们从最好到最差排序。

图解:这张图在回答什么

偏好数据不是“每个 token 的标准答案”,而是“同一问题下哪个回答更好”。如果标注口径偏向长答案、保守答案或固定格式,后续 reward model、DPO 或 PPO 都会把这种偏好继续放大。

DPO 的常见形式是:

LDPO=logσ(βlogπθ(y+x)πref(y+x)βlogπθ(yx)πref(yx)).\mathcal{L}_{\text{DPO}} = - \log \sigma \left( \beta \log \frac{\pi_\theta(y^+\mid x)} {\pi_{\text{ref}}(y^+\mid x)} - \beta \log \frac{\pi_\theta(y^-\mid x)} {\pi_{\text{ref}}(y^-\mid x)} \right).

符号 含义 白话
y+y^+ 优选回答 人类或规则更喜欢的回答
yy^- 劣选回答 相比之下更差的回答
πθ\pi_\theta 当前策略模型 正在训练的模型
πref\pi_{\text{ref}} 参考模型 通常是 SFT 模型,用来约束变化幅度
β\beta 偏好强度/温度 控制相对参考模型移动多猛
σ\sigma sigmoid 函数 把偏好差异压成概率式目标

白话读法:相对参考模型,提高优选回答的概率,压低劣选回答的概率。它不需要显式训练 reward model,但仍然非常依赖偏好数据质量、参考模型和学习率。

5. 强化学习:先采样,再用 reward 判断

强化学习目标比普通监督学习多一层间接性。监督学习里,目标答案 yy 通常已经给定;强化学习里,模型先按当前策略采样动作或回答,再根据奖励判断这次采样是否值得加强。语言模型 RLHF 可以简化成:

maxθ  Eyπθ(x)[rϕ(x,y)βKL(πθπref)].\max_\theta\; \mathbb{E}_{y\sim \pi_\theta(\cdot\mid x)} \left[ r_\phi(x,y) - \beta\,\mathrm{KL}(\pi_\theta\|\pi_{\text{ref}}) \right].

符号 含义 白话
yπθ(x)y\sim \pi_\theta(\cdot\mid x) 从当前模型采样回答 模型自己先试着回答
rϕ(x,y)r_\phi(x,y) reward model 分数 这次完整回答有多好
DKL(πθ,πref)D_{\mathrm{KL}}(\pi_\theta,\pi_{\text{ref}}) 当前模型和参考模型的距离 跑偏程度
β\beta KL 惩罚强度 刹车有多强

白话读法:鼓励当前模型更常生成高奖励回答,同时用 KL 项限制它不要离参考模型太远。

初学者解释:RLHF 不是让 reward 直接替代 loss

Reward model 给的是完整回答的偏好分数,不是每个 token 的标准答案。PPO 这类算法要把“这个回答整体更好”转成 token 级概率更新,因此需要 value、advantage、旧策略概率、clip 和 KL 这些稳定装置。缺少这些装置,模型很容易为了追高 reward 走偏,例如变长、套模板、过度拒答或牺牲事实性。

GRPO / RLVR:同一道题多采样,再做组内比较

DeepSeek-R1、Qwen3 等技术报告里反复出现 GRPORLVR。这部分如果只理解成“又一种 PPO 变体”,会漏掉重点。它真正回答的是:当奖励来自数学答案、代码测试、选择题、格式检查这类 verifier 时,怎样把“最终是否成功”转成稳定的策略更新。

GRPO 原图

图源:DeepSeek-R1,Supplementary Fig. 1。原论文图意:PPO 使用 value model 估计 advantage;GRPO 省去 value model,直接从同一问题的一组 sampled outputs 的 reward scores 中估计相对 advantage。

这张图帮你补哪块基础

PPO 里通常有 policy、reference、reward model 和 value model。value model 要猜“当前前缀未来大概能拿多少奖励”,这在长 CoT 里很难,因为中间推理可能被后面推翻。GRPO 换了一个更朴素的比较方式:同一道题一次采样多条回答,谁通过 verifier、谁格式正确、谁结果更好,就在这一组里相对更高。

这张图支撑的工程判断是:GRPO 省掉 value model,降低 critic 训练和显存成本;但它把成本转移到组内多采样、reward/verifier 吞吐和 rollout freshness 上。因此不能只问“要不要 critic”,还要算每个 prompt 的采样组大小、平均输出长度和 verifier 延迟。

GRPO 的 advantage 通常来自同题组内标准化:

Ai=rimean({r1,,rG})std({r1,,rG}).A_i= \frac{r_i-\mathrm{mean}(\{r_1,\ldots,r_G\})} {\mathrm{std}(\{r_1,\ldots,r_G\})}.

符号 含义 白话
GG 同一道题采样的回答数 一题多解里有多少份草稿
rir_i ii 条回答的奖励 这份草稿得分
mean\mathrm{mean} 组内平均奖励 这道题这组回答的平均水平
std\mathrm{std} 组内奖励标准差 这组回答差异有多大
AiA_i ii 条回答的 advantage 它比同题其他回答好多少

直觉很像同一场考试里比较多份草稿:不是问“这份草稿绝对值多少分”,而是问“它比同题其他解法更好吗”。这样可以省掉 critic / value model,也减少一个大模型训练和显存负担。

RLVR 指的是 reinforcement learning with verifiable rewards。它最适合这类任务:

任务 Verifier 例子 为什么适合 RL
数学 最终答案匹配、符号化检查 中间步骤难标,但结果可验证
代码 单元测试、编译器、执行结果 真实成功信号比偏好打分更可靠
选择题 / STEM 标准答案、格式检查 reward 稳定,采样成本可控
工具调用 schema、返回码、任务完成信号 能评价完整轨迹是否闭环

但它也有边界。开放写作、主观审美、复杂安全判断没有天然 verifier,这时仍要依赖 reward model、judge、人审或规则组合。即使有 verifier,也可能出现 reward hacking:模型学会迎合格式、利用测试漏洞、输出不可读但能过检查的答案。因此 GRPO / RLVR 应和 rejection sampling、格式约束、人工抽检、长度监控、通过率分桶和真实任务评测一起看。

有趣例子:一题多解的补习班

老师不给每一步打分,只看最后答案是否正确。学生同一道题写 16 种解法,正确且清楚的解法下次更可能被采用,明显错的解法概率下降。GRPO 就是在把这种“同题多解、组内比较”的信号变成模型参数更新。

多目标训练

实际系统很少只优化一个损失。多模态、具身和世界模型常写成:

L=λ1Ltask+λ2Laux+λ3Lalign+λ4Lreg\mathcal{L} = \lambda_1\mathcal{L}_{\text{task}} +\lambda_2\mathcal{L}_{\text{aux}} +\lambda_3\mathcal{L}_{\text{align}} +\lambda_4\mathcal{L}_{\text{reg}}

符号 含义 白话
Ltask\mathcal{L}_{\text{task}} 主任务 loss 最想优化的核心目标
Laux\mathcal{L}_{\text{aux}} 辅助 loss 帮助表示、稳定性或中间能力的目标
Lalign\mathcal{L}_{\text{align}} 对齐 loss 让模型更符合偏好、格式或安全边界
Lreg\mathcal{L}_{\text{reg}} 正则 loss 限制模型不要走到不希望的位置
λi\lambda_i 每个目标的权重 每个声音在总 loss 里有多大

真正难点不是写公式,而是:

  1. 权重如何设;
  2. 不同 loss scale 是否可比;
  3. 哪些目标早期强、后期弱;
  4. 不同数据源上的目标是否要分开归一化;
  5. 一个目标提升时,另一个目标是否退化。

多目标训练常常要和 curriculum、分阶段训练、冻结/解冻策略一起设计。否则辅助目标很容易压制主目标,或者后训练目标把预训练能力冲掉。

常见误区:loss 降了就一定更好

Loss 是训练压力的代理,不是最终能力本身。某个辅助 loss 下降,可能只是模型学会了更容易的中间任务;偏好 loss 改善,也可能伴随事实性、长上下文或格式稳定性退化。更稳的读法是:每次改 loss、权重或 schedule,都要同步看分桶评测、失败样本和关键能力回归。

多目标训练的排查链:辅助 loss 把主目标压住了

假设一个 VLA/world model 同时训练视频预测、动作重建和风险预测:

1
L = 1.0 * video_loss + 0.2 * action_loss + 0.05 * risk_loss

训练后 video_loss0.092 降到 0.078,但真实抓取 success 从 74% 掉到 66%,risk recall 从 69% 掉到 55%。这时不能只看 loss 权重数字,因为不同 loss 的尺度和梯度范数不一定可比:

Signal Loss Weight Loss Change Grad Norm Share 任务后果
video prediction 1.0 -15% 82% 画面更像
action reconstruction 0.2 -3% 13% 动作差异弱
risk prediction 0.05 +9% 5% 风险漏报

这里的机制是:视频预测 token 多、loss 稳、梯度占比大,模型自然把容量花在让未来“看起来像”;动作和风险信号稀疏,虽然更接近闭环成败,却被主损失淹没。

修复链应该按目标函数而不是按模块拍脑袋:

1
2
3
4
5
6
症状:视频预测更好,动作执行和风险指标下降
指标:per-loss grad norm、bucket loss、action sensitivity、risk recall、closed-loop success
机制:多目标 loss 的数值权重不等于梯度贡献,也不等于任务价值
修复:梯度归一化、分阶段训练、提高高价值桶采样、risk/action 辅助头延后冻结或单独 warmup
反例:过度放大稀有风险 loss 会让模型保守,主分布动作变慢或拒绝执行
边界:如果模型只做离线视频生成,video loss 可以主导;一旦接 planner,动作和风险目标必须有硬门槛

优化器的角色

目标函数定义了地形,优化器决定怎么在地形上走。Loss landscape 图适合提醒读者:学习率、batch、归一化、残差和 optimizer 不是单个旋钮,而是在共同改变训练路径。

Loss landscape visualization 原论文图

图源:Visualizing the Loss Landscape of Neural Nets,loss landscape visualization。原论文图意:通过二维切片可视化网络周围的 loss surface,帮助比较不同结构或训练配置下优化地形的平滑程度。

图解:这张图在回答什么

训练不是一次跳到最低点,而是在复杂地形里按梯度慢慢走。学习率太大可能越过稳定区域,太小会走得太慢;优化器的历史统计、weight decay、warmup 和 clipping 都是在塑造这条路径。

一阶优化器可以抽象为:

θt+1=θtηtut\theta_{t+1}=\theta_t-\eta_t u_t

其中 utu_t 是基于梯度和历史统计构成的更新方向,ηt\eta_t 是学习率。

优化器 特点 常见注意点
SGD 简单、经典 大模型中通常不如自适应方法方便
Momentum SGD 平滑更新方向 视觉和表征任务仍常见
Adam 一阶/二阶矩自适应 状态内存高,超参经验成熟
AdamW 解耦 weight decay Transformer 默认选择
Muon 对矩阵权重的动量做正交化 主要用于大规模预训练,通常与 AdamW/Adam 混合处理非矩阵参数
Adafactor 节省优化器状态 行为和调参经验不同于 AdamW
Lion 等变体 试图减少状态或改变更新几何 需要充分大规模证据

工业大模型训练里,AdamW 仍常作为默认起点,不是因为它理论上永远最优,而是因为稳定、可预期、经验最丰富。

Muon 代表另一类思路:把 Transformer 中的矩阵参数当作线性算子来更新,通过 Newton-Schulz 近似正交化 momentum,减少少数奇异方向主导训练的问题。它在 Muon 专题讲解 中被系统验证到 5.7T token MoE 预训练,但在 SFT、后训练和已有 AdamW checkpoint 迁移上仍要单独验证。

学习率日程

学习率日程几乎和优化器同样重要。常见形式是 warmup + decay:

ηt={ηmaxtTw,tTwηmaxf(t),t>Tw\eta_t = \begin{cases} \eta_{\max}\frac{t}{T_w}, & t\le T_w\\ \eta_{\max}f(t), & t>T_w \end{cases}

Warmup 的作用不只是平滑优化,它还能让混合精度、梯度统计、dataloader 和分布式通信进入稳定区间。Decay 可以是 cosine、linear、constant with decay 或多阶段 schedule。

学习率设计要和以下因素一起看:

  1. effective batch;
  2. 训练阶段和数据切换;
  3. loss 组成和权重;
  4. 梯度裁剪;
  5. 混合精度和 loss scaling;
  6. checkpoint 恢复后的 global step。

很多“模型不稳定”其实是 schedule 和阶段切换不匹配。

正则、裁剪与稳定项

常见稳定手段包括:

  1. weight decay;
  2. gradient clipping;
  3. dropout / stochastic depth;
  4. label smoothing;
  5. KL / reference constraint;
  6. auxiliary loss;
  7. norm、logit、activation 相关约束。

这些手段都不是越多越好。它们会改变优化几何和能力分布。比如过强 KL 会限制偏好学习收益,过强 clipping 会掩盖真正的数值异常,过强 auxiliary loss 会让模型偏向容易优化的中间任务。

使用这些项时要记录触发频率、实际 loss scale、对主指标的影响,以及是否在特定数据桶上造成退化。

配置验收清单

目标函数、优化器和日程上线前至少要回答:

  1. 主 loss 和辅助 loss 的权重如何确定;
  2. loss scale 是否随数据源或阶段变化;
  3. 学习率、warmup、decay 和 effective batch 是否匹配;
  4. optimizer state、scheduler state 和 scaler 是否能完整 checkpoint;
  5. gradient clipping、weight decay、KL 等稳定项是否有监控;
  6. 数据切换点、loss 切换点和 LR 切换点是否对齐;
  7. 是否按能力桶观察收益和退化;
  8. 恢复训练后曲线是否连续。

训练目标不是静态公式,优化器也不是默认选项。它们共同定义训练轨迹。成熟训练系统会把 loss 配方、数据阶段、学习率、batch、数值稳定和 checkpoint 状态作为同一个配置资产管理。

下一站
  • 回到本专题入口:训练,确认这页在整条路线中的位置。
  • 按导航顺序继续:MTP 与投机解码
  • 概念或符号卡住时,先查 术语表,再回到当前页。
  • Title: 训练:目标函数、优化器与 LR 日程
  • Author: Charles
  • Created at : 2026-02-18 09:00:00
  • Updated at : 2026-02-18 09:00:00
  • Link: https://charles2530.github.io/2026/02/18/ai-files-training-objectives-optimizers-and-schedules/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments