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