完整题目
在深度学习训练过程中,常通过可视化手段(如损失/准确率曲线、梯度直方图、激活值分布图等)获取模型训练动态的图像反馈。请说明如何从这些可视化结果中识别训练问题(如过拟合、梯度消失),并相应调整学习率、正则化强度等超参数。
可视化用于提出诊断假设,超参数要靠对照实验决定
训练曲线先对齐 step、有效 token、学习率、梯度累积和数据版本。训练损失下降而验证损失上升可能是过拟合,也可能来自验证分布变化、数据泄漏修复或评测噪声;训练与验证都不降则检查数据、实现、容量和优化。梯度直方图要结合每层参数范数、激活、更新量、混合精度缩放和累积步数解读。底层梯度比顶层小很多并不自动意味着给底层更小学习率,那会进一步减小更新;也不能仅凭单次比例反向给更大学习率。
更可靠的量是相对更新,如学习率乘梯度范数再除参数范数,并观察多个 step 的中位数、分位数和方向稳定性。梯度接近零可能由冻结、mask、断图、饱和、归一化或任务本身造成;梯度爆炸看非有限值、尖峰与 loss 同步变化。激活分布可发现饱和、死区、异常均值方差和层间漂移。
调参采用单变量或小规模设计实验。过拟合可评估数据、weight decay、dropout、早停和模型容量;平台期可检查学习率计划、batch 和数据;不稳定可降低学习率、修数值问题或使用梯度裁剪。clip_grad_norm_ 的 max_norm 是用户设定阈值,官方 API 不规定“大于 1 就裁剪”的通用规则。阈值应依据稳定训练的总梯度分布、模型规模、优化器、精度和任务回测,并监控裁剪比例,避免长期裁剪掩盖根因。
继续追问 · 3 个问题
- 如果损失曲线出现剧烈震荡,你会如何诊断和解决?
- 在LLM训练中,你如何通过tensorboard观察attention map来诊断训练问题?
- 当梯度直方图显示多层梯度量级差异巨大时,除了调整学习率还有什么解决方案?
换一种问法,检查是否真正理解
场景切入
假设你正在训练一个图像分类模型,发现验证集损失在某个epoch后开始反弹,而训练损失还在下降。你从这个可视化结果能看出来什么问题?会怎么调超参数?
层层追问
训练时你一般看哪些可视化曲线来判断模型状态?……如果看到梯度直方图大部分集中在0附近,你觉得可能是什么问题?……那针对这个问题,你会怎么调整学习率或者模型结构?
直球架构
请讲一下如何通过可视化工具(比如损失曲线、梯度直方图、激活值分布)来诊断训练中的过拟合、梯度消失或爆炸问题,并给出相应的调参策略,包括学习率、正则化强度等如何调整。