真实面经题目 · 原创解析
大模型微调时,7B 和 70B 模型的学习率应如何设置,为什么模型规模会影响学习率选择?
大模型微调时,70B 通常要比 7B 使用更保守的学习率,因为大模型参数多、预训练能力强、对分布扰动更敏感,过大学习率更容易导致灾难性遗忘、loss 震荡和能力退化。但这不是绝对规则,还要区分全参微调、LoRA、数据规模、batch size、warmup、scheduler 和任务差异。
真实面经题目 · 原创解析
大模型微调时,70B 通常要比 7B 使用更保守的学习率,因为大模型参数多、预训练能力强、对分布扰动更敏感,过大学习率更容易导致灾难性遗忘、loss 震荡和能力退化。但这不是绝对规则,还要区分全参微调、LoRA、数据规模、batch size、warmup、scheduler 和任务差异。
一般来说,70B 微调的学习率应比 7B 更保守,7B 可以相对更大一些。原因是 70B 已经有更强的预训练表征和更复杂的参数空间,微调时如果步长过大,容易破坏原有能力,引发灾难性遗忘、loss 不稳定、指令跟随退化或通用能力下降。7B 容量较小,适应新任务可能需要更明显的参数更新,因此学习率可以相对高一点。但具体数值不能只按参数规模拍脑袋,还要看是全参还是 LoRA。全参微调通常更保守;LoRA 只更新低秩适配器,学习率可以比全参大。实践上我会做 log-scale sweep,配合 warmup、cosine 或 linear scheduler、gradient clipping、合适 batch size 和验证集回归,选择既能收敛又不损伤基础能力的学习率。
70B 模型参数规模大,预训练阶段已经形成较强的通用能力和复杂表征。微调时过大的学习率可能让参数偏离预训练分布,导致模型在目标任务上短期 loss 下降,但通用问答、推理、指令跟随或安全能力退化。7B 模型容量较小,任务适配空间相对有限,适当更大的学习率可能帮助它更快学习领域数据。
全参微调会更新全部权重,风险更高,因此学习率通常要低,尤其是 70B。LoRA、Adapter 或 Prefix tuning 只更新少量新增参数,对基座扰动小,学习率可以相对更高。面试中不能简单说 7B 一定大、70B 一定小,而要说明参数更新范围不同,学习率选择也不同。
学习率不是孤立超参。大 batch 往往可以支撑更稳定的梯度估计,但也需要合理 warmup;小 batch 噪声大,过大学习率更容易震荡。warmup 可以避免训练初期梯度不稳定,scheduler 决定后期收敛质量,gradient clipping 可以防止梯度爆炸。有效 batch size、序列长度、数据质量和训练步数都会影响最优学习率。
实践中应做对数尺度搜索,例如围绕几个候选学习率观察 train loss、valid loss、任务指标、通用能力回归和安全评测。不能只看训练集 loss,过大学习率可能让 loss 快速下降但泛化差。理想学习率应满足收敛稳定、验证集提升、原有能力不明显退化,并且在多次随机种子或不同数据切分下表现稳定。
因为大模型已有能力来自大量参数之间的协同结构。微调步长过大时,参数会快速偏离预训练形成的良好区域,可能导致目标任务过拟合、通用能力下降和输出风格不稳定。70B 的能力更强但也更值得保护,所以通常采用更低学习率、更长 warmup 和更严格回归。
LoRA 主要更新低秩适配器参数,基座模型大部分权重保持冻结,对原始能力破坏较小。因此 LoRA 的学习率通常可以高于全参微调。但如果 LoRA rank 很大、数据很窄或训练轮数太多,仍然可能过拟合或改变输出分布,所以也要做验证集和通用能力回归。
典型信号包括 train loss 剧烈震荡、valid loss 不降反升、梯度范数异常、输出格式变差、重复生成、指令跟随下降、领域外问题明显退化,以及安全或拒答策略失效。如果只看目标训练集,可能会误判为收敛很快,所以必须结合验证集和回归集。
我会先按训练方式确定范围,全参用更低范围,LoRA 用相对高的范围,然后做 log-scale sweep。每个实验保持数据、batch、warmup、scheduler 和训练步数可比,记录 loss 曲线、目标任务指标、通用能力回归、稳定性和成本。最后选择验证集稳定且退化最小的点,而不是训练 loss 最低的点。