3,583 papers
arXiv:2607.18310 79 17 июля 2026 г. FREE

Verbalized Sampling: как избежать "схлопывания" мнений при симуляции аудитории через LLM

КЛЮЧЕВАЯ СУТЬ
85% симуляций разных персонажей схлопнулись в один и тот же ответ — будто у всех людей одинаковый мозг. Verbalized Sampling позволяет получить реалистичный разброс мнений аудитории одним запросом, без прогона модели через десятки ролей по очереди. Фишка: не играй каждого персонажа отдельно — попроси модель сразу выдать распределение ответов по всей группе в процентах. Точность подскочила на 6-10 пунктов сразу в трёх разных моделях.
Адаптировать под запрос

TL;DR

Если попросить LLM сыграть много разных персонажей по одному — сначала персонажа A, потом B, потом C — и спросить каждого, как он отреагирует на вопрос, модель схлопывает всех в один "самый логичный" ответ. Вместо того чтобы гонять модель через десятки ролей, можно задать один запрос: попросить сразу выдать распределение ответов по всей выборке в процентах. Это и называется Verbalized Sampling (VS, «вербализованная выборка»).

Исследователи создали 40 персонажей с разными профилями (возраст, доход, ценности) на основе реального опроса 2414 человек и попросили модель отыграть каждого по отдельности. Результат: 85% таких симуляций схлопнулись — почти все разные по профилю персонажи дали один и тот же "рациональный" ответ, хотя в реальной жизни мнения бы разделились. Хуже всего это происходит там, где у вопроса есть один логически "правильный" ответ — модель тянет туда всех, независимо от их характера.

Решение простое: не спрашивай каждого персонажа отдельно — попроси модель одним запросом сразу выдать, как распределятся ответы всей группы, с учётом их профилей. Это подняло точность распределения на 6-10 пунктов сразу в трёх разных моделях. Единственный побочный эффект — метод слегка переразбрасывает мнения (делает разброс даже больше, чем в реальности), поэтому результат стоит слегка "сжать" при интерпретации.


🔬

Схема метода

ШАГ 1: Опиши персонажей — демография, ценности, доход, поведенческие черты → список профилей
ШАГ 2: Одним запросом попроси модель выдать распределение ответов (в % или вероятностях) по всей группе, а не по одному человеку → таблица с процентами
ШАГ 3 (опционально): если разброс кажется чрезмерным — попроси модель "сжать" крайние значения к центру, сохранив порядок

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


🚀

Пример применения

Задача: Продакт-менеджер Ozon хочет понять, как разные сегменты покупателей отреагируют на введение платной подписки за быструю доставку.

Промпт:

Смоделируй распределение реакций 100 покупателей интернет-магазина 
на новость: "Быстрая доставка (1 день) теперь доступна только по 
платной подписке 299 руб/мес".

Состав аудитории:
- 30% — молодёжь 18-25 лет, доход до 40 тыс. руб/мес, часто заказывают недорогие товары
- 40% — семьи 26-40 лет, доход 60-100 тыс. руб/мес, заказывают регулярно
- 30% — пенсионеры и люди 50+, доход до 50 тыс. руб/мес, заказывают редко, но крупные покупки

Вопрос к аудитории: "Оформите ли вы подписку?"
Варианты: Да, оформлю / Нет, буду ждать бесплатную доставку / Перейду к конкуренту

Не проигрывай каждого человека по отдельности. Сразу дай распределение 
процентов по каждому сегменту и итоговое распределение по всей выборке.

Результат: Модель выдаст таблицу с тремя сегментами и процентным распределением ответов внутри каждого, плюс итоговую цифру по всей аудитории. Разброс мнений внутри сегмента будет реалистичным (не 100% одного ответа), а не "все ответили одинаково".


🧠

Почему это работает

Когда LLM просят сыграть роль одного конкретного персонажа и дать один ответ, модель тянется к самому вероятному, "правильному" с её точки зрения варианту для этой роли. Это то же самое, из-за чего модели пишут "усреднённые" тексты — они ищут моду, а не разброс.

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

