我可以在不终止训练的情况下减少 GPU 数量吗?

时间:2021-05-21 22:19:32

标签: tensorflow pytorch huggingface-transformers

假设我在一台机器上使用多个 GPU(0、1、2、3),后来其他人也需要在这台机器上使用 GPU。有没有办法让我在不终止训练并重新开始的情况下减少训练中的 gpu 使用次数(即仅使用 0 和 1)?我不想浪费我已经做过的培训。

这听起来像是团队中的普遍需求。这可能吗?

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的。您应该保存检查点,以便以后可以在离开的地方继续训练。这可以通过 Hugging Face API 实现。

training_args = Seq2SeqTrainingArguments(
        output_dir=model_directory,
        num_train_epochs=args.epochs,        
        do_eval=True,
        evaluation_strategy='epoch',
        load_best_model_at_end=True, # the last checkpoint is the best model wrt metric_for_best_model
        metric_for_best_model='eval_loss',
        greater_is_better=False, 
        save_total_limit=args.epochs   
    )

save_total_limit 是它将保存的检查点数。在上述情况下,它会在每个 epoch 之后保存一个检查点。您可以根据自己的记忆调整数字。