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

代码:

from transformers import TrainingArgumentstraining_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”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat16安装时报错记录

1.安装过程中一定要断网 2.安装好后&#xff0c;先不要直接打开客户端&#xff0c;应该先打开激活破解软件&#xff0c;如下&#xff1a; 选择HOSTS--》再Patch-->是&#xff0c;然后生成注册码&#xff0c;打开客户端正常执行即可

从“断亲”到“自我养育”,看年轻一代消费变迁丨小红书热点

一、不爱走亲戚&#xff0c;年轻人“断亲潮”来袭 今年春节期间&#xff0c;关于“农村出现以家庭为单位的断亲”的话题登上热搜。小红书等社交媒体平台上&#xff0c;也涌现出许多“回怼亲戚”的短视频&#xff0c;娱乐性调侃亦或是“阴阳怪气”地攻击&#xff0c;内容背后是当…

全局Ceph节点宕机处理

在极端情况下&#xff0c;如数据中心断电&#xff0c;造成 Ceph 存储集群全局宕机&#xff0c;可以按照本节所示流程进行 Ceph 集群上电恢复操作。 4.1 手动上电执行步骤 如为 Ceph 集群上电&#xff0c;monitor server 应最先上电&#xff1b;集群上电前确认使用 Ceph 之前端…

IIS上部署.netcore WebApi项目及swagger

.netcore项目一般是直接双击exe文件&#xff0c;运行服务&#xff0c;今天有个需求&#xff0c;需要把.netcore项目运行在IIS上&#xff0c;遇到了一个小坑&#xff0c;在这里记录一下。 安装IIS&#xff0c;怎么部署站点&#xff0c;这些过于简单就不细说了&#xff0c;不知道…

C++:继承与派生

为什么会有继承这样的语法呢&#xff1f;&#xff1f;试想这样一个场景&#xff1a;假设我们这个App需要去获取不同类型用户的数据&#xff0c;并进行分类&#xff0c;那么就需要我们去写对应不同的类&#xff0c;比如说学生、老师、军人、公司职工…………每个类都需要有名字、…

品牌方如何借热点做话题?媒介盒子分享

每时每刻都有热点&#xff0c;品牌方总想着借热点来做话题营销&#xff0c;然而有些热点能让品牌有效曝光&#xff0c;有些热点稍不注意就会让品牌产生负面舆论&#xff0c;今天媒介盒子就来和大家好好聊聊&#xff1a;品牌方如何借热点做话题。 一、 热点选择 品牌方可以通过…

猿区 Node.js 版本控制工具介绍

Node.js 版本控制工具&#xff1a;nvm、n 和 fnm 如果你是一位刚开始学习 Node.js 的初学者&#xff0c;你可能已经注意到 Node.js 有多个版本。不同的项目可能需要不同的 Node.js 版本&#xff0c;而在本地环境中同时安装和管理这些版本可能会变得复杂。幸运的是&#xff0c;…

域内令牌窃取

前言 有这样一种场景&#xff0c;拿到了一台主机权限&#xff0c;是本地管理员&#xff0c;同时在这台主机上登录的是域管成员&#xff0c;这时我们可以通过dump lsass或通过 Kerberos TGT &#xff0c;但是这是非常容易被edr命中的。 本文就通过令牌窃取进行研究&#xff0c…

正则表达式笔记+demo

//1.正则表达式由普通字符和特殊字符(又称元字符)组成的文字模式,是一个模板 // 常用元符号示例&#xff1a;^ . \ * ? { 、} ( 、 ) [ 、 ] | $ // ★★★这些元符号都有其特殊含义&#xff0c;如果要表示其本来字符的含义&#xff0c;需要…

mysql基础之事务

简介 事务是数据库的逻辑工作单位&#xff0c;具有原子性、一致性、隔离性、持久性四大特性。 【原子性】&#xff1a;事务中的操作要么全部成功&#xff0c;要么操作失败全部回滚&#xff0c;不会出行部分完成的状态。 【一致性】&#xff1a;事务开始到结束时&#xff0c;数据…

pgsql常用索引简写

