Hallucination

hallucination — когда модель уверенно выдаёт неверный факт

Раздел
Языковые модели
Обновлено
11.08.26

Hallucination (галлюцинация) — ошибка LLM, когда модель уверенно выдумывает факт, который выглядит правдоподобно, но не существует. Это не баг, а следствие того, как устроена генеративная модель: она не «знает» истину, а статистически предсказывает наиболее вероятное продолжение текста. Когда подходящего факта в обучающем корпусе не было, модель достраивает его сама. Главные способы снижения — RAG, температура 0, явные ссылки на источник, fact-checking.

Коротко

Коротко. Hallucination — это когда LLM уверенно выдаёт неверный факт: придумывает несуществующую статью, цитирует «работу» автора, который её не писал, или сочиняет API-методы, которых нет в библиотеке. Это структурное свойство генеративных моделей: они не различают «знаю» и «не знаю», а просто продолжают текст самым правдоподобным способом. Снизить можно, но полностью убрать — нельзя.

Что это такое

Лето 2023-го. Юрист готовит документы для суда и просит ChatGPT найти прецеденты по своей теме. Модель уверенно выдаёт шесть кейсов с номерами дел и цитатами решений. Юрист включает их в иск. Судья проверяет — ни одного из этих дел не существует. Кейсы выдуманы, номера придуманы, цитаты сочинены. Истории всплывают в прессе, и слово «hallucination» становится главной проблемой LLM.

Галлюцинация — это не баг и не дефект конкретной модели. Это следствие того, как устроена генеративная модель. Она училась предсказывать наиболее вероятное продолжение текста. У неё нет внутреннего различия между «знаю точно» и «выдумываю». На любой запрос — будь то реальный факт или мифический — модель строит правдоподобный ответ.

Меньше старых — но галлюцинируют. Чем выше «уверенность» модели, тем опаснее галлюцинация: она не выглядит как ошибка, она выглядит как факт.

Типичные жанры галлюцинаций:

  • Выдуманные источники — фальшивые статьи, исследования, авторы, цитаты.
  • Фальшивые API — несуществующие методы, аргументы, параметры библиотек.
  • Хронологические сдвиги — события до cutoff date, представленные как «свежие».
  • Логические подмены — модель уверенно использует одну формулу там, где нужна другая.
  • Confabulation в диалоге — если предыдущий ответ был ошибкой, модель доходит до доверия к нему и развивает дальше.

Как это работает

Внутри модели нет «базы знаний» в человеческом смысле. Параметры модели — это сжатое статистическое представление обучающего корпуса. На запрос «сколько лет Эйнштейну» (или какому-нибудь редкому факту) модель идёт по тем же шагам:

  1. Из контекста она предсказывает распределение вероятностей следующего токена.
  2. По заданным параметрам (temperature, top_p) выбирает один из вероятных.
  3. Добавляет его в ответ.
  4. Повторяет для следующего токена.

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

Это происходит без какого-либо сигнала «осторожно, выдумываю». Внутри модели нет «детектора правды».

Что усиливает галлюцинации:

  • Специфичные/редкие запросы — модель не училась на этих фактах. «Кто написал статью X в 2023 году в журнале Y?»
  • Длинный контекст без anchors — модель забывает, на чём опиралась, и достраивает.
  • Высокая температура — выбираются менее вероятные токены, ответ менее точный.
  • Открытые вопросы — «расскажи о…» вместо «процитируй фрагмент из…»
  • Авторитетный тон в промпте — «Ты эксперт, ты точно знаешь» — модель будет уверенно выдумывать.

Что снижает галлюцинации:

  1. Retrieval-Augmented Generation (RAG). Достать релевантные документы из базы и подложить в контекст. Модель отвечает на основе фактов, а не из «памяти весов».
  2. Grounding. «Отвечай ТОЛЬКО на основе текста ниже. Если ответа нет — скажи "не знаю"». Это инструкция, которую модель принимает как ограничение.
  3. Temperature = 0. Самый вероятный токен на каждом шаге. Меньше «творчества», но и меньше неожиданных правильных ответов.
  4. Citation requirement. Просить модель указывать источник для каждого факта. Если нет источника — модель часто отказывается.
  5. Self-consistency. Несколько независимых ответов помогают заметить нестабильное рассуждение. Совпадение версий при этом не доказывает факт: модели могут повторять одну и ту же ошибку.
  6. Fact-checking через другую модель или API.

Пример на практике

Видеомонтажёр пишет статью в блог про новые версии популярных monтажных программ. Просит ChatGPT перечислить, какие функции появились в DaVinci Resolve 19.

Модель уверенно отвечает: «В DaVinci Resolve 19 добавлены AI Smart Reframe, новые ноды OpenColorIO 2.3, поддержка ProRes RAW HQ на Linux и улучшенный Magic Mask с автоматическим tracking'ом сложных форм».

