Custom train file not supported in run_qa.py
Author: thuan00
Pull request: no

## Environment info
- transformers version: 4.6.1
- Platform: Linux-5.4.109+-x86_64-with-Ubuntu-18.04-bionic
- Python version: 3.7.10
- PyTorch version (GPU?): 1.8.1+cu101 (True)
- Tensorflow version (GPU?): 2.4.1 (True)
- Using GPU in script?: yes
- Using distributed or parallel set-up in script?: no

### Who can help
Documentation, maintained examples (not research project or legacy): @sgugger

## Information

I am working on is QA task, fine-tuning on a SQUaD-like dataset.
The problem arises when using the example **run_qa.py** script with a custom --train_file (like SQuAd json file)

## To reproduce
run the script with param `--train_file (squad-like-dataset).json`
This was once **issued before** in [this](https://github.com/huggingface/transformers/issues/9370#issue-776942988).
But the traceback this time is:
```
Traceback (most recent call last):
File "run_qa.py", line 622, in <module>
  main()
File "run_qa.py", line 321, in main
  answer_column_name = "answers" if "answers" in column_names else column_names[2]     
IndexError: list index out of range
```

## Expected behavior
As i debug, `column_names` = ['title', 'paragraphs']
`column_names` expected to be ['context', 'question', 'answers']

the [load_dataset()](https://huggingface.co/docs/datasets/loading_datasets.html#json-files) function with the --train-file didn't do the right job

As described in the script's [README](https://github.com/huggingface/transformers/blob/master/examples/pytorch/question-answering/README.md), 
I expected that this script would handle --train_file like the legacy **run_squad.py** script but,
It seems that this script works with --dataset_name, datasets that are already on the hub, but doesn't work the same as the old **run_squad.py**.

The documentation about --train_file param may need to be clearer or provided with some examples that use  --train_file, --validation_file


## Work around
As i read about this  [load_dataset()](https://huggingface.co/docs/datasets/loading_datasets.html#json-files) function:

I transformed the original squad json file into a table-row form like this:
```
{"version": "0.1.0",
 "data": [{"id": 1, "context": "", "question": "", "answers": ...},
          {"id": 2, "context": "", "question": "", "answers": ...}
          ...
}
```
with this snippet:
```
for article in data:
    for p in article['paragraphs']:
        for qas in p['qas']:
            answers = {
                "text": [],
                "answer_start": []
            }
            for ans in qas['answers']:
                answers['text'].append(ans['text'])
                answers['answer_start'].append(ans['answer_start'])

            output_data.append({
                "id": qas['id'],
                "context": p['context'],
                "question": qas['question'],
                "answers": answers
            })
```




Comments:
Hi there. As mentioned in the main [README](https://github.com/huggingface/transformers#why-shouldnt-i-use-transformers) examples are just that: examples. The script is intended to work on SQUAD or any file that is structured exactly the same way. To make it work on your own dataset, you will need to make some slight adjustments, in particular renaming the columns used.

Okay,
Thank you for your work.