首页 > 教程攻略 > ai资讯 >大模型高效调参策略(下)

大模型高效调参策略(下)

来源:互联网 时间:2026-08-03 14:24:37

调参这件事,说是深度学习的“手艺活”一点也不为过。前面聊了一些基础,接下来我们把剩下的核心技巧逐一拆解。从损失函数到数据验证,每一步都有门道,值得细细品味。

trick 4:关于调参

调参,做笔记是基本功。而且切记:每次只动一个参数,否则出了效果你都不知道功臣是谁,出了问题也找不到元凶。

那么,有哪些参数值得重点调?

4.1 关于 Loss function 调参策略

损失函数,是模型和数据以外第三重要的参数。选MSE、Cross entropy、Focal还是自定义?没有标准答案,得具体问题具体分析。分类任务和回归任务天然不一样,样本不平衡时Focal往往有奇效。

4.2 关于 Learning rate 和 batch size 调参策略

  1. 学习率和批次大小是两大核心参数,而且它们相互影响——反向传播时直接左右梯度。经验之谈:先定batch size,再调learning rate。
  2. batch size不能太大,也不能太小,一般设为16的倍数比较稳妥。太小浪费计算资源,太大又吃内存。但有一个例外:表示学习和对比学习领域,batch size越大越好,显存不够就上累计梯度,否则模型可能不收敛。其他领域看情况。
  3. 微调场景下的learning rate:NLP的BERT类模型通常在1e-5级别附近,配合warmup和衰减;CV类模型在1e-3级别附近,也是衰减。具体数值需要多试几次。
  4. learning rate的trick不少:cosine学习率、warmup、阶梯衰减……都是实战中常用的手段。

4.3 关于 Epoch number 和 early stopping 调参策略

  1. Epoch数和Early stopping是孪生兄弟。得盯着loss曲线,看看到底哪个epoch效果最好,及时停住。
  2. Epoch太大浪费计算,太小又没学到极致。另外一定要搞懂Epoch、Iteration、batch size三者之间的关系——这是基本功。

注:

  1. 不要过早early stopping,有时候收敛平台在后半段才出现。

  2. 对于数据量巨大的推荐系统模型,一个epoch足矣,再多就过拟合了。

4.4 关于 Optimizer 调参策略

  1. Adam和SGDM是应用最广的两个优化器。Adam收敛快,SGDM收敛慢但最终精度往往更高。现在很多人先上Adam快速跑,后期切换到SGDM精调。
  2. 如果非要二选一,那Adam无疑是更稳妥的选择。

注:NLP、抽象层次高或目标函数不平滑的任务,优先用Adam;其他任务可以试试SGD(一般需要的迭代次数多于Adam)。

4.5 关于 Activation function 调参策略

  1. ReLU、Sigmoid、Softmax、Tanh是最常用的四个激活函数。
  2. 输出层常用Sigmoid和Softmax,中间层首选ReLU,RNN类则多用Tanh。

4.6 关于 Weights initialization 调参策略

  1. 预训练参数是最好的初始化方式,没有之一。其次是Xa vier初始化。

4.7 关于 Regularization 调参策略

  1. Dropout思想简单,但效果出奇好。现在大部分任务都用预训练模型,模型内部的dropout ratio是个重要参数。首选0.5,但默认值不一定最优——有时候把dropout重置为0,反而有奇效。

4.8 关于 Validation 调参策略

  1. 在验证集上筛选模型参数时,除了观察loss,还可以设置某种规则,引导模型朝特定方向更新参数。

trick 5:模型训练过拟合和欠拟合问题?

过拟合和欠拟合是训练中绕不开的两个坎,直接影响模型的泛化能力——也就是在未见数据上的表现。

5.1 欠拟合(Underfitting)

  • 判断:欠拟合时,模型连训练数据的底层模式都抓不住,训练和测试表现都不行。
  • 原因:模型太简单,表达不了数据中的复杂关系。典型迹象是训练误差和验证误差都高,而且两者很接近。
  • 解决手段:
  1. 增加模型复杂度

    :加层、加节点,或者换更复杂的结构。
  2. 增加特征

    :引入更多相关特征,帮助模型理解数据。
  3. 调整模型参数

    :优化学习率、批次大小等超参数。
  4. 减少正则化强度

    :如果正则化太强导致欠拟合,就适当降低。

5.2 过拟合(Overfitting)

  • 危害:训练误差极低,验证误差却很高——模型把噪声和偶然特性都学进去了。
  • 原因:模型在训练数据上表现过于优秀,却无法泛化到新数据。
  • 解决手段:
  1. 增加训练数据

    :更多样本能帮助模型学到真实分布。
  2. 正则化

    :L1/L2正则化,限制参数大小。
  3. 早停法(Early Stopping)

    :验证集性能不再提升时及时停止。
  4. 交叉验证

    :K折交叉验证,更准确地评估模型。
  5. Dropout

    :随机丢弃神经元,减少对特定样本的依赖。
  6. 数据增强

    :通过变换生成更多样本来提升泛化能力。
  7. 简化模型

    :减少层数或节点数,避免不必要的复杂度。

从实践经验来看:过拟合首先上dropout,然后加batch norm。过拟合越严重,dropout和BN就加得越多。有时候直接在embedding层加dropout,会有预料之外的效果。

trick 6:模型参数初始化方法

Linear/CNN常用Kaiming uniform或normalize,Embedding常用截断normalize。相关论文很多,可以深入看看。

trick 7:Normalization 选择问题

GN、BN和LN都是神经网络中常用的归一化方法。BN指Batch Normalization,LN指Layer Normalization。

  • BatchNorm:在batch维度做归一化,计算N*H*W的均值。
  • LayerNorm:在channel维度做归一化,计算C*H*W的均值。
  • InstanceNorm:在单个channel内做归一化,计算H*W的均值。
  • GroupNorm:先将channel分组,然后在每组内做归一化,计算(C//G)*H*W的均值。

GN与LN、IN有密切关系,这两者在循环网络(RNN/LSTM)和生成网络(GAN)中尤其成功。

  • 选择策略:序列输入用LN,非序列输入用BN。

trick 7:模型输出层选择问题

基于backbone构建层次化的neck,通常比直接使用最后一层输出效果好。reduce function方面,attention通常优于简单pooling。多任务场景需要构建不同的QKV。

trick 8:随机数种子设定问题

随机数种子一定要设定好,否则很多对比实验的结论可能并不准确。

trick 9:cross validation问题

交叉验证方式要结合具体任务和数据标签设计。时序数据务必避免未来信息泄漏。

trick 10:新模型开发前期问题

开发新模型时,最开始不要加激活函数、不加batch norm、不加dropout——纯模型先跑通。然后再一步一步加组件,验证每个改动的作用。不要迷信经典结构(除非是预训练模型),比如觉得加了dropout一定有效、加了BN一定有提升就一股脑全加上。首先要判断模型处于欠拟合还是过拟合阶段,再对症下药。

trick 11:badcase 分析问题

对于图像和NLP任务,如果效果一直提不上去,可以尝试自己标注一些模型经常分错的bad case,加入训练集后往往会有意想不到的收获。