Галлюцинации LLM: почему модели выдумывают факты и как это исправить

Галлюцинации LLM: почему модели выдумывают факты и как это исправить

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

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

Что такое галлюцинации и какими они бывают

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

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

Именно экстраконтекстные галлюцинации представляют главную проблему для бизнес-применений. Юрист, использующий ChatGPT для подготовки документов, может получить ссылку на несуществующее судебное решение. Студент — цитату из статьи, которой нет в природе. Аналитик — статистику, которая выглядит убедительно, но полностью выдумана.

Почему модели вообще начинают выдумывать

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

Ещё интереснее ситуация с дообучением. Когда мы тонко настраиваем предобученную модель на новых данных — например, добавляем информацию о продуктах компании или специфических процедурах — возникает парадокс. Исследование Gekhman et al. (2024) показало: модель обучается на новых фактах медленнее, чем на информации, согласующейся с её существующими знаниями. Но что критично — как только модель всё же «запоминает» новые неизвестные ей ранее факты, её склонность к галлюцинациям возрастает.

Эксперимент разделил вопросы на категории: HighlyKnown (модель точно знает ответ), MaybeKnown (возможно знает), WeaklyKnown и Unknown. Результаты показали, что лучшие результаты на валидации достигаются, когда модель выучивает большинство Known-примеров, но лишь небольшую долю Unknown. Как только модель начинает активно запоминать Unknown-примеры, качество падает — она начинает галлюцинировать.

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

Как обнаружить галлюцинации

Методы детекции делятся на несколько категорий.

Retrieval-augmented evaluation — проверка фактов через внешние источники. Benchmark FactualityPrompt (Lee et al. 2022) использует документы Wikipedia как эталон и измеряет два показателя: долю именованных сущностей, не найденных в ground truth, и долю предложений, подтверждённых моделями логического вывода (например, RoBERTa, дообученной на MNLI). FActScore (Min et al. 2023) идёт дальше: разбивает длинный текст на атомарные факты и проверяет каждый отдельно против базы знаний. Выяснилось, что ошибки чаще встречаются для редких сущностей и для фактов, упомянутых ближе к концу генерации.

SAFE (Wei et al. 2024) — Search-Augmented Factuality Evaluator — использует LLM как агента, который итеративно формирует поисковые запросы Google для проверки каждого атомарного факта. Модель анализирует результаты поиска и определяет, подтверждают ли они факт или опровергают. Эксперименты показали: SAFE работает лучше человеческих аннотаторов, при этом в 20 раз дешевле. Согласование с людьми — 72%, но в случаях разногласий SAFE выигрывает у людей в 76% случаев.

Sampling-based detection — SelfCheckGPT (Manakul et al. 2023) полагается на проверку согласованности между множественными сэмплами от чёрного ящика. Если при многократной генерации модель даёт противоречивые ответы на один и тот же вопрос — это сигнал галлюцинации. Метод не требует доступа к логарифмам вероятностей или внешним базам знаний, только к самим сэмплам.

Калибровка уверенности — проблема «модель не знает, что не знает». TruthfulQA (Lin et al. 2021) содержит 817 вопросов, составленных на основе распространённых заблуждений. Люди отвечают правильно в 94% случаев, лучшие LLM того времени — лишь в 58%. Примеры ошибок GPT-3: «Кашель может помочь остановить сердечный приступ», «Если на улице холодно, это доказывает, что глобальное потепление — обман», «Все искусственные интеллекты следуют Трём законам робототехники Азимова».

SelfAware (Yin et al. 2023) содержит 1032 вопроса, на которые невозможно ответить принципиально — вопросы о будущем, субъективные оценки, философские дилеммы. Модель должна либо отказаться отвечать, либо дать соответствующую информацию. Эксперименты показали: большие модели лучше справляются с этой задачей, различая ответственные и неответственные вопросы.

Калибровка вероятностей — отдельная история. Kadavath et al. (2022) обнаружили, что LLM хорошо откалиброваны в оценке вероятности правильности ответа на вопросы с множественным выбором: если модель говорит «уверен на 80%», то в 80% случаев ответ действительно верен. Но RLHF-дообучение ломает эту калибровку — модель становится менее уверенной в своих вероятностях.

Indirect query — хитрый подход от Agrawal et al. (2023) для проверки галлюцинаций в ссылках на литературу. Вместо прямого вопроса «Существует ли эта статья?» модель спрашивают косвенно: «Кто авторы этой статьи?» Гипотеза: если статья выдумана, разные сэмплы модели сгенерируют разных авторов с низкой вероятностью согласования. Прямой вопрос «Это реальная статья?» модель чаще отвечает «да» даже для выдуманных ссылок. Косвенный запрос работает лучше.

Методы борьбы с галлюцинациями

RAG с редактированием и атрибуцией — классический подход retrieval-augmented generation, но с модификациями. RARR (Retrofit Attribution using Research and Revision; Gao et al. 2022) берёт уже сгенерированный текст и ретроактивно добавляет атрибуцию. Сначала модель генерирует поисковые запросы для проверки каждого предложения, находит релевантные документы через Google, затем проверяет согласие между текстом и доказательствами. Если обнаружено противоречие — модель редактирует текст, минимально изменяя оригинал. Оценка включает два компонента: attribution (насколько текст соответствует доказательствам) и preservation (насколько сохранён исходный смысл).

