Repetition penalty в генерации текста

Термин глоссария

Repetition penalty


Repetition penalty — механизм штрафования токенов, которые уже встречались в текущей последовательности, чтобы уменьшить повторения и зацикливание текста.

Определение

Repetition penalty — техника, которая изменяет вероятности токенов на этапе декодирования, снижая вес тех, которые модель уже использовала ранее в генерируемой последовательности. Алгоритм помогает бороться с зацикливанием, характерным для автогрегрессивных моделей: повтором одних и тех же слов, фраз или структур при низкой температуре или большой длине ответа.

Метод не меняет веса модели и не требует дообучения — корректировки применяются только на стадии выбора следующего токена.

Как работает

Для каждого токена, который уже встречался в сгенерированном тексте, применяется коэффициент штрафа r > 1. Если логит токена равен L, его значение заменяется по правилу:

— если L > 0, то L = L / r — если L < 0, то L = L · r

Такой приём уменьшает привлекательность ранее использованных токенов: даже если они остаются вероятными, их выбор становится менее предпочтительным. Это ослабляет склонность модели к многократному повторению слов, особенно в длинных ответах или при низкой температуре.

Где применяется

  • Диалоговые модели, чтобы уменьшить повторы фраз и клише.
  • Генерация длинных текстов, где модель склонна к циклам.
  • Художественные задачи, требующие разнообразия формулировок.
  • Суммаризация, чтобы итог не повторял исходные фрагменты дословно.
  • Генерация кода, где повторы могут ломать структуру.
  • ASR-транскрипции для снижения повторов слов.

Практические примеры использования

В диалоге модель может начать повторять одну и ту же фразу, если распределение вероятностей «залипло» на локальном максимуме. Repetition penalty снижает вероятность повторяющихся токенов, позволяя модели переходить к новым словам и структурам.

В генерации художественных текстов техника улучшает лексическое разнообразие: редкие слова получают шанс появиться, а часто повторяемые теряют доминирование.

В генерации кода штраф помогает избежать паразитных повторов конструкций, например многократного вывода одной и той же строки или бесконечных циклов.

В суммаризации penalty предотвращает ситуацию, когда итоговый текст включает несколько копий одного и того же предложения.

Настройки и влияние параметров

Главный параметр — коэффициент r:

  • r = 1.0 — штраф отсутствует.
  • 1.05 ≤ r ≤ 1.2 — мягкое подавление повторов.
  • 1.2 ≤ r ≤ 1.5 — сильное влияние, хорошо для длинных ответов.
  • r > 1.5 — риск разрушения связности, модель может избегать даже нужных слов.

Типовая настройка для диалоговых систем — r = 1.1–1.2. В задачах креативной генерации — 1.2–1.3.

Отличие от других методов борьбы с повторениями

  • No-repeat n-gram — жёстко запрещает повтор n-грамм; penalty работает мягче.
  • Top-p / top-k — ограничивают кандидатов, но не учитывают историю.
  • Temperature — сглаживает распределение, но не ориентируется на повторы.
  • Diverse beam search — контролирует повторяемость только в beam search.

Repetition penalty универсален: работает со всеми стратегиями выбора токена, включая sampling, beam search и greedy-модификации.

Преимущества и ограничения

  • Плюс: уменьшает зацикливание текста.
  • Плюс: повышает разнообразие формулировок.
  • Плюс: совместим с любыми стратегиями декодирования.
  • Плюс: работает без дообучения модели.
  • Минус: при слишком сильном штрафе модель избегает даже корректных слов.
  • Минус: может снижать связность при узком контексте.
  • Минус: плохо комбинируется с очень низкой температурой.
  • Минус: не решает структурные проблемы распределения логитов.

Связанные термины

  • No-repeat n-gram
  • Top-k sampling
  • Top-p sampling
  • Temperature
  • Sampling
  • Beam search
  • Greedy decoding

Категория термина

Генерация и поведение моделей