Галлюцинации: причины и минимизация
Галлюцинации: причины и минимизация
Галлюцинация в контексте языковых моделей — это когда модель генерирует текст, который звучит правдоподобно, но является выдумкой. Модель может «вспомнить» несуществующий закон, придумать статью с fake цитатой или изобрести телефонный номер. Это не баг, а фундаментальное свойство генеративных моделей.
Почему модели галлюцинируют
Модель не «знает» факты в человеческом смысле. Она обучена предсказывать следующий токен на основе вероятностей. Когда модель не уверена, она всё равно выдаёт наиболее вероятное (с её точки зрения) продолжение — и оно может оказаться выдумкой.
Галлюцинации наиболее вероятны, когда:
- Модель спрашивают о том, чего нет в обучающих данных — например, «Какой счёт в матче Россия–Бразилия 15 апреля 2027 года?» (дата в будущем).
- Вопрос требует точных цифр или имён, которые модель не «запомнила».
- Модель просят сослаться на источники — она может придумать убедительно выглядящую, но несуществующую статью.
- Промпт содержит ложную предпосылку — модель продолжает в рамках этой предпосылки.
Примеры галлюцинаций
Галлюцинация факта:
Кто написал книгу «Основы квантовой лингвистики»?
Модель может придумать автора, год издания и краткое содержание — если такой книги не существует, а название звучит правдоподобно.
Галлюцинация источника:
Приведи результаты исследования о влиянии сна на продуктивность
программистов. Укажи авторов и журнал.
Модель может выдать: «Smith et al. (2024), Journal of Software Psychology» — журнал и авторы выглядят реалистично, но не существуют.
Галлюцинация вычисления:
Сколько будет 1234567 × 7654321?
Без CoT модель может выдать правдоподобное, но неверное число.
Как минимизировать галлюцинации
1. Проси модель говорить «я не знаю»
Если ты не уверен в ответе или у тебя нет точной информации —
так и скажи: «У меня нет точной информации по этому вопросу».
НЕ придумывай.
2. Требуй цитаты из предоставленного текста
Ответь, используя ТОЛЬКО информацию из документа ниже.
Если информации недостаточно — укажи это. Не добавляй ничего от себя.
Документ: ...
Это ограничивает модель рамками данных, которые ты ей дал.
3. Используй structured outputs с confidence
Дай ответ в JSON. Включи поле confidence (0–1) — твоя уверенность
в ответе. Если confidence < 0.8, не включай этот факт в ответ.
4. CoT для вычислений
Реши задачу. Давай подумаем шаг за шагом.
CoT снижает вероятность галлюцинации при расчётах на порядок.
5. Верификация через второй запрос
После получения ответа с фактами — перепроверь их:
Ты написал, что закон «О защите данных» был принят в 2015 году.
Перепроверь: уверен ли ты в этом? Найди в своём ответе все факты
и для каждого укажи: уверен / не уверен.
Что не работает против галлюцинаций
- «Будь правдивым» — слишком размыто. Модель не знает, что такое правда в твоём понимании.
- «Не галлюцинируй» — модель не осознаёт процесс галлюцинации как таковой.
- temperature = 0 — снижает вариативность, но не устраняет галлюцинации. Модель с temperature 0 может уверенно и консистентно выдавать один и тот же неправильный ответ.
Проверь себя
Ты делаешь чат-бота для юридической консультации. Какие техники защиты от галлюцинаций применишь?
Пример ответа: 1) Запрос ТОЛЬКО на основе базы знаний — «отвечай только по документам, не добавляй от себя». 2) Обязательное цитирование: для каждого утверждения — ссылка на статью закона. 3) Если ответа нет в базе — «обратитесь к юристу, это сложный вопрос». 4) Structured output с confidence — ответы с низкой уверенностью помечать как «возможный вариант, требует проверки».
Итог
- Галлюцинация — правдоподобная выдумка модели, фундаментальное свойство генеративных моделей.
- Возникает, когда модель не уверена, но вынуждена ответить.
- Минимизация: разреши модели говорить «не знаю», ограничивай рамками данных, используй CoT, добавляй confidence.
- Не работают: абстрактные просьбы «быть правдивым» и нулевой temperature.
- В критических приложениях (медицина, юриспруденция, финансы) — всегда перепроверяй ключевые факты.
Что дальше
Ты знаешь, как защитить промпты от инъекций и галлюцинаций. Теперь — о production-практике, которая экономит нервы и время: версионирование и хранение промптов. Как не потерять удачную версию и как откатиться, если новая работает хуже.