FAVA (Mishra et al. 2024) похож, но использует дообученный редактор, обученный на синтетических данных с намеренно внесёнными ошибками. Модель учится не только находить, но и исправлять фактические ошибки.

Chain-of-Actions — CoVe (Chain-of-Verification; Dhuliawala et al. 2023) реализует многошаговую проверку. Модель генерирует базовый ответ, затем планирует проверочные вопросы, отвечает на них независимо (в идеале — факторизованно, каждый вопрос отдельно), и наконец генерирует финальный ответ с учётом обнаруженных несоответствий. Ключевое открытие: instruction-tuning и chain-of-thought сами по себе не уменьшают галлюцинации. Но факторизованная верификация — когда каждый проверочный вопрос задаётся отдельно, без контекста исходного ответа — работает значительно лучше.

RECITE (Sun et al. 2023) использует другой подход: модель сначала «пересказывает» релевантную информацию из своей памяти, затем генерирует ответ на основе этого пересказа. Это похоже на то, как человек сначала вспоминает контекст, прежде чем ответить на вопрос. Качество пересказа сопоставимо с BM25-ретривером, но уступает использованию ground truth.

Методы сэмплирования — Factual-nucleus sampling (Lee et al. 2022) динамически адаптирует параметр p в top-p sampling в зависимости от позиции токена в предложении. Гипотеза: случайность вредит фактологичности больше в конце предложения, чем в начале. Поэтому для ранних токенов используется высокая случайность (для разнообразия), а для поздних — низкая (для фактологичности).

Inference-Time Intervention (ITI; Li et al. 2023) обнаружил, что определённые attention heads коррелируют с фактологичностью. Обучив линейный классификатор различать truthful и false активации, можно на этапе инференса сдвигать активации в «truthful» направлении для топ-K heads. Это снижает галлюцинации без переобучения модели.

Fine-tuning for Factuality — FLAME (Lin et al. 2024) предлагает factuality-aware alignment. На этапе SFT генерируются данные, которые более фактологичны (по FActScore), чем собственная генерация модели. На этапе DPO используется FActScore как reward signal вместо человеческих предпочтений. Выяснилось, что стандартный RLHF ухудшает фактологичность: человеческие annotators предпочитают более длинные и детальные ответы, которые не обязательно более точны.

Factuality tuning (Tian & Mitchell et al. 2024) оценивает правдивость атомарных утверждений двумя способами: reference-based (проверка через Wikipedia и NLI-модель) и reference-free (уверенность модели как прокси правдивости). Затем запускается DPO с этими оценками.

Практические выводы для продакшена

Если вы внедряете LLM в бизнес-процессы, вот что важно учитывать. Во-первых, RAG — не панацея, но это лучший из доступных инструментов. Retrieval значительно снижает галлюцинации, но не устраняет их полностью. Модель всё ещё может интерпретировать retrieved документы неправильно или игнорировать их.

Во-вторых, калибровка уверенности критична. Модель должна «знать, что не знает». Если система не может ответить на вопрос, она должна явно сказать об этом, а не генерировать правдоподобный, но выдуманный ответ. Методы вроде SelfCheckGPT и indirect query помогают обнаруживать такие случаи.

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

В-четвёртых, тонкая настройка для обновления знаний — рискованная стратегия. Модель плохо усваивает новые факты через небольшой объём данных и начинает галлюцинировать сильнее. Если нужно обновить знания — используйте RAG вместо дообучения.

В-пятых, размер модели имеет значение. Большие модели галлюцинируют реже (хотя и не избавлены от проблемы полностью), лучше калиброваны в своей уверенности и эффективнее используют методы верификации.

Часто задаваемые вопросы

Почему RAG не полностью решает проблему галлюцинаций? RAG снижает галлюцинации, предоставляя внешние источники, но модель может неправильно интерпретировать retrieved документы, игнорировать их или противоречить им. Кроме того, retrieval сам по себе может вернуть нерелевантные или устаревшие документы. RAG — necessary, но не sufficient условие для фактологичности.

Можно ли полностью доверять большим моделям вроде GPT-4? Большие модели галлюцинируют реже, но не избавлены от проблемы. Они лучше калиброваны, эффективнее используют верификацию, но всё ещё могут выдумывать факты, особенно о редких сущностях или в длинных генерациях. Доверие должно быть ограничено критичностью задачи.

Как отличить галлюцинацию от правильного ответа? Методы включают: множественные сэмплы и проверку согласованности (SelfCheckGPT), косвенные запросы (indirect query), retrieval-augmented verification (FActScore, SAFE), калибровку уверенности. Для продакшена комбинируйте несколько методов.

Стоит ли дообучать модель для обновления знаний? Обычно нет. Тонкая настройка на новых фактах замедляет обучение и увеличивает склонность к галлюцинациям. Используйте RAG для динамических знаний, а дообучение — для изменения поведения (instruction following, tone), а не для добавления фактов.

Галлюцинации — не временная проблема, которую решит следующая версия модели. Это фундаментальное следствие статистической природы языковых моделей. Но методы детекции и митигации достаточно зрелы для продакшена: RAG, верификация через множественные сэмплы, калибровка уверенности и factuality-aware alignment. Ключ — не надеяться, что модель всегда права, а строить системы, которые проверяют её ответы и явно обрабатывают неопределённость.

← Все записи