fix run_squad.py during fine-tuning xlnet on squad2.0
Author: importpandas
Pull request: yes

The following is a piece of code in forward function of xlnet model, which obviously is the key point of training the model on unanswerable questions using cls token representations.  But the default value of tensor `is_impossible`(using to indicate whether this example is answerable) is none, and we also hadn't passed this tensor into forward function. That's the problem. 

```        
 if cls_index is not None and is_impossible is not None:
                # Predict answerability from the representation of CLS and START
                cls_logits = self.answer_class(hidden_states, start_positions=start_positions, cls_index=cls_index)
                loss_fct_cls = nn.BCEWithLogitsLoss()
                cls_loss = loss_fct_cls(cls_logits, is_impossible)
                total_loss += cls_loss * 0.5
```

I added the `is_impossible` tensor to TensorDataset and model inputs, and got a reasonable result, 

{
"exact": 80.4177545691906,
"f1": 84.07154997729623,
"total": 11873,
"HasAns_exact": 77.59784075573549,
"HasAns_f1": 84.83993323200234,
"HasAns_total": 5928,
"NoAns_exact": 84.0874684608915,
"NoAns_f1": 84.0874684608915,
"NoAns_total": 5945
}

My running command:
```
python run_squad.py \
    --model_type xlnet \
    --model_name_or_path xlnet-large-cased \
    --do_train \
    --do_eval \
    --version_2_with_negative \
    --train_file data/train-v2.0.json \
    --predict_file data/dev-v2.0.json \
    --learning_rate 3e-5 \
    --num_train_epochs 4 \
    --max_seq_length 384 \
    --doc_stride 128 \
    --output_dir ./wwm_cased_finetuned_squad/ \
    --per_gpu_eval_batch_size=2  \
    --per_gpu_train_batch_size=2   \
    --save_steps 5000
```
I run my code with 4 nvidia GTX 1080ti gpus and pytorch==1.2.0.


Comments:
This looks good, do you want to add your command and the results you mention in the README of the examples in `examples/README.md`?

# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=h1) Report
> Merging [#1803](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/8618bf15d6edc8774cedc0aae021d259d89c91fc?src=pr&el=desc) will **increase** coverage by `1.08%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/huggingface/transformers/pull/1803/graphs/tree.svg?width=650&token=9qOlN6Hb1c&height=150&src=pr)](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #1803      +/-   ##
==========================================
+ Coverage   78.91%   79.99%   +1.08%     
==========================================
  Files         131      131              
  Lines       19450    19450              
==========================================
+ Hits        15348    15559     +211     
+ Misses       4102     3891     -211
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [transformers/tests/utils.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3Rlc3RzL3V0aWxzLnB5) | `91.17% <0%> (-2.95%)` | :arrow_down: |
| [transformers/pipelines.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3BpcGVsaW5lcy5weQ==) | `67.94% <0%> (+0.58%)` | :arrow_up: |
| [transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3V0aWxzLnB5) | `94.1% <0%> (+1.07%)` | :arrow_up: |
| [transformers/modeling\_openai.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX29wZW5haS5weQ==) | `81.51% <0%> (+1.32%)` | :arrow_up: |
| [transformers/modeling\_ctrl.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX2N0cmwucHk=) | `96.47% <0%> (+2.2%)` | :arrow_up: |
| [transformers/modeling\_xlnet.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3hsbmV0LnB5) | `74.54% <0%> (+2.32%)` | :arrow_up: |
| [transformers/modeling\_roberta.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3JvYmVydGEucHk=) | `72.57% <0%> (+12%)` | :arrow_up: |
| [transformers/tests/modeling\_tf\_common\_test.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL3Rlc3RzL21vZGVsaW5nX3RmX2NvbW1vbl90ZXN0LnB5) | `94.39% <0%> (+17.24%)` | :arrow_up: |
| [transformers/modeling\_tf\_pytorch\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/1803/diff?src=pr&el=tree#diff-dHJhbnNmb3JtZXJzL21vZGVsaW5nX3RmX3B5dG9yY2hfdXRpbHMucHk=) | `90.06% <0%> (+80.79%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=footer). Last update [8618bf1...8a2be93](https://codecov.io/gh/huggingface/transformers/pull/1803?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


ok, I have updated the readme.

@importpandas thanks for contributing this fix, works great!  My results running this mod:
```
{
  "exact": 82.07698138633876,
  "f1": 85.898874470488,
  "total": 11873,
  "HasAns_exact": 79.60526315789474,
  "HasAns_f1": 87.26000954590184,
  "HasAns_total": 5928,
  "NoAns_exact": 84.54163162321278,
  "NoAns_f1": 84.54163162321278,
  "NoAns_total": 5945,
  "best_exact": 83.22243746315169,
  "best_exact_thresh": -11.112004280090332,
  "best_f1": 86.88541353813282,
  "best_f1_thresh": -11.112004280090332
}
```
Distributed processing for batch size 48 using gradient accumulation consumes 10970 MiB on each of 2x NVIDIA 1080Ti.
```

@ahotrod As for your first results, I will suggest you watch my changes on file `run_squad.py` in this pr. It just added a another input to the model and only a few lines. Without this changing, I got the same results with you, which is nearly to 0 on unanswerable questions. I think Distributed processing isn't responsible for that. When it comes to the running script, it doesn't matter since I had hardly changed it.

@importpandas re-run just completed (36 hours) and results are posted above.
Works great, thanks again!

> @importpandas re-run just completed (36 hours) and results are posted above.
> Works great, thanks again!

okay, pleasure

LGTM, merging cc @LysandreJik (the `run_squad` master)