ElectraForQuestionAnswering
Author: patil-suraj
Pull request: yes

This PR adds `ElectraForQuestionAnswering`. One of the missing models in this [project](https://github.com/huggingface/transformers/projects/17)

@LysandreJik , @sgugger 

Comments:
Great, thanks for your help! 
Could you also add the new model to [`all_model_classes`](https://github.com/huggingface/transformers/blob/master/tests/test_modeling_electra.py#L41) which would test the model a little bit more?

# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4913?src=pr&el=h1) Report
> Merging [#4913](https://codecov.io/gh/huggingface/transformers/pull/4913?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/5d63ca6c38cc0f583cdec4c3efcfce13c0a41fdc&el=desc) will **increase** coverage by `0.03%`.
> The diff coverage is `93.93%`.

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

```diff
@@            Coverage Diff             @@
##           master    #4913      +/-   ##
==========================================
+ Coverage   77.10%   77.13%   +0.03%     
==========================================
  Files         128      128              
  Lines       21617    21650      +33     
==========================================
+ Hits        16667    16699      +32     
- Misses       4950     4951       +1     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4913?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/4913/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9fX2luaXRfXy5weQ==) | `99.13% <ø> (ø)` | |
| [src/transformers/modeling\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/4913/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19hdXRvLnB5) | `78.40% <ø> (ø)` | |
| [src/transformers/modeling\_electra.py](https://codecov.io/gh/huggingface/transformers/pull/4913/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19lbGVjdHJhLnB5) | `78.16% <93.93%> (+2.07%)` | :arrow_up: |
| [src/transformers/modeling\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4913/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ191dGlscy5weQ==) | `90.49% <0.00%> (-0.12%)` | :arrow_down: |
| [src/transformers/modeling\_tf\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4913/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ190Zl91dGlscy5weQ==) | `87.42% <0.00%> (+0.15%)` | :arrow_up: |
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4913/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `73.49% <0.00%> (+0.40%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/huggingface/transformers/pull/4913?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/4913?src=pr&el=footer). Last update [5d63ca6...d8a5995](https://codecov.io/gh/huggingface/transformers/pull/4913?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


> Great, thanks for your help!
> Could you also add the new model to [`all_model_classes`](https://github.com/huggingface/transformers/blob/master/tests/test_modeling_electra.py#L41) which would test the model a little bit more?

Sure

Oh and before I forget, if you don't mind, could you add the new model in the docs as well in [this file](https://github.com/huggingface/transformers/blob/master/docs/source/model_doc/electra.rst) (between `ElectraForTokenClassification` and `TFElectraModel` ideally).

@sgugger 
some tests are failing, but I'm not sure if they are related to this model

The test for this qa model is passed.

The failing tests are the test common for all models (that are applied to the one you're adding because of the change I made you do). One of the failure I see is linked to the `input_ids` not defaulting to `None` (for when you pass input embeddings instead). There is another one linked to the attentions, I pointed out the problems in comments.

> The failing tests are the test common for all models (that are applied to the one you're adding because of the change I made you do). One of the failure I see is linked to the `input_ids` not defaulting to `None` (for when you pass input embeddings instead). There is another one linked to the attentions, I pointed out the problems in comments.

Thanks @sgugger !
The tests are happy now :)

@sgugger  this examples failure is related to `TestBartExamples.test_bart_summarization_dataset `

Cool! All green 🤗