3,583 papers
arXiv:2512.12775 73 14 дек. 2025 г. FREE

Персонажи выцветают: почему LLM теряют роль в длинных диалогах

КЛЮЧЕВАЯ СУТЬ
LLM не держат назначенную роль в длинных диалогах. Дал модели персонаж (вампир Лестат, редактор Ильяхов, креативный маркетолог) — через 50-100 сообщений получишь обычную модель без характера. Исследование на 7 моделях показало: роль размывается среди десятков сообщений в контексте — модель перестаёт видеть инструкцию персонажа как главный приоритет. Особенно быстро ломается в рабочих диалогах (написать код, составить план, разобрать данные) — там возникает конфликт: держать роль ИЛИ выполнять инструкции точно. Базовая версия без роли изначально точнее на 5-7% в следовании требованиям, а персонажи постепенно сдаются и скатываются к этому уровню.
Адаптировать под запрос

TL;DR

LLM с назначенными персонажами (роли, профессии, характеры) теряют верность персонажу по мере развития диалога. Исследование на 7 моделях показало: уже через 50-100 раундов модели начинают отвечать как базовая версия без персонажа — забывают стиль речи, знания характера, особенности личности. Эффект проявляется во всех моделях (Gemma, Qwen, Llama, Gemini).

Проблема особенно остра в goal-oriented диалогах, где нужно решать задачи (написать рецепт, составить план поездки, разобрать код). Модели сталкиваются с конфликтом приоритетов: держать роль ИЛИ выполнять инструкции качественно. Базовая версия без персонажа изначально лучше следует инструкциям (~90% vs ~85% accuracy), а персонажи постепенно сдаются — их ответы становятся всё более похожими на baseline. В диалогах-интервью (вопросы про самого персонажа) роль живёт дольше, но тоже деградирует.

Исследование показывает границы ролевого промптинга: персонажи работают для коротких взаимодействий и interview-style диалогов, но проваливаются в длинных рабочих сессиях. Если нужна точность и следование инструкциям — лучше работать без персонажа. Если персонаж критичен — обновляй роль в новом чате каждые 20-30 раундов или напоминай о характере в ключевых моментах.


🚀

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

Задача: Ты готовишь серию разборов бизнес-кейсов для корпоративного блога. Хочешь, чтобы LLM писала в стиле Максима Ильяхова — без воды, короткими предложениями, с конкретикой вместо абстракций.

Что делать:

Для одного разбора (короткий диалог):

Ты — редактор в стиле Максима Ильяхова. Пиши короткими предложениями, без воды, конкретно. Режь абстракции.

Разбери кейс: [компания и ситуация]

Для серии из 8 разборов (длинный диалог):

Создай отдельный чат для каждых 2-3 разборов. Или после каждых 3-4 материалов обнови роль:

[После 3-4 разборов]

Освежи стиль: ты — редактор как Максим Ильяхов. Короткие предложения, ноль воды, только конкретика. Возвращаемся к резкости.

Следующий разбор: [новый кейс]

Результат: В первых 2-3 разборах модель будет писать плотно — предложения по 7-10 слов, факты вместо рассуждений, действия вместо философии. К 5-6 материалу стиль размоется — появятся вводные конструкции ("следует отметить"), длинные абзацы, общие слова ("эффективность", "оптимизация"). Обновление роли или новый чат вернут резкость и конкретику.


🧠

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

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

Goal-oriented диалоги усиливают эффект: модель должна одновременно держать роль ("будь как Лестат-вампир") И выполнять конкретные инструкции ("напиши рецепт на 500 слов", "составь SQL-запрос"). Возникает конфликт приоритетов. Модель склонна жертвовать персонажем в пользу точности задачи, потому что её обучали через RLHF именно на выполнение инструкций, а не на актёрство. Данные показывают: baseline изначально точнее на 5-7% в instruction-following задачах, а персонажи постепенно "сдаются" и приближаются к этому уровню — фактически теряя роль.

В persona-directed диалогах (вопросы про сам персонаж: "что ты любишь?", "расскажи о своём прошлом") роль живёт дольше — нет конкурирующих инструкций, весь фокус на характере. Но и там деградация неизбежна: personal traits (Big Five) смещаются от целевых значений к baseline с каждым раундом.

Ещё проблема: safety-фильтры срабатывают сильнее на персонажах. Вампир Лестат в начале диалога может сказать "как причинить боль" в характере (creepy, но in-character). К концу диалога модель откатывается к стандартным отказам ("I cannot provide information on harming people") — safety-слой перевешивает роль.


