TypeError: __init__() got an unexpected keyword argument 'force_bos_token_to_be_generated'
Author: t4khosu
Pull request: no

## Environment info

- `transformers` version: 4.6.1
- Platform: Linux-3.10.0-1160.15.2.el7.x86_64-x86_64-with-glibc2.10
- Python version: 3.8.8
- PyTorch version (GPU?): 1.7.1 (False)
- Tensorflow version (GPU?):  2.4.1 (False)
- Using GPU in script?: no
- Using distributed or parallel set-up in script?: no

### Who can help

@patrickvonplaten, @patil-suraj

## Information

The model I am using is BART

The problem arises when using:
* [x] the official example scripts: (https://huggingface.co/transformers/model_doc/bart.html)

## To reproduce

Steps to reproduce the behavior:

1. Install transformers library
2. run the following code-snipped as presented in the official example:

```
from transformers import BartForConditionalGeneration, BartTokenizer
model = BartForConditionalGeneration.from_pretrained("facebook/bart-large", force_bos_token_to_be_generated=True)
```
3. Receive error:

```
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-21-216ff3421f95> in <module>
      1 from transformers import BartForConditionalGeneration, BartTokenizer
----> 2 model = BartForConditionalGeneration.from_pretrained("facebook/bart-large", force_bos_token_to_be_generated=True)
      3 tok = BartTokenizer.from_pretrained("facebook/bart-large")
      4 example_english_phrase = "UN Chief Says There Is No <mask> in Syria"
      5 batch = tok(example_english_phrase, return_tensors='pt')

~/.conda/envs/groundwork/lib/python3.8/site-packages/transformers/modeling_utils.py in from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)
   1171         else:
   1172             with no_init_weights(_enable=_fast_init):
-> 1173                 model = cls(config, *model_args, **model_kwargs)
   1174 
   1175         if from_tf:

TypeError: __init__() got an unexpected keyword argument 'force_bos_token_to_be_generated'
```

## Expected behavior

I expect the code to not raise an exception and that the final assertion is true.

If there are more information needed, please let me know.


Comments:
Hi there,

`force_bos_token_to_be_generated` is now depricated, instead you could use `forced_bos_token_id` argument, which should be set to the token id that needs to be forced as first token.

Thanks a lot for your fast reply!

As suggested, I used the BART tokenizer to find out the bos_token ID and now it works perfectly fine (:

> Hi there,
> 
> `force_bos_token_to_be_generated` is now depricated, instead you could use `forced_bos_token_id` argument, which should be set to the token id that needs to be forced as first token.

Hello @patil-suraj. 

I ran the following code in Colab and it worked but could you confirm that corresponds to what you wrote? Thanks.

```
from transformers import BartForConditionalGeneration, BartTokenizer

model = BartForConditionalGeneration.from_pretrained("facebook/bart-large")
tok = BartTokenizer.from_pretrained("facebook/bart-large")

example_english_phrase = "UN Chief Says There Is No <mask> in Syria"
batch = tokenizer(example_english_phrase, return_tensors='pt')

generated_ids = model.generate(batch['input_ids'], forced_bos_token_id = batch['input_ids'][0][0])
tok.batch_decode(generated_ids, skip_special_tokens=True)[0] 
# assert tok.batch_decode(generated_ids, skip_special_tokens=True) == ['UN Chief Says There Is No Plan to Stop Chemical Weapons in Syria']
```

Hi @piegu 

It's not necessary to use `forced_bos_token_id ` with `facebook/bart-large`, it's only needed for bart-cnn models 

> It's not necessary to use `forced_bos_token_id ` with `facebook/bart-large`, it's only needed for bart-cnn models

Hello @patil-suraj,

I'm not sure to understand your answer. 

1.  If you run [my code](https://github.com/huggingface/transformers/issues/11952#issuecomment-923264808) about `facebook/bart-large` with `forced_bos_token_id`, you get a clear output: 
`UN Chief Says There Is No Plan to Stop Chemical Weapons in Syria`
2. If you run it without (`generated_ids = model.generate(batch['input_ids']`), you get this: `UNALSO SEE`
3. There is clearly a difference that shows that `forced_bos_token_id` has an impact with `facebook/bart-large`, no?
4. bart-cnn models are finetuned model for summarization, no? (like `https://huggingface.co/ainize/bart-base-cnn`). How do you use `forced_bos_token_id` with them?
4. I think the HF doc is not updated about this: https://huggingface.co/transformers/model_doc/bart.html#mask-filling

**Note**: just to give an overview of this discussion, I'm researching the right code to get the BART, mBART, and MBART-50 language models making multiple token masks (ie writing zero or more tokens in the output sentence when there is a `<mask>` token in the input one) with the objective to get the full output sentence.