【发布时间】:2021-05-05 07:59:51
【问题描述】:
以下是配置 TrainingArguments 的代码,该代码来自 HuggingFace transformers 库,用于微调 GPT2 语言模型。
training_args = TrainingArguments(
output_dir="./gpt2-language-model", #The output directory
num_train_epochs=100, # number of training epochs
per_device_train_batch_size=8, # batch size for training #32, 10
per_device_eval_batch_size=8, # batch size for evaluation #64, 10
save_steps=100, # after # steps model is saved
warmup_steps=500,# number of warmup steps for learning rate scheduler
prediction_loss_only=True,
metric_for_best_model = "eval_loss",
load_best_model_at_end = True,
evaluation_strategy="epoch",
learning_rate=0.00004, # learning rate
)
early_stop_callback = EarlyStoppingCallback(early_stopping_patience = 3)
trainer = Trainer(
model=gpt2_model,
args=training_args,
data_collator=data_collator,
train_dataset=train_dataset,
eval_dataset=test_dataset,
callbacks = [early_stop_callback],
)
epochs 为 100 和 learning_rate 为 0.00004 以及 early_stopping strong> 配置了耐心值为 3。
模型运行了 5/100 个 epoch,发现 loss_value 的差异可以忽略不计。最新的检查点保存为checkpoint-latest。
现在我可以将learning_rate 从0.00004 修改为0.01 并从最新保存的检查点-checkpoint-latest 恢复训练吗?这样做会有效率吗?
或者要使用新的learning_rate 值进行训练,我应该从头开始训练吗?
【问题讨论】:
-
我有类似的情况,模型收敛但非常很慢,所以我想尝试从具有更高学习率的检查点继续。我也在使用 Trainer,它以一种让我不太清楚如何调整 lr 的方式来总结事情。你是怎么做到的?
标签: deep-learning pytorch huggingface-transformers language-model gpt-2