VS обходит слепое пятно ролевой игры: вместо того чтобы N раз просить модель "стать" кем-то (и каждый раз получать моду), мы один раз просим её описать картину целиком как распределение. Это переключает модель из режима "играть персонажа" в режим "оценить статистику" — и там она куда честнее показывает разброс.

Рычаги управления: - Подробная предыстория персонажа ("представь, что ты Иван, 45 лет, работает на заводе...") → ухудшает разброс, вгоняет модель в клише роли. Чем короче и суше профиль (просто цифры и факты) — тем лучше сохраняется реализм. - Температура (случайность генерации) → не помогает вообще. Проблема не в случайности ответа, а в том, что модель систематически стягивается к одной точке — температура на это не влияет. - Просьба "сжать" разброс после получения VS-ответа → компенсирует переразброс, если распределение выглядит слишком экстремальным (например, 0% и 100% вместо более плавных цифр).


📋

Шаблон промпта

Смоделируй распределение мнений группы людей по вопросу: {вопрос}.

Состав группы:
{сегмент 1: доля %, ключевые характеристики}
{сегмент 2: доля %, ключевые характеристики}
{сегмент N: доля %, ключевые характеристики}

Варианты ответа: {вариант A} / {вариант B} / {вариант C}

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

Плейсхолдеры: {вопрос} — что нужно узнать у аудитории, {сегмент} — описание группы людей (без лишних деталей биографии, только факты: возраст, доход, привычки), {вариант} — возможные ответы.

🚀 Быстрый старт — вставь в чат:

Вот шаблон для симуляции мнения аудитории через LLM. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про состав аудитории и варианты ответов — потому что без чёткой сегментации распределение будет размытым и бесполезным для решений.


⚠️

Ограничения

⚠️ Не для прогноза конкретного человека: метод хорош для общей картины по группе, но провалит попытку угадать, как ответит конкретный подсегмент или отдельный человек — точность на уровне подгрупп заметно ниже, чем на уровне всей выборки.

⚠️ Не для многошаговых сценариев поведения: если нужно не мнение, а реальное действие в несколько шагов (например, "что закажет клиент, если бюджет ограничен") — калибровка почти не переносится. Модель почти всегда выберет "самый дешёвый" вариант, независимо от точного портрета персонажа.

⚠️ Переразброс: метод склонен слегка "перебарщивать" с разнообразием мнений — конечное распределение может быть чуть более полярным, чем в реальности. Стоит относиться к цифрам как к ориентиру, а не точному прогнозу.

⚠️ Риск путать статистику с памятью модели: если вопрос касается известного события (выборы, публичная статистика), модель может просто "вспомнить" реальные цифры, а не смоделировать их — это не то же самое, что реальное предсказание для нового вопроса.


🔍

Как исследовали

Исследователи взяли реальные данные опроса 2414 человек (World Values Survey, Турция) и превратили каждого респондента в цифровую карточку — демография, ответы на ценностные вопросы. Затем сравнили два подхода: заставить модель отыграть каждого человека отдельным запросом (и посчитать результат) против одного запроса с просьбой сразу выдать распределение по всей группе.

Проверку повторили на трёх разных моделях (закрытая, открытая MoE, другая открытая архитектура) — чтобы убедиться, что эффект не зависит от одной конкретной модели. Дополнительно протестировали метод "на прочность": устроили атаку на память модели (проверяли, не просто ли она вспоминает реальную статистику вместо симуляции) и сверили прогноз с реальным результатом национальных выборов.

Самое неожиданное: индивидуальный подход "по одному агенту" схлопывался в 85% случаев — даже там, где у вопроса не было явно "правильного" ответа (например, предпочтения в еде). Это говорит, что проблема не в конкретных сценариях, а в общей склонности модели искать один "правильный" ответ на роль, а не разброс мнений.


📋 Дайджест исследования

Ключевая суть

85% симуляций разных персонажей схлопнулись в один и тот же ответ — будто у всех людей одинаковый мозг. Verbalized Sampling позволяет получить реалистичный разброс мнений аудитории одним запросом, без прогона модели через десятки ролей по очереди. Фишка: не играй каждого персонажа отдельно — попроси модель сразу выдать распределение ответов по всей группе в процентах. Точность подскочила на 6-10 пунктов сразу в трёх разных моделях.