Звучит правдоподобно. Только Magic Mask с auto-tracking появилась в версии 18.5, OpenColorIO 2.3 — это вообще не функция DaVinci, а внешняя библиотека (которую Resolve использует), и Smart Reframe в Adobe Premiere, а не в DaVinci.

Что произошло:

  1. Cutoff date модели оказался раньше релиза новой версии программы.
  2. Модель не имеет в корпусе информации о версии 19.
  3. На вопрос она построила ответ «по аналогии» с предыдущими версиями и общими трендами.
  4. Уверенный стиль ответа не отражает автоматически степень надёжности конкретного факта.

Как избежать в этой задаче:

  • RAG-вариант: скачать changelog DaVinci 19 с сайта Blackmagic, передать в контекст, попросить модель «составить пересказ ТОЛЬКО на основе этого текста».
  • Анти-галлюцинационный промпт: «Если ты не уверен в факте после cutoff date — явно скажи, что не знаешь, и предложи проверить на официальном сайте».

В ComfyUI этот же подход — нода с retrieval, нода с LLM, явные anchor-инструкции в промпте — собирается как обычный workflow и работает локально, без отправки данных в облако.

С чем часто путают

  • Hallucination и ошибка модели — не каждая ошибка это галлюцинация. Если модель неправильно решила математическую задачу — это ошибка reasoning. Галлюцинация — это когда модель уверенно сообщает несуществующий факт.
  • Hallucination и креативность — в творческой задаче (написать сказку) «выдумка» — это норма. Галлюцинация — это когда фантазия маскируется под факт.
  • Hallucination и confabulation — confabulation чаще применяется к специфическому жанру: модель развивает свою же предыдущую ошибку, добавляя «детали». Это особенно вредно в длинном диалоге.
  • Hallucination и outdated knowledge — устаревшие знания не равны выдумке. Модель может честно описать прежнюю версию, а может достроить несуществующие функции новой. Во втором случае появляется hallucination.

Частые ошибки и заблуждения

  • «Можно полностью устранить галлюцинации». Надёжной универсальной гарантии нет. Поиск, ограничения формата и проверка снижают риск, но модель всё равно может неверно понять источник или заполнить пробел правдоподобной деталью.
  • «Большая модель не галлюцинирует». Галлюцинирует. Просто реже и правдоподобнее.
  • «Если ответ выглядит уверенным — он верный». Самое опасное заблуждение. Самая уверенная подача — у галлюцинации. Реальный ответ часто содержит оговорки: «насколько я знаю», «возможно».
  • «Spell-checking промптов помогает». Не помогает. Галлюцинация — это не про лексику, а про факты.
  • «Просто скажи модели "не выдумывай".» Помогает мало. Модель не различает «выдумываю» и «вспоминаю». Работают конкретные приёмы — RAG, grounding, citation.

Связанные термины

  • RAG — главный инструмент снижения галлюцинаций через внешние документы.
  • Grounding — приём «отвечай только на основе текста ниже».
  • Temperature — параметр генерации; на низкой галлюцинации немного реже.
  • Citation / Source attribution — требование указывать источник для каждого факта.
  • Fact-checking — постпроверка ответа через другую систему.
  • LLM — общая категория моделей, склонных к галлюцинациям.
  • Cutoff date — момент, после которого данные не использовались; галлюцинации частая болезнь «свежих» запросов.

Частые вопросы

Почему модель уверенно выдумывает, вместо того чтобы сказать «не знаю»? Потому что в обучающем корпусе фразу «не знаю» произносят редко. Тексты — это статьи, посты, документы, где люди говорят с уверенностью. Модель копирует этот стиль.

RAG полностью убирает галлюцинации? Часто снижает риск, но не убирает его. Модель может неверно выбрать фрагмент, неправильно его интерпретировать или добавить утверждение, которого в источнике нет.

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

Какие задачи безопасны от галлюцинаций? Текстовые трансформации (перевод, переписывание, суммаризация) — относительно безопасны, потому что модель работает с поданным текстом. Открытые fact-вопросы («кто, когда, что») — самая опасная зона.

Что делать, если в production-пайплайне нужна 100% точность? Не использовать LLM как источник фактов. Использовать как генератор текста на основе проверенных данных из БД, документов, API. LLM в этой роли — это интерфейс, а не источник истины.

Главное

Галлюцинации — это не недостаток конкретных моделей, а свойство архитектуры генеративных LLM: они продолжают текст, а не сверяются с базой знаний. Полностью устранить нельзя; снизить — можно через RAG, grounding, температуру 0, требование цитат, проверку через другую модель. На практике: для задач, где цена ошибки высокая (право, медицина, код, факты), LLM должна работать поверх проверенных источников, а не из своей «памяти». Это и есть продуктивное использование AI — там, где она усиливает, а не подменяет фактчекинг.