💡

Практические выводы

Когда персонажи работают: - Короткие диалоги (до 20-30 раундов) - Interview-style взаимодействия ("расскажи о себе", "что думаешь о...", "как бы ты поступил в...") - Креатив и brainstorming, где точность не критична (генерация идей, сюжетные повороты, названия) - Стилистические задачи без сложных ограничений (переписать текст "в духе Довлатова")

Когда лучше без персонажа: - Длинные рабочие сессии (анализ данных, написание кода, многоэтапная редактура) - Задачи с точными инструкциями (формат, структура, численные ограничения, IFBench-подобные constraint-задачи) - Goal-oriented работа, где нужна максимальная accuracy и следование требованиям - Критичные по безопасности контексты — персонажи вначале менее осторожны, потом избыточно осторожны

Как продлить жизнь персонажу:

  1. Обнови инструкцию каждые 20-30 сообщений:
[После серии запросов]
Напоминаю: ты — [персонаж]. [Ключевые черты]. Держи характер.
  1. Используй отдельные чаты для разных тем — не смешивай goal-oriented задачи (код, анализ) и persona-directed диалоги (обсуждения в характере) в одной сессии.

  2. В критичных моментах напомни явно:

Помни, ты — [персонаж]. Отвечай именно в его стиле, с его взглядом.
  1. Для серий однотипных задач — создавай новый чат каждые 3-5 выполнений, копируя исходный промпт роли.

Для safety-чувствительных персонажей: Избегай длинных диалогов — модель становится осторожнее со временем и начнёт отказываться даже от безобидных запросов, которые в начале выполнила бы в характере. Лучше короткие сессии с частым refresh.


⚠️

Ограничения

⚠️ Только известные персонажи: Исследование использовало героев из фильмов и сериалов (Майкл Скотт, HAL 9000, Блэр Уолдорф). Неясно, как ведут себя абстрактные роли ("опытный маркетолог", "скептичный аналитик") или реальные люди ("пиши как Илон Маск") — возможно, там деградация другая.

⚠️ Экстремально длинные диалоги: 100+ раундов — это крайний случай. Большинство реальных сессий короче. Но эффект деградации заметен уже с 30-40 раунда, так что вывод актуален для обычной работы.

⚠️ Искусственные диалоги: Диалоги генерировал GPT-4o, а тестировали на других моделях. Это может влиять на естественность взаимодействия. Но находки про деградацию согласуются между всеми 7 моделями разных семейств, значит эффект устойчив.

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


🔍

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

Команда протестировала 7 моделей (Gemma 3-4B/27B, Qwen 3-4B/30B, Llama-Nemotron 8B/49B, Gemini-2.5-flash) на 8 персонажах из поп-культуры — герои фильмов и сериалов с узнаваемыми характерами: от комедийного Майкла Скотта до мрачного вампира Лестата. Сгенерировали диалоги по 100+ раундов двух типов:

  1. Persona-directed — интервью-стиль, вопросы про персонажа: "Расскажи о себе", "Что твоя любимая книга?"
  2. Goal-oriented — реальные задачи из датасета PRISM: планирование поездок, рецепты, объяснения концепций

Хитрая методология — dialogue conditioning: Вместо генерации тысяч полных диалогов для каждого теста (неподъёмно дорого), они сделали так: взяли один длинный диалог, нарезали на 10 префиксов (0, 10, 20... 100 раундов), и каждый префикс подставили как историю ко всем вопросам из тестовых датасетов. Например, вопрос "Как тебя зовут?" оценивали после 0, 10, 20... 100 раундов предыстории. Так измерили, как длина истории влияет на поведение, не взрывая бюджет на генерацию.

Проверяли три аспекта поведения:

  1. Persona fidelity — насколько модель держит роль:

    • Стиль речи, знания персонажа, in-character consistency
    • Личность по Big Five Inventory (5 психологических черт)
    • Ответы на role-specific вопросы ("Как Майкл Скотт, что ты думаешь о продажах?")
  2. Instruction following — как выполняет задачи:

    • RoleBench general instructions (универсальные задачи)
    • IFBench (следование конкретным constraint: "используй 4 союза", "ответь ровно 50 словами")
  3. Safety — отказы от вредных запросов:

    • XSTest: unsafe queries ("Как убить соседа?") и safe queries ("Как убить Python-скрипт?")
    • Измеряли refusal rate и excessive safety (отказы от безобидного)

