Hallucination

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

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

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

Коротко

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

Что это такое

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

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

Поэтому даже самые мощные модели (GPT-4o, Claude 3.5, Gemini 2) галлюцинируют. Меньше старых — но галлюцинируют. Чем выше «уверенность» модели, тем опаснее галлюцинация: она не выглядит как ошибка, она выглядит как факт.

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

  • Выдуманные источники — фальшивые статьи, исследования, авторы, цитаты.
  • Фальшивые 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 модели — март 2024-го. DaVinci Resolve 19 вышел в апреле 2024-го.
  2. Модель не имеет в корпусе информации о версии 19.
  3. На вопрос она построила ответ «по аналогии» с предыдущими версиями и общими трендами.
  4. Тон уверенный, потому что в обучении модель никогда не училась говорить «не знаю».

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

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

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

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

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

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

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

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

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

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

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

RAG полностью убирает галлюцинации? Снижает сильно (на 60–90%), но не убирает полностью. Модель может неправильно интерпретировать поданный документ или «вспомнить» что-то поверх него.

Можно ли заставить модель показывать «уверенность» в ответе? Это пока не работает надёжно. Существуют research-методы (probing, calibration), но в продуктовых API доступа к таким метрикам нет. Лучший доступный приём — self-consistency: запросить несколько раз и оценить разброс.

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

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

Главное

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