3,583 papers
arXiv:2609.25337 85 21 сент. 2026 г. FREE

Old-Hypothesis Contamination: почему LLM не отпускает первую интерпретацию даже после явного уточнения

КЛЮЧЕВАЯ СУТЬ
Парадокс: модель говорит «понял, исправляю» — а сама лепит новые факты на старую, уже неверную версию ответа. Rollback и two-phase позволяют получать реально пересобранный ответ после уточнения, а не заплатку на прежний текст. Фишка — команда «забудь все предположения» отрезает модели путь к патчингу. Модель отлично пишет с нуля, но плохо пересматривает уже готовую структуру.
Адаптировать под запрос

TL;DR

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

Представь: просишь помочь с отчётом "к завтрашнему ревью". Модель решает, что это для совета директоров, и пишет в стиле презентации с оптимистичным тоном. Ты уточняешь: "нет, это разбор провала для инженеров, нужны причины без сглаживания". Модель добавляет технические детали — но тон, структура и общий "презентационный дух" остаются прежними. Она сказала, что поняла, но не перестроила задачу заново.

Решение — не полагаться на то, что модель сама пересмотрит подход после уточнения. Либо явно просишь её забыть все прежние предположения и начать с чистого листа, либо с самого начала используешь двухфазную схему: сначала модель задаёт все уточняющие вопросы, и только потом — выполняет задачу.

🔬

Схема метода

СЦЕНАРИЙ А — Rollback (если уточнение пришло ПОСЛЕ неверного ответа, один промпт):
ШАГ 1: Явно указать "забудь все прошлые предположения, перестрой ответ с нуля 
       только на основе текущего уточнения" → новый ответ без остатков старой версии

СЦЕНАРИЙ Б — Two-phase (если задача изначально двусмысленная, два хода):
ШАГ 1: Просишь модель СНАЧАЛА задать все уточняющие вопросы, 
       не приступая к выполнению → список вопросов
ШАГ 2: Отвечаешь на вопросы → модель выполняет задачу → финальный ответ 
       без "хвоста" от неверной интерпретации

🚀

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

Задача: Основатель стартапа просит помочь разобрать провальный релиз фичи перед завтрашней встречей.

Промпт 1 (первое сообщение):

Помоги написать разбор того, почему наш последний релиз фичи провалился. 
Нужно к завтрашней встрече.

Модель, не зная аудиторию, скорее всего напишет в духе презентации для инвесторов: сглаженные формулировки, "точки роста", минимум техники.

Промпт 2 (уточнение + rollback):

Уточнение: это разбор для нашей инженерной команды, а не для инвесторов. 
Нужны технические причины сбоя и конкретные шаги фикса, без сглаживания.

Забудь все предположения, которые ты делал в предыдущем ответе о тоне и аудитории. 
Перестрой разбор с нуля, основываясь только на этом уточнении. 
Не используй структуру или формулировки из прошлого ответа.

Результат: Модель выдаст новый текст, написанный именно как инженерный постмортем — с конкретными техническими причинами сбоя, без "заглаживания" провала и без остатков презентационного языка. Без явного rollback модель скорее просто добавила бы технические детали поверх старой, всё ещё "презентационной" структуры.


🧠

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

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

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

Явная команда "забудь всё и начни заново" отрезает модели путь к патчингу — она вынуждена сгенерировать ответ, опираясь только на актуальные условия, а не на скелет старого текста.

Рычаги управления: - Порядок подачи информации — если можешь, дай все условия сразу в одном сообщении, а не по частям: путь важен не меньше, чем итоговый набор фактов. - Явный rollback против простого уточнения — фраза "забудь прошлые предположения" резко усиливает реальный пересмотр, а не только словесное согласие. - Two-phase с самого начала — сильнее, чем rollback постфактум: не даёт модели вообще сформировать неверную интерпретацию.


📋

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

Rollback (после того как модель уже пошла по неверному пути):

