DistilBertForMaskedLM is not passing ignore_index to loss fct nn.CrossEntropyLoss
Author: vuamitom
Pull request: no

# 🐛 Bug

I'm running `run_lm_finetuning.py` and got the error below: 

```
/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long *, Dtype *, int, int, int, int, long) [with Dtype = float, Acctype = float]: block: [0,0,0], thread: [6,0,0] Assertion `t >= 0 && t < n_classes` failed.
/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long *, Dtype *, int, int, int, int, long) [with Dtype = float, Acctype = float]: block: [0,0,0], thread: [7,0,0] Assertion `t >= 0 && t < n_classes` failed.
THCudaCheck FAIL file=/pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu line=110 error=710 : device-side assert triggered
Traceback (most recent call last):
  File "run_lm_finetuning.py", line 795, in <module>
    main()
  File "run_lm_finetuning.py", line 745, in main
    global_step, tr_loss = train(args, train_dataset, model, tokenizer)
  File "run_lm_finetuning.py", line 349, in train
    outputs = model(inputs, masked_lm_labels=labels) if args.mlm else model(inputs, labels=labels)
  File "/home/tamvm/.local/lib/python3.6/site-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/tamvm/.local/lib/python3.6/site-packages/transformers/modeling_distilbert.py", line 550, in forward
    masked_lm_labels.view(-1))
  File "/home/tamvm/.local/lib/python3.6/site-packages/torch/nn/modules/module.py", line 541, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/tamvm/.local/lib/python3.6/site-packages/torch/nn/modules/loss.py", line 916, in forward
    ignore_index=self.ignore_index, reduction=self.reduction)
  File "/home/tamvm/.local/lib/python3.6/site-packages/torch/nn/functional.py", line 2016, in cross_entropy
return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction)
  File "/home/tamvm/.local/lib/python3.6/site-packages/torch/nn/functional.py", line 1842, in nll_loss
    ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index)
```

Looking through the code, I realized that `-100` is used as labels for indices that are not masked. However, `DistilBertForMaskedLM` is not passing `ignore_index=-100` to `nn.CrossEntropyLoss`, which makes loss function calculate loss on `-100` labels. and hence the error. 

[https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_distilbert.py#L510](https://github.com/huggingface/transformers/blob/master/src/transformers/modeling_distilbert.py#L510)

## Information

Model I am using (Bert, XLNet ...): DistilBert

Language I am using the model on (English, Chinese ...): English

The problem arises when using:
* run_lm_finetuning.py

The tasks I am working on is:
* Fine tune masked language model

## To reproduce

Steps to reproduce the behavior:

```bash
python run_lm_finetuning.py \
    --output_dir=finetune_output \
    --model_type=distilbert \
    --model_name_or_path=distilbert-base-multilingual-cased \
    --do_train \
    --train_data_file=./finetune_data/train.raw.txt \
    --do_eval \
    --eval_data_file=./finetune_data/val.raw.txt \
    --mlm \
    --block_size=128
```

## Expected behavior

Model should start training process without problem.

## Environment info
<!-- You can run the command `python transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->
     
- `transformers` version: 2.3.0
- Platform: Ubuntu 18
- Python version: 3.6.9
- PyTorch version (GPU): 1.3.1


Comments:
You're absolutely correct, this was a bug. I've updated it in 239dd23.

Thank you :). Will close this bug.