趋近智
全参数微调虽然强大,但对其配置敏感。选择合适的超参数是获得良好性能的根本,同时避免浪费大量计算资源和时间。与预训练不同,预训练的超参数设定常通过大量试错确定,而微调需要根据具体任务、数据集大小和模型结构进行仔细调整。我们来看看最有影响力的超参数,以及有效调整它们的方法。
学习率可以说是最重要的超参数。它决定了梯度下降过程中更新模型权重的步长:
这里 是损失函数 相对于旧权重的梯度。
对于大型预训练模型的全参数微调,学习率通常设置远低于预训练时使用的学习率。这是因为我们希望温和地调整现有知识,保留预训练阶段学到的强大表示,同时让模型适应新任务。微调大型语言模型(LLMs)的常见起始值常常在 到 的范围内。全参数微调很少会超过 。
学习率调度器: 在整个训练过程中使用恒定的学习率通常是次优的。学习率调度器会在训练期间动态调整学习率,经常能提高收敛速度和最终性能。常见的方法包括:
线性预热与衰减: 这是微调Transformer模型非常常用的调度方法。训练开始时学习率非常小,在设定的“预热”步数内逐渐线性增加。预热阶段结束后,学习率通常在剩余训练步数内线性(或有时多项式)衰减到零。预热阶段有助于早期训练的稳定,特别是当梯度可能很大或有噪声时,能防止模型发散。随后的衰减使得模型接近收敛时可以进行更精细的调整。
示例:线性预热(0到100步)后接线性衰减的学习率调度。
余弦退火: 在这种方式中,学习率从最大值(预热后)开始,遵循余弦曲线衰减到最小值(通常为零)。与线性衰减相比,这提供了更平滑的衰减,有时能更好地优化损失面。
恒定预热: 类似于线性预热,但学习率在预热阶段结束后立即跳到最大值,然后根据某种调度(例如线性、余弦)衰减。
调度器的选择及其参数(预热步数、衰减函数)本身就是超参数,通常需要进行调整。
批次大小指定了在单次前向和反向传播中用于计算梯度并更新模型权重的训练样本数量。
可行的最大批次大小通常受限于可用的GPU内存。梯度累积(将在第7章讨论)等方法允许通过在几次小批次上计算梯度后再进行权重更新来模拟更大的批次大小,缓解内存限制,代价是计算时间略有增加。全参数微调的典型批次大小范围从4到64,这很大程度上取决于模型大小和GPU内存。
一轮(epoch)表示完整遍历整个训练数据集一次。
确定最佳轮数通常是使用验证集凭经验完成的。在每轮(或部分轮)训练后,监控验证集上的性能(例如损失、任务特定指标)。当验证集上的性能停止提升或开始下降时,停止训练,这种技术称为早期停止。由于预训练模型提供了良好初始化,微调通常只需要几轮(例如1-5轮),特别是在数据集较大时。较小的数据集可能看起来需要更多轮次,但这会增加过拟合的风险,使得正则化更加重要。
尽管存在各种优化器,AdamW(带有解耦权重衰减的Adam)是微调Transformer模型的标准且普遍推荐的优化器。
在内存极度受限的场景下,可能会考虑Adafactor等其他优化器,但AdamW是常见的起点。AdamW中优化器特有的超参数,如beta值()和epsilon(),通常保留其默认值(例如 ),尽管调整它们偶尔能带来少量提升。
权重衰减是一种正则化技术(等同于L2正则化),它在损失函数中添加一个与模型权重平方大小成比例的惩罚项。这通过保持权重较小来抑制模型学习过于复杂的模式,从而减少过拟合。
权重衰减系数是另一个需要调整的超参数。微调的典型值通常在0.01到0.1之间。将其设置为0会禁用权重衰减。如前所述,其有效性通常与使用AdamW等能正确处理它的优化器有关。
找到超参数的最佳组合可能很复杂。与手动试错不同,当计算预算允许时,经常采用更系统化的方法:
网格搜索: 为每个要调优的超参数定义一组离散值。对这些值的每种可能组合训练模型。尽管这种方法很详尽,但随着超参数数量和每个超参数值的增加,它在计算上很快变得不可行(维度灾难)。
随机搜索: 为每个超参数定义一个范围或分布。从这些范围或分布中随机抽取超参数组合,并为每个样本训练模型。令人意外的是,随机搜索通常比网格搜索更高效,因为它更广泛地在超参数空间中搜索,有可能更快地找到好的组合,特别是当只有少数超参数对性能有显著影响时。
网格搜索与随机搜索在两个超参数(学习率和批次大小)上的搜索模式比较。网格搜索系统地覆盖点,而随机搜索在空间中采样。
贝叶斯优化: 一种更高级的方法,通过之前训练的结果指导下一次要尝试的超参数组合选择。它构建一个概率模型(通常使用高斯过程),将超参数映射到性能指标(例如验证损失)。它使用这个模型来平衡广域搜索(在不确定性高的区域尝试超参数)和局部优化(在目前表现最好的点附近尝试超参数)。Optuna、Hyperopt或Ray Tune等工具提供了贝叶斯优化和其他高级调优算法的实现。
掌握全参数微调的超参数调优,是融合了对基本原理的理解、系统化搜索方法的应用,以及结合基于具体任务和可用资源的实际考虑。它在一定程度上仍然是经验性的过程,但有序的方法显著增加了找到能带来最佳性能的配置的可能性。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造