`BartForConditionalGeneration.from_pretrained` suddenly fails
Author: danieldeutsch
Pull request: no

I have been using the same `BartForConditionalGeneration` model and `transformers==3.0.2` for weeks, but today the same code threw a new error that has never happened before. It says I am passing an unexpected `output_past` parameter to `from_pretrained`. I am loading the `facebook/bart-large` model.

The line throwing the error is `BartForConditionalGeneration.from_pretrained("facebook/bart-large", output_past=True)`

```
/usr/local/lib/python3.6/dist-packages/qaeval/generation/model.py in __init__(self, vocab, model_name, max_decoding_steps, beam_size)
     59                  beam_size: int = 4) -> None:
     60         super().__init__(vocab)
---> 61         self.bart = BartForConditionalGeneration.from_pretrained(model_name, output_past=True)
     62         self.tokenizer = PretrainedTransformerTokenizer(model_name)
     63 

/usr/local/lib/python3.6/dist-packages/transformers/modeling_utils.py in from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)
    670 
    671         # Instantiate model.
--> 672         model = cls(config, *model_args, **model_kwargs)
    673 
    674         if state_dict is None and not from_tf:

TypeError: __init__() got an unexpected keyword argument 'output_past'
```

I am running this code in a Jupyter Notebook. This morning the code ran (I have all of the output saved). When I make a copy of the notebook and rerun it now without making any changes, it fails with the above error. I see that the `output_past` parameter was removed [here](https://github.com/huggingface/transformers/pull/3632/files/904b387af42744f9141a6dc4be698a5815ce5bbd), but that does not explain why it was working up until just a few hours ago.

I can see in the saved output between the two notebooks that one of the files that transformers first downloads when loading the model used to be 1.26kb in size, but now it's 1.52k. I assume this is the config file for `facebook/bart-large`.

Did anything change to that file within the past few hours? I don't know where to look for the copy of that file to see what happened. I am quite perplexed by this issue.

Comments:
I am pretty sure my guess at what happened was correct.

On one of my machines, I have the bart-large/config.json from October 12 with etag "40bd49bcec9d93d8b0bfbd020088e2e1b6e6bb03e8e80aa5144638f90ca6bd61" and it is 1.26kb. It contains an entry `"output_past": false`. Today, there is a file with a new etag "8b65d3b9a47e96c1909d807f7e7f41dd1ed95092b139965be7b914aa4fb5fd08" and it is 1.52kb. It does not contain any `output_past` entry.

What could I have done to prevent this from happening? Is there a way to specific a specific version of the models?

I can confirm your diagnostic is correct.

You can check the diff between the two versions with:
```
curl -i https://s3.amazonaws.com/models.huggingface.co/bert/facebook/bart-large/config.json?versionId=PFecmBwmg83YUwpv_kkc3kBzoCGebvu7
curl -i https://s3.amazonaws.com/models.huggingface.co/bert/facebook/bart-large/config.json?versionId=JhIFsOvvLtrLn0vJjGNN6ZhJGUlbXBEP
```

I'll let @sshleifer and @patrickvonplaten chime in about the actual file change, but to answer your last question:

> What could I have done to prevent this from happening? Is there a way to specific a specific version of the models?

We will roll out a way to specify specific versions of models in the near future.

I mistakenly changed the `config`, my fault.
Can you pass `output_past` to `__init__` or do you need me to add back the `output_past` key?

I was able to just remove the flag and it works with the updated config. To be honest, I don't know what the flag did -- I modified someone else's model which used it.

Thanks for looking into this. This issue can be closed