T5 Tensorflow: _shift_right returns wrong result
# 🐛 Bug

## Information

The [_shift_right](https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_tf_t5.py#L777) method of the `TFT5PreTrainedModel` returns all zeros instead of shifting the `input_ids`.

## To reproduce

```
import tensorflow as tf

def shape_list(x):
    """Deal with dynamic shape in tensorflow cleanly."""
    static = x.shape.as_list()
    dynamic = tf.shape(x)
    return [dynamic[i] if s is None else s for i, s in enumerate(static)]

def _shift_right(input_ids):
    decoder_start_token_id = 0
    pad_token_id = 0

    assert (
        decoder_start_token_id is not None
    ), "self.model.config.decoder_start_token_id has to be defined. In TF T5 it is usually set to the pad_token_id. See T5 docs for more information"

    # shift inputs to the right
    shifted_input_ids = tf.zeros_like(input_ids, dtype=tf.int32)
    shifted_input_ids = tf.roll(shifted_input_ids, 1, axis=-1)
    start_tokens = tf.fill((shape_list(shifted_input_ids)[0], 1), decoder_start_token_id)
    shifted_input_ids = tf.concat([start_tokens, shifted_input_ids[:, 1:]], -1)

    assert pad_token_id is not None, "self.model.config.pad_token_id has to be defined."
    # replace possible -100 values in labels by `pad_token_id`
    shifted_input_ids = tf.where(
        shifted_input_ids == -100, tf.fill(shape_list(shifted_input_ids), pad_token_id), shifted_input_ids
    )

    assert tf.math.reduce_any(
        shifted_input_ids >= 0
    ).numpy(), "Verify that `labels` has only positive values and -100"

    return shifted_input_ids


input_ids = tf.convert_to_tensor([[32000, 1, 2, 3, 0, 0, 0]])
print(_shift_right(input_ids))
```

## Expected behavior

Should shift the tensor to the right.

## Suggested solution

Replace line `shifted_input_ids = tf.zeros_like(input_ids, dtype=tf.int32)` with `shifted_input_ids = tf.cast(input_ids, tf.int32)`.
Further I'd recommend removing the assertion for positive label values, as it depends on the `numpy()` method, which is not available in some cases (e.g. when using datasets loaded from tfrecord files) and will throw an error then.
Shall I open a PR directly?

## Environment info     
- `transformers` version: Master (file commit `4dc6559`)
- Tensorflow version: 2.1.0

Hi, thanks for raising this issue! Indeed, this looks like an issue. Do you want to open a PR with the fix you propose?<|||||>Hey @maurice-g, 

Thanks a lot for the fix!