700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Hugging Face】Transformer.TrainingArguments Parameters/参数

【Hugging Face】Transformer.TrainingArguments Parameters/参数

时间:2018-10-11 05:42:57

相关推荐

【Hugging Face】Transformer.TrainingArguments Parameters/参数

记录

output_dir (str):模型预测结果和检查点将被写入的输出目录。overwrite_output_dir (bool,可选,默认为 False):如果设置为 True,将覆盖输出目录中的内容。可以在 output_dir 指向检查点目录时使用此选项继续训练。do_train (bool,可选,默认为 False):是否进行训练。这个参数不是直接由 [Trainer] 使用的,而是用于您的训练/评估脚本。详见示例脚本获取更多详情。do_eval (bool,可选):是否在验证集上运行评估。如果 evaluation_strategy 与 "no" 不同,将被设置为 True。这个参数不是直接由 [Trainer] 使用的,而是用于您的训练/评估脚本。详见示例脚本获取更多详情。do_predict (bool,可选,默认为 False):是否在测试集上进行预测。这个参数不是直接由 [Trainer] 使用的,而是用于您的训练/评估脚本。详见示例脚本获取更多详情。evaluation_strategy (str 或 [~trainer_utils.IntervalStrategy],可选,默认为 "no"):训练过程中采用的评估策略。可能的取值有:"no": 不进行评估。"steps": 每隔 eval_steps 进行评估。"epoch": 每个 epoch 结束时进行评估。prediction_loss_only (bool,可选,默认为 False):在进行评估和生成预测时,是否仅返回损失值。per_device_train_batch_size (int,可选,默认为 8):每个 GPU/TPU 核心/CPU 的训练批次大小。per_device_eval_batch_size (int,可选,默认为 8):每个 GPU/TPU 核心/CPU 的评估批次大小。gradient_accumulation_steps (int,可选,默认为 1):在执行反向传播/更新步骤之前,累积梯度的更新步骤数。<Tip warning={True}>使用梯度累积时,一个步骤被计算为具有反向传播的一步。因此,记录、评估和保存将在每个 gradient_accumulation_steps * xxx_step 训练样本上进行。</Tip>eval_accumulation_steps (int, 可选):在将结果移到 CPU 之前,累积输出张量的预测步骤数量。如果未设置,整个预测过程都在 GPU/TPU 上累积,然后再移动到 CPU(速度更快,但需要更多内存)。eval_delay (float, 可选):在进行第一次评估之前等待的 epoch 或步数数量,具体取决于 evaluation_strategy。learning_rate (float, 可选,默认为 5e-5):[AdamW] 优化器的初始学习率。weight_decay (float,可选,默认为 0):应用于 [AdamW] 优化器中除所有偏置和 LayerNorm 权重之外的所有层的权重衰减(如果不为零)。adam_beta1 (float,可选,默认为 0.9):[AdamW] 优化器的 beta1 超参数。adam_beta2 (float,可选,默认为 0.999):[AdamW] 优化器的 beta2 超参数。adam_epsilon (float,可选,默认为 1e-8):[AdamW] 优化器的 epsilon 超参数。max_grad_norm (float,可选,默认为 1.0):最大梯度范数(用于梯度裁剪)。num_train_epochs (float,可选,默认为 3.0):要执行的总训练 epoch 数(如果不是整数,则在停止训练之前执行最后一个 epoch 的十进制部分百分比)。max_steps (int,可选,默认为 -1):如果设置为正数,则要执行的总训练步骤数。会覆盖 num_train_epochs。如果使用有限的可迭代数据集,在耗尽所有数据时,训练可能会在达到设置的步数之前停止。lr_scheduler_type (str 或 [SchedulerType],可选,默认为 "linear"):要使用的调度程序类型。有关所有可能值,请参阅 [SchedulerType] 的文档。warmup_ratio (float,可选,默认为 0.0):用于从 0 线性预热到 learning_rate 的总训练步数的比率。warmup_steps (int,可选,默认为 0):用于从 0 线性预热到 learning_rate 的步数。会覆盖 warmup_ratio 的任何效果。log_level (str,可选,默认为 passive):要在主进程上使用的记录器日志级别。可能的选择是作为字符串的日志级别:'debug'、'info'、'warning'、'error' 和 'critical',以及一个 'passive' 级别,它不设置任何内容,并保持 Transformers 库的当前日志级别(默认为 "warning")。log_level_replica (str,可选,默认为 "warning"):要在副本上使用的记录器日志级别。与 log_level 的可选项相同。log_on_each_node (bool,可选,默认为 True):在多节点分布式训练中,是在每个节点上使用 log_level 记录,还是仅在主节点上记录。logging_dir (str,可选):TensorBoard 日志目录。默认为 output_dir/runs/CURRENT_DATETIME_HOSTNAME。logging_strategy (str 或 [~trainer_utils.IntervalStrategy],可选,默认为 "steps"):在训练期间采用的日志记录策略。可能的取值有:"no": 不在训练过程中记录任何内容。"epoch": 在每个 epoch 结束时记录。"steps": 每隔 logging_steps 记录。logging_first_step (bool,可选,默认为 False):是否记录和评估第一个 global_step。logging_steps (int,可选,默认为 500):如果 logging_strategy="steps",则两次日志之间的更新步骤数。logging_nan_inf_filter (bool, 可选, 默认为 True):是否过滤记录时的 nan 和 inf 损失。如果设置为 True,则将过滤每个步骤中的 nan 或 inf 损失,并取当前记录窗口的平均损失。<提示>`logging_nan_inf_filter` 只影响损失值的记录,不会改变梯度的计算或应用于模型的行为。</提示>save_strategy (str 或 [~trainer_utils.IntervalStrategy], 可选, 默认为 "steps"):在训练期间采用的检查点保存策略。可能的值有:- `"no"`:训练期间不保存。- `"epoch"`:在每个时期结束时保存。- `"steps"`:在每个 `save_steps` 步之后保存一次。save_steps (int, 可选, 默认为 500):如果 save_strategy="steps",则在两个检查点保存之间的更新步骤数。save_total_limit (int, 可选):如果传递了一个值,将限制检查点的总数。删除output_dir中较旧的检查点。save_safetensors (bool, 可选, 默认为 False):使用 safetensors 保存和加载状态字典,而不是默认的 torch.load 和 torch.save。save_on_each_node (bool, 可选, 默认为 False):在进行多节点分布式训练时,是否在每个节点上保存模型和检查点,还是仅在主节点上保存。当不同的节点使用相同的存储空间时,不应激活此选项,因为文件将以相同的名称保存在每个节点上。no_cuda (bool, 可选, 默认为 False):是否不使用 CUDA,即使可用。seed (int, 可选, 默认为 42):在训练开始时设置的随机种子。为了确保多次运行时的可重现性,如果模型具有一些随机初始化的参数,请使用 [~Trainer.model_init] 函数来实例化模型。data_seed (int, 可选):要与数据采样器一起使用的随机种子。如果未设置,则数据采样器的随机生成器将使用与 seed 相同的种子。这可以用于确保数据采样的可重现性,而与模型种子无关。load_best_model_at_end(bool,可选,默认为False):是否在训练结束时加载找到的最佳模型。<提示>当设置为True时,参数 save_strategy 需要与 evaluation_strategy 相同,并且在save_steps是"steps"的情况下,save_steps必须是eval_steps的整数倍。</提示>metric_for_best_model(str,可选):与 load_best_model_at_end 结合使用,用于指定用于比较两个不同模型的度量指标。必须是评估返回的度量指标的名称,可以带有前缀 "eval_" 或没有。如果未指定且 load_best_model_at_end=True(使用评估损失),将默认为 "loss"。如果设置了此值,则 greater_is_better 将默认为 True。如果你的度量指标越小越好,请不要忘记将其设置为 False。greater_is_better(bool,可选):与 load_best_model_at_end 和 metric_for_best_model 结合使用,用于指定更好的模型是否应具有更大的度量指标。设置metrics且是loss时默认为False,否则Truejit_mode_eval (bool, 可选, 默认为 False):是否使用 PyTorch jit trace 进行推理。use_ipex (bool, 可选, 默认为 False):在可用时是否使用 Intel PyTorch 扩展。IPEX 安装。bf16 (bool, 可选, 默认为 False):是否使用 bf16 16位(混合)精度训练,而不是32位训练。需要 Ampere 或更高的 NVIDIA 架构或使用 CPU(no_cuda)。这是一个实验性的 API,可能会改变。fp16 (bool, 可选, 默认为 False):是否使用 fp16 16位(混合)精度训练,而不是32位训练。fp16_opt_level (str, 可选, 默认为 'O1'):对于 fp16 训练,在 ['O0', 'O1', 'O2', 和 'O3'] 中选择 Apex AMP 优化级别。详细信息请参阅 Apex 文档。fp16_backend (str, 可选, 默认为 "auto"):此参数已弃用。请改用 half_precision_backend。half_precision_backend (str, 可选, 默认为 "auto"):用于混合精度训练的后端。必须是 "auto", "cuda_amp", "apex", "cpu_amp" 中的一个。"auto" 将根据检测到的 PyTorch 版本使用 CPU/CUDA AMP 或 APEX,而其他选项将强制使用请求的后端。bf16_full_eval (bool, 可选, 默认为 False):是否使用完整的 bfloat16 评估,而不是32位。这将更快并节省内存,但可能会影响指标值。这是一个实验性的 API,可能会改变。fp16_full_eval (bool, 可选, 默认为 False):是否使用完整的 float16 评估,而不是32位。这将更快并节省内存,但可能会影响指标值。tf32 (bool, 可选):是否启用 TF32 模式,适用于 Ampere 和更新的 GPU 架构。默认值取决于 PyTorch 的版本,默认为 torch.backends.cuda.matmul.allow_tf32。有关更多详细信息,请参阅 TF32 文档。这是一个实验性的 API,可能会改变。local_rank (int, 可选, 默认为 -1):分布式训练过程中的进程排名。xpu_backend (str, 可选):用于 xpu 分布式训练的后端。必须是 "mpi"、"ccl" 或 "gloo" 中的一个。tpu_num_cores (int, 可选):当在 TPU 上训练时,TPU 核心的数量(由启动脚本自动传递)。dataloader_drop_last (bool, 可选, 默认为 False):是否丢弃最后一个不完整的批次(如果数据集长度不可被批次大小整除)。eval_steps (int, 可选):如果 evaluation_strategy="steps",则在两个评估之间的更新步骤数。如果未设置,将默认与 logging_steps 相同的值。dataloader_num_workers (int, 可选, 默认为 0):用于数据加载的子进程数(仅适用于 PyTorch)。0 表示在主进程中加载数据。past_index (int, 可选, 默认为 -1):一些模型(如 TransformerXL 或 XLNet)可以利用过去的隐藏状态进行预测。如果将此参数设置为正整数,则 Trainer 将使用对应的输出(通常为索引 2)作为过去状态,并将其作为关键字参数 mems 在下一个训练步骤中传递给模型。run_name (str, 可选):运行的描述符。通常用于wandb 和 mlflow 日志记录。disable_tqdm (bool, 可选):是否禁用在 Jupyter Notebook 中由 [~notebook.NotebookTrainingTracker] 生成的 tqdm 进度条和指标表格。如果日志级别设置为 warn 或更低(默认为) True,否则为 False。optim (str 或 [training_args.OptimizerNames],可选,默认为 "adamw_hf"):要使用的优化器:adamw_hf、adamw_torch、adamw_torch_fused、adamw_apex_fused、adamw_anyprecision 或 adafactor。optim_args (str,可选):提供给 AnyPrecisionAdamW 的可选参数。group_by_length (bool,可选,默认为 False):是否将大致相同长度的样本组合在一起(以最小化应用的填充并提高效率)。仅在应用动态填充时有用。length_column_name (str,可选,默认为 "length"):预先计算长度的列名。如果列存在,则在训练启动时将使用这些值来进行长度分组,而不是在数据集上计算它们。仅在 group_by_length=True 且数据集是 Dataset 实例时才生效。report_to (str 或 List[str],可选,默认为 "all"):报告结果和日志的集成列表。支持的平台有 "azure_ml"、"comet_ml"、"mlflow"、"neptune"、"tensorboard"、"clearml" 和 "wandb"。使用 "all" 将报告给所有安装的集成,使用 "none" 表示不使用任何集成。dataloader_pin_memory (bool,可选,默认为 True):是否在数据加载器中固定内存。默认为 True。skip_memory_metrics (bool,可选,默认为 True):是否跳过将内存分析器报告添加到指标中。默认情况下会跳过此步骤,因为它会降低训练和评估速度。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。