【学习总结】Python transformers TrainingArguments 重要参数说明

代码:

from transformers import TrainingArguments

training_args = TrainingArguments(output_dir=model_dir,
                                  per_device_train_batch_size=16,
                                  num_train_epochs=5,
                                  logging_steps=100)

TrainingArguments 类在以下代码里:

/xxx/anaconda/envs/your_env/lib/python3.11/site-packages/transformers/training_args.py

huggingface TrainingArguments
Github 源代码

  1. output_dir (str)
  • 写入模型和检查点的输出目录,指定训练过程中的输出目录,即模型保存的位置。
  • The output directory where the model predictions and checkpoints will be written.
  1. num_train_epochs(float, optional, defaults to 3.0)
  • 训练的轮数,即模型将遍历训练数据集的次数。如果不是整数,将执行小数部分百分比
    停止训练前的最后一个时期。
  • Total number of training epochs to perform (if not an integer, will perform the decimal part percents of the last epoch before stopping training).
  1. per_device_train_batch_size (int, optional, defaults to 8)
  • 每个设备上的训练批次大小,表示每个训练步骤中输入的样本数量
  • The batch size per GPU/XPU/TPU/MPS/NPU core/CPU for training.
  1. per_device_eval_batch_size (int, optional, defaults to 8)
  • 每个设备上的评估批次大小,表示每个评估步骤中输入的样本数量。
  • The batch size per GPU/XPU/TPU/MPS/NPU core/CPU for evaluation.
  1. learning_rate (float, optional, defaults to 5e-5)
  • 初始学习率
  • The initial learning rate for [AdamW] optimizer.
  1. weight_decay (float, optional, defaults to 0)
  • 权重衰减的系数,用于正则化模型的权重。
  • The weight decay to apply (if not zero) to all layers except all bias and LayerNorm weights in [AdamW] optimizer.
  1. warmup_steps (int, optional, defaults to 0)
  • 学习率的线性预热步骤数,即在训练开始时从0 逐渐增加学习率的步骤数。
  • Number of steps used for a linear warmup from 0 to learning_rate. Overrides any effect of warmup_ratio.
  1. logging_steps (int or float, optional, defaults to 500)
  • 在训练过程中记录日志的步数间隔
  • Number of update steps between two logs if logging_strategy="steps". Should be an integer or a float in range [0,1). If smaller than 1, will be interpreted as ratio of total training steps.
  1. evaluation_strategy (str or [~trainer_utils.IntervalStrategy], optional, defaults to "no")
    评估策略,可以是 “no”(不进行评估)、“steps”(按照指定的 logging_steps 进行评估)或 “epoch”(每个训练轮数结束时进行评估)。
 The evaluation strategy to adopt during training. Possible values are:

                - `"no"`: No evaluation is done during training.
                - `"steps"`: Evaluation is done (and logged) every `eval_steps`.
                - `"epoch"`: Evaluation is done at the end of each epoch.
  1. save_strategy (str or [~trainer_utils.IntervalStrategy], optional, defaults to "steps")
    保存策略,可以是 “no”(不保存模型)、“steps”(按照指定的 logging_steps 进行保存)或 “epoch”(每个训练轮数结束时保存)。
The checkpoint save strategy to adopt during training. Possible values are:

                - `"no"`: No save is done during training.
                - `"epoch"`: Save is done at the end of each epoch.
                - `"steps"`: Save is done every `save_steps`.
  1. save_steps (int or float, optional, defaults to 500):
  • 保存模型的步数间隔,如果save_strategy =“steps”,则两个检查点保存之前的更新步骤数。 应该是整数 或 范围“[0,1)”内的浮点数。 如果小于 1,将被解释为总训练步数的比率。
  • Number of updates steps before two checkpoint saves if save_strategy="steps". Should be an integer or a float in range [0,1). If smaller than 1, will be interpreted as ratio of total training steps.
  1. gradient_accumulation_steps (int, optional, defaults to 1)
    梯度积累的步骤数。通过累积多个小批次的梯度来模拟一个大批次的训练效果,有助于在内存有限的情况下使用更大的批次大小。
Number of updates steps to accumulate the gradients for, before performing a backward/update pass.
<Tip warning={true}>

When using gradient accumulation, one step is counted as one step with backward pass. Therefore, logging, evaluation, save will be conducted every `gradient_accumulation_steps * xxx_step` training examples.

</Tip>
  1. save_total_limit (int, optional)
  • 保存的模型检查点的总数限制
  • 如果传递一个值,将限制检查点的总量。 删除“output_dir”中较旧的检查点。 当启用“load_best_model_at_end”时,除了最新的检查点之外,根据“metric_for_best_model”的“最佳”检查点将始终被保留。 例如,对于“save_total_limit=5”和“load_best_model_at_end”,最后四个检查点将始终与最佳模型一起保留。 当 save_total_limit=1 和 load_best_model_at_end 时,有可能保存两个检查点:最后一个和最好的一个(如果它们不同)。
  1. disable_tqdm (bool, optional)
  • 如果设置为 True,则禁用进度条显示
  • 是否禁用 Jupyter Notebooks 中的 [~notebook.NotebookTrainingTracker] 生成的 tqdm 进度条和指标表。 如果日志记录级别设置为警告或较低(默认),则默认为“True”,否则为“False”。
  1. load_best_model_at_end (bool, optional, defaults to False)
    如果设置为 True,则在训练结束时加载最佳模型
Whether or not to load the best model found during training at the end of training. When this option is enabled, the best checkpoint will always be saved. See [`save_total_limit`](https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments.save_total_limit) for more.

When set to `True`, the parameters `save_strategy` needs to be the same as `evaluation_strategy`, and in the case it is "steps", `save_steps` must be a round multiple of `eval_steps`.
  1. metric_for_best_model (str, optional)
  • 用于选择最佳模型的指标名称
  • 与“load_best_model_at_end”结合使用来指定用于比较两个不同模型的指标。 必须是评估返回的指标名称,带或不带前缀“eval_”。 将要如果未指定,则默认为“loss”,并且“load_best_model_at_end=True”(使用评估损失)。
    如果设置此值,“greater_is_better”将默认为“True”。 如果我们的指标越低越好,请不要忘记将其设置为“False”。
  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Transformers是一个开源的Python库,用于自然语言处理和机器学习任务中的转换模型。你可以使用pip或conda安装Transformers库。如果使用pip,可以通过以下命令安装:pip install transformers。如果使用conda,可以通过以下命令安装:conda install transformersTransformers库由Hugging Face开发和维护,它提供了目前最先进的自然语言处理模型,包括基于PyTorch、TensorFlow和JAX的模型。你可以在GitHub上找到Transformers库的源代码和文档,地址是https://github.com/huggingface/transformersTransformer模型最初由Google的机器翻译团队在2017年提出,并在论文《Attention Is All You Need》中详细介绍。这个模型使用自注意力机制来处理输入序列之间的依赖关系,取得了在自然语言处理任务中令人瞩目的成果。Transformer模型的架构和使用方法在相关的论文和文章中有详细的解释和介绍。 Transformers库提供了丰富的预训练模型,可以直接用于各种自然语言处理任务,如文本分类、命名实体识别、句子对分类等。你可以根据需要选择合适的预训练模型,并使用相应的接口进行训练和推理。Transformers库还提供了一系列方便的工具和函数,帮助你更好地使用和调试模型。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Py之transformerstransformers的简介、安装、使用方法、案例应用之详细攻略](https://blog.csdn.net/qq_41185868/article/details/108461834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值