文章来源&#xff1a;互联网博客文章&#xff0c;后续有时间再来细化整理。 在数据库查询中&#xff0c;合理的使用索引&#xff0c;可以极大提升数据库查询效率&#xff0c;充分利用系统资源。这个随着数据量的增加得到提升&#xff0c;越大越明显&#xff0c;也和业务线有关…

《鸟哥的Linux私房菜》第6章——总结与习题参考答案

目录 一、 简介 二、一些新了解的指令 1.touch- 修改文件时间或创建新文件 2.umask-新建文件/目录的默认权限 3.文件隐藏属性 4.文件特殊权限 5.file-观察文件类型 三、简答题部分 一、 简介 本章介绍了一些常用的文件与目录指令&#xff0c;包括新建/删除/复制/移动/查…

2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)

1、log4j2 特征&#xff1a; 恶意请求中包含 JNDI 协议地址&#xff0c;如"ldap://"、"rmi://"等&#xff0c;被 log4j2 解析为 JNDI 查找。 原理&#xff1a; 在日志输出中&#xff0c;未对字符进行严格的过滤&#xff0c;执行了 JNDI 协议加载的远程恶…

教师如何搭建学生查询考试分数的平台?

随着信息技术的快速发展&#xff0c;搭建一个学生查询考试分数的平台已经成为现代教育管理的重要组成部分。这样的平台不仅可以提高成绩管理的效率&#xff0c;还能为学生提供便捷、及时的成绩查询服务。那么&#xff0c;作为教师&#xff0c;我们应该如何搭建这样一个平台呢&a…

Python中的惩罚分析:理论与实践指南

目录 写在开头1. 理论基础1.1 优化问题与约束条件简介1.2 什么是惩罚分析1.3 惩罚分析的应用场景1.4 惩罚方法的类型2. 惩罚分析在Python中的实现2.1 实现代码示例2.2 未加惩罚的模型2.3 加惩罚的模型(L1和L2正则化)2.4 选择合适的惩罚方法与调整强度2.5 惩罚过程改善过拟合问…

【海贼王的数据航海】栈和队列

目录 1 -> 栈 1.1 -> 栈的概念及结构 1.2 -> 栈的实现 1.2.1 -> Stack.h 1.2.2 -> Stack.c 1.2.3 -> Test.c 2 -> 队列 2.1 -> 队列的概念及结构 2.2 -> 队列的实现 2.2.1 -> Queue.h 2.2.2 -> Queue.c 1 -> 栈 1.1 -> 栈的…

如何缩小你和大厂UI设计师之间的差距?重点关注你的作品集!

据说金三银四&#xff0c;在新一轮招聘旺季到来之前&#xff0c;你做过UI作品集吗&#xff1f;一个好的作品集可以为你的面试增加很多分数&#xff01;在开始之前&#xff0c;分享五个适合交互设计作品集的软件&#xff1a; 一、即时设计 这是一款专门为UI设计而设计的在线矢…

多线程(volatile)

volatile的功能 保证内存可见性禁止指令重排序 内存可见性 简单的理解 两(多)个线程同时针对一个变量进行操作, 一个线程读, 一个线程修改, 此时读到的值不一定是修改过后的值 即读线程没有感知到变量的变化 (其实是 编译器/JVM 对于代码在多线程情况下的优化进行了误判) 从 J…

maven父工程

maven父工程 一般最上面是定义的属性然后是版本管理然后是模块聚合 父工程一般只需要留一个pom.xml文件就行了。 父工程主要是用于版本管理和模块聚合。 一般最上面是定义的属性 属性中写的是各个依赖的版本&#xff0c;方便下面引用。 <properties><java.version&…

【Python】-闲聊:如何系统的自学Ptyhon

如何系统地自学Python 学习Python需要有一个系统的计划和策略&#xff0c;这样才能有效地掌握这门语言。下面是一个自学Python的指南&#xff0c;包括方法、实际例子和建议&#xff0c;适合新人小白&#xff0c;老手请绕过。 一、确定学习目标 在开始学习之前&#xff0c;首…