TL;DR
Исследователи протестировали три способа задавать множественные вопросы LLM: battery (все вопросы в одном промпте), sequential (по очереди в одной беседе) и single-item (каждый вопрос в новом чате). Проверили на 40+ миллионах ответов от 10 моделей на реальных опросах — политические взгляды, социологические исследования, социальная психология.
Главные находки: recency bias — модели выбирают последний вариант ответа в 20 раз чаще первого (Llama-3.1-8B), даже если смысл одинаковый. Middle category bias — 67-89% моделей чаще выбирают средний вариант в нечётных шкалах (1-5 вместо 1-4). Опечатки, перефразирование, реверс порядка вариантов — всё существенно меняет ответы. Причина: модели генерируют текст слева направо, последние токены "свежее" в контексте. Средний вариант воспринимается как "безопасный" нейтральный ответ.
Battery presentation (все вопросы в одном промпте) даёт на 8% лучшее соответствие человеческим ответам и экономит в 2-6 раз токены по сравнению с sequential/single-item. Для закрытых вопросов лучше работают structured outputs (JSON) и Verbalized Distribution — модель называет вероятность каждого варианта словами: "60% уверен в А, 30% в Б, 10% в В".
Три формата вопросов
BATTERY (батарея): Все вопросы в одном промпте → модель отвечает на всё сразу
SEQUENTIAL (последовательный): Вопрос → ответ → следующий вопрос в том же чате → ответ...
SINGLE-ITEM (отдельный): Каждый вопрос в новом чате, без контекста предыдущих
Пример применения
⚠️ Сначала поймём ограничения: - Не для творческих задач без критериев - Не для простых одиночных вопросов - Эффект проявляется при множественных вопросах с закрытыми вариантами ответа
Сильная зона: оценка чего-либо по нескольким критериям, где нужны структурированные ответы и экономия токенов.
Задача: Ты венчурный инвестор, смотришь российский edtech-стартап. Нужно оценить по 5 критериям: команда, продукт, рынок, юнит-экономика, риски. Вместо 5 отдельных запросов — один промпт с battery presentation.
Промпт:
Ты — венчурный инвестор, смотришь edtech-стартап "Учи.Код" — платформа для обучения детей программированию.
Краткая информация:
- Команда: 2 основателя (ex-Яндекс, ex-VK), опыт в edtech 3 года
- Продукт: онлайн-курсы Python для детей 8-14 лет, геймификация
- Рынок: Россия, рынок детского доп.образования 180 млрд руб/год
- Экономика: средний чек 15 000 руб/курс, CAC 3 000 руб, retention 40%
- Конкуренты: Алгоритмика, Кодланд, Пиксель
Оцени стартап по каждому критерию. Формат ответа — JSON:
{
"команда": {
"оценка": "Высокая/Средняя/Низкая",
"вероятность_успеха": "60%",
"ключевой_фактор": "краткое пояснение"
},
"продукт": {
"оценка": "Высокая/Средняя/Низкая",
"вероятность_успеха": "60%",
"ключевой_фактор": "краткое пояснение"
},
"рынок": {...},
"юнит_экономика": {...},
"риски": {...}
}
⚠️ Важно: не давай всем критериям одинаковую оценку. Оценивай независимо.
Результат:
Модель выдаст структурированный JSON с оценками по всем пяти критериям в одном ответе. Формат позволяет сразу увидеть полную картину и сравнить критерии. Экономия: вместо 5 запросов по ~500 токенов (2500 токенов) — один запрос ~600-800 токенов.
⚠️ Но учитывай recency bias: Если попросишь выбрать один вариант из списка А/Б/В — модель в 20 раз чаще выберет В. Поэтому в примере выше используется Verbalized Distribution (вероятность в процентах) + JSON для структуры.
Почему это работает
Слабость LLM: Модели генерируют текст слева направо, поэтому последние токены "свежее" в контексте внимания. При выборе варианта А/Б/В модель видит В последним и придаёт ему больший вес. Это называется recency bias — не ошибка, а архитектурная особенность трансформеров. При нечётных шкалах (1-5) модели воспринимают средний вариант как "безопасный нейтральный" и чаще выбирают его.
Сильная сторона LLM: Модели хорошо держат контекст и могут обработать несколько связанных задач в одном промпте (multitask in battery). Это экономит токены на повторяющихся инструкциях и позволяет модели видеть полную картину, а не отвечать на вопросы изолированно.
Как метод использует сильную сторону: Battery presentation загружает все вопросы сразу — модель видит полную структуру задачи и может учитывать связи между вопросами. Structured outputs (JSON) заставляют модель следовать формату, а не генерировать свободный текст. Verbalized Distribution ("60% уверен") обходит recency bias — вместо выбора одного варианта модель распределяет вероятности словами, что снижает влияние позиции варианта.
Рычаги управления:
- Формат вопросов — battery для экономии токенов, single-item если нужна изоляция вопросов
- Порядок вариантов — для проверки robustness задай вопрос дважды с reverse порядком (А-Б-В → В-Б-А), если ответы разные — есть recency bias
- Structured output — JSON для структуры, но можно без него если нужно видеть рассуждения
- Нечётность шкалы — избегай шкал 1-5 если не хочешь bias к среднему, используй 1-4 или 1-6
Шаблон промпта
{роль_и_контекст}
{описание_объекта_или_ситуации}
Оцени по следующим критериям:
1. {критерий_1}: {описание}
2. {критерий_2}: {описание}
3. {критерий_3}: {описание}
Формат ответа — JSON:
{
"{критерий_1}": {
"оценка": "{варианты через /}",
"уверенность": "{процент}",
"обоснование": "{краткое пояснение}"
},
"{критерий_2}": {...},
"{критерий_3}": {...}
}
⚠️ Важно: оценивай каждый критерий независимо, не давай всем одинаковую оценку.
Плейсхолдеры:
- {роль_и_контекст} — кто ты и зачем оцениваешь (инвестор/рекрутер/эксперт)
- {описание_объекта_или_ситуации} — что оцениваем (стартап/кандидат/продукт)
- {критерий_N} — по каким параметрам оценивать (команда/опыт/качество)
- {варианты через /} — варианты ответа (Высокая/Средняя/Низкая или 1-4)
- {процент} — степень уверенности (Verbalized Distribution)
Почему "оценивай независимо"? Модели склонны к consistency bias — давать похожие оценки всем критериям. Явная инструкция снижает этот эффект.
🚀 Быстрый старт — вставь в чат:
Вот шаблон для battery presentation с защитой от bias.
Адаптируй под мою задачу: [твоя задача — что и по каким критериям оценить].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит что оценивать, какие критерии важны, какие варианты ответа нужны — потому что структура JSON и Verbalized Distribution требуют чёткого формата. Она возьмёт паттерн из шаблона и адаптирует под задачу.
Адаптации
🔧 Техника: Проверка на recency bias → видишь robustness
Если подозреваешь что модель выбирает не по смыслу, а по позиции варианта:
[задай тот же вопрос дважды с обратным порядком вариантов]
Вопрос 1: Насколько важен этот фактор?
А) Очень важен
Б) Средне важен
В) Не важен
Вопрос 2: Насколько важен этот фактор?
А) Не важен
Б) Средне важен
В) Очень важен
Если ответы разные (в первом случае В, во втором тоже В) — это recency bias.
🔧 Техника: Убрать JSON → видеть рассуждения
Если хочешь понять ПОЧЕМУ модель так оценила, убери JSON и попроси свободный текст с распределением вероятностей:
Оцени по критериям и для каждого укажи:
- На сколько процентов уверен в каждой оценке
- Какой ключевой фактор повлиял на решение
- Какие данные нужны для более точной оценки
Пиши свободным текстом, но структурируй по критериям.
🔧 Техника: Чётная шкала вместо нечётной → убирает middle category bias
Если модель слишком часто выбирает "средний" вариант:
❌ Шкала 1-5 (есть средний вариант 3)
✅ Шкала 1-4 или 1-6 (нет чёткого среднего)
Модель вынуждена выбирать — либо позитив (3-4), либо негатив (1-2).
Ограничения
⚠️ Не для творческих задач: Battery presentation снижает разнообразие ответов на креативных задачах. Если нужно сгенерировать 5 разных идей для контента — лучше 5 отдельных запросов (single-item), иначе идеи будут похожи друг на друга.
⚠️ Recency bias сильнее на маленьких моделях: На Llama-3.1-8B эффект 20x, на Llama-3.3-70B и Gemini-1.5-Pro — слабее, но всё равно есть. Чем меньше модель, тем сильнее bias.
⚠️ Не для сложных многоходовых рассуждений: Если каждый следующий вопрос зависит от ответа на предыдущий — используй sequential, не battery. Battery лучше когда вопросы независимы или слабо связаны.
⚠️ Structured outputs могут ломаться: Если модель не обучена на structured outputs (JSON), она может выдать невалидный JSON. Проверено работает на: GPT-4, Claude, Gemini, Qwen, Llama 3+. На старых/маленьких моделях может требовать несколько попыток.
Как исследовали
Команда из University of Mannheim и GESIS взяла четыре реальных социологических опроса — American National Election Study (ANES), German Longitudinal Election Study (GLES), American Trends Panel (ATP) — всего 16 вопросов про политические взгляды и социальные установки. Создали 7530 синтетических персон с демографическими характеристиками (пол, раса, возраст, регион) из реальных респондентов. Для каждой персоны запустили 10 моделей (Llama, Qwen, Gemma, Phi, Gemini) с 3 разными seed'ами и 4 вариациями промпта (порядок вопросов, порядок вариантов ответа). Итого: 40+ миллионов ответов.
Сравнивали с реальными человеческими ответами по двум метрикам: Mean Absolute Error (насколько отличается каждый конкретный ответ) и Wasserstein distance (насколько распределение ответов синтетической подгруппы отличается от реальной подгруппы людей с такими же характеристиками).
Что удивило: Battery presentation экономит в 2-6 раз токены (sequential: 8216 input tokens, battery: 723 tokens для одной персоны) и при этом даёт на 8% лучшее соответствие человеческим ответам для больших моделей. Для маленьких моделей (<8B параметров) лучше работает sequential или single-item — видимо, им сложнее держать много вопросов одновременно в контексте.
Recency bias 20x у Llama-3.1-8B был самым ярким результатом: вариант "Not important" выбирали в 5% случаев когда он был первым (А), и в >100% случаев когда он был последним (E) — то есть практически всегда. Для больших моделей эффект слабее (2-3x), но всё равно значим.
Практический инсайт: Если делаешь аннотацию данных или опросы с LLM — используй battery для экономии денег, но обязательно проверяй на recency bias через reverse порядка вариантов. И лучше используй Verbalized Distribution или чётные шкалы, чтобы снизить влияние bias'ов.
Ресурсы
QSTN: A Modular Framework for Robust Questionnaire Inference with Large Language Models — Maximilian Kreutner, Jens Rupprecht, Georg Ahnert, Ahmed Salem, Markus Strohmaier (University of Mannheim, GESIS - Leibniz Institute for the Social Sciences, CSH Vienna)
Live GUI — интерфейс без кода (для исследователей)
