Hugging Face的TrainingArguments常用参数学习

Hugging Face的TrainingArguments类是用于设置和管理训练模型时的各种参数。下面是一些关键参数及其原理和使用示例:

1. 输出目录 (output_dir)

描述:保存模型和检查点的目录。
示例

output_dir='./results'

2. 训练和验证批次大小 (per_device_train_batch_size, per_device_eval_batch_size)

描述:每个设备(GPU/CPU)的训练和验证批次大小。
示例

per_device_train_batch_size=8
per_device_eval_batch_size=16

3. 训练轮数 (num_train_epochs)

描述:训练模型的轮数。
示例

num_train_epochs=3

4. 学习率 (learning_rate)

描述:优化器的学习率。
示例

learning_rate=5e-5

5. 权重衰减 (weight_decay)

描述:优化器中的权重衰减(L2正则化)。
示例

weight_decay=0.01

6. 评估策略 (evaluation_strategy)

描述:评估模型的策略,可以是’no’、‘steps’或’epoch’。
示例

evaluation_strategy='steps'

7. 日志记录策略 (logging_strategy)

描述:记录日志的策略,可以是’no’、‘steps’或’epoch’。
示例

logging_strategy='steps'

8. 日志记录步数 (logging_steps)

描述:每多少步记录一次日志。
示例

logging_steps=500

9. 保存策略 (save_strategy)

描述:保存模型的策略,可以是’no’、‘steps’或’epoch’。
示例

save_strategy='epoch'

10. 保存总数 (save_total_limit)

描述:最多保存多少个检查点。
示例

save_total_limit=3

11. 学习率调度器类型 (lr_scheduler_type)

描述:学习率调度器的类型,比如’linear’, ‘cosine’。
示例

lr_scheduler_type='linear'

12. 混合精度训练 (fp16)

描述:是否使用16位浮点数进行混合精度训练(需要GPU支持)。
示例

fp16=True

13. 每一步进行梯度累积 (gradient_accumulation_steps)

描述:每多少步进行一次梯度累积。
示例

gradient_accumulation_steps=4

14. 最大梯度规范化 (max_grad_norm)

描述:梯度裁剪的最大范数。
示例

max_grad_norm=1.0

15. 设备 (device)

描述:指定训练使用的设备,如’cuda’或’cpu’。
示例

device='cuda'

示例代码

以下是一个综合使用TrainingArguments的示例:

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir='./results',            # 保存模型的目录
    num_train_epochs=3,                # 训练轮数
    per_device_train_batch_size=8,     # 训练批次大小
    per_device_eval_batch_size=16,     # 验证批次大小
    warmup_steps=500,                  # 训练的预热步数
    weight_decay=0.01,                 # 权重衰减
    logging_dir='./logs',              # 日志目录
    logging_steps=10,                  # 多少步记录一次日志
    evaluation_strategy='steps',       # 评估策略
    save_strategy='epoch',             # 保存策略
    learning_rate=5e-5,                # 学习率
    lr_scheduler_type='linear',        # 学习率调度器类型
    fp16=True,                         # 是否使用混合精度
    gradient_accumulation_steps=4,     # 梯度累积步数
    max_grad_norm=1.0                  # 最大梯度范数
)

print(training_args)

重要参数总结

  • output_dir: 确保模型和结果保存位置。
  • per_device_train_batch_size & per_device_eval_batch_size: 影响内存使用和训练速度。
  • num_train_epochs: 决定训练时长和模型的收敛程度。
  • learning_rate: 学习率,影响模型的学习速度和性能。
  • weight_decay: 正则化,防止过拟合。
  • evaluation_strategy & logging_strategy: 确保模型在训练过程中的监控和评估。
  • fp16: 使用混合精度可以提高训练速度并减少内存占用,但需要兼容的硬件。

通过合理配置这些参数,可以更好地控制模型训练过程,提高训练效率和模型性能。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值