该类的主要作用是用于配置模型训练过程中的各种参数,其主要包括学习率、批次大小、 训练周期数、评估策略 等,根据常用的参数以下将介绍对应的参数作用以及对应的使用注意事项。
-
learning_rate学习率是优化器用来更新网络权重的步长。较高的学习率可能导致训练过程不稳定,而较低的学习率可能导致训 练速度过慢。 -
num_train_epochs训练周期数,即整个训练集用于训练模型的次数。更多的训练周期可能会提高模型的准确度,但也有过拟合的风险。 -
per_device_train_batch_size每个设备上的训练批次大小。批次大小影响梯度估计的准确性和内存消耗。较大的批次大小可以提高训练效率和模 型稳定性,但也可能增加内存需求。批次大小对模型的最终准确度有直接影响。 -
weight_decay权重衰减是一种正则化技术,用于防止模型过拟合。它通过在损失函数中添加一个与模型权重相关的项来工作。适 当的权重衰减可以提高模型的泛化能力,从而在未见数据上获得更好的准确度。 -
warmup_steps与warmup_ratio预热步骤数或比例,用于在训练初期逐渐增加学习率,以避免模型在训练开始时的不稳定。合适的预热策略可以帮助 模型更稳定地训练,提高最终的准确度。 -
evaluation_strategy评估策略决定了在训练过程中如何和何时进行模型评估。定期评估模型可以帮助监控训练过程,及时调整参数以提高准确度。 其支持no、steps与epoch这几种方式,决定对应的评估在什么时机下触发。其还需要使用Trainer中的eval_dataset参数提供需要进行评估验证的数据集。 -
gradient_accumulation_steps梯度累积步骤数,允许在更新模型之前累积多个批次的梯度。这对于在内存受限的情况下使用较大批次大小是有用的。通过 梯度累积,可以在不增加内存消耗的情况下,间接增加批次大小,有助于提高模型准确度。 -
lr_scheduler_type学习率调度器类型,决定了训练过程中学习率如何变化。选择合适的学习率调度策略可以在训练过程中适当降低学习率,帮 助模型更好地收敛,提高准确度。 -
fp16fp16 是指使用 16 位浮点数(Half-precision floating-point format)进行计算和存储,相对于传统的 32 位 浮点数(Single-precision floating-point format,即 fp32)来说,fp16 可以减少模型的内存占用和加速模型 的训练和推理过程,尤其是在支持半精度计算的硬件上,如最新的 GPU。 -
save_steps指定了在训练过程中模型检查点(checkpoint)保存的频率。具体来说,它定义了每多少训练步(training steps)保存 一次模型和训练状态。频繁保存检查点会占用大量的磁盘空间。因此,需要根据可用的存储空间和训练的总步数来合理设置的值。 -
logging_steps该参数定义了在训练过程中日志记录的频率。具体来说,它指定了每多少训练步(training steps)记录一次日志信息。默认 情况下日志存储的路径可以手动进行调整,通过logging_dir配置项即可进行调整。 -
save_total_limit该参数用于设置在训练过程中保留的最大检查点(checkpoint)数量。这个参数帮助管理存储空间,防止因为保存过多的模型 检查点而耗尽磁盘空间。 -
remove_unused_columns该参数用于指示是否在训练或评估过程中从数据集中自动移除那些不被模型直接使用的列。移除不需要的列可以减少内存使用量 和加快数据加载速度,尤其是在处理大型数据集时。 -
load_best_model_at_end该参数的主要作用是在训练结束时自动加载表现最佳的模型检查点。这意味着,基于某个指标(通常是在验证集上的性能),训 练过程会跟踪并保存表现最好的模型版本。