Eli5 examples
Author: yjernite
Pull request: yes

This PR adds Explain Like I'm Five scripts and models to Transformers.  

The `examples/eli5` folder contains training code for the dense retriever and to fine-tune a BART model, the jupyter notebook for the [blog post](https://yjernite.github.io/lfqa.html), and the code for the live demo.

The RetriBert model implements the dense passage retriever. It's basically a wrapper for two Bert models and projection matrices, but it does gradient checkpointing in a way that is very different from [a concurrent PR](https://github.com/huggingface/transformers/pull/4659) and I thought it would be easier to write its own class for now and see if we can merge later. 

The Bart files are only modified to add a reference to the ELI5 fine-tuned model on the model repo.

Comments:
# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4968?src=pr&el=h1) Report
> Merging [#4968](https://codecov.io/gh/huggingface/transformers/pull/4968?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/439aa1d6e9c953069f75fc23c737221d0df2c977&el=desc) will **increase** coverage by `0.88%`.
> The diff coverage is `48.36%`.

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

```diff
@@            Coverage Diff             @@
##           master    #4968      +/-   ##
==========================================
+ Coverage   76.45%   77.34%   +0.88%     
==========================================
  Files         130      133       +3     
  Lines       22024    22146     +122     
==========================================
+ Hits        16839    17128     +289     
+ Misses       5185     5018     -167     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4968?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/configuration\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2JhcnQucHk=) | `93.33% <ø> (ø)` | |
| [src/transformers/tokenization\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fYmFydC5weQ==) | `95.12% <ø> (ø)` | |
| [src/transformers/modeling\_retribert.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19yZXRyaWJlcnQucHk=) | `34.24% <34.24%> (ø)` | |
| [src/transformers/configuration\_retribert.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX3JldHJpYmVydC5weQ==) | `34.78% <34.78%> (ø)` | |
| [src/transformers/\_\_init\_\_.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9fX2luaXRfXy5weQ==) | `99.16% <100.00%> (+0.02%)` | :arrow_up: |
| [src/transformers/configuration\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2F1dG8ucHk=) | `93.02% <100.00%> (+0.16%)` | :arrow_up: |
| [src/transformers/modeling\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9tb2RlbGluZ19hdXRvLnB5) | `70.76% <100.00%> (+0.17%)` | :arrow_up: |
| [src/transformers/tokenization\_auto.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fYXV0by5weQ==) | `97.67% <100.00%> (+0.05%)` | :arrow_up: |
| [src/transformers/tokenization\_retribert.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy90b2tlbml6YXRpb25fcmV0cmliZXJ0LnB5) | `100.00% <100.00%> (ø)` | |
| [src/transformers/file\_utils.py](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9maWxlX3V0aWxzLnB5) | `75.00% <0.00%> (-0.41%)` | :arrow_down: |
| ... and [12 more](https://codecov.io/gh/huggingface/transformers/pull/4968/diff?src=pr&el=tree-more) | |

------

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


Finally managed to add the doc after a bit of a rebasing hell :) 

Will merge tomorrow morning if there aren't any further comments.

@yjernite Tried to use your bart model but I cant load the decoder.
There are only pytorch model and config.json uploaded to the model-hub

> There are only pytorch model and config.json uploaded to the model-hub

How did you load the model, could you add some minimum reproduction code?
Also, this might be better as an issue :)