Pytorch Transformers no longer loads SciBert weights, getting `UnicodeDecodeError`. Worked in pytorch_pretrained_bert
Author: Santosh-Gupta
Pull request: no

## 🐛 Bug

<!-- Important information -->

When using the old pytorch_pretrained_bert library, I could point the model with `from_pretrained` to the SciBert weights.tar.gz file, and it would load this just. However, if I try this with the Pytorch Transformers, I get this error. 

```
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
```

Model I am using: Bert

Language I am using the model on (English, Chinese....): English

The problem arise when using:

* [ X] my own modified scripts: (give details)

I have a colab notebook that loads the SciBert weights using the old pytorch_pretrained_bert library, and the new Transformers library. 


## To Reproduce

Steps to reproduce the behavior:

Here is the code

```
import requests
import os
import tarfile
import zipfile
import multiprocess
import json

if not os.path.exists('TempDir'):
    os.makedirs('TempDir')

#Download SciBert weights and vocab file
import urllib.request
# Download the file from `url` and save it locally under `file_name`:
urllib.request.urlretrieve('https://s3-us-west-2.amazonaws.com/ai2-s2-research/scibert/pytorch_models/scibert_scivocab_uncased.tar', 'scibert.tar')

#Untar weights 
import tarfile
tar = tarfile.open('scibert.tar', "r:")
tar.extractall()
tar.close()

#Extract weights
tar = tarfile.open('scibert_scivocab_uncased/weights.tar.gz', "r:gz")
tar.extractall('scibert_scivocab_uncased')
tar.close()

os.listdir('scibert_scivocab_uncased')

!pip install pytorch-pretrained-bert

from pytorch_pretrained_bert import BertModel as OldBertModel

#Works 
oldBert = OldBertModel.from_pretrained('/content/scibert_scivocab_uncased/weights.tar.gz', cache_dir= 'TempDir')

!pip install transformers
from transformers import BertModel as NewBertModel

#Doesn't work 
newBert = NewBertModel.from_pretrained('/content/scibert_scivocab_uncased/weights.tar.gz', cache_dir= 'TempDir')
```

<!-- If you have a code sample, error messages, stack traces, please provide it here as well. -->
Here is the error 

```
---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-14-7e88a8c51c18> in <module>()
----> 1 newBert = NewBertModel.from_pretrained('/content/scibert_scivocab_uncased/weights.tar.gz', cache_dir= 'TempDir')

3 frames
/usr/local/lib/python3.6/dist-packages/transformers/modeling_utils.py in from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)
    285                 cache_dir=cache_dir, return_unused_kwargs=True,
    286                 force_download=force_download,
--> 287                 **kwargs
    288             )
    289         else:

/usr/local/lib/python3.6/dist-packages/transformers/configuration_utils.py in from_pretrained(cls, pretrained_model_name_or_path, **kwargs)
    152 
    153         # Load config
--> 154         config = cls.from_json_file(resolved_config_file)
    155 
    156         if hasattr(config, 'pruned_heads'):

/usr/local/lib/python3.6/dist-packages/transformers/configuration_utils.py in from_json_file(cls, json_file)
    184         """Constructs a `BertConfig` from a json file of parameters."""
    185         with open(json_file, "r", encoding='utf-8') as reader:
--> 186             text = reader.read()
    187         return cls.from_dict(json.loads(text))
    188 

/usr/lib/python3.6/codecs.py in decode(self, input, final)
    319         # decode input (taking the buffer into account)
    320         data = self.buffer + input
--> 321         (result, consumed) = self._buffer_decode(data, self.errors, final)
    322         # keep undecoded input until the next call
    323         self.buffer = data[consumed:]

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
```

For convenience, here is a colab notebook with the code that you can run

https://colab.research.google.com/drive/1xzYYM1_Vo4wRMicBfnfzfAg_47SitwQi

## Expected behavior

pretrained weights should load just fine. 

## Environment

* OS: Google Colab 
* Python version:
* PyTorch version:
* PyTorch Transformers version (or branch): Current
* Using GPU ?
* Distributed of parallel setup ?
* Any other relevant information:




Comments:
`from_pretrained` expects the following files: `vocab.txt`, `config.json` and `pytorch_model.bin`. 

Thus, you only need to extract the `weights.tar.gz` archive. 

Then rename `bert_config.json` to `config.json` and pass the path name to the `from_pretrained` method: this should be `/content/scibert_scivocab_uncased` in your example :)