大模型微调中哪些超参数最关键?训练不稳定如何排查?
简化版
微调最关键的超参数通常是学习率、有效 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 只是训练信号,真正的停止条件来自独立验证集和能力回归。