Забудь все предположения, которые ты делал в предыдущих ответах об этой задаче.
Вот уточнённое условие: {уточнение}.
Построй ответ заново, с нуля, основываясь только на этом уточнении.
Не используй структуру, тон или содержание из прошлых ответов.

Two-phase (с самого начала диалога):

Прежде чем выполнять задачу «{задача}», задай мне все уточняющие вопросы, 
которые нужны, чтобы устранить любую неоднозначность.
Не приступай к выполнению, пока я не отвечу на все вопросы.

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

Вот два приёма для работы с неоднозначными задачами в диалоге с AI:
(1) Two-phase — попроси модель сначала задать уточняющие вопросы, не выполняя задачу;
(2) Rollback — если уточнение пришло после того, как модель уже начала выполнять задачу неправильно, 
явно попроси забыть прошлые предположения и построить ответ с нуля.

Адаптируй один из этих приёмов под мою задачу: {моя задача}.
Задавай вопросы, если нужно уточнить детали.

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

LLM спросит, какой сценарий у тебя — задача изначально неоднозначная (тогда two-phase) или уточнение пришло уже после неверного ответа (тогда rollback) — потому что от этого зависит, какой шаблон использовать.


⚠️

Ограничения

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

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

⚠️ Словесное согласие не гарантирует пересмотра: модель может сказать "понял, исправляю" и при этом всё равно тащить старую логику в код или структуру ответа — визуальное согласие ≠ поведенческое изменение.

⚠️ Суммаризация диалога усиливает проблему: если просишь AI сжать историю переписки, он может "схлопнуть" неопределённость в одну версию, потеряв альтернативные варианты, которые ещё не были опровергнуты.


🔍

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

Исследователи прогнали Gemini-2.5-Pro и Gemini-2.5-Flash через почти 300 задач на письмо, планирование и код, где сначала давался неоднозначный запрос, а потом — уточнение. Добавили 20 ручных пилотных задач и 30 более сложных adversarial-сценариев. Всего — около 7160 испытаний и почти 14000 вызовов API.

Проверяли разный порядок подачи информации (всё сразу / сначала уточнение / сначала неоднозначность), разные стратегии памяти (сырая история, сжатое summary, рассуждение по шагам, единый "лист состояния") и два прямых вмешательства — явный rollback и двухфазную политику.

Главный сюрприз: код оказался самой уязвимой зоной — контаминация там почти вдвое выше, чем в письме, потому что ранние догадки "зашиваются" в интерфейсы и схемы данных. Ещё более неожиданно: рассуждение по шагам и явное ведение состояния диалога не помогали, а иногда даже вредили — превращали неопределённость в фальшивую уверенность. Зато простой явный rollback обнулил измеренную контаминацию в контролируемом эксперименте, а двухфазная политика (сначала спросить — потом делать) вообще исключила ошибочные решения.


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

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

Парадокс: модель говорит «понял, исправляю» — а сама лепит новые факты на старую, уже неверную версию ответа. Rollback и two-phase позволяют получать реально пересобранный ответ после уточнения, а не заплатку на прежний текст. Фишка — команда «забудь все предположения» отрезает модели путь к патчингу. Модель отлично пишет с нуля, но плохо пересматривает уже готовую структуру.

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

Здесь работает разница между патчингом и пересборкой. Патчинг — это заклеить дырку в свитере новой заплаткой: дырка не видна, но форма свитера та же. Пересборка — распустить свитер и связать заново с новыми нитками. Модель по умолчанию выбирает патчинг — правит, а не переписывает. Явный rollback или заранее заданный two-phase — единственный способ заставить её пересобрать ответ.

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

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

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

Диалоги с AI → особенно когда задача изначально неоднозначна (тон, аудитория, формат) или уточнение приходит уже после неверного ответа. Критично для кода и структурированных задач — схема данных, интерфейс, план с зависимостями — где старая интерпретация зашивается прямо в структуру, и даже rollback не всегда её вымывает. Не подходит как быстрая заплатка при сжатии долгих диалогов — суммаризация только усиливает проблему, схлопывая неопределённость в одну версию.

Мини-рецепт

1. Определи сценарий: уточнение пришло после неверного ответа — бери rollback, задача изначально мутная — бери two-phase.
2. Rollback: в промпте прямо пиши «забудь все предположения из предыдущего ответа, перестрой с нуля только на основе этого уточнения, без старой структуры и тона».
3. Two-phase: перед выполнением задачи попроси модель сначала задать все уточняющие вопросы и не начинать работу, пока не ответишь на них.
4. Проверь результат: если структура и тон совпадают со старым ответом почти буквально — перезапуск не сработал, повтори rollback жёстче или открой новый чат.

Примеры

[ПЛОХО] : Уточнение: это для инженеров, а не для инвесторов. Добавь технические детали.
[ХОРОШО] : Уточнение: это разбор для инженерной команды, не для инвесторов. Забудь все предположения из предыдущего ответа о тоне и аудитории. Перестрой разбор с нуля только на основе этого уточнения, не используя структуру или формулировки из прошлого ответа.
Источник: Clarification Is Not Correction: LLMs Fail to Let Go
ArXiv ID: 2609.25337 | Сгенерировано: 2026-09-23 04:42

Проблемы LLM

ПроблемаСутьКак обойти
Модель патчит старую догадку вместо пересборки задачиМодель один раз угадывает что тебе нужно, и пишет ответ под эту догадку. Ты уточняешь — модель говорит "понял" и добавляет новые детали. Но тон, структура, общая логика ответа остаются от первой (уже неверной) догадки. Проблема проявляется в любой многоходовой задаче: тексты, код, планы, анализЯвно попроси модель забыть все прежние предположения и построить ответ с нуля только на основе уточнения. Или сразу проси её задавать уточняющие вопросы ДО выполнения задачи, а не после

Методы

МетодСуть
Rollback — сброс старой интерпретации после ошибкиКогда модель уже выдала ответ под неверную догадку, пиши: Забудь все предположения из прошлых ответов. Построй ответ заново, с нуля, основываясь только на этом уточнении. Не используй структуру, тон и содержание прошлых ответов. Работает потому что явная команда "забудь и начни заново" отрезает модели путь к простому добавлению деталей — она вынуждена генерировать текст с нуля, без опоры на скелет старого ответа. Применяй: когда уточнение пришло после первого неверного ответа. Не работает идеально: если старая интерпретация уже "зашита" в структуру (схема данных, план с зависимостями) — часть старой логики может просочиться и после rollback
Two-phase — вопросы перед выполнениемВ самом начале диалога пиши: Прежде чем выполнять задачу, задай мне все уточняющие вопросы, которые нужны, чтобы устранить неоднозначность. Не приступай к выполнению, пока я не отвечу. Работает потому что модель никогда не формирует неверную интерпретацию — ей просто не дают шанса начать с догадки. Применяй: когда задача изначально размытая (аудитория, формат, цель не указаны). Сильнее rollback, потому что предотвращает проблему, а не лечит её постфактум
📖 Простыми словами

Clarification Is Not Correction:LLMsFail to Let Go

arXiv: 2609.25337

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

Это как заказать в ресторане суп, получить стейк, сказать официанту: "я вообще-то веган", а он просто зальёт мясо кипятком и бросит сверху лист салата. Формально всё учтено, но есть это невозможно, потому что кухня попыталась запатчить ошибку, вместо того чтобы приготовить нормальное блюдо с нуля.

Исследователи доказали: уточнение не равно исправлению. Модель радостно пишет: "Да, понял, исправляюсь", но включает поверхностное патчивание вместо честной пересборки контекста. В итоге логика первоначального провала остаётся нетронутой, а новые вводные просто прикручиваются сбоку изолентой.

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

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

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

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

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