训练:目标函数、优化器与 LR 日程
模型架构决定系统允许学什么,数据决定系统能看到什么,目标函数、优化器和学习率日程决定系统实际沿着怎样的路径学到什么。同一个模型、同一批数据,仅仅更换 loss 配方和 schedule,就可能得到截然不同的训练轨迹。
这页先回答“目标函数、优化器与 LR 日程”在「训练」里的位置:它解决什么局部问题,依赖哪些前置,最后会影响哪类工程或研究判断。
前置:先知道 loss、optimizer、batch、checkpoint 和评测集的基本含义。 必要时先回 训练入口、基础知识 或 术语表。
主线关系:把目标函数、数据、分布式系统、评测回流和实验治理串起来,看一次训练为什么成功、为什么不稳、为什么贵。
这页给训练目标和优化配置一个统一入口。更系统的数据配方见 Scaling、课程学习与数据配比,数值异常排查见 训练稳定性与故障排查。
训练配方可以先按“目标、步长、刹车”理解:loss 告诉模型什么叫错,optimizer 决定怎样改参数,learning rate schedule 决定每一步迈多大。三者必须一起看,单独换一个组件,往往会改变整条学习轨迹。
模型像厨师,loss 像食客反馈,optimizer 像改菜谱的方法,learning rate 像每次加盐的量。反馈再准确,如果一次加半罐盐,菜也会报废;如果每次只加一粒盐,改进又会慢到不可接受。
目标函数、优化器与 LR 日程在世界模型高效训练里负责回答:训练信号到底在奖励什么,哪些能力被大桶数据主导,哪些阶段切换会破坏稳定性。它降低训练成本和错误优化成本;如果 loss 与闭环目标错位,算力会被稳定地花在错误方向上。
符号速查:先把公式读顺
训练公式常显得吓人,通常不是因为数学很深,而是符号太多。先记住这张表:
| 符号 | 常见含义 | 直觉 |
|---|---|---|
| 输入 | prompt、图像、视频片段、状态、观测 | |
| 目标输出 | 正确 token、参考回答、标签、动作、偏好答案 | |
| 序列位置或训练步 | 第几个 token,或第几步更新 | |
| 当前模型参数 | 正在被训练的权重 | |
| 模型预测 | 当前模型看到输入后的输出 | |
| 模型给出的概率 | 某个 token、类别或动作有多可能 | |
| 、 | loss | 错误有多大,训练压力来自哪里 |
| 总目标 | 把多个 loss、正则和约束合起来后的训练目标 | |
| 梯度 | 参数往哪个方向改能降低 loss | |
| 学习率 | 第 步迈多大 | |
| loss 权重或正则权重 | 多个目标之间谁更响亮 | |
| policy / 策略模型 | RLHF/GRPO 中正在被训练的生成模型 | |
| 或 | reward | 完整回答、动作或轨迹得到的分数 |
| KL 或偏好强度系数 | 偏好/RL 里的刹车或温度 |
先找输入 和目标 ,再找模型预测 或 ,然后看 loss 在比较什么,最后看 、、KL、正则这些项在加什么约束。这样读公式,比一开始就追求推导完整得多。
目标函数在定义学习压力
大多数训练问题可以写成:
现代基础模型复杂在于: 可能是下一个 token、噪声、偏好排序、奖励信号、图像 patch 或动作; 可能由多个子目标组成;样本分布是多源、分阶段、随时间变化的。
| 公式片段 | 符号含义 | 白话读法 |
|---|---|---|
| 寻找一组模型参数 | 让模型变成更少犯错的版本 | |
| 从训练数据分布采样输入和目标 | batch 不是凭空来的,它代表你给模型看的世界 | |
| 比较模型预测和目标 | 预测离目标越远,惩罚越大 | |
| 正则项或约束项 | 让模型不要用不希望的方式降低主 loss |
不同目标本质上在回答不同问题:
| 目标 | 问题 | 常见用途 |
|---|---|---|
| 交叉熵 | 怎样拟合数据分布 | LLM、代码、多模态 token |
| 扩散损失 | 怎样恢复被噪声破坏的信号 | 图像、视频、音频生成 |
| 对比损失 | 怎样塑造表示空间几何 | 检索、对齐、表征学习 |
| 偏好目标 | 怎样偏向更受欢迎的输出 | RLHF、DPO、对齐 |
| 强化学习目标 | 怎样最大化长期回报 | agent、机器人、工具使用 |
| 多任务目标 | 怎样同时保留多个能力 | VLM、VLA、世界模型 |
所以“哪种 loss 更好”没有统一答案,必须看它给模型施加了什么学习压力。
常见目标族:按学习信号从直接到间接读
目标函数可以按“答案有多直接”来读。监督学习最直接,扩散和对比学习需要构造中间任务,偏好/RL 最间接,因为模型要先采样,再用人类偏好、reward model 或 verifier 判断结果。
1. 监督学习:交叉熵和 SFT
自回归语言模型最经典的目标是 next-token prediction:
| 符号 | 含义 | 白话 |
|---|---|---|
| 序列长度 | 一段文本里要预测多少个位置 | |
| 第 个 token | 当前标准答案 token | |
| 前文上下文 | 模型已经看见的 token | |
| 模型给正确 token 的概率 | 模型有多相信正确答案 |
白话读法:每个位置都让模型猜下一个 token。正确 token 概率越高, 越小;正确 token 概率越低,惩罚越大。
SFT 仍然是交叉熵,只是输入变成 prompt,目标变成高质量回答:
这里 是用户指令或任务输入, 是示范回答的第 个 token, 是示范回答前缀。它教模型“在这个输入下应该怎样回答”,但不保证回答一定最受偏好,也不保证真实任务风险最低。
2. 生成建模:扩散损失
扩散模型常用噪声、 或 velocity 预测目标。以噪声预测为例:
| 符号 | 含义 | 白话 |
|---|---|---|
| 干净样本 | 原图、原视频或原 latent | |
| 真实噪声 | 训练时加进去的噪声 | |
| 噪声时间步 | 当前破坏到什么程度 | |
| 加噪后的样本 | 模型实际看到的输入 | |
| 条件 | 文本、类别、图像、动作等条件 | |
| 模型预测的噪声 | 模型猜应该去掉什么 |
白话读法:把干净样本加噪,模型根据 猜噪声 。猜得越接近,平方误差越小。不同参数化会影响梯度尺度、采样器兼容性和训练稳定性。
3. 表征学习:InfoNCE 和对比目标
图文对齐和样本匹配常用 InfoNCE:
| 符号 | 含义 | 白话 |
|---|---|---|
| anchor 表征 | 当前样本的向量表示 | |
| 正样本表征 | 应该靠近的配对样本 | |
| 第 个负样本表征 | 应该远离的错误配对 | |
| 相似度函数 | 两个向量有多像 | |
| 温度系数 | 控制分布尖锐程度 |
白话读法:让正确配对在一堆候选里更相似,让错误配对相对更远。它优化的是表示空间几何,不是直接生成答案。
4. 偏好学习:DPO 和人类排序
偏好学习会比较优选回答 和劣选回答 。InstructGPT 的标注界面图能提醒你:很多 reward 信号不是天然分数,而是人类在同一个 prompt 下比较出来的。