Принцип работы

Когда LLM просят стать одним конкретным персонажем, она тянется к самому логичному ответу для этой роли. Это мода распределения — самый частый вариант, а не реальный разброс мнений. Модель хорошо считает статистику, но плохо играет отдельного человека. Один запрос на распределение переключает её из режима «отыграй роль» в режим «оцени вероятности» — и там она честнее.

Почему работает

Внутри модели есть знания о том, как распределяются мнения в реальных опросах. Проблема не в знаниях — проблема в доступе к ним через неправильный тип запроса. Попроси не сыграть роль, а оценить статистику — и разброс появляется сам. Кстати, температура (случайность генерации) тут не помогает вообще: проблема не в случайности ответа, а в систематическом стягивании модели к одной точке.

Когда применять

Симуляция аудитории → опросы, оценка реакции сегментов на изменение цены или продукта, тесты формулировок, особенно когда важен общий разброс мнений группы, а не один ответ. Не подходит для прогноза поведения конкретного человека или подсегмента — там точность резко падает. Не подходит для многошаговых сценариев поведения — модель почти всегда выбирает «самый дешёвый» вариант, независимо от портрета персонажа.

Мини-рецепт

1. Опиши сегменты коротко: только факты — возраст, доход, привычки, доля в процентах. Без длинной предыстории и биографии («представь, что ты Иван...») — это портит разброс и вгоняет модель в клише роли.
2. Задай один запрос на всю группу: попроси распределение процентов по каждому сегменту и итог по всей выборке сразу, без отдельных диалогов на каждого персонажа.
3. Проверь на переразброс: если цифры выглядят слишком крайними (например, 0% и 100%), попроси модель «сжать» их к центру, сохранив порядок вариантов.

Примеры

[ПЛОХО] : Представь, что ты Иван, 45 лет, работает на заводе. Как ты отнесёшься к платной подписке на доставку?
[ХОРОШО] : Смоделируй распределение реакций 100 покупателей на платную подписку 299 руб/мес за быструю доставку. Сегменты: молодёжь 18-25 лет (30%), семьи 26-40 лет (40%), люди 50+ (30%). Дай процент ответов по каждому сегменту и общий итог по всей выборке, не отыгрывай каждого человека отдельно.
Источник: Distribution-First Population Simulation: Collapse, Calibration, and Recall in Non-WEIRD LLM Persona Modeling
ArXiv ID: 2607.18310 | Сгенерировано: 2026-07-22 04:27

Проблемы LLM

ПроблемаСутьКак обойти
Модель схлопывает разных персонажей в один ответПросишь модель по очереди сыграть разных людей и ответить на вопрос. Все разные персонажи — разный возраст, доход, ценности — выдают один и тот же "самый логичный" ответ. В реальности мнения разделились бы. Хуже всего там, где у вопроса есть один рациональный вариант — модель тянет туда всехНе отыгрывай персонажей по одному. Одним запросом попроси модель сразу выдать распределение ответов в процентах по всей группе с учётом профилей сегментов
Модель путает воспоминание со статистикойЕсли вопрос касается известного события — выборы, публичная статистика — модель может просто вспомнить реальные цифры вместо того, чтобы смоделировать реакцию. Ты думаешь, что получил прогноз, а получил пересказ известных данныхПроверяй, не является ли твой вопрос "публично известным фактом". Для новых, ещё не случившихся ситуаций результат надёжнее

Методы

МетодСуть
Verbalized Sampling — распределение вместо ролейНе проси модель сыграть каждого персонажа отдельно и дать один ответ. Одним запросом опиши сегменты аудитории (доли %, короткие факты — возраст, доход, привычки) и попроси выдать распределение ответов в процентах по каждому сегменту и по всей группе сразу. Не отыгрывай каждого по отдельности. Дай распределение % ответов по сегментам и по всей выборке. Работает потому что переключает модель из режима "играть роль" (тянется к одному "правильному" ответу) в режим "оценить статистику" (честнее показывает разброс, используя внутренние знания о распределении мнений). Если итоговый разброс выглядит слишком крайним (0% и 100%) — отдельным шагом попроси модель "сжать" крайние значения к центру, сохранив порядок. Работает: опросы, реакция аудитории на новость/фичу, оценка мнений сегментов. Не работает: нужен прогноз конкретного человека, или сценарий с несколькими шагами поведения (модель почти всегда выбирает "самый дешёвый" вариант независимо от портрета)

