[WIP] lightning glue example uses nlp package
Author: nateraw
Pull request: yes

Main goal here was to use `nlp` library to load datasets instead of custom scripts. I've made some changes to the GLUE example, and will reflect those changes elsewhere if the patterns used seem reasonable. Feedback would be greatly appreciated.

**So far, this PR:**
- Uses `nlp` library instead of manual processing scripts to download/process the benchmark datasets (Ref #4494)
- Uses lightning `Trainer` default arguments instead of previous custom logic. See[ list of available args](https://pytorch-lightning.readthedocs.io/en/latest/trainer.html#trainer-class) in their documentation. Resolves #3925 
- Generates submission files on test sets (partially resolves #3692)
- Fixes bug mentioned in #4214
- Pins lightning version to latest stable release, as master branch is a little to volatile for my taste.
- upgrades to pl=.76

**TODOs**
- Validate multi-gpu logic is up to date with lightning base practices
- Validate TPU logic is up to date with lightning best practices
- See if there's a better way to save dataset with `nlp` lib directly instead of current `torch.save` logic
- Run exhaustive test over model types over each dataset
- Optionally generate larger output table reporting benchmarks across models

**Note on Trainer args**

The argument parser will now accept any kwargs from the `Trainer` class's init function. For example, to load a checkpoint and run predictions to get submission files, you could run something like this to get a submission file at `./submissions/mrpc_submission.csv`:

```bash
export TASK=mrpc
export DATA_DIR=./cached_glue_data
export MAX_LENGTH=128
export LEARNING_RATE=2e-5
export BERT_MODEL=bert-base-cased
export BATCH_SIZE=32
export NUM_EPOCHS=3
export SEED=2
export GPUS=1
export NUM_WORKERS=4

# Add parent directory to python path to access lightning_base.py
export PYTHONPATH="../":"${PYTHONPATH}"

python3 -i run_pl_glue.py \
    --model_name_or_path $BERT_MODEL \
    --task $TASK \
    --data_dir $DATA_DIR \
    --max_seq_length  $MAX_LENGTH \
    --max_epochs $NUM_EPOCHS \
    --learning_rate $LEARNING_RATE \
    --seed $SEED \
    --gpus $GPUS \
    --num_workers $NUM_WORKERS \
    --train_batch_size $BATCH_SIZE \
    --resume_from_checkpoint ./lightning_logs/version_0/checkpoints/epoch=1.ckpt \
    --output_dir ./submissions/
    --do_predict
```

CC: @srush @williamFalcon 

Comments:
@julien-c I'm not sure why my checks for isort aren't passing on run_pl_glue.py. Could it be because I imported `pyarrow` which is not listed in third party within `setup.cfg`?

lmk when you’re ready for me to give this a look over :)

one major feature we added is the option to not rely on hparams, they are of course backward compatible but now you have the option to instead pass all the args to init directly and we’ll still save the correct stuff in the checkpoint

@sshleifer can you advise on the style check issue when you get the chance, please?

Adding note for myself...seems `pandas` has been removed from lightning's requirements.txt so we may need to add that to `examples/requirements.txt`.

# [Codecov](https://codecov.io/gh/huggingface/transformers/pull/4627?src=pr&el=h1) Report
> Merging [#4627](https://codecov.io/gh/huggingface/transformers/pull/4627?src=pr&el=desc) into [master](https://codecov.io/gh/huggingface/transformers/commit/4402879ee48dcff0f657738d8af5e35b266bd0ed&el=desc) will **decrease** coverage by `1.02%`.
> The diff coverage is `79.52%`.

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

```diff
@@            Coverage Diff             @@
##           master    #4627      +/-   ##
==========================================
- Coverage   78.02%   76.99%   -1.03%     
==========================================
  Files         124      128       +4     
  Lines       20635    21602     +967     
==========================================
+ Hits        16100    16633     +533     
- Misses       4535     4969     +434     
```


| [Impacted Files](https://codecov.io/gh/huggingface/transformers/pull/4627?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/transformers/configuration\_albert.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2FsYmVydC5weQ==) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_bart.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2JhcnQucHk=) | `93.33% <ø> (-0.15%)` | :arrow_down: |
| [src/transformers/configuration\_bert.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2JlcnQucHk=) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_camembert.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2NhbWVtYmVydC5weQ==) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_distilbert.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2Rpc3RpbGJlcnQucHk=) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_electra.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2VsZWN0cmEucHk=) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_flaubert.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2ZsYXViZXJ0LnB5) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_gpt2.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2dwdDIucHk=) | `97.22% <ø> (-0.08%)` | :arrow_down: |
| [src/transformers/configuration\_longformer.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX2xvbmdmb3JtZXIucHk=) | `100.00% <ø> (ø)` | |
| [src/transformers/configuration\_marian.py](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree#diff-c3JjL3RyYW5zZm9ybWVycy9jb25maWd1cmF0aW9uX21hcmlhbi5weQ==) | `100.00% <ø> (ø)` | |
| ... and [119 more](https://codecov.io/gh/huggingface/transformers/pull/4627/diff?src=pr&el=tree-more) | |

------

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


Closing and will reopen cleaner one later.