generation length always equal to 20 when using run_seq2seq.py script
Author: moussaKam
Pull request: no

## Environment info
<!-- You can run the command `transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->

- `transformers` version: 4.4.0.dev0
- Platform: Linux-4.4.0-197-generic-x86_64-with-glibc2.10
- Python version: 3.8.5
- PyTorch version (GPU?): 1.7.1 (True)
- Tensorflow version (GPU?): 2.4.1 (False)
- Using GPU in script?: yes
- Using distributed or parallel set-up in script?: no

### Who can help
@patrickvonplaten  @LysandreJik 

Model I am using : any seq2seq model

The problem arises when using:
* [x] the official example scripts: (give details below)
* [ ] my own modified scripts: (give details below)

The tasks I am working on is:
* [x] an official GLUE/SQUaD task: cnn-dailymail / xsum
* [ ] my own task or dataset: (give details below)

## To reproduce

Steps to reproduce the behavior:
```
python examples/seq2seq/run_seq2seq.py     --model_name_or_path t5-small     --do_train     --do_eval     --task summarization     --dataset_name cnn_dailymail  --dataset_config_name 3.0.0     --output_dir tmp     --per_device_train_batch_size=4     --per_device_eval_batch_size=4     --overwrite_output_dir  --max_steps 250 --eval_steps 249  --save_steps 249  --max_val_samples 250  --max_target_length 100 --val_max_target_length 100 --predict_with_generate
```

<!-- If you have code snippets, error messages, stack traces please provide them here as well.
     Important! Use code tags to correctly format your code. See https://help.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks#syntax-highlighting
     Do not use screenshots, as they are hard to read and (more importantly) don't allow others to copy-and-paste your code.-->

## Expected behavior

```
02/05/2021 16:36:34 - INFO - __main__ -   ***** Eval results *****
02/05/2021 16:36:34 - INFO - __main__ -     epoch = 0.01
02/05/2021 16:36:34 - INFO - __main__ -     eval_gen_len = 19.0
02/05/2021 16:36:34 - INFO - __main__ -     eval_loss = 2.064879894256592
02/05/2021 16:36:34 - INFO - __main__ -     eval_rouge1 = 21.837379907220157
02/05/2021 16:36:34 - INFO - __main__ -     eval_rouge2 = 7.506564948396541
02/05/2021 16:36:34 - INFO - __main__ -     eval_rougeL = 18.074704390199546
02/05/2021 16:36:34 - INFO - __main__ -     eval_rougeLsum = 17.99211046381146
02/05/2021 16:36:34 - INFO - __main__ -     eval_runtime = 19.079
02/05/2021 16:36:34 - INFO - __main__ -     eval_samples_per_second = 13.103
```
`eval_gen_len` is never exceeding 20 for some reason. I tried with several models and datasets 


Comments:
Hi @moussaKam 

Thank you for reporting this.
Could you try evaluating directly using the generate method and calculate `avg eval_gen_len` ?

Hi @patil-suraj

I tried with the `generate` method, the model is well trained and can generate sequences with more than 20 tokens. Apparently the problem is in the prediction in the `run_seq2seq.py` script.

The issue was that the argument `val_max_target_length ` was never passed to `evaluate`, so `generate` used the default value for `max_length` which is 20. It'll be fixed after #10085 

Thanks @patil-suraj