wrong default value of argument "ignore_index" in CrossEntropyLoss for loss calculation in models forward method
Hi guys!

You calculate loss in models forward() methods as follows:
`loss_fct = CrossEntropyLoss()`
for example:
[BertForMaskedLM::forward](https://github.com/huggingface/transformers/blob/master/src/transformers/models/bert/modeling_bert.py#L1328)
[BartForConditionalGeneration:forward](https://github.com/huggingface/transformers/blob/master/src/transformers/models/bart/modeling_bart.py#L1305)

that means you don't take into account labels ids = -100. However this is something one usually doesn't expect, because usually     pad_id != -100. In my opinion DEFAULT behavior should be:
## Expected default behavior
`loss_fct = CrossEntropyLoss(ignore_index=self.config.pad_token_id)`
that is ignore deposits from paddings in loss. At least this is what tensorflow [tutorial](https://www.tensorflow.org/tutorials/text/transformer#loss_and_metrics) is talking about.

I'm aware about [note](https://github.com/huggingface/transformers/blob/master/src/transformers/models/bart/modeling_bart.py#L1271-L1272) in  documentation and possible work around may be
`labels[labels == model.config.pad_token_id] = -100`
but it could be additional not obvious step for ordinary user I'm afraid. 

### Who can help
- @LysandreJik
- @patrickvonplaten

Thanks!

@LysandreJik @sgugger - we could add a warning that fires if one hasn't set `-100` in the labels, but has padding tokens instead - what do you think? <|||||>Would it not hurt performance to do the check at each forward?<|||||>My opinion on this is that the documentation explicitly states how the `labels` should be created and which value is ignored in the loss, so I'm fine with leaving it like this.

Also `-100` is the default ignored index in the `CrossEntropyLoss`  PyTorch object so it doesn't seem too arcane of a choice.

We could throw a warning the first time it's detected (and not on subsequent calls) if it's really important.<|||||>Thank you for consideration 
I suspect a lot of people using your library out of the box (usual situation in production) will miss this step (replacing padding ids by -100), at least because it is absent in examples (as far as I know) and will always get wrong (a slightly bigger) loss :-) 
But this is my opinion and I could be mistaken of course.<|||||>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/master/CONTRIBUTING.md) are likely to be ignored.