Arg to begin `Trainer` evaluation on eval data after n steps/epochs
# 🚀 Feature request

It would be great to be able to have the option to delay evaluation on the eval set until after a set number of steps/epochs.

## Motivation

Evaluation metrics can take a while to calculate and are arguably often not as meaningful in the early stages of training (like during warmup). This change would free up time that would be better spent training. Increasing `eval_steps` works until you end up waiting a while at the business end of training so this would not be an ideal compromise.

## Your contribution

First maybe have a training argument such as `evaluation_delay`.

Then:

(Adapted from [here](https://github.com/huggingface/transformers/blob/v4.17.0/src/transformers/trainer.py#L1578).)

```python

if self.args.evaluation_delay is not None:
    if self.args.save_strategy == IntervalStrategy.STEPS:
        is_delayed = self.state.global_step <= self.args.evaluation_delay
    else:
        is_delayed = epoch <= self.args.evaluation_delay

if self.control.should_save and not is_delayed:
    self._save_checkpoint(model, trial, metrics=metrics)
    self.control = self.callback_handler.on_save(self.args, self.state, self.control)
```

Maybe get some input from @sgugger?

Thanks!
That sounds like a very interesting new feature, and I agree with the proposed implementation. Would you like to work on a PR for this?<|||||>Sure thing! @sgugger <|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.