为何满足EarlyStoppingCallback条件时Seq2SeqTrainer未停止训练?
Seq2SeqTrainer配置早停后未触发终止的问题
尝试给Seq2SeqTrainer配置EarlyStoppingCallback,设置patience=2、threshold=1.0,代码如下:
training_args = Seq2SeqTrainingArguments( output_dir='./', num_train_epochs=3, per_device_train_batch_size=4, per_device_eval_batch_size=4, logging_steps=1, save_steps=5, eval_steps=1, max_steps=10, evaluation_strategy="steps", predict_with_generate=True, report_to=None, metric_for_best_model="chr_f_score", load_best_model_at_end=True ) early_stop = EarlyStoppingCallback(2, 1.0) trainer = Seq2SeqTrainer( model=model, args=training_args, train_dataset=valid_data.with_format("torch"), eval_dataset=test_data.with_format("torch"), compute_metrics=compute_metrics, callbacks=[early_stop] ) trainer.train()
实际训练时,模型并未在满足早停条件后终止,而是持续训练直到达到max_steps的上限。
核心疑问
为何满足EarlyStoppingCallback的触发条件时,Seq2SeqTrainer没有停止训练?
训练结束后检查发现,早停计数器已经达到阈值,但训练并未提前终止:
>>> early_stop.early_stopping_patience_counter 2
内容的提问来源于stack exchange,提问作者alvas
相关产品推荐
相关产品推荐

