Универсальная языковая модель на вопрос про маршрут: «Как проехать от улицы Ленина до рынка в городе N?»
Ответит уверенно и подробно. Но ответ будет выдуманным — модель не знает город N.
Галлюцинация — не баг, а особенность архитектуры LLM.
Проблема галлюцинаций языковых моделей
Галлюцинация — это уверенный, но неверный ответ модели.
Почему модели галлюцинируют
| Причина | Механизм |
|---|---|
| Обучение на вероятностях | модель генерирует текст, который "звучит правильно" |
| Отсутствие механизма проверки | нет доступа к реальным данным |
| Инструкция "быть полезным" | модель обучена отвечать всегда, даже без информации |
| Ограниченное окно контекста | не помнит, что было вне последних токенов |
Модель не "знает" факты — она предсказывает вероятное продолжение текста.
Примеры галлюцинаций:
- Выдуманные ссылки на несуществующие статьи
- Неверные даты и цифры
- Приписывание цитат людям, которые их не говорили
- Уверенные ответы на вопросы о том, чего нет в обучающих данных
Статистика: в новых моделях с функцией рассуждений уровень галлюцинаций выше, чем в старых.
Почему галлюцинации критичны для бизнеса
| Сценарий | Последствие галлюцинации |
|---|---|
| Юридический документ | неверное условие договора |
| Финансовый отчёт | выдуманные цифры |
| Техническая документация | ошибочные инструкции |
| HR-регламенты | неверная информация для сотрудников |
Для развлечения галлюцинации терпимы. Для бизнеса — неприемлемы.
Решение: RAG (Retrieval-Augmented Generation)
RAG — архитектура, где модель отвечает только на основе найденных документов.
Принцип RAG:
Вопрос пользователя
↓
Поиск релевантных фрагментов в базе знаний
↓
Найденные фрагменты + вопрос → языковая модель
↓
Модель формулирует ответ ТОЛЬКО на основе предоставленного контекста
Ключевое отличие: модель не "вспоминает" из обучения, а работает с конкретными документами.
Сравнение подходов
| Параметр | Обычная LLM | RAG |
|---|---|---|
| Источник ответа | обучающие данные (статичны) | база знаний (актуальная) |
| Проверяемость | нет | да (есть ссылки на документы) |
| Обновление данных | требует переобучения | обновление базы знаний |
| Галлюцинации | высокий риск | низкий риск |
RAG превращает модель из "эрудита" в "клерка с доступом к архиву".
Архитектура RAG-системы
Компоненты RAG
| Компонент | Функция |
|---|---|
| База знаний | корпоративные документы, регламенты, инструкции |
| Retriever | "умный поиск" по документам |
| Векторная БД | хранит эмбеддинги документов |
| Языковая модель | формулирует ответ на основе найденного |
| Оркестратор | связывает все компоненты |
Процесс обработки запроса:
Вопрос: "Сколько дней отпуска положено?" ↓ Преобразование в эмбеддинг ↓ Поиск похожих фрагментов (k-NN search) ↓ Найдены чанки из HR-документов ↓ Промпт: "Контекст: [найденные фрагменты]. Вопрос: ... Ответь ТОЛЬКО на основе контекста." ↓ Модель: "28 календарных дней согласно разделу 3.2 регламента."
Время обработки: 2-3 секунды.
Как работает Retriever
Retriever — ключевой компонент, обеспечивающий поиск.
Подготовка документов:
Документ (например, HR-регламент) ↓ Разбиение на чанки (200-1000 токенов) ↓ Преобразование чанков в векторы (эмбеддинги) ↓ Сохранение в векторную БД
Поиск релевантных фрагментов:
Вопрос → Эмбеддинг вопроса → k-NN search (поиск k ближайших соседей) → Топ-N релевантных чанков
k-NN search находит чанки, векторы которых ближе всего к вектору вопроса. Близость векторов = семантическая похожесть текстов.
Эмбеддинги — векторное представление смысла
Эмбеддинг преобразует текст в список чисел (вектор).
Пример:
- "Оформление отпуска" → [0.23, -0.15, 0.87, ..., 0.42] (768 чисел)
- "Как оформить отпуск?" → [0.21, -0.14, 0.89, ..., 0.40] (близкий вектор)
- "Цена сервера" → [-0.45, 0.72, -0.33, ..., 0.11] (далёкий вектор)
Близкие векторы = похожий смысл. Далёкие векторы = разные темы. Это позволяет искать по смыслу, а не по точному совпадению слов.
Ограничение галлюцинаций через промптирование
Даже с RAG модель может "додумать" ответ. Проблема: Retriever находит частично релевантный фрагмент, модель "дополняет" недостающее из обучения. Решение: явная инструкция в промпте.
Промпт без ограничения галлюцинаций:
Контекст: [фрагменты документов]
Вопрос: Как оформить больничный?
Промпт с ограничением:
Контекст: [фрагменты документов]
Вопрос: Как оформить больничный?
Инструкция: Отвечай ТОЛЬКО на основе контекста. Если ответа нет в контексте — скажи ровно: "Я не знаю".
Результат: модель отказывается отвечать при отсутствии информации вместо галлюцинирования.
Ограничения RAG
RAG снижает галлюцинации, но не устраняет их полностью.
| Проблема | Причина |
|---|---|
| Не найден нужный чанк | неточность поиска, плохое разбиение документов |
| Найдена устаревшая информация | база знаний не обновлена |
| Противоречивые фрагменты | разные документы содержат разную информацию |
| Неверная интерпретация контекста | модель неправильно понимает фрагмент |
Критично: качество RAG зависит от качества базы знаний. Мусор на входе (плохие документы) = мусор на выходе (неверные ответы).
Главная ошибка внедрения RAG
Типичный сценарий: «Подключим RAG к универсальной модели — галлюцинаций не будет.» Проблема: RAG работает только с качественной базой знаний.
Что нужно для работы RAG:
- Актуальные документы (регулярное обновление)
- Структурированная информация (не хаос)
- Полнота данных (ответы на типовые вопросы)
- Правильное разбиение на чанки
Без этого RAG будет находить нерелевантные фрагменты и давать некорректные ответы.
Правильный подход:
- Подготовить базу знаний
- Проверить качество поиска
- Настроить промптирование
- Тестировать на реальных вопросах
Практическое применение RAG
Где RAG эффективен
| Сценарий | Почему подходит RAG |
|---|---|
| Корпоративные регламенты | актуальная информация, проверяемые ответы |
| Техническая документация | точность критична, нужны ссылки на источники |
| Поддержка клиентов | типовые вопросы, готовая база ответов |
| Юридические консультации | требуется цитирование источников |
Где RAG не подходит:
- Креативные задачи (нет базы для поиска)
- Рассуждения (нужна логика, а не факты)
- Общение (нужна эрудиция, а не документы)
RAG превращает модель из эрудита в надёжного специалиста с доступом к архиву.
Ключевые принципы:
- Модель отвечает только на основе найденных документов
- Эмбеддинги позволяют искать по смыслу, а не по словам
- Промптирование ограничивает галлюцинации
- Качество ответов зависит от качества базы знаний
Архитектура RAG:
- База знаний (корпоративные документы)
- Retriever (поиск релевантных фрагментов)
- Векторная БД (хранение эмбеддингов)
- Языковая модель (формулирование ответа)
Ограничения:
- Не устраняет галлюцинации полностью
- Зависит от актуальности базы знаний
- Требует настройки и тестирования
Правильная стратегия: RAG для задач, где критична фактическая точность и проверяемость ответов.
Частые вопросы
Почему RAG снижает галлюцинации?
Модель отвечает не из обучающих данных (которые могут быть неполными), а из конкретных документов, предоставленных в промпте. Плюс явная инструкция "не отвечать без информации в контексте" заставляет модель отказываться от ответа вместо галлюцинирования.
Гарантирует ли RAG отсутствие галлюцинаций?
Нет. RAG снижает риск, но не устраняет галлюцинации полностью. Модель может неправильно интерпретировать контекст, Retriever может найти нерелевантный фрагмент. Качество RAG критически зависит от качества базы знаний и настройки поиска.
Что важнее в RAG — модель или база знаний?
База знаний. Даже лучшая модель не даст правильный ответ, если Retriever найдёт устаревший или нерелевантный документ. Мусор на входе = мусор на выходе. Актуальность, полнота и структурированность базы знаний критичны для работы RAG.
