Галлюцинации: почему модель уверенно ошибается

LLM может уверенно сообщить несуществующий факт. Это не баг, а прямое следствие того, как она устроена. Разберём механизм галлюцинаций честно.

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

Корень проблемы: правдоподобие, а не истина

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

Почему уверенным тоном

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

Когда галлюцинации особенно вероятны

СитуацияПочему рискованно
Редкие, узкие фактыв данных мало примеров — модель «достраивает» правдоподобное
Точные числа, даты, цитатымодель не помнит точно, но генерирует похоже выглядящее
Свежие событияих не было в обучающих данных (есть дата отсечения знаний)
Несуществующие сущностина вопрос о выдуманном модель часто «подыгрывает», а не отрицает
Ссылки и источникимодель может сгенерировать правдоподобный, но несуществующий URL/DOI

Почему это нельзя «просто исправить»

Галлюцинации — не отдельный сломанный модуль, который можно починить. Они вытекают из самой природы модели: она статистический генератор текста, а не база проверенных фактов. Выравнивание (RLHF) снижает частоту выдумок, приучая чаще признавать незнание, но полностью убрать их при таком устройстве невозможно. Это фундаментальное ограничение, а не временный дефект.

Как снижать риск на практике

  • RAG (подтягивание фактов). Дать модели в контекст реальные документы и попросить отвечать по ним — резко снижает выдумки (об этом в финале курса).
  • Просить источники и проверять их. И помнить, что сами ссылки модель тоже может выдумать.
  • Перепроверять важные факты, числа и даты во внешних источниках.
  • Формулировать запрос так, чтобы поощрять «не знаю», а не вынуждать выдумывать.

Главный вывод

LLM — мощный помощник, но не источник истины. Относитесь к её ответам как к черновику знающего, но иногда фантазирующего коллеги: блестящие идеи и формулировки, которые стоит сверять с реальностью, особенно когда цена ошибки высока.

Итог

  • Модель оптимизирована на правдоподобие текста, а не на истинность — отсюда галлюцинации.
  • Уверенный тон выдумок объясняется тем, что данные написаны уверенно; по тону факт от вымысла не отличить.
  • Риск выше для редких фактов, точных чисел/дат, свежих событий и источников.
  • RAG, проверка источников и осторожные формулировки снижают, но не устраняют проблему.
Проверьте себя
1. Какова коренная причина галлюцинаций?
AОшибки в токенизаторе
BМодель оптимизирована выдавать правдоподобный текст, а не проверять истинность
CСлишком маленькое контекстное окно
DПерегрев GPU
2. Почему модель выдаёт выдумки уверенным тоном?
AОна хранит точную степень уверенности и игнорирует её
BОна продолжает текст в уверенном стиле, как большинство утверждений в данных, не различая факт и вымысел
CЭто требование причинной маски
DТак быстрее генерировать
3. Какой приём наиболее эффективно снижает галлюцинации?
AУвеличение temperature
BRAG — подача в контекст реальных документов с просьбой отвечать по ним
CУменьшение словаря
DОтключение внимания
Поддержать проект