how to finetune or test XLM-ProphetNet on XGLUE-NTG task
Author: koukoulala
Pull request: no
Labels: name: Migration

# 📚 Migration

## Information

<!-- Important information -->

Model I am using (xprophetnet): 'microsoft/xprophetnet-large-wiki100-cased-xglue-ntg'

Language I am using the model on (English, Chinese ...): multi-language

The problem arises when using:
* [ ] the official example scripts: (give details below)
* [√] my own modified scripts: (give details below)
   Just a little change in ./examples/pytorch/summarization/run_summarization_no_trainer.py to suit for NTG task and bleu evaluation metric.

The tasks I am working on is:
* [√ ] an official GLUE/SQUaD task: (give the name): XGLUE-NTG
* [ ] my own task or dataset: (give details below)

## Details

<!-- A clear and concise description of the migration issue.
    If you have code snippets, please provide it here as well.
    Important! Use code tags to correctly format your code. See https://help.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks#syntax-highlighting
    Do not use screenshots, as they are hard to read and (more importantly) don't allow others to copy-and-paste your code.
    -->
I have tried to use open xprophetnet checkpoint "https://huggingface.co/microsoft/xprophetnet-large-wiki100-cased-xglue-ntg" to reproduce NTG test results without further training, but I have received very bad blue results. For example, the test.fr can only get 7.7, while the paper claims 11.4. The num_beams and max_source_length parameters in my script (run_summarization_no_trainer.py) are set to 10 and 512, while others are same as original default value.

Now I don't know how to reproduce the NTG results of xprophetnet. Can you show me some related inference scripts or how to fine-tune xprophetnet-ntg from the pre-trained xprophetnet-multi ckpt?

Here are some jupyter notebook examples. You can see that most generated titles are wrong, even have this ',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.


 ```
 for step, batch in enumerate(test_dataloader[lg]):
      if step > 5:
          break
      with torch.no_grad():
          generated_tokens = accelerator.unwrap_model(model).generate(
              batch["input_ids"],
              attention_mask=batch["attention_mask"],
              **gen_kwargs,
          )
          #print("generated_tokens", generated_tokens)

          generated_tokens = accelerator.pad_across_processes(
              generated_tokens, dim=1, pad_index=tokenizer.pad_token_id
          )
          #print("generated_tokens", generated_tokens)
          
          labels = batch["labels"]
          if not args.pad_to_max_length:
              # If we did not pad to max length, we need to pad the labels too
              labels = accelerator.pad_across_processes(batch["labels"], dim=1, pad_index=tokenizer.pad_token_id)
  
          generated_tokens = accelerator.gather(generated_tokens).cpu().numpy()
          labels = accelerator.gather(labels).cpu().numpy()
  
          if args.ignore_pad_token_for_loss:
              # Replace -100 in the labels as we can't decode them.
              labels = np.where(labels != -100, labels, tokenizer.pad_token_id)
          if isinstance(generated_tokens, tuple):
              generated_tokens = generated_tokens[0]
          decoded_preds = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
          decoded_labels = tokenizer.batch_decode(labels, skip_special_tokens=True)
          
          input_seq = tokenizer.batch_decode(batch["input_ids"], skip_special_tokens=True)
          print("\ninput_seq", input_seq[0][:200])
          print("decoded_preds", decoded_preds)
          print("decoded_labels", decoded_labels)
          
          # Some simple post-processing
          #decoded_preds, decoded_labels = postprocess_text(decoded_preds, decoded_labels)
```
  
  input_seq Vice-présidente de l'Assemblée nationale, la macroniste Carole Bureau-Bonnard était chargée mardi après-midi d'animer la séance d'examen du projet de loi «confiance dans l'action publique». C'était sa
  decoded_preds ["Carole Bureau-Bonnard, vice-présidente de l'Assemblée nationale, a connu une séance éprouvante", "Les plus grands fauteuils de l'île d'Antiparos"]
  decoded_labels ["Les débuts balbutiants d'une députée LREM provoque la pagaille à l'Assemblée nationale", 'Ces maisons du sud qui nous inspirent']
  
  input_seq Le procès d'un Turc de 17 ans qui avait agressé en janvier 2016 à la machette un enseignant d'une école juive de Marseille portant une kippa, s'ouvre mercredi devant le tribunal pour enfants (TPE) de 
  decoded_preds [',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,', 'The S.O.A.A.D.:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,']
  decoded_labels ['Un jeune djihadiste de 17 ans en procès à Paris', 'Canada : la forme de ce nuage est invraisemblable']
  
  input_seq Face à l'inflation des médicaments, le Comité économique des produits de santé alerte les industriels, qui répondent coûts de recherche. Une fatalité? On la surnomme "la pilule du président", car elle
  decoded_preds ['Le Keytruda est un espoir pour les malades atteints de la tumeur de Jimmy Carter', 'Les voyageurs qui utilisent Android ou iOS seraient des voyageurs préférés']
  decoded_labels ['La vérité sur... la surenchère des anticancéreux', "Dis-moi quel système d'exploitation mobile tu utilises, je te dirai quel voyageur tu es"]
  
  input_seq La République serbe de Bosnie (Republika Srpska) s'est déclarée mercredi "militairement neutre" alors que le gouvernement central de Sarajevo, les Bosniaques musulmans et les Croates de Bosnie-Herzégo
  decoded_preds ['La République serbe de Bosnie déclarée "militairement neutre"', 'Les habitudes alimentaires des Français changent, selon une étude']
  decoded_labels ['La République serbe de Bosnie proclame sa neutralité militaire', 'Les Français de plus en plus adeptes du grignotage']
  
  input_seq Eva Longoria se livre dans une interview accordée à Hollywood Access au sujet de son mari, José Baston dont elle semble éperdument amoureuse. Grande supportrice de l'ex-candidate présidentielle Hillar
  decoded_preds ["Eva Longoria s'est confiée sur le bonheur trouvé dans le bras de José Baston", '3 exercices de respiration simples à mettre en oeuvre pour se détendre']
  decoded_labels ['Avec Pepe, Eva Longoria file le parfait amour', '3 exercices de respiration qui vont vous sauver en cas de coup de stress']
  
  input_seq Le kaki fait son grand come-back dans notre dressing. Par petites touches ou en total look, voici 20 tenues repérées sur Pinterest pour être stylée en kaki.. Un blouson satiné kaki avec une jupe fleur
  decoded_preds ['20 tenues pour être stylée en kaki', 'La tuerie de Las Vegas relance le débat sur le contrôle des armes à feu aux Etats-Unis']
  decoded_labels ['Pinterest : 20 façons de porter du kaki ce printemps', 'Fusillades: Les Etats-Unis pays développé le plus meurtrier au monde']



## Environment info
<!-- You can run the command `python transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->
 
- `transformers` version:
- PyTorch version (GPU):
- Using GPU in script?:

<!-- IMPORTANT: which version of the former library do you use? -->
* `pytorch-transformers` or `pytorch-pretrained-bert` version (or branch):
pytorch-transformers

## Checklist

- [√ ] I have read the migration guide in the readme.
 ([pytorch-transformers](https://github.com/huggingface/transformers#migrating-from-pytorch-transformers-to-transformers);
  [pytorch-pretrained-bert](https://github.com/huggingface/transformers#migrating-from-pytorch-pretrained-bert-to-transformers))
- [√ ] I checked if a related official extension example runs on my machine.


Comments:
I think XLMProphetNet and ProphetNet training is currently broken, see: https://github.com/huggingface/transformers/issues/9804

There might be a PR to fix it though https://github.com/huggingface/transformers/pull/13132

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.