Тезисы

ТезисКомментарий
Ролевая игра тянет модель к одному "правильному" ответу, а прямая оценка статистики — к честному разбросуКогда модель играет роль конкретного персонажа, она ищет самый вероятный, "логичный" для этой роли ответ — то же самое, из-за чего тексты LLM получаются усреднёнными. Но если явно попросить оценить статистику по группе, модель обращается к внутренним знаниям о том, как реально распределяются мнения, и показывает разброс честнее. Применяй: если нужен реализм в разбросе мнений — формулируй запрос как просьбу оценить распределение, а не как просьбу "стать" кем-то
Подробная предыстория персонажа усиливает стереотипы и снижает разброс мненийЧем детальнее описание персонажа ("представь, что ты Иван, 45 лет, работает на заводе..."), тем сильнее модель тянется к клишированному образу этой роли — и тем меньше реального разброса в ответах. Короткие сухие факты (возраст, доход, привычки без истории) сохраняют разброс лучше. Применяй: описывай сегменты цифрами и фактами, без художественной биографии
📖 Простыми словами

Distribution-First Population Simulation: Collapse, Calibration, and Recall in Non-WEIRDLLMPersonaModeling

arXiv: 2607.18310

Когда ты просишь нейронку притвориться сотней разных людей по очереди, она начинает безбожно тупить и выдавать стерильное среднее арифметическое. Это называется коллапсом популяции: модель настолько старается быть «правильной» для каждого конкретного Ивана или Джона, что в итоге все они отвечают одинаково. Вместо живой толпы с разными мнениями ты получаешь армию клонов, которые транслируют одну и ту же самую вероятную мысль, потому что LLM по своей природе — это статистический калькулятор, заточенный на поиск самого ожидаемого слова.

Это похоже на то, как если бы ты опрашивал сто человек о вкусе пиццы, но каждый из них перед ответом смотрел бы в учебник «Как должен отвечать приличный гражданин». Формально опрос проведен, но на выходе ты получишь сто идентичных фраз про «сбалансированное сочетание белков и углеводов» вместо реальных споров о ананасах. Модель просто боится рисковать и выдает безопасную моду, убивая всё разнообразие мнений, которое в ней на самом деле заложено.

Чтобы это починить, придумали Verbalized Sampling — метод, где мы перестаем мучить модель ролевыми играми и просто просим её выдать распределение ответов в процентах за один присест. Вместо того чтобы спрашивать «Что думает домохозяйка?», мы говорим: «Разложи по полочкам, сколько процентов из 1000 разных людей выберут вариант А, а сколько — вариант Б». Оказывается, когда нейронка смотрит на задачу как на статистическую таблицу, она внезапно «вспоминает» о существовании непопулярных мнений и выдает гораздо более точную картину реальности.

Этот трюк — настоящий спасательный круг для Persona Modeling в маркетинге, социологии или продуктовой аналитике. Тестировали метод на сложных выборках, но принцип универсален: если тебе нужно понять реакцию рынка на новую фичу или проверить гипотезу, не надо плодить сотни чатов с «виртуальными юзерами». Один грамотный запрос на вербализованную выборку заменяет часы бесполезного промптинга и дает результат, который в разы ближе к реальным опросам живых людей. Экономия токенов и точность в одном флаконе.

Короче: забудь про индивидуальные ролевки, если тебе нужна статистика, а не фанфик. Модели гораздо лучше справляются с ролью аналитического агентства, чем с ролью тысячи отдельных актеров. Используй Verbalized Sampling, чтобы вытащить из LLM скрытые знания о разнообразии мира, иначе рискуешь построить стратегию на основе галлюцинаторного единогласия, которого в реальности не существует.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с