seed parameter for model generate()
# 🚀 Feature request

There should be a `seed` parameter for the `generate()` function of a model.

Although a seed can be manually set before calling `generate()` (as tested in #3063), using it as a parameter is more intuitive (and covers all the bases)

## Motivation

Generation reproducibility (also good for CI tests)

## Your contribution

The implementation `set_seed()` functions around the repo (e.g. https://github.com/huggingface/transformers/blob/6b1ff250842f52136d5159bb67a26b50ba01485d/examples/run_generation.py#L74) should be sufficient.
Hi @minimaxir - thanks for the Feature request! 

Not too sure about this though. Two arguments against it from my side:

1. I feel like it's very easy to set the seed parameter before calling `generate()` without any real drawback. 
2. Also we want all our `generate()` arguments to have default values with a lot of them defined in `configuration_utils.py`. Adding a `seed` argument would either break this logic or set a default seed value in the  `PretrainedConfig` class in `configuration_utils.py` which I definitely don't want to do.<|||||>Same here, thanks for the proposition @minimaxir but I feel like there are many ways you can/should assigne seeds (e.g. [here](https://github.com/huggingface/transformers/blob/master/examples/run_glue.py#L104-L109)) and I don't think we would be comfortable with having this inside the model it-self.<|||||>That's fair; for my purposes, it's not too difficult to wrap. (and I inadvertently realized it's better to wrap it for batch generation too)

Thanks!