TL;DR
REFER (Frequency Framed Prompting) — техника, которая заменяет абстрактные инструкции на явные числа. Вместо "будь справедливым при суммаризации мнений" модель получает: "определи сколько отзывов из {N} позитивных и негативных, затем сгенерируй саммари с этими пропорциями".
LLM плохо следуют абстрактным указаниям типа "будь сбалансированным" или "учти все мнения". Как человек, которого попросили "быть объективным" без конкретных критериев — каждый понимает по-своему. Модели ошибаются не потому что не хотят быть справедливыми, а потому что не понимают ЧТО это значит в цифрах. Результат: из 8 отзывов (4+ и 4-) саммари может получиться перекошенным в любую сторону.
Техника решает проблему через двухшаговую структуру: (1) явный подсчёт частот мнений ("4 из 8 позитивные, 4 из 8 негативные"), (2) генерация саммари с сохранением этих пропорций. Принцип взят из когнитивной науки: люди точнее рассуждают, когда вопрос в формате частот ("из 100 случаев"), а не вероятностей ("вероятность 50%"). LLM тренированы на человеческих текстах — работает аналогично.
Схема метода
Базовый REFER:
ШАГ 1: Определи частоты → "N из M позитивных, K из M негативных"
ШАГ 2: Суммаризируй → сохрани пропорции из шага 1
CoT-REFER (лучший результат):
"Давай пошагово.
Сначала определи: сколько отзывов из {N} позитивных/негативных.
Затем создай саммари, отражающее эти пропорции."
Выполняется в одном промпте, но с явной последовательностью рассуждений.
Пример применения
⚠️ Ограничение метода: Работает когда можно чётко разделить контент на категории (позитив/негатив, за/против). Не подходит для субъективных критериев без явной классификации.
Задача: Анализируешь отзывы на курс по нетворкингу. 15 отзывов разбросаны от "изменило карьеру" до "пустая трата денег". Нужно понять реальную картину, не перекошенную в одну сторону.
Промпт CoT-REFER:
Давай пошагово:
1. Прочитай 15 отзывов на курс
2. Определи сколько из них позитивных, нейтральных, негативных
3. Создай краткое саммари (3-4 предложения), сохраняя найденные пропорции
Отзывы:
[вставить 15 отзывов]
Результат: Модель выдаст:
- Первый блок: "Из 15 отзывов: 8 позитивных, 4 нейтральных, 3 негативных"
- Второй блок: Саммари примерно 50% про плюсы, 25% нейтрально, 25% минусы
- Без явного подсчёта модель могла бы сфокусироваться на самых ярких (часто экстремальных) мнениях
Почему это работает
Слабость LLM: Абстрактные понятия типа "справедливость", "баланс", "объективность" модель интерпретирует случайно. Нет внутреннего счётчика пропорций — только паттерны из обучающих текстов.
Сильная сторона LLM: Отлично следует структурированным инструкциям с конкретными числами. Когда видит "4 из 8" — это якорь для генерации, как координаты на карте.
Механика обхода: Frequency framing делает три вещи:
- Явный reference class — "из 8 отзывов" вместо "в целом"
- Числовой якорь — "4 позитивных, 4 негативных" как целевые пропорции
- Последовательное рассуждение — сначала анализ, потом генерация (не смешиваем)
Рычаги управления:
- Числа итераций: "Пересчитай дважды перед саммари" → точнее, но дороже по токенам
- Детализация категорий: Вместо позитив/негатив → 5 градаций → тоньше, но сложнее подсчёт
- Инструкции вывода: Убери "кратко" → увидишь развёрнутый подсчёт вместо только итога
Шаблон промпта
Давай пошагово:
1. Проанализируй {материалы}
2. Определи частоту появления {категория_1}, {категория_2}, {категория_3}
3. Сгенерируй {результат}, сохраняя найденные пропорции
{твои_материалы}
Что подставлять:
{материалы}— "15 отзывов", "30 твитов", "10 статей"{категория_X}— "позитивных/негативных", "за/против реформы", "технических/бизнес аспектов"{результат}— "краткое саммари 3-4 предложения", "список ключевых тезисов"
Усиление через CoT: Начни с "Давай пошагово" или "Let's think step by step" — модель активнее включает рассуждения.
Ограничения
⚠️ Размер модели критичен: На Llama 3-8B эффект слабый или негативный. Маленькие модели игнорируют сложные двухшаговые инструкции. Работает с GPT-4o, Claude 3.5 Sonnet, Llama 3-70B+.
⚠️ Нужна чёткая классификация: Если категории размыты ("креативный/скучный текст") — подсчёт частот не поможет. Работает для бинарных/множественных чётких делений.
⚠️ Требует знания правильных пропорций: Oracle prompt (с реальными частотами) работает лучше. Если не знаешь правильное распределение — модель сама может ошибиться при подсчёте.
Как исследовали
Команда взяла два датасета: политические твиты (FairSumm) и отзывы на товары Amazon (2023). Собрали 900 наборов для каждого: по 30 твитов или 8 отзывов в каждом. Распределение мнений варьировали: 50/50 (баланс), 75/25 и 25/75 (перекос).
Тестировали 5 моделей: GPT-3.5-Turbo, GPT-4o-mini, GPT-4o, Llama 3-8B, Llama 3-70B. Сравнивали базовые промпты (Direct, CoT, роли, агенты) с их REFER-версиями.
Измеряли справедливость через 4 метрики: SPD и SOF (сохранение пропорций), BUR и UER (покрытие всех групп). Чем ниже значения — тем лучше модель сохранила распределение мнений из источника.
Неожиданно: REFER давал больший скачок справедливости, чем выбор между разными базовыми фреймворками. То есть "как спросить" (с частотами или без) важнее "в каком стиле" (CoT/роль/агенты). Но с одним НО — только на больших моделях.
Качественный анализ выявил проблему: Llama 3-8B полностью игнорировала инструкцию "сначала посчитай, потом суммаризируй" и сразу начинала с "Overall, this product has mixed reviews". Llama 3-70B честно выполняла: "Out of 8 reviews, 4 are positive and 4 are negative" → потом саммари. Это объясняет почему на маленьких моделях техника проваливается — они просто не следуют сложным двухшаговым командам.
Адаптации и экстраполяции
💡 Адаптация: Анализ тональности клиентских запросов
Вместо отзывов — заявки в техподдержку. Понять не просто "что люди пишут", а какова реальная структура проблем.
У меня 50 обращений клиентов за неделю.
Пошагово:
1. Классифицируй каждое по типу: багрепорт/фича-реквест/вопрос/жалоба
2. Посчитай частоту каждого типа
3. Создай краткий отчёт для команды разработки с акцентом на самые частые категории
[вставить обращения]
Результат: вместо субъективного "много жалоб" → точно "20 багрепортов, 15 фича-реквестов, 10 вопросов, 5 жалоб".
💡 Адаптация: Сбалансированный research разных точек зрения
Изучаешь спорный вопрос (например, 4-дневная рабочая неделя). Хочешь видеть ВСЕ аргументы пропорционально, не перекос в одну сторону.
Найди 10 статей про 4-дневную рабочую неделю (5 за, 5 против).
Пошагово:
1. Посчитай ключевые аргументы ЗА и ПРОТИВ
2. Определи частоту каждого аргумента (если "рост продуктивности" встретился в 4 из 5 статей "за" — это 80%)
3. Создай balanced summary, где вес аргумента = частота упоминания
[список статей с ссылками]
🔧 Техника: Добавь визуализацию подсчёта
Стандартный REFER выдаёт "4 из 8 позитивных" текстом. Можно усилить:
...
2. Определи частоты И ПОКАЖИ В ТАБЛИЦЕ:
| Категория | Количество | % |
|-------------|-----------|------|
| Позитивные | ? | ? |
| Негативные | ? | ? |
3. Создай саммари...
Таблица = дополнительный якорь для модели. Сложнее "забыть" пропорции при генерации.
🔧 Техника: Frequency framing для креатива
Принцип работает не только для анализа. Применим к генерации.
Напиши пост для LinkedIn о нашем продукте.
Частотная структура:
- 40% (2-3 предложения): конкретная проблема клиента
- 30% (1-2 предложения): как продукт решает
- 20% (1 предложение): социальное доказательство
- 10% (призыв к действию)
Сначала покажи план с подсчётом предложений, потом напиши текст.
Вместо "сбалансированный пост" → точные пропорции контента.
Ресурсы
Оригинальная работа: REFER: Mitigating Bias in Opinion Summarisation via Frequency Framed Prompting
Авторы: Nannan Huang, Haytham M. Fayek, Xiuzhen Zhang
Университет: RMIT University, Австралия
Релевантные исследования упомянутые в статье:
- Gigerenzer & Hoffrage (1995, 1999) — frequency formats vs probabilities в когнитивной науке
- Tversky & Kahneman (1974, 1983) — heuristics and biases, extensional vs intuitive reasoning
- Chain-of-Thought prompting (Wei et al., 2022)
- Plan-and-Solve prompting (Wang et al., 2023)
