真实面经题目 · 原创解析

微调 Qwen 这类大模型时,learning rate scheduler 应如何设计?如何确定 step 口径、warmup、cosine/linear decay、最小学习率和峰值学习率?

这题考察的不是背诵某个 scheduler,而是能否把 Qwen 微调中的学习率设计拆成训练稳定性、收敛效率、泛化效果和版本选择四件事。好的回答要明确 step 口径、warmup 比例、衰减曲线、最小学习率和峰值学习率。

出现于:阿里巴巴 · AI 应用开发

60 秒回答模板

微调 Qwen 这类大模型时,我会先把 learning rate scheduler 当成训练实验设计来做,而不是直接套一个 cosine 或 linear。核心先确定五个量:峰值学习率、总 update steps、warmup steps、衰减形状和最小学习率。step 口径必须按优化器实际更新次数计算,也就是扣除 gradient accumulation 之后的 optimizer step,而不是原始 batch 数;如果样本长度差异很大,还要额外观察 token 数口径,避免长样本阶段学习率变化和有效训练量不匹配。 warmup 的目标是让优化器状态、LoRA 适配层或全量参数从较小更新平稳进入峰值学习率。一般可从总 update steps 的 3% 到 10% 起步,小数据、全参微调、混合精度不稳定或 loss 前期抖动明显时取高一些;大数据、LoRA 微调且训练稳定时可取低一些。峰值学习率要和训练方式绑定:全量微调通常更保守,LoRA 或 QLoRA 可以更高,但最终以验证集曲线和是否出现遗忘、格式退化、幻觉增加来判断。 衰减曲线上,cosine decay 更适合训练步数相对充足、希望后期细致收敛的场景;linear decay 更简单、可解释,适合短训练或希望学习率单调快速下降的场景。最小学习率不一定要降到 0,常见做法是设为峰值学习率的 0 到 10%,如果是领域继续预训练或希望保留后期小步更新,可保留非零 min LR;如果是很短的指令微调,降到接近 0 也合理。版本选择不能看最后一个 checkpoint,而应该在固定验证集和关键业务评测集上按指标、人工抽检和稳定性选择 best checkpoint,并设置 patience 早停,防止继续训练只是在记忆训练集。

考点 step 看优化器更新
难度 真实面经题
回答目标 让面试官相信候选人能把大模型微调当作可控实验来管理,理解学习率调度背后的训练稳定性、泛化风险和工程口径,而不是只会调用框架默认参数。

深入解析

01

先界定微调类型

全参微调、LoRA、QLoRA、SFT、偏领域继续训练对应的学习率风险不同。全参更新对基座能力影响更大,通常更保守;LoRA/QLoRA 只更新适配参数或量化适配层,可以从更高峰值学习率做搜索,但仍要看验证集和 bad case。

02

统一 step 口径

scheduler 使用 optimizer update step,显式纳入 batch size、gradient accumulation、epoch、样本数和可变 token 长度。很多训练不稳定来自 warmup steps、eval interval 和保存 checkpoint 使用了 dataloader batch 口径,而不是实际参数更新口径。

03

设计 warmup

warmup 可从总 update steps 的 3% 到 10% 作为起点,根据前期 loss 抖动、梯度范数、混合精度稳定性和数据规模调整。总步数很少时,warmup 过长会压缩有效学习阶段;全参或小数据不稳定时,warmup 太短又容易让训练早期 spike。

04

选择衰减曲线

cosine 偏平滑后期收敛,linear 偏简单可控,短训练不必过度复杂化。选择时要看训练长度、目标任务、是否需要后期继续小步适配,以及 loss、任务指标和生成质量是否同步改善。

05

设置 min LR 和峰值学习率

峰值学习率决定主要更新强度,min LR 控制后期是否继续学习。非零 min LR 适合领域继续训练或数据量较大、仍希望保留小幅更新的任务;接近 0 更适合短 SFT 或防止后期过拟合的场景。

06

用验证集选版本

scheduler 设计最终要服务模型质量。固定验证集、业务样本、格式遵循、事实性和安全性抽检共同决定 checkpoint,并用早停控制过拟合。训练 loss 下降但输出风格变差、幻觉变多或通用能力退化时,不应选为最佳版本。

易错点

  • 把 scheduler step 当成 dataloader batch,忘记 gradient accumulation。
  • 只说使用 cosine,不说明 warmup、min LR、峰值学习率和版本选择。
  • 照搬通用学习率范围,不区分全参微调、LoRA、QLoRA 和继续训练。
  • 验证集只看 loss,忽略格式、幻觉、安全性和真实业务效果。
  • 默认最后一个 checkpoint 最好,缺少 best checkpoint 和 early stopping 机制。
  • 小数据集训练过多 epoch,却没有监控训练集与验证集 gap。

面试官追问

如果总训练步数很少,还需要 warmup 吗?

需要,但比例和绝对步数要谨慎。总步数很少时,warmup 过长会导致模型大部分时间都没有进入有效学习率;通常保留少量 warmup 来避免初始震荡,同时减少 epoch 或降低峰值学习率,比机械拉长 warmup 更稳。

cosine decay 一定比 linear decay 更好吗?

不一定。cosine 的优势是后期下降更平滑,适合步数较多的训练;linear 更容易解释和复现,短训练中可能足够好。面试中应强调通过验证曲线和业务指标比较,而不是迷信某个曲线。

验证集应该只看 loss 吗?

不应只看 loss。LLM 微调还要看任务成功率、格式遵循、拒答边界、事实性、领域术语准确率和人工抽检。loss 下降但输出风格变差或安全边界退化,也不能选为最佳版本。

早停 patience 如何设?

可以按 eval 间隔设 2 到 3 次无提升作为起点,但要看验证集噪声。数据小、指标波动大时要结合滑动平均和人工样本;数据稳定时可以更严格。早停的对象应是综合主指标,而不是训练 loss。