返回笔记
深度学习
深度学习训练技巧:从学习率到梯度裁剪
学习率
AdamW
梯度裁剪
正则化
训练技巧
模型架构固然重要,但训练技巧的差异往往比架构差异更能决定最终效果。
学习率调度
学习率是最重要的超参数。太大模型震荡不收敛,太小训练太慢。现代最佳实践:
- Warmup:训练初期从小学习率开始逐步增大,防止模型在初始阶段崩溃
- Cosine Decay:按余弦曲线逐步衰减学习率,比阶梯下降更平滑
- 学习率范围测试:在一个 batch 上从小到大试学习率,找到最优区间
优化器选择
- SGD + Momentum:经典方案,泛化性好但调参麻烦
- Adam:自适应学习率,收敛快,默认首选
- AdamW:修正了 Adam 的权重衰减缺陷,LLM 训练标准配置
- Lion:Google 发现的更省显存的新优化器
正则化技巧
- Dropout:随机丢弃神经元,防止过拟合。Transformer 中通常只在前馈层用
- 权重衰减:限制权重不能太大,通常 0.01-0.1
- 梯度裁剪:限制梯度的最大值,防止梯度爆炸。LLM 训练标配 1.0
- Label Smoothing:不要求模型输出 100% 的置信度,留一点不确定性
批次大小
大批次训练更稳定但需要更多显存。常用技巧是梯度累积:用 4 个小 batch 各自算梯度但不更新参数,累加 4 次后一次更新。等价于 4 倍的 batch size。
初始化
权重初始化决定训练起点。Transformer 通常用小方差初始化,防止梯度过大或过小。Xavier 和 Kaiming 初始化是最常用的两种。