[trainer] Training from scratch
@patil-suraj is this possible in the new `Seq2SeqTrainer`? 


Possible solution sketch:
Where we call:

```
AutoSeq2SeqModelWithLMHead.from_pretrained(model_name)
```

Switch to 
```
if args.from_scratch: model = AutoSeq2SeqModelWithLMHead(config)
else: model = AutoSeq2SeqModelWithLMHead.from_pretrained(model_name)
```
What do you think?

@sshleifer  Definitely possible, except we'll need to use `AutoModelForSeq2SeqLM` 😉
We can also pass a different `config` if we don't want to use `pretrained config` using `config_name` argument.

Happy to open a PR if it's needed :). Let me know<|||||>@sgugger is this possible with existing `Trainer? It seems like Seq2Seq is the wrong level for this feature to be implemented.<|||||>Models are initialised in example scripts rather than `Trainer`. Currently we need to save a from scratch model and then pass that. IMO it makes sense to add the `from_scratch` argument to `TrainingArguments` but each examples scripts will need to handle this itself
<|||||>Oh that's a reasonable workaround. 

```
def save_randomly_initialized_version(config_name, save_dir, **config_kwargs):
    cfg = AutoConfig.from_pretrained(config_name, **config_kwargs)
    model = AutoModelForSeq2SeqLM.from_config(cfg)
    model.save_pretrained(save_dir)
    AutoTokenizer.from_pretrained(config_name).save_pretrained(save_dir)
```
I'll put this in the make_student PR.
