Die Repetition Penalty (Wiederholungsstrafe) ist ein Decoding-Parameter, der Sprachmodelle daran hindert, dieselben Tokens oder Phrasen in einer Schleife zu wiederholen. Sie bestraft Tokens, die im bereits generierten Text vorkommen, indem ihre Wahrscheinlichkeit gesenkt wird.

So funktioniert die Repetition Penalty

Sprachmodelle neigen dazu, sich zu wiederholen — besonders bei langen Generierungen oder wenn sie untertrainiert sind. Die Repetition Penalty greift in die Logits ein: Ist ein Token bereits im bisherigen Text erschienen, wird sein Logit durch den Strafwert dividiert (multiplikative Variante) oder ein fester Betrag abgezogen (additive Variante). Danach läuft die Softmax-Berechnung wie gewohnt, und das bestrafte Token hat eine geringere Chance, erneut gewählt zu werden.

Das Prinzip geht auf das CTRL-Modell (Keskar et al., 2019) zurück, das kontrollierbare Textgenerierung untersuchte. Übliche Strafwerte liegen knapp über 1 (zum Beispiel 1,05 bis 1,2); je höher der Wert, desto stärker vermeidet das Modell Wiederholungen — zu hohe Werte lassen den Text aber unnatürlich wirken.

Varianten

  • Multiplikativ (z. B. repetition_penalty in Hugging Face Transformers): bereits erschienene Logits werden durch den Faktor geteilt.
  • Additiv (z. B. presence_penalty / frequency_penalty in OpenAI-APIs): ein fester Betrag pro Erscheinen wird abgezogen — presence bestraft einmaliges Auftreten, frequency bestraft häufiges Auftreten stärker.

Verwandte Grundlagen: Temperatur (LLM), Top-k-Sampling, Greedy Decoding.

Mehr zum Thema: Large Language Model, Self-Consistency, Chain-of-Thought.