Masking of special tokens in masked LM finetuning.
## 🐛 Bug

roBERTa throws repeated warnings about the absence of special tokens in masked LM fine-tuning with `run_lm_finetuning.py`:

```
 WARNING - transformers.modeling_roberta -   A sequence with no special tokens has been passed to the RoBERTa model. This model requires special tokens in order to work. Please specify add_special_tokens=True in your encoding.
```

This made it look like there was a preprocessing problem, but it appears as though the random masking of tokens applies to the special tokens as well, both for BERT and roBERTa training with that script. It's not clear from the original papers if that's meant to happen, but I assumed it's not. The wording in section 3.3.1 of the BERT paper suggests they might not: They "mask 15% of all _wordpiece_ tokens at random". Their implementation would probably shed light but I just wanted to check with you, since masking of special tokens will affect the representation of [CLS]. Is this masking meant to happen?

Note that BERT does not throw such a warning, but the masking of special tokens also applies to that model.

Model I am using (Bert, XLNet....): BERT and roBERTa

Language I am using the model on (English, Chinese....): English WikiText 2 data.

The problem arise when using:
* [x] the official example scripts: run_lm_finetuning.py
* [ ] my own modified scripts: (give details)

The tasks I am working on is:
* [x] an official GLUE/SQUaD task: language model fine-tuning with run_lm_finetuning.py
* [] my own task or dataset: (give details)

## To Reproduce

Steps to reproduce the behavior:

Download the wikitext-2 data, and then run:

```
python run_lm_finetuning.py --output_dir=models/roberta_wikitext --model_type=roberta --model_name_or_path=roberta-base --do_train --train_data_file=/Users/oadams/corpora/wikitext-2/wiki.train.tokens --mlm
```

This is basically what's recommended [in the examples](https://huggingface.co/transformers/examples.html)

## Expected behavior

Warning-free training, or a warning that's easy to interpret for the user.

## Environment

* OS: MacOS and Ubuntu.
* Python version: 3.7.4
* PyTorch version: 1.2.0
* PyTorch Transformers version (or branch): 2.0
* Using GPU ? No.
* Distributed of parallel setup ? No
* Any other relevant information:
The same issue here, using 4 RTX 2080Ti with Ubuntu 18.04.<|||||>This issue exists as the `mask_tokens` function will sometimes replace `<s>` with a random word. Not sure whether `<s>` should be masked. A workaround would be adding a line 
```
masked_indices[:, 0] = 0  # tokenizer.bos_token_id
```
right below 
```
masked_indices = torch.bernoulli(torch.full(labels.shape, args.mlm_probability)).bool()
```
https://github.com/huggingface/transformers/blob/master/examples/run_lm_finetuning.py#L111.

<|||||>This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
<|||||>So the [CLS] and [SEP] are being masked during the training or not?