Truncated results on some text

#3
by Sergej - opened

When testing the model I noticed that the output seems to be truncated in some cases.
For example the text:
"Die deutsche Auswahl fand auch Mitte der ersten Hälfte kein Mittel gegen den forschen Auftritt des EM-Halbfinalisten von 2017. Das aggressive Pressing der Österreicherinnen schmeckte den Deutschen gar nicht. Das zweite Turniertor Magulls nach starker Vorarbeit von Klara Bühl und Popp fiel aus dem Nichts. Auch der Führungstreffer beruhigte die Nerven nicht Doch selbst der Treffer gab der DFB-Elf keinen Rückenwind, auch nach einer halben Stunde lief in der Offensive nicht viel zusammen. Immerhin die Abwehr stand in dieser Phase besser. Die Führung zur Pause war trotz der Möglichkeit von Svenja Huth (43.) schmeichelhaft. Nur 16 Sekunden nach dem Wiederbeginn hätte Giulia Gwinn die Nerven beruhigen können, die Außenverteidigerin traf aber nur den Pfosten. Auf der Gegenseite landete der Distanzschuss von Barbara Dunst an der Latte (53.). Nur vier Minuten später schepperte es wieder am deutschen Gehäuse. Sarah Puntigam traf den Pfosten. In der 64. Minute ging die angeschlagene Torschützin Magull vom Platz. Fünf Minuten später vergab die eingewechselte Linda Dallmann bei einem Konter die Chance auf das zweite deutsche Tor. Bühl traf mit einem satten Distanzschuss die Latte (78. ), wenig später vergab sie aus wenigen Metern kläglich die Entscheidung (82.). Für diese sorgte dann Popp."

Results in:
"Die deutsche Mannschaft fand auch Mitte der ersten Hälfte kein Mittel gegen den forschen Auftritt des EM - Halbfinalisten von 2017. Das aggressive Pressing der Österreicherinnen schmeckte den Deutschen gar nicht. Das zweite Turniertor Magulls nach starker Vorarbeit von Klara Bühl und Popp fiel aus dem"

Any ideas why this is happening?

Hi, @Sergej . Could you send me your generation params?

Hello Manuel

Thanks for the quick reply! This happens directly on the model card or with the default settings. That means using the code of the model card with the text above results in a truncation as well.

For a quick sanity check you can use this code:

import torch
from transformers import BertTokenizerFast, EncoderDecoderModel
device = 'cuda' if torch.cuda.is_available() else 'cpu'
ckpt = 'mrm8488/bert2bert_shared-german-finetuned-summarization'
tokenizer = BertTokenizerFast.from_pretrained(ckpt)
model = EncoderDecoderModel.from_pretrained(ckpt).to(device)
def generate_summary(text):
   inputs = tokenizer([text], padding="max_length", truncation=True, max_length=512, return_tensors="pt")
   input_ids = inputs.input_ids.to(device)
   attention_mask = inputs.attention_mask.to(device)
   output = model.generate(input_ids, attention_mask=attention_mask)
   return tokenizer.decode(output[0], skip_special_tokens=True)

text = "Die deutsche Auswahl fand auch Mitte der ersten Hälfte kein Mittel gegen den forschen Auftritt des EM-Halbfinalisten von 2017. Das aggressive Pressing der Österreicherinnen schmeckte den Deutschen gar nicht. Das zweite Turniertor Magulls nach starker Vorarbeit von Klara Bühl und Popp fiel aus dem Nichts. Auch der Führungstreffer beruhigte die Nerven nicht Doch selbst der Treffer gab der DFB-Elf keinen Rückenwind, auch nach einer halben Stunde lief in der Offensive nicht viel zusammen. Immerhin die Abwehr stand in dieser Phase besser. Die Führung zur Pause war trotz der Möglichkeit von Svenja Huth (43.) schmeichelhaft. Nur 16 Sekunden nach dem Wiederbeginn hätte Giulia Gwinn die Nerven beruhigen können, die Außenverteidigerin traf aber nur den Pfosten. Auf der Gegenseite landete der Distanzschuss von Barbara Dunst an der Latte (53.). Nur vier Minuten später schepperte es wieder am deutschen Gehäuse. Sarah Puntigam traf den Pfosten. In der 64. Minute ging die angeschlagene Torschützin Magull vom Platz. Fünf Minuten später vergab die eingewechselte Linda Dallmann bei einem Konter die Chance auf das zweite deutsche Tor. Bühl traf mit einem satten Distanzschuss die Latte (78. ), wenig später vergab sie aus wenigen Metern kläglich die Entscheidung (82.). Für diese sorgte dann Popp."

print(generate_summary(text))

I will check it out. In the meantime you can check the generate API and play with min and max length parameters

Thanks I appreciate that. I was just curious about this because I noticed similar behaviour in other models as well, for example the ones that are based on MT5.

Sign up or log in to comment