Что такое галлюцинации и почему они возникают
Галлюцинация в LLM – это генерация информации, которая звучит достоверно, но является ложной или необоснованной. Это не «ошибка» в смысле сбоя системы, а следствие самого принципа работы языковых моделей. LLM не «знает» ничего так, как знает база данных. Она предсказывает наиболее вероятный следующий токен на основе статистики обучения. Когда в промпте появляется вопрос, по которому у модели нет хорошего покрытия в обучающих данных, она генерирует ответ, который звучит наиболее правдоподобно. Часто он верен. Иногда нет.
Типичные сценарии галлюцинаций в бизнес-приложениях:
- Цитирование несуществующих судебных решений или статей законов при юридическом консультировании
- Выдумывание названий функций, классов или библиотек при генерации кода
- Приведение неверной статистики или дат в отчётах
- Выдумывание контактов, адресов, телефонных номеров
- Смешивание фактов о разных компаниях или людях со схожими именами
Уровень 1: grounding (RAG)
Самая эффективная отдельная техника снижения галлюцинаций – это grounding, то есть предоставление модели конкретных документов или данных в качестве контекста, из которого она должна черпать ответы. Классический RAG (Retrieval-Augmented Generation) выглядит так:
- Вопрос пользователя → поиск наиболее релевантных фрагментов документов (векторный поиск в базе pgvector / Qdrant / Milvus)
- Фрагменты + вопрос → промпт с инструкцией «отвечай исключительно на основе приведённых ниже документов»
- Ответ модели → проверка, что он содержит цитаты или ссылки на источники
RAG заметно снижает галлюцинации в приложениях типа «отвечай на вопросы по нашей базе знаний». Полностью он их не устраняет: модель всё ещё может «интерпретировать» документы неправомерным образом. Отсюда необходимость следующих уровней.
Уровень 2: self-consistency и ensemble
Self-consistency заключается в том, чтобы задать один и тот же вопрос несколько раз (или нескольким разным моделям) и сравнить ответы. Согласованные ответы означают высокую степень доверия. Расходящиеся – сигнал, что тема неопределённая.
Практический вариант: спросите одно и то же у Claude Sonnet, Llama 70B и Bielik. Если все три возвращают одно и то же число, дату или факт, ответ, вероятно, верен. Если они расходятся, дело передаётся человеку или более дорогой модели (Opus). Этот паттерн, реализованный в 8-уровневой маршрутизации LLM, сочетает снижение затрат с повышением достоверности.
Уровень 3: evaluation pipelines
Промышленное внедрение LLM без evaluation pipeline – это как писать код без тестов. Конкретные метрики:
- Faithfulness: следует ли ответ из предоставленных документов. Измеряется второй AI-моделью (LLM-as-judge) или библиотекой типа RAGAS, deepeval.
- Answer relevance: относится ли ответ к вопросу пользователя.
- Context precision: вернул ли retrieval лучшие фрагменты (качество векторного поиска).
- Groundedness score: доля утверждений в ответе, для которых можно указать источник в контексте.
Каждая новая сборка приложения на основе LLM должна проходить набор оценочных вопросов с известным ground truth (например, 50-500 вопросов). Пример порога, подбираемого под конкретное внедрение: faithfulness ниже 90%? Деплой заблокирован.
Уровень 4: guardrails и валидация вывода
Guardrails – это правила, валидирующие вывод LLM, прежде чем он попадёт к пользователю. Примеры:
- Schema validation: вывод должен соответствовать конкретной схеме (JSON Schema, Pydantic). Галлюцинации типа «выдуманные поля» выявляются механически.
- Forbidden patterns: обнаружение и блокировка недопустимых паттернов (PII без маскирования, финансовые данные вне контекста, потенциально вредоносный контент).
- Citation enforcement: каждое фактическое утверждение должно иметь ссылку на источник. Если модель не цитирует, ответ отклоняется.
- Numeric range validation: числа в выводе проверяются на разумность (например, цена > 0, дата ≤ сегодня, процент в диапазоне 0-100).
- Cross-reference check: сравнение вывода с базой фактов (например, реестром юрлиц, словарём цитат из законов).
Библиотеки: Guardrails AI, NeMo Guardrails, instructor (для schema enforcement). Собственная реализация зачастую проще и дешевле в сопровождении.
Уровень 5: human-in-the-loop
Для приложений высокого риска (юридические, медицинские, финансовые, кадровые решения) уровень human-in-the-loop необходим. AI-модели не принимают финальное решение. Они поддерживают человека. Конкретные паттерны:
- Draft + review: AI генерирует первую версию документа или ответа, человек проверяет и утверждает перед отправкой.
- Confidence threshold: ответы с низкой уверенностью (из self-consistency или из явного вопроса о степени уверенности) автоматически передаются человеку.
- Random sampling QA: например, 5-10% всех ответов LLM (порог подбирается под конкретное внедрение) проверяется вручную независимо от уровня уверенности. Это базовая метрика качества во времени.
- Feedback loop: пользователь может отметить неверный ответ; система учится и улучшает retrieval, промпты, параметры.
Измерение: как узнать, что снижение работает
Промышленные метрики для постоянного мониторинга:
- Показатель галлюцинаций: доля ответов, классифицированных как галлюцинация при ручной оценке (выборочной). Пример цели, подбираемой под внедрение: ниже 2% для business-critical приложений.
- User feedback rate: доля пользователей, отметивших ответ как неверный.
- Escalation rate: доля запросов, переданных человеку. Слишком низкий показатель (ниже 5%) указывает, что система пропускает неопределённые случаи. Слишком высокий (выше 30%) означает, что система не обеспечивает автоматизационной ценности.
- Faithfulness score в регрессионных тестах: месячный тренд.
- Time-to-correction: от обнаружения галлюцинации до внедрения исправления (лучший retrieval, новый guardrail, fine-tuning).
Выводы для руководителей
Галлюцинациями можно управлять, но это требует инвестиций в многоуровневую защитную архитектуру. Компании, внедряющие LLM без такой архитектуры, рано или поздно столкнутся с серьёзным инцидентом: публикацией неверной информации клиенту, ошибочным решением на основе выдуманных данных, ущербом репутации. Стоимость построения полного защитного стека (RAG + evaluation + guardrails + human-in-the-loop) – заметная, но меньшая часть стоимости самого внедрения LLM. Для промышленных приложений это необходимая инвестиция. Последствия пренебрежения асимметричны: обычно бездействие ничего не стоит, пока в один день не обходится катастрофически.