【问题标题】:Can I reduce number of GPUs without terminating the training?我可以在不终止训练的情况下减少 GPU 的数量吗?
【发布时间】:2021-08-11 03:01:13
【问题描述】:

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

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

【问题讨论】:

  • 不,你不能。当您的模型在这些 GPU 上进行训练时,它们的 VRAM 会被相应的信息消耗,以便在训练期间进行处理。

标签: tensorflow pytorch huggingface-transformers


【解决方案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 之后保存一个检查点。您可以根据自己的记忆调整数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多