【问题标题】:How can I find optimal values for training arguments?如何找到训练参数的最佳值?
【发布时间】:2022-02-03 00:41:57
【问题描述】:

这些是文本分类 bert 模型的训练参数。 (我正在使用拥抱脸训练器) 我需要为我的数据集找到training epochsbatch sizelearning ratewarmup stepsweight decay 的最佳值。有什么方法可以在训练前检查它们吗?

还有其他我应该考虑的论点吗?

training_args = TrainingArguments(
    output_dir='./results',
    num_train_epochs=1,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    learning_rate= 5e-05
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir='./logs',
    load_best_model_at_end=True,
    logging_steps=400,         
    save_steps=400,            
    evaluation_strategy="steps",     
)

【问题讨论】:

  • 基本上你用不同的参数训练,看看什么效果最好:en.wikipedia.org/wiki/Hyperparameter_optimization
  • 如果你真的想找到一个好的超参数组合,你可以尝试贝叶斯超参数调优,它可以帮助你快速找到它,而不是贪婪的网格搜索。权重和偏差支持这种超参数搜索wandb.ai/site/articles/…
  • 但总的来说,根据我的经验,学习率可能是微调预训练模型最重要的因素。

标签: python pytorch huggingface-transformers transformer


【解决方案1】:

一方面,最佳参数取决于您的训练数据的大小,也可能略微取决于您拥有的课程数量。另一方面,它在很大程度上取决于您使用的硬件。到目前为止,我知道,事先检查它的唯一方法是了解算法并从理论上计算出最有效的方法。

我会将 epoch 的数量设置得更高。

如果您使用我推荐的 GPU,一个称为梯度累积的附加参数可以帮助您显着加快训练速度,例如:

gradient_accumulation_steps=32

【讨论】:

    猜你喜欢
    • 2020-06-18
    • 1970-01-01
    • 2022-01-24
    • 2020-03-17
    • 2019-11-30
    • 2020-09-04
    • 1970-01-01
    • 2022-01-19
    • 2017-03-05
    相关资源
    最近更新 更多