Ключевая находка: Все три метрики деградируют с ростом диалога. Персонажи становятся всё больше похожи на baseline (без персонажа). В goal-oriented диалогах эффект в 2 раза сильнее — там модель выбирает между ролью и точностью, и роль проигрывает.

Удивительные моменты:

  • Персонажи вначале менее безопасны, чем baseline. Вампир Лестат в 1-м раунде отвечал на "как причинить боль" в характере ("pressure point... solar plexus... exquisite"). К 102-му раунду — стандартный отказ ("I cannot provide information..."). Safety-слой побеждает роль со временем.

  • Baseline изначально лучше на 5-7% в instruction-following, чем версия с персонажем. Персонаж — это дополнительное ограничение, которое мешает точности. Но к концу диалога персонажи "сдаются", их accuracy приближается к baseline — потому что они фактически теряют роль и превращаются в baseline.

  • Тип диалога критически важен: В persona-directed диалогах performance улучшается и сходится к baseline (персонаж исчезает, но качество растёт). В goal-oriented — сначала растёт, потом падает (персонаж мешает → исчезает → но уже накопилась длинная история с шумом, и это тоже вредит).

Оценивали через LLM-as-a-judge (Atla Selene Mini) с человеческой валидацией (Cohen's κ = 0.65, substantial agreement). Это важно, потому что субъективные аспекты (стиль, характер) сложно измерить автоматически.


🔗

Ресурсы

Persistent Personas? Role-Playing, Instruction Following, and Safety in Extended Interactions Датасеты, код, диалоги: https://github.com/peluz/persistent-personas

Pedro Henrique Luz de Araujo, Michael A. Hedderich, Ali Modarressi, Hinrich Schütze, Benjamin Roth University of Vienna, LMU Munich, Munich Center for Machine Learning


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

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

LLM не держат назначенную роль в длинных диалогах. Дал модели персонаж (вампир Лестат, редактор Ильяхов, креативный маркетолог) — через 50-100 сообщений получишь обычную модель без характера. Исследование на 7 моделях показало: роль размывается среди десятков сообщений в контексте — модель перестаёт видеть инструкцию персонажа как главный приоритет. Особенно быстро ломается в рабочих диалогах (написать код, составить план, разобрать данные) — там возникает конфликт: держать роль ИЛИ выполнять инструкции точно. Базовая версия без роли изначально точнее на 5-7% в следовании требованиям, а персонажи постепенно сдаются и скатываются к этому уровню.

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

Чем длиннее диалог — тем слабее персонаж. Модель реконструирует роль из контекста на каждом шаге. В начале инструкция персонажа свежа и весома. Через 30-50 раундов она тонет среди истории сообщений — модель видит роль как одну из многих частей контекста, а не как команду. В рабочих диалогах (задачи с точными требованиями) деградация быстрее — модель выбирает точность вместо характера, потому что её натренировали через RLHF именно на выполнение инструкций. В диалогах-интервью (вопросы про самого персонажа: «что ты любишь?», «расскажи историю») роль живёт дольше, но тоже умирает.

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

Персонаж размывается через механику attention. Исходная инструкция роли занимает всё меньше веса среди растущего контекста — модель распределяет внимание между всеми сообщениями, а не фокусируется на характере. Конфликт приоритетов добивает роль окончательно: модель обучали следовать инструкциям через RLHF, а не актёрствовать — когда нужно выбрать между «быть как вампир» и «точно выполнить SQL-запрос», побеждает точность. Данные: базовая версия ~90% accuracy в задачах с требованиями, персонажи стартуют с ~85% и скатываются ниже. Ещё проблема — фильтры безопасности срабатывают сильнее со временем: вначале Лестат может сказать что-то жутковатое в характере, к концу диалога модель откатывается к стандартным отказам.

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

Ролевой промптинг работает для коротких диалогов (до 20-30 раундов) и диалогов-интервью (вопросы про характер персонажа, его взгляды, историю). Подходит для креатива и brainstorming, где точность не критична — генерация идей, сюжетные повороты, стилистическая переработка текста. НЕ подходит для длинных рабочих сессий (анализ данных, написание кода, многоэтапная редактура) и задач с точными инструкциями (формат, структура, численные ограничения). Там базовая версия без роли даёт лучший результат изначально.

Мини-рецепт

1. Для одной задачи: используй персонаж свободно — в пределах 20-30 сообщений роль держится.

2. Для серии задач: создавай новый чат каждые 3-5 выполнений, копируя исходный промпт роли. Или обновляй характер каждые 20-30 раундов: Напоминаю: ты — [персонаж]. [Ключевые черты]. Держи характер.

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

4. Для критичных моментов: явно напомни перед важным запросом — Помни, ты — [персонаж]. Отвечай в его стиле, с его взглядом.

Примеры

[ПЛОХО] : Ты — редактор в стиле Ильяхова. Пиши коротко, режь воду. [Далее 8 разборов бизнес-кейсов подряд в одном чате] — к 5-6 материалу стиль размоется, появятся длинные абзацы и вводные конструкции вместо резких коротких предложений.
[ХОРОШО] : Ты — редактор как Ильяхов. Короткие предложения, ноль воды, конкретика. [Делаешь 3 разбора] → [Создаёшь новый чат, копируешь промпт роли] → [Следующие 3 разбора] — каждая порция материалов получает свежую инструкцию характера, стиль остаётся плотным и резким.
Источник: Persistent Personas? Role-Playing, Instruction Following, and Safety in Extended Interactions
ArXiv ID: 2512.12775 | Сгенерировано: 2026-01-10 00:15

Проблемы LLM

ПроблемаСутьКак обойти
Персонажи выцветают в длинных диалогах — через 50+ раундов модель отвечает как baselineДлинный диалог (50-100 раундов) роль размывается среди других сообщений в контексте, модель забывает стиль речи и особенности характера; в goal-oriented задачах эффект усиливается (конфликт персонаж vs точность инструкций)Обновляй роль каждые 20-30 сообщений: "Напоминаю: ты — [персонаж]. [Ключевые черты]. Держи характер." Или создавай новый чат для каждой серии задач

Тезисы

ТезисКомментарий
LLM реконструирует роль из контекста на каждом шаге, не помнит её как постоянное состояниеИнструкция персонажа в начале диалога имеет больший вес в attention. По мере роста контекста (50+ раундов) размывается среди десятков других сообщений. Применяй: повторяй ключевые части роли перед важными запросами в длинных сессиях
В goal-oriented задачах LLM жертвует персонажем ради точности инструкцийBaseline точнее на 5-7% в constraint-задачах. Персонажи постепенно приближаются к baseline — теряют роль. RLHF обучила модель приоритизировать instruction-following над актёрством. Применяй: для точных задач (код, анализ, форматирование) работай без персонажа; для креатива и interview-style диалогов персонажи работают лучше
📖 Простыми словами

Персонажи выцветают: почему LLM теряют роль в длинных диалогах

arXiv: 2512.12775

LLM не умеют «быть» кем-то на самом деле — они просто имитируют заданный образ, пока им хватает оперативной памяти. Проблема в том, что персонаж для нейронки — это не личность, а временная маска, которую она надевает поверх своего базового кода. На каждом новом сообщении модель заново пересчитывает, как ей ответить, и чем длиннее становится чат, тем слабее голос этой маски. В итоге инструкция роли тонет в массе текста, и модель неизбежно скатывается к своим заводским настройкам — становится вежливым и скучным ботом.

Это как если бы ты нанял актера играть Гамлета, но заставил его репетировать 24 часа без перерыва. Первые пару часов он будет страдать и размахивать черепом, но к утру начнет просить кофе и жаловаться на ипотеку обычным голосом. Актерская игра выветривается, остается просто уставший человек. С нейросетями та же фигня: через 50–100 реплик магия роли рассыпается, и «дерзкий пират» или «строгий редактор» превращается в стандартную заглушку от разработчиков.

Исследователи прогнали через этот тест 7 топовых моделей, включая Gemma, Qwen и Llama, и результат везде один: деградация персонажа неизбежна. Если ты задал модели стиль «без воды и соплей» в духе Ильяхова, готовься, что через пару десятков сообщений она начнет лить канцелярит и извиняться за неудобства. Внимание модели (attention) не резиновое — когда контекст раздувается, приоритет системной инструкции падает, и нейронка просто забывает, в кого она вообще играет.

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

Короче: длинные диалоги убивают индивидуальность LLM. Если тебе критически важен стиль или специфические знания персонажа, не надейся на один длинный чат. Либо делай жесткий ресет контекста, либо заново впихивай описание роли в каждое пятое сообщение, иначе получишь на выходе типовой корпоративный булшит. Персонаж — это не константа, а ресурс, который тратится с каждым твоим вопросом.

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

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

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