图源:Training language models to follow instructions with human feedback,Appendix Figure 19(b)。原论文图意:标注者在同一个 prompt 下比较多个模型输出,并把它们从最好到最差排序。
偏好数据不是“每个 token 的标准答案”,而是“同一问题下哪个回答更好”。如果标注口径偏向长答案、保守答案或固定格式,后续 reward model、DPO 或 PPO 都会把这种偏好继续放大。
DPO 的常见形式是:
| 符号 | 含义 | 白话 |
|---|---|---|
| 优选回答 | 人类或规则更喜欢的回答 | |
| 劣选回答 | 相比之下更差的回答 | |
| 当前策略模型 | 正在训练的模型 | |
| 参考模型 | 通常是 SFT 模型,用来约束变化幅度 | |
| 偏好强度/温度 | 控制相对参考模型移动多猛 | |
| sigmoid 函数 | 把偏好差异压成概率式目标 |
白话读法:相对参考模型,提高优选回答的概率,压低劣选回答的概率。它不需要显式训练 reward model,但仍然非常依赖偏好数据质量、参考模型和学习率。
5. 强化学习:先采样,再用 reward 判断
强化学习目标比普通监督学习多一层间接性。监督学习里,目标答案 通常已经给定;强化学习里,模型先按当前策略采样动作或回答,再根据奖励判断这次采样是否值得加强。语言模型 RLHF 可以简化成:
| 符号 | 含义 | 白话 |
|---|---|---|
| 从当前模型采样回答 | 模型自己先试着回答 | |
| reward model 分数 | 这次完整回答有多好 | |
| 当前模型和参考模型的距离 | 跑偏程度 | |
| KL 惩罚强度 | 刹车有多强 |
白话读法:鼓励当前模型更常生成高奖励回答,同时用 KL 项限制它不要离参考模型太远。
Reward model 给的是完整回答的偏好分数,不是每个 token 的标准答案。PPO 这类算法要把“这个回答整体更好”转成 token 级概率更新,因此需要 value、advantage、旧策略概率、clip 和 KL 这些稳定装置。缺少这些装置,模型很容易为了追高 reward 走偏,例如变长、套模板、过度拒答或牺牲事实性。
GRPO / RLVR:同一道题多采样,再做组内比较
DeepSeek-R1、Qwen3 等技术报告里反复出现 GRPO 和 RLVR。这部分如果只理解成“又一种 PPO 变体”,会漏掉重点。它真正回答的是:当奖励来自数学答案、代码测试、选择题、格式检查这类 verifier 时,怎样把“最终是否成功”转成稳定的策略更新。

