Translate English into Japanese using mbart
Author: DUT-Tjy
Pull request: no

Transformers version: 4.4.0.dev0
Hello, I am trying to translate English into Japanese(en-ja). I confirm that there is no error in my target content and source content. However, when I try to translate, the result of predict is always English. What should I do?

I only changed config.json as shown below:
"task_specific_params": {
    "translation_en_to_ja": { "decoder_start_token_id": 250020}
  }

I execute run_seq2seq.py through the following command：
python run_seq2seq.py
--model_name_or_path facebook/mbart-large-cc25 
--do_train 
--do_eval 
--do_predict 
--task translation_en_to_ja 
--source_lang en_XX 
--target_lang ja_XX 
--train_file train.json 
--validation_file val.json 
--test_file test.json 
--output_dir result
--per_device_train_batch_size=4 
--per_device_eval_batch_size=4 
--overwrite_output_dir 
--predict_with_generate

The results of the model predict are as follows：
test_bleu                 =   1.665
test_gen_len              =    41.0
test_loss                 =  4.2494
test_mem_cpu_alloc_delta  =     0MB
test_mem_cpu_peaked_delta =     8MB
test_runtime              = 77.6885
test_samples              =       4
test_samples_per_second   =   0.051

Am I not setting the config.json correctly? Or there are other things that need to be set up? 
Looking forward to your reply.
@patil-suraj



Comments:
Hi @DUT-Tjy 

`facebook/mbart-large-cc25` is not fine-tuned for translation, it's a pretrained model, which should be fine-tuned if you want to use it for translation. You could use the `mbart-large-50-one-to-many-mmt` or `mbart-large-50-many-to-many-mmt` model for `en-ja` translation, these are fine-tuned multilingual translation models.
https://huggingface.co/models?filter=mbart-50

We have stopped supporting the `task_specific_params` params. You should directly set the `decoder_start_token_id` in `config`, instead of `config.task_specific_params`. 

Thank you for your reply!
I execute run_seq2seq.py again through the following command：
python transformers/examples/seq2seq/run_seq2seq.py
--model_name_or_path facebook/mbart-large-50-one-to-many-mmt
--do_predict
--task translation_en_to_ja
--source_lang en_XX
--target_lang ja_XX
--train_file train.json
--validation_file val.json
--test_file test.json
--output_dir predict
--per_device_train_batch_size=4
--per_device_eval_batch_size=4
--overwrite_output_dir
--predict_with_generate

However, the generated prediction content is not Japanese, but a mixture of languages, as follows:
Ik zal jullie vandaag leren hoe je onderzoek doet.
[وکٹر] بس انلاین تلاش کرنے کی طرح؟
En nee.

The contents of test.json are as follows
{"translation": {"ja": "オンライン調査みたいなものですか？", "en": "Like just searching online?"}}
{"translation": {"ja": "それも含みます。", "en": "Yes and no."}}

Is there something wrong with the command I set?
Looking forward to your reply.
@patil-suraj

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.

@DUT-Tjy  Hi, I also face this problem. I expect my generated sentences are only in the Vietnamese language, but they are mixed in both English and Vietnamese. Have you resolved it? If yes, could you please share the solution with me?