二十三:调参技巧自测题¶
来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484231&idx=1&sn=ce0d62c30fc214041acef22aff6901e0&chksm=f01eb03ec7693928d5efab8faba5d97c15f6222eb2781aa3b58440d0855a5b614a5d33309f05#rd
A. 调参目标与基本原则¶
-
什么是超参数?它和模型参数有什么区别?
-
为什么说调参不是盲目试参数,而是一个实验工程问题?
-
一个调参任务开始前,应该先明确哪些目标和约束?
-
为什么调参前必须建立可靠 baseline?
-
一个可靠 baseline 至少应该记录哪些信息?
-
为什么要先做小数据过拟合测试?它能排查哪些问题?
-
调参时为什么不能只看单次实验的最好结果?
-
什么是 scientific hyperparameters、nuisance hyperparameters 和 fixed hyperparameters?这种分类有什么价值?
B. 数据、指标与误差分析¶
-
训练集、验证集和测试集在调参流程中分别承担什么角色?
-
为什么测试集不能在调参过程中频繁使用?
-
时间序列任务和用户级任务在数据划分上分别要注意什么?
-
请列举几种常见数据泄漏形式。
-
如果验证集指标很高但测试集明显下降,你会如何排查?
-
调参时为什么要区分优化指标、监控指标、业务指标和切片指标?
-
为什么总指标提升不一定代表模型真的变好?
-
误差分析应该如何指导下一轮调参?
-
在大模型微调中,为什么训练 loss 下降不一定代表模型质量提升?
C. 学习率、Batch Size 与训练步数¶
-
为什么学习率通常是最重要的超参数?
-
学习率过大时,训练曲线和数值表现通常会出现哪些现象?
-
学习率过小时,训练过程通常有什么表现?
-
为什么学习率搜索通常使用对数尺度?
-
大模型全参微调和 LoRA 微调在学习率选择上通常有什么差异?
-
micro batch size、gradient accumulation steps、world size 和 global batch size 分别是什么?
-
请写出 global batch size 的计算公式。
-
增大 batch size 会对显存、吞吐、梯度噪声和泛化产生什么影响?
-
梯度累积能解决什么问题?它不能解决什么问题?
-
当 GPU 数量增加时,为什么原来的学习率和训练步数可能不再合适?
-
如果 global batch size 变大,可以采用哪些学习率缩放策略?
D. 优化器、正则化与学习率调度¶
-
SGD、Adam 和 AdamW 的核心区别是什么?
-
为什么 Transformer 和大模型训练中 AdamW 很常见?
-
Adam 优化器中的 beta1、beta2、epsilon 分别影响什么?
-
在常规调参中,为什么通常优先调 learning rate 和 weight decay,而不是一开始就调 beta1/beta2?
-
weight decay 的作用是什么?AdamW 中的 weight decay 和传统 L2 正则有什么区别?
-
dropout 的作用是什么?过大的 dropout 会带来什么问题?
-
label smoothing 的作用是什么?它适合解决什么类型的问题?
-
early stopping 的基本思想是什么?它有什么风险?
-
常见学习率调度策略有哪些?各自适合什么场景?
-
warmup 的作用是什么?warmup 过长或过短分别会带来什么问题?
-
梯度裁剪解决什么问题?为什么它不能替代正确的学习率设置?
-
mixed precision 训练中出现 NaN/Inf 时,应该检查哪些因素?
E. 欠拟合、过拟合与模型容量¶
-
如何根据 train loss 和 valid loss 判断欠拟合?
-
如何根据 train loss 和 valid loss 判断过拟合?
-
模型容量不足时,可以从哪些方向改进?
-
如果模型过拟合,调参上有哪些常见处理手段?
-
为什么增加正则化并不总是正确选择?
-
大模型微调中的灾难性遗忘是什么?调参时如何缓解?
F. 搜索策略与实验管理¶
-
网格搜索的优点和缺点是什么?
-
为什么随机搜索在高维超参数空间中通常比粗网格搜索更有效?
-
贝叶斯优化的基本思想是什么?它适合什么场景?
-
Hyperband 和 Successive Halving 的核心思想是什么?
-
ASHA 相比同步 Successive Halving 有什么优势?
-
如何设计一个合理的超参数搜索空间?
-
如果某个超参数的最优值总在搜索边界上,应该怎么处理?
-
为什么调参实验要记录代码版本、数据版本、随机种子和完整配置?
-
为什么重要结论需要多 seed 复验?
-
你会如何命名和管理大量调参实验?
G. 大模型微调调参¶
-
大模型 SFT 微调中,最优先关注哪些训练超参数?
-
LoRA 的 rank r、lora_alpha、lora_dropout 分别控制什么?
-
target_modules 的选择会如何影响 LoRA 微调效果和成本?
-
max sequence length 对显存、速度和效果分别有什么影响?
-
packing 技术能提升什么?使用 packing 时必须注意什么?
-
SFT 中 loss mask 为什么很关键?常见错误是什么?
-
为什么训练和推理的 chat template 必须一致?
-
大模型微调时应该如何评估模型,而不是只看 loss?
H. RLHF、分布式与故障诊断¶
-
RLHF/PPO 调参中 KL coefficient 的作用是什么?过大或过小会怎样?
-
reward scale、advantage normalization 和 entropy coefficient 分别影响什么?
-
PPO 中 clip range 的作用是什么?
-
分布式训练中 global batch 改变后,为什么要重新审视 warmup、学习率和总 step?
-
如果训练 loss 完全不下降,你会按什么顺序排查?
-
如果训练出现 OOM、训练很慢或验证指标剧烈波动,你分别会如何处理?
预览时标签不可点<div class="