图源: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 通常来自同题组内标准化:
| 符号 | 含义 | 白话 |
|---|---|---|
| 同一道题采样的回答数 | 一题多解里有多少份草稿 | |
| 第 条回答的奖励 | 这份草稿得分 | |
| 组内平均奖励 | 这道题这组回答的平均水平 | |
| 组内奖励标准差 | 这组回答差异有多大 | |
| 第 条回答的 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 就是在把这种“同题多解、组内比较”的信号变成模型参数更新。
多目标训练
实际系统很少只优化一个损失。多模态、具身和世界模型常写成:
| 符号 | 含义 | 白话 |
|---|---|---|
| 主任务 loss | 最想优化的核心目标 | |
| 辅助 loss | 帮助表示、稳定性或中间能力的目标 | |
| 对齐 loss | 让模型更符合偏好、格式或安全边界 | |
| 正则 loss | 限制模型不要走到不希望的位置 | |
| 每个目标的权重 | 每个声音在总 loss 里有多大 |
真正难点不是写公式,而是:
- 权重如何设;
- 不同 loss scale 是否可比;
- 哪些目标早期强、后期弱;
- 不同数据源上的目标是否要分开归一化;
- 一个目标提升时,另一个目标是否退化。
多目标训练常常要和 curriculum、分阶段训练、冻结/解冻策略一起设计。否则辅助目标很容易压制主目标,或者后训练目标把预训练能力冲掉。
Loss 是训练压力的代理,不是最终能力本身。某个辅助 loss 下降,可能只是模型学会了更容易的中间任务;偏好 loss 改善,也可能伴随事实性、长上下文或格式稳定性退化。更稳的读法是:每次改 loss、权重或 schedule,都要同步看分桶评测、失败样本和关键能力回归。
多目标训练的排查链:辅助 loss 把主目标压住了
假设一个 VLA/world model 同时训练视频预测、动作重建和风险预测:
1 | L = 1.0 * video_loss + 0.2 * action_loss + 0.05 * risk_loss |
训练后 video_loss 从 0.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 | 症状:视频预测更好,动作执行和风险指标下降 |
优化器的角色
目标函数定义了地形,优化器决定怎么在地形上走。Loss landscape 图适合提醒读者:学习率、batch、归一化、残差和 optimizer 不是单个旋钮,而是在共同改变训练路径。

图源:Visualizing the Loss Landscape of Neural Nets,loss landscape visualization。原论文图意:通过二维切片可视化网络周围的 loss surface,帮助比较不同结构或训练配置下优化地形的平滑程度。
训练不是一次跳到最低点,而是在复杂地形里按梯度慢慢走。学习率太大可能越过稳定区域,太小会走得太慢;优化器的历史统计、weight decay、warmup 和 clipping 都是在塑造这条路径。
一阶优化器可以抽象为:
其中 是基于梯度和历史统计构成的更新方向, 是学习率。
| 优化器 | 特点 | 常见注意点 |
|---|---|---|
| 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:
Warmup 的作用不只是平滑优化,它还能让混合精度、梯度统计、dataloader 和分布式通信进入稳定区间。Decay 可以是 cosine、linear、constant with decay 或多阶段 schedule。
学习率设计要和以下因素一起看:
- effective batch;
- 训练阶段和数据切换;
- loss 组成和权重;
- 梯度裁剪;
- 混合精度和 loss scaling;
- checkpoint 恢复后的 global step。
很多“模型不稳定”其实是 schedule 和阶段切换不匹配。
正则、裁剪与稳定项
常见稳定手段包括:
- weight decay;
- gradient clipping;
- dropout / stochastic depth;
- label smoothing;
- KL / reference constraint;
- auxiliary loss;
- norm、logit、activation 相关约束。
这些手段都不是越多越好。它们会改变优化几何和能力分布。比如过强 KL 会限制偏好学习收益,过强 clipping 会掩盖真正的数值异常,过强 auxiliary loss 会让模型偏向容易优化的中间任务。
使用这些项时要记录触发频率、实际 loss scale、对主指标的影响,以及是否在特定数据桶上造成退化。
配置验收清单
目标函数、优化器和日程上线前至少要回答:
- 主 loss 和辅助 loss 的权重如何确定;
- loss scale 是否随数据源或阶段变化;
- 学习率、warmup、decay 和 effective batch 是否匹配;
- optimizer state、scheduler state 和 scaler 是否能完整 checkpoint;
- gradient clipping、weight decay、KL 等稳定项是否有监控;
- 数据切换点、loss 切换点和 LR 切换点是否对齐;
- 是否按能力桶观察收益和退化;
- 恢复训练后曲线是否连续。
训练目标不是静态公式,优化器也不是默认选项。它们共同定义训练轨迹。成熟训练系统会把 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.