Update run_ner.py example with RoBERTa
Author: mmaybeno
Pull request: yes

PR for #1534

The `run_ner.py` script in the examples directory only used BERT based models. The main objective was to utilize the new DistilRoBERTa model for NER as it is cased by default, potentially leading to better results (at least for the English language). This PR is based on #1613, I will rebase after it is merged.

The command used for the results below:
```
# Bert (cased)
python run_ner.py --data_dir ./data --model_type bert --model_name_or_path bert-base-cased --output_dir ./bert-cased --do_train --do_eval --do_predict

# Bert (uncased)
python run_ner.py --data_dir ./data --model_type bert --model_name_or_path bert-base-uncased --output_dir ./bert --do_train --do_eval --do_predict

# RoBERTa
python run_ner.py --data_dir ./data --model_type roberta --model_name_or_path roberta-base --output_dir ./roberta-base --do_train --do_eval --do_predict

# DistilRoBERTa
python run_ner.py --data_dir ./data --model_type roberta --model_name_or_path distilroberta-base --output_dir ./roberta --do_train --do_eval --do_predict
```

```
BERT cased (for comparison)

dev
***** Eval results  *****
  f1 = 0.9531893436423229
  loss = 0.03520505422085489
  precision = 0.9510313600536643
  recall = 0.9553571428571429

test
***** Eval results  *****
  f1 = 0.911254075967216
  loss = 0.12860409794469702
  precision = 0.9065404173242153
  recall = 0.9160170092133239

BERT uncased (for comparison)

dev
***** Eval results  *****
  f1 = 0.7946049454666556
  loss = 0.13505880897513595
  precision = 0.7862909869830285
  recall = 0.8030966004712218

test
***** Eval results  *****
  f1 = 0.7315113943944818
  loss = 0.2360093453855909
  precision = 0.7216192937123169
  recall = 0.7416784702549575

RoBERTa base

dev
***** Eval results  *****
  f1 = 0.9486079569349818
  loss = 0.04320113215679077
  precision = 0.9466174248782945
  recall = 0.9506068779501011

test
***** Eval results  *****
  f1 = 0.8999385047878415
  loss = 0.15529698813410237
  precision = 0.8917130919220055
  recall = 0.90831707749601
  recall = 0.9160170092133239

DistilRoBERTa

dev
***** Eval results  *****
  f1 = 0.9384563645535564
  loss = 0.04439822954706492
  precision = 0.9360952700436095
  recall = 0.9408293998651382

test
***** Eval results  *****
  f1 = 0.8873288873288874
  loss = 0.15643812390490658
  precision = 0.8782351919402467
  recall = 0.8966128746231601
```

Comments:
Only issue I saw when running the prediction for RoBERTa, I noticed some `Maximum sequence length exceeded` warnings.

That's awesome! We can merge as soon as tests pass, unless you plan on pushing something else before.

For reference, do you think you could add Eval results for `bert-base-cased` too?

Ya I can run it right now. Might take an hour or two as it's all via colab.

Updated main comment with `bert-base-cased` results. Thanks again!

Updated main comment to clarify that it's `DistilRoBERTa`, not `RoBERTa`. I'll try to add those results to our [examples/README.md](https://github.com/huggingface/transformers/blob/master/examples/README.md).

Thanks again!

I think because it's extending the main Roberta config that all models are available to it correct? If not I'm ok with just distilRoberta.

Oh yeah with what you pushed run_ner should work out of the box with all RoBERTa models, I'm just pointing out that the eval results you list are for `distilroberta-base` (so a way smaller model than roberta-base)

Oh I see now. Ha. That's what I get for looking at it with my phone. Totally get it now :). Thanks for the edit. I can add the default Roberta as well today if I get the chance.