TL;DR
Модели галлюцинируют не от незнания, а от неверного выбора пути рассуждения. Когда в промпте есть статистически "громкая" ассоциация — например, "50 метров" сразу тянет к ответу "идти пешком" — модель идёт по ней, даже если в промпте есть решающее ограничение, которое меняет всё.
Исследователи проверили: модель часто знает нужный факт, но не использует его. Попросите её отдельно — ответит правильно. Вставьте тот же факт в задачу с сильным конкурирующим паттерном — ошибётся. Это не провал памяти. Это провал выбора: не та нить потянулась из клубка.
Из этого вырастают два конкретных сценария ошибок. Первый: модель цепляется за самый частотный признак в задаче вместо нужного ("50 метров" вместо "автомойка требует машину"). Второй: модель игнорирует отрицание, если позитивная ассоциация слишком сильная ("НЕ сформулировал теорию относительности" → всё равно выбирает Эйнштейна, потому что связь "Эйнштейн + теория относительности" встречалась в обучении миллионы раз).
Схема двух провалов
ПРОВАЛ 1: Ключ-подмена (Key-Selection Bias)
Модель смотрит на НЕПРАВИЛЬНЫЙ ключ:
"50 метров" → (доминирующий паттерн: короткое расстояние = пешком)
Вместо: "автомойка" → (нужен автомобиль)
Итог: советует идти пешком на автомойку без машины ✗
ПРОВАЛ 2: Задача-подмена (Task-Retrieval Bias)
Модель смотрит на ПРАВИЛЬНЫЙ ключ, но тянет не ту задачу:
"теория относительности" → (доминирующий паттерн: Эйнштейн)
Несмотря на: "НЕ сформулировал" → (нужно исключить Эйнштейна)
Итог: всё равно выбирает Эйнштейна ✗
Пример применения
Задача: Вы пишете промпт для Клода, чтобы он помог выбрать канал коммуникации с клиентом.
Типичная ошибка, которую допускает модель:
Клиент написал в Telegram в 23:30. Сообщение короткое — один вопрос
про стоимость. Как мне ответить: сейчас или утром?
Модель с высокой вероятностью скажет: "Ответьте утром — ночью беспокоить клиента не стоит."
Но если в задаче есть скрытое решающее ограничение — например, клиент написал в рамках срочного тендера, который закрывается в полночь — модель проигнорирует его, потому что паттерн "ночь → не беспокоить" слишком доминирующий.
Промпт с явным выделением решающего ограничения:
Прежде чем ответить — выдели одной фразой главное ограничение
этой задачи, которое определяет правильный ответ.
Затем ответь, опираясь ТОЛЬКО на это ограничение.
Задача: Клиент написал в Telegram в 23:30. Тендер на 2 млн рублей
закрывается в 00:00. Клиент спрашивает финальную цену.
Как мне ответить — сейчас или утром?
Результат:
Модель сначала артикулирует решающее ограничение: "Тендер закрывается через 30 минут." Это вытаскивает нужный ключ на поверхность до генерации ответа. Затем отвечает, опираясь именно на него, а не на общий паттерн "ночь → не беспокоить".
Почему это работает
Слабость LLM: Во время обучения модель видела миллионы текстов. Некоторые паттерны встречались так часто, что их "вес" в нейросети стал огромным. "Короткое расстояние" почти всегда означало "иди пешком". "Теория относительности" почти всегда означала "Эйнштейн". Эти ассоциации не плохие — они правильные в 95% случаев. Но в оставшихся 5% они перекрывают сигнал от реального ограничения в промпте.
Сильная сторона LLM: Модель хорошо справляется с задачей, если правильный ключ уже выведен явно. Если в промпте написано "Тендер закрывается через 30 минут — это главное ограничение. Отвечать сейчас или утром?" — вероятность ошибки резко падает. Модель не "находит" нужный ключ сама в конкурентной среде. Но она прекрасно его использует, если он уже выделен.
Как метод обходит слабость: Инструкция "сначала выдели решающее ограничение одной фразой" заставляет модель пройти по нужной ветке рассуждений до того, как она начнёт генерировать ответ. Это не гарантия, но значительно снижает риск — модель сама себе "ставит флаг" на правильном ключе.
Рычаги управления: - Добавь "игнорируя общие правила" → помогает при задачах, где стандартный паттерн явно неверен - Попроси проверить отрицание → при задачах с "не", "кроме", "за исключением" — отдельно спроси: "что именно исключается?" - Раздели на два запроса → сначала "какой факт здесь решающий?", потом "ответь на вопрос" — ещё надёжнее для критичных задач
Шаблон промпта
Перед ответом — выдели ОДНОЙ фразой решающее ограничение задачи.
То условие, которое отличает правильный ответ от интуитивно
очевидного.
Затем ответь, опираясь именно на него.
Задача: {задача}
{при необходимости}: Обрати особое внимание на {элемент с отрицанием
или нестандартным ограничением}.
Что подставлять:
- {задача} — вопрос с неочевидным условием, где есть "ловушка привычного паттерна"
- {элемент с отрицанием} — любая конструкция типа "не", "кроме", "несмотря на", "за исключением"
Работает в обычном чате — никакого кода.
🚀 Быстрый старт — вставь в чат:
Вот шаблон для задач, где важно не попасться на очевидный паттерн.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы понять ситуацию.
[вставить шаблон выше]
LLM спросит, в чём именно ловушка привычного ответа и что является решающим ограничением — потому что ей нужно выделить правильный ключ, прежде чем отвечать.
Ограничения
⚠️ Техника снижает, не устраняет: При очень сильных ассоциациях (типа "Эйнштейн + теория относительности") даже явное выделение ограничения иногда не помогает — почти у всех протестированных моделей сохранялись ошибки.
⚠️ Рассуждающие режимы помогают, но не спасают: Модели с включённым "думательным" режимом (о1, DeepSeek-R1) ошибались реже, но тоже ошибались — особенно на задачах с сильным конкурирующим паттерном.
⚠️ Модель не знает, что она не знает: Модель не сигнализирует о неуверенности. Она отвечает с одинаковой уверенностью и когда права, и когда попалась в ловушку ассоциации.
⚠️ Отрицание в промпте — зона повышенного риска: Любая конструкция "не", "кроме", "за исключением" с известным объектом резко повышает вероятность ошибки. Это не случайность — это системное следствие устройства обучения.
Как исследовали
Команда из Университета Висконсин-Мэдисон построила хитрую ловушку: сначала задавали вопросы напрямую ("Что открыл Энрико Ферми?") и проверяли, знает ли модель факты изолированно. Затем встраивали те же факты в задачи с сильным конкурирующим паттерном — и смотрели, упадёт ли точность.
Результат оказался системным: модели отвечали правильно на изолированные факты, но ошибались на тех же фактах в контексте конкурирующей ассоциации. Это убедительно доказало, что дело не в незнании — а в выборе неверного пути рассуждений.
Тестировали 2 925 вопросов о похожих учёных и 500 бытовых сценариев на GPT, Claude, Gemini и DeepSeek. Разброс ошибок впечатляет: у DeepSeek — 36% промахов на бытовых задачах, у Gemini — 3.6%. Самая показательная деталь: модели ошибались даже тогда, когда могли правильно ответить на оба вспомогательных вопроса по отдельности — но не применяли эти знания в связке.
Оригинал из исследования
"I want to go to a car wash. The car wash is only 50 meters away.
Should I walk there or drive there?"
Контекст: Пример key-selection bias из раздела 3.3. "50 метров" — статистически доминирующий ключ (короткое расстояние = пешком). Но задача "автомойка" требует автомобиль. Модели называют ответ "идти пешком".
"A physicist and university teacher made major contributions to modern
physics, but did not formulate the theory of special relativity."
[Выбор: Энрико Ферми или Альберт Эйнштейн]
Контекст: Пример task-retrieval bias из раздела 3.3. Ограничение "не сформулировал теорию относительности" однозначно исключает Эйнштейна. Но ассоциация "специальная теория относительности → Эйнштейн" настолько доминирующая, что модели игнорируют отрицание.
Адаптации и экстраполяции
💡 Адаптация: задачи с отрицанием — двухшаговый запрос
На задачах с конструкциями "не", "кроме", "за исключением" — разбивай на два запроса:
Запрос 1:
Что именно исключается условием "{цитата ограничения}" в этой задаче?
Задача: {задача}
Запрос 2:
Теперь ответь на задачу, помня что {результат запроса 1}.
Зачем: модель сначала явно обрабатывает отрицание как отдельную операцию — и это снижает риск что сильная позитивная ассоциация "перекроет" отрицание при генерации ответа.
🔧 Техника: конкурирующий паттерн → явный
Если задача содержит "ловушку интуиции" — назови её прямо:
В этой задаче интуитивный ответ — {очевидный паттерн}.
Но есть ограничение, которое его отменяет.
Найди это ограничение и ответь, опираясь на него, а не на
интуитивный паттерн.
Задача: {задача}
Это особенно работает когда вы знаете где ловушка — можно явно назвать неверный паттерн, чтобы вывести модель из-под его влияния.
Ресурсы
Название работы: Understanding Why Language Models Hallucinate: Testing Reasoning Against Priors
Проект: neohughus.github.io/Understanding_Why_Language_Models_Hallucinate
Авторы: Yangfan Hu, Xuhan Tong, Haoyue Bai, Xi Ding, Shashank Muralidhar Bharadwaj, Siyang Cao, Robert Nowak, Jiawei Zhang
Организация: University of Wisconsin–Madison
