TL;DR
LLM отвечает лучше, когда промпт написан обычными, распространёнными словами — даже если смысл вопроса не меняется. Одна и та же задача, сформулированная через редкие или необычные выражения, даёт заметно хуже результат. Это назвали «Законом текстовой частотности» (Textual Frequency Law, TFL).
Слабое место LLM: модель обучалась на огромных текстах из интернета, где одни слова встречаются миллионы раз, другие — единицы. Когда твой вопрос написан редкими словосочетаниями, модель генерирует ответ по менее надёжному паттерну — как если бы ты вспоминал правило, которое выучил один раз, а не сотни. Результат нестабильный: правильный ответ по той же задаче в «редкой» формулировке модель находит реже.
Метод решает это в два шага: сначала перефразировать запрос в более распространённые формулировки, потом отвечать. Можно сделать это вручную или попросить саму модель сгенерировать несколько парафразов и выбрать самый «обычный».
Схема метода
ШАГ 1: Перефразировать запрос
→ попросить LLM сгенерировать 3-5 версий вопроса
разными словами, но с тем же смыслом
→ выбрать ту, что звучит наиболее «обыденно и просто»
ШАГ 2: Ответить на перефразированный вопрос
→ задать выбранную версию как итоговый промпт
→ получить ответ
Оба шага можно объединить в один промпт — LLM сделает всё внутри одного запроса.
Пример применения
Задача: Проверить бизнес-идею — доставка еды из ресторанов только с рейтингом 4.8+ на Яндекс.Картах. Нужен честный разбор слабых мест.
Промпт:
У меня есть концепция: сервис доставки еды, который агрегирует только рестораны
с рейтингом 4.8 и выше на Яндекс.Картах. Позиционирование — «только проверенное».
Прежде чем отвечать, сделай следующее:
1. Перепиши мой вопрос тремя разными способами — используй обычные,
повседневные слова, которые встречаются в обычных разговорах и статьях.
2. Выбери из трёх вариантов тот, что звучит наиболее естественно
и привычно для русского читателя.
3. Ответь именно на эту выбранную версию вопроса.
Меня интересует: какие главные слабые места у этой идеи? Что может пойти не так?
Результат: Модель покажет три переформулировки вопроса, укажет выбранную версию с объяснением. Затем ответит на неё — разбор будет более конкретным и связным, чем при прямом вопросе, особенно если оригинальный запрос содержал деловой жаргон или необычные конструкции.
Почему это работает
LLM не «понимает» слова — она предсказывает токены по паттернам из обучения. Слово «агрегировать» встречается в тренировочных текстах реже, чем «собирать». Слово «концепция» — реже, чем «идея». Каждый редкий токен — это шаг по менее истоптанной дорожке. Ошибок становится больше.
Модель лучше всего работает там, где у неё больше всего примеров из обучения. Частые слова и обороты — это хорошо накатанные рельсы. Рассуждение идёт плавнее, цепочка логики меньше «соскальзывает».
Метод использует саму модель как инструмент перефразирования — попросить LLM переформулировать запрос попроще — это сдвиг к более надёжной зоне. Можно контролировать результат: чем больше парафразов попросишь, тем больше вариантов для выбора.
Рычаги управления: - Количество вариантов (3 → 5 → 10) — больше вариантов, выше шанс найти оптимальную формулировку - Критерий выбора — вместо "наиболее обычный" можно написать "наиболее похожий на популярную статью в Т—Ж" — это конкретизирует целевой стиль - Автовыбор vs. ручной — можно попросить модель выбрать самой, или выбирать вручную из списка - Итерация — взять выбранный вариант и прогнать ещё один круг перефразирования для сложных задач
Шаблон промпта
Прежде чем отвечать на мой вопрос, выполни три шага:
1. Перефразируй мой вопрос {число} разными способами.
В каждом варианте используй простые, повседневные слова —
те, что чаще встречаются в обычных текстах и разговорах.
2. Выбери из вариантов тот, что звучит наиболее естественно
и привычно. Укажи, почему выбрал именно его.
3. Ответь на этот выбранный вариант.
Мой вопрос: {вопрос}
Плейсхолдеры:
- {число} — сколько парафразов генерировать: 3 для простых задач, 5-7 для сложных
- {вопрос} — твой исходный запрос как есть, без правок
🚀 Быстрый старт — вставь в чат:
Вот шаблон метода TFL. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про саму задачу и желаемый стиль ответа — потому что метод перефразирования работает лучше, когда есть ориентир для «правильного» стиля (деловой, разговорный, журналистский и т.д.). Она возьмёт структуру шаблона и подберёт формулировки под твой контекст.
Ограничения
⚠️ Семантический дрейф: При перефразировании смысл может незаметно сдвинуться. В исследовании треть пар отбраковали живые аннотаторы именно по этой причине. Если задача точная (юридический текст, технические условия) — проверяй, не потерялось ли ключевое условие при перефразировании.
⚠️ Работает для сложных задач: На простых вопросах (столица страны, базовое определение) разница незначительна. Эффект ярче всего проявляется там, где модели нужно строить цепочку рассуждений — математика, анализ, доводы.
⚠️ Протестировано на английском: Эксперименты проводились на английских промптах. Для русского принцип должен работать аналогично (модели обучены на данных с похожим распределением частотности), но эффект может быть менее выраженным.
⚠️ TFD и CTFT — не для чата: Два из трёх компонентов фреймворка (дистилляция частотности и дообучение) требуют доступа к весам модели и запуска обучения. В обычном чате недоступны.
Как исследовали
Команда собрала парный датасет TFPD: взяли 1319 задач из GSM8K (математические задачи) и 1012 фраз из FLORES-200 (перевод), попросили GPT-4o-mini сгенерировать по 20 парафразов каждого предложения, а потом три живых аннотатора с лингвистическим образованием проверили: одинаковый ли смысл сохранился. Прошли проверку ~56% пар для математики и ~52% для перевода — остальные отбраковали из-за семантического дрейфа. Из каждой прошедшей пары взяли самую «редкую» и самую «частотную» версию.
Затем прогнали оба варианта через DeepSeek-V3, GPT-4o-mini и LLaMA-3.3-70B. Результат оказался неожиданно чистым: высокочастотная версия выигрывала во всех трёх моделях без исключений. Интересная деталь — когда модель правильно решала задачу в «редкой» формулировке, она всегда решала её и в «частотной». Обратное неверно: часть задач, проваленных в «редкой» версии, успешно решалась в «частотной». То есть перефразирование добавляло решённые задачи, не ломая уже решённые.
На переводе проверили 100 языков, включая редкие — улучшение держалось на 99 из 100 языковых пар по метрике BLEU.
Адаптации и экстраполяции
🔧 Техника: Мета-промпт «упрости перед ответом»
Если не хочешь явно просить несколько вариантов — добавь одну строку в начало любого промпта:
Сначала перепиши мой запрос простыми, обычными словами.
Потом ответь на переписанную версию.
[твой вопрос]
Это быстрее и работает для большинства задач, где оригинальный запрос написан канцелярским или жаргонным языком.
🔧 Техника: Частотность как фильтр для кандидатов
Если LLM генерирует несколько вариантов ответа (например, несколько вариантов заголовка, оффера или формулировки) — попроси выбрать тот, «который чаще всего встречается в обычной речи». Это способ применить принцип TFL к выходу модели, а не только к входу.
Предложи 5 вариантов заголовка для {задача}.
Потом выбери из них тот, слова которого наиболее часто встречаются
в обычных статьях и разговорах — без жаргона и редких оборотов.
Объясни свой выбор.
Ресурсы
Adam's Law: Textual Frequency Law on Large Language Models Hongyuan Adam Lu, Z.L., Victor Wei, Zefan Zhang, Zhao Hong, Qiqi Xiang (FaceMind Corporation), Bowen Cao, Wai Lam (The Chinese University of Hong Kong) GitHub: github.com/HongyuanLuke/frequencylaw Инструмент частотности слов: github.com/rspeer/wordfreq
