← 返回题目列表

大模型微调中哪些超参数最关键?训练不稳定如何排查?

高频 中等 第 3 / 25 题 更新于 2026/07/28
微调超参数学习率Batch Size训练稳定性

简化版

微调最关键的超参数通常是学习率、有效 Batch Size、训练步数、序列长度、学习率调度和精度类型。训练不稳定要从数据与 Mask、数值精度、梯度、显存和分布式配置依次排查,不能只靠降低学习率碰运气。

详细版

重点参数及作用:

  • 学习率:过高会破坏已有能力或发散,过低则学不动;
  • 有效 Batch Size:微批量 × 梯度累积步数 × 数据并行规模;
  • 训练步数/epoch:过多易过拟合,过少欠拟合;
  • 序列长度:影响截断、激活显存和计算量;
  • Warmup 与 Scheduler:减轻训练初期更新过猛;
  • 梯度裁剪:限制异常梯度峰值;
  • fp16/bf16:影响吞吐、显存和数值范围;
  • LoRA rank、alpha、dropout:控制 Adapter 容量和正则化。

排查时记录 loss、梯度范数、学习率、吞吐、显存和验证指标。训练 loss 下降不代表线上质量提高。

完整版教学

记忆钩子:微调题先分清目标是改行为、补知识还是降成本,再谈 SFT、LoRA、QLoRA 和评估上线。

一、先确认数据流水线

大量“训练不稳定”其实来自错误标签、全部被 Mask、模板重复特殊 token、空回答或截断。先让少量高质量样本过拟合,是验证流水线的有效办法。

二、学习率为什么敏感

微调从已有能力的参数点出发,更新太大会偏离基座。全量微调通常比只训练 Adapter 更保守,但不存在跨模型通用数值,应通过学习率扫描确定。

Warmup 让学习率从较小值上升,尤其适合训练初期梯度波动较大的场景。

三、Batch 与梯度累积

显存放不下大 Batch 时,可累积多个微批量梯度后再更新。它能扩大有效 Batch,但会增加一次优化器更新的等待时间。

调度器步数、日志步数和梯度裁剪时机必须按“优化器更新”理解,配置错误会改变实际训练计划。

四、精度与梯度异常

fp16 数值范围较窄,可能出现溢出并需要 Loss Scaling;bf16 指数范围更大,通常更稳,但需要硬件支持。出现 NaN 时检查异常样本、学习率、梯度范数和算子精度。

混合精度会降低部分显存,但优化器状态和某些计算仍可能保留更高精度。

五、显存不够怎么办

依次考虑减小微批量、缩短序列、启用梯度检查点、使用 PEFT/QLoRA、优化样本 Packing,再考虑参数和优化器分片。梯度检查点通过反向时重算部分前向来省激活,因此会牺牲速度。

六、过拟合怎么看

训练 loss 持续下降而验证指标下降、回答模板化或通用能力退化,都是过拟合信号。可减少步数、提高数据多样性、降低学习率、增加正则,并采用早停。

七、面试拆解算例

微调题可以用一个小项目来拆:基座模型 7B,业务只需要客服问答风格统一,训练集初筛 30,000 条,清洗后留下 8,000 条高质量样本。若全量微调,7B 参数按 BF16 仅权重就约 14GB,训练还要梯度和优化器状态;若用 LoRA,只训练低秩增量,显存压力会明显下降,但表达能力受 rank 和目标模块影响。

base_model: 7B
raw_samples: 30000
clean_samples: 8000
lora_rank: 8 or 16
learning_rate: 1e-5 ~ 2e-4
validation_split: 5% ~ 10%
方案适合目标主要风险验收重点
Prompt临时改格式、少量约束长提示不稳定单轮成功率
RAG接入动态知识检索召回不足引用与命中率
SFT/LoRA固化行为和领域表达遗忘与过拟合回归集与人工偏好
全量微调深度改模型能力成本高、风险大全面评测
数据清洗 -> 训练/验证切分 -> 小步试训 -> 回归评测 -> 灰度上线
   |              |             |             |
 去噪去重       防泄漏       看 loss       看坏例

因此回答「大模型微调中哪些超参数最关键?训练不稳定如何排查?」时,不要直接说“用微调”。先问目标是什么、数据是否足够干净、是否有动态知识,再选择 Prompt、RAG、PEFT 或全量微调,最后用评估集证明它确实变好了。

八、常见误区与追问

  • 误区:微调就是把业务文档喂给模型让它记住。 微调更适合塑造行为格式、任务风格和领域表达,动态知识与事实更新通常更适合 RAG。
  • 追问:为什么这个问题不用 Prompt 或 RAG 解决? 面试里要先说明目标是改行为、补知识还是接外部数据,再选择微调方案。
  • 误区:训练集越大越好。 SFT 更怕低质、冲突、模板化和泄漏数据;少量高质量样本常常胜过大量脏样本。
  • 追问:上线前你会看哪些评估? 至少要覆盖基准集、人工偏好、回归用例、安全红线、延迟成本和灾难性遗忘检查。
  • 误区:LoRA/QLoRA 省显存就没有代价。 参数高效方法降低训练成本,但 rank、目标模块、量化误差和合并部署都会影响最终质量。

九、加强记忆

微调调参先保证数据和标签正确,再看学习率、有效 Batch、步数、长度与精度;loss 只是训练信号,真正的停止条件来自独立验证集和能力回归。