facebook/mbart-large-50-one-to-many-mmt fails on Swahili
Author: DCNemesis
Pull request: no

## Environment info
<!-- You can run the command `transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->

- `transformers` version: 4.6.0
- Platform: Linux-5.4.109+-x86_64-with-Ubuntu-18.04-bionic
- Python version: 3.7.10
- PyTorch version (GPU?): 1.8.1+cu101 (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

@patil-suraj @patrickvonplaten 

<!-- Your issue will be replied to more quickly if you can figure out the right person to tag with @
 If you know how to use git blame, that is the easiest way, otherwise, here is a rough guide of **who to tag**.
 Please tag fewer than 3 people.

Models:

- facebook/mbart-large-50-one-to-many-mmt
- facebook/mbart-large-50-many-to-many-mmt

Library:

- benchmarks: @patrickvonplaten
- deepspeed: @stas00
- ray/raytune: @richardliaw, @amogkam
- text generation: @patrickvonplaten
- tokenizers: @LysandreJik
- trainer: @sgugger
- pipelines: @LysandreJik

Documentation: @sgugger

Model hub:

- for issues with a model report at https://discuss.huggingface.co/ and tag the model's creator.

HF projects:

- datasets: [different repo](https://github.com/huggingface/datasets)
- rust tokenizers: [different repo](https://github.com/huggingface/tokenizers)

Examples:

- maintained examples (not research project or legacy): @sgugger, @patil-suraj
- research_projects/bert-loses-patience: @JetRunner
- research_projects/distillation: @VictorSanh

 -->

## Information

Model I am using (Bert, XLNet ...):

The problem arises when using:
* [ ] the official example scripts: (give details below)
* [ x] my own modified scripts: (give details below)

The tasks I am working on is:
* [ ] an official GLUE/SQUaD task: (give the name)
* [ x] my own task or dataset: (give details below)

## To reproduce

Steps to reproduce the behavior:

1. Run the below code

```
from transformers import MBartForConditionalGeneration, MBart50TokenizerFast`

model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-50-many-to-many-mmt")
tokenizer = MBart50TokenizerFast.from_pretrained("facebook/mbart-large-50-many-to-many-mmt")

article_hi = "संयुक्त राष्ट्र के प्रमुख का कहना है कि सीरिया में कोई सैन्य समाधान नहीं है"
article_en = "Let's try this again..."
article_sw = 'Mzozo wa Israeli na Palestina:Marekani imekuwa ikiilinda Israel na kuifanya kutogoopa kufanya lolote'

# translate Hindi to Swahili
tokenizer.src_lang = "hi_IN"
encoded_hi = tokenizer(article_hi, return_tensors="pt")
generated_tokens = model.generate(**encoded_hi, forced_bos_token_id=tokenizer.lang_code_to_id["sw_KE"])
output = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
print(output)

# translate English to Swahili
tokenizer.src_lang = "en_XX"
encoded_en = tokenizer(article_en, return_tensors="pt")
generated_tokens = model.generate(**encoded_en, forced_bos_token_id=tokenizer.lang_code_to_id["sw_KE"])
output = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
print(output)

#translate Swahili to English
tokenizer.src_lang = 'sw_KE'
encoded_sw = tokenizer(article_sw, return_tensors="pt")
generated_tokens = model.generate(**encoded_sw, forced_bos_token_id=tokenizer.lang_code_to_id["en_XX"])
output = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
print(output)
```

## Expected behavior

Output is: 
['U. N. head says there is no military solution in Syria']
["! Let's try this again..."]
['The Israeli Prime Minister in Palestine: He visited Israel and visited Israel on any day of the week. Read more']

The translation from Swahili to English works, but the translations to Swahili all end up in English.


Comments:
Hi @DCNemesis 

Does this happen for this specific example or for all the examples that you tried?

And this isn't really an issue with implementation. As the model is many-to-many is not trained in every single language pair this does happen in some cases. It's likey that there's far less data for X to Swalihi translation which could be the reason for this.

@patil-suraj it fails every time I try English to Swahili. M2M100 does fine on the same tasks, so I'll probably just use that in this case, but it is hard to believe this is the intended behavior of mbart-large-50.

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md) are likely to be ignored.

This issue still has not been fixed. Mbart-large-50-many-to-many-mmt has the same issue.

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md) are likely to be ignored.

This issue has still not been fixed. 
I am unable to do translation either into or out of Kiswahili but tested other languages with the same code and it works fine.