В прошлом году один казахстанский банк запустил AI-бота для консультаций по кредитам. Бот работал отлично — быстро отвечал, вежливо общался, клиенты были довольны. А потом случилось вот что.
Клиент спросил: «Какая ставка по ипотеке для молодой семьи?» Бот уверенно ответил: «Ставка составляет 5% годовых по государственной программе "Баспана Хит"». Проблема в том, что на тот момент ставка была уже 7%, а условия программы изменились полгода назад. Клиент пришёл в отделение, сослался на бота, и менеджеру пришлось объяснять, что «бот ошибся». Представляете реакцию клиента?
Это называется галлюцинацией — когда AI уверенно выдаёт неверную информацию. И это главная причина, почему многие компании боятся внедрять AI-ботов в критически важные процессы. Не потому что технология плохая, а потому что без правильной настройки бот может навредить больше, чем помочь.
Хорошая новость: галлюцинации можно контролировать. Не устранить полностью — это пока невозможно — но свести к минимуму и сделать так, чтобы бот честно признавался, когда не знает ответа. В этой статье разберём, как это сделать на практике.
«Когда мы внедрили принцип "не уверен — не отвечай", количество жалоб на неверную информацию упало в 8 раз. Да, бот стал чаще говорить "уточните у менеджера", но клиенты это оценили. Честность важнее всезнайства.»
Прежде чем бороться с проблемой, нужно понять её природу. Галлюцинации — это не баг, а особенность того, как работают большие языковые модели (LLM).
Когда вы спрашиваете ChatGPT или другую модель о чём-то, она не ищет ответ в базе данных. Она предсказывает, какие слова должны идти дальше, основываясь на паттернах, которые видела во время обучения. Это похоже на очень эрудированного собеседника с идеальной памятью на паттерны, но без способности проверить факты.
Представьте, что вы спросили такого собеседника: «Какой телефон у директора компании X?» Он вспомнит тысячи примеров, где номера телефонов упоминались рядом с названиями компаний, и выдаст что-то похожее на правду. Но это будет именно «похожее», а не реальный номер.
Вот почему галлюцинации особенно опасны в бизнес-контексте:
Важно понимать: галлюцинации — это не признак плохой модели. Даже самые продвинутые системы (GPT-4, Claude, Gemini) галлюцинируют. Разница в частоте и в том, насколько модель способна «осознавать» границы своих знаний. Но полностью избавиться от этого на уровне модели пока нельзя.
Неверные цены, ставки, сроки, условия. Самый опасный тип — клиент может принять решение на основе ложных данных.
Бот придумывает продукты, услуги, документы, которых нет. «У нас есть тариф "Премиум Плюс"» — а его нет.
Данные, которые были верны полгода назад, но уже изменились. Особенно актуально для цен и условий.
Бот связывает несвязанные вещи: «При покупке телевизора скидка на холодильник» — хотя такой акции нет.
Cite or Decline — это простая, но мощная концепция: бот либо отвечает со ссылкой на источник, либо честно говорит, что не знает. Никаких «я думаю», «возможно», «скорее всего». Или факт с доказательством, или признание незнания.
На практике это работает так. Когда бот получает вопрос, он сначала ищет ответ в базе знаний (об этом мы писали в статье про RAG-архитектуру). Если находит — отвечает и указывает, откуда взял информацию. Если не находит — говорит: «Я не нашёл точной информации по вашему вопросу. Рекомендую уточнить у менеджера».
Есть несколько уровней реализации, от простого к сложному:
| Уровень | Что делаем | Эффективность |
|---|---|---|
| Базовый | Инструкция в промпте: «Отвечай только если нашёл информацию в контексте. Если не нашёл — скажи об этом» | 60-70% снижение галлюцинаций |
| Продвинутый | Требуем от модели указать конкретный фрагмент источника, на который она ссылается | 80-85% снижение галлюцинаций |
| Экспертный | Постобработка: проверяем, что цитата действительно есть в источнике, и она релевантна вопросу | 90-95% снижение галлюцинаций |
Важный момент: даже базовый уровень даёт ощутимый результат. Простая инструкция «если не уверен — не отвечай» уже отсекает большинство выдумок. Но для критически важных процессов (финансы, медицина, юридические вопросы) нужны все три уровня.
Это упрощённый пример. В реальных системах промпт включает больше инструкций по форматированию, обработке edge-cases и интеграции с CRM.
Cite or Decline — это философия. Пороги уверенности — это её техническая реализация. Идея в том, чтобы измерить, насколько бот «уверен» в своём ответе, и действовать по-разному в зависимости от этого показателя.
Откуда берётся уверенность? Есть несколько источников:
Когда RAG-система ищет информацию в базе знаний, она получает не только текст, но и score — число, показывающее, насколько найденный фрагмент похож на вопрос. Если score высокий (например, 0.85 из 1.0) — вероятно, нашли то, что нужно. Если низкий (0.3) — это «притянуто за уши».
Практическое правило: если лучший найденный фрагмент имеет score ниже порога (обычно 0.5-0.7, зависит от модели эмбеддингов), бот должен либо попросить уточнить вопрос, либо переключить на оператора.
Если на один вопрос нашлось 5 релевантных фрагментов из разных документов, и все они говорят одно и то же — уверенность высокая. Если нашёлся только один фрагмент с пограничной релевантностью — лучше перестраховаться.
Некоторые LLM умеют оценивать свою уверенность. Можно попросить модель ответить в формате: {"answer": "...", "confidence": "high/medium/low", "sources": [...]}. Это не идеальный метод (модель может быть уверена в неправильном ответе), но в сочетании с другими сигналами работает.
Score ≥ 0.8
3+ источника
→ Отвечаем уверенно
Score 0.5-0.8
1-2 источника
→ Отвечаем с оговоркой
Score < 0.5
0 источников
→ Переключаем на оператора
Конкретные пороги подбираются эмпирически для каждой системы. Начните с консервативных значений и постепенно ослабляйте.
Даже с Cite or Decline и порогами уверенности остаётся риск: модель может неправильно интерпретировать найденную информацию или «смешать» данные из разных источников. Для критичных данных нужен ещё один слой защиты — валидация.
Валидация — это проверка, что ответ бота соответствует реальным данным из источника истины. Это особенно важно для:
Есть два подхода, и лучше использовать оба:
1. Валидация на входе (pre-generation)
Перед тем как модель сгенерирует ответ, мы обогащаем контекст актуальными данными из систем. Например, клиент спрашивает про цену — мы сначала запрашиваем цену из 1С, и только потом передаём модели для формулирования ответа.
2. Валидация на выходе (post-generation)
После того как модель сформировала ответ, мы извлекаем из него ключевые данные (цены, даты, названия) и проверяем их по источникам. Если нашли расхождение — либо исправляем, либо не показываем ответ.
Второй подход сложнее в реализации, но надёжнее. Он ловит случаи, когда модель «творчески интерпретировала» данные.
Вопрос: Сколько стоит iPhone 15 Pro?
Ответ бота: iPhone 15 Pro стоит 650 000 тенге
Проблема: цена взята из устаревшего документа, реальная цена — 720 000 тенге
Вопрос: Сколько стоит iPhone 15 Pro?
Система: Запрос к API → актуальная цена 720 000 тенге
Ответ бота: iPhone 15 Pro стоит 720 000 тенге [Данные актуальны на сегодня]
Structured Outputs — это техника, при которой мы заставляем модель отвечать не свободным текстом, а в строго определённом формате (обычно JSON). Это даёт нам несколько преимуществ для борьбы с галлюцинациями.
Во-первых, структура ограничивает «творчество» модели. Когда нужно заполнить конкретные поля с конкретными типами данных, модели сложнее придумать что-то несуществующее.
Во-вторых, структурированные данные легче валидировать. Если модель должна вернуть {"price": 720000, "currency": "KZT"}, мы можем автоматически проверить, что цена — число, валюта — одна из допустимых, и значение в разумных пределах.
В-третьих, это заставляет модель явно указывать источники. Мы можем потребовать поле "sources" и проверить, что там не пусто.
Такая структура позволяет автоматически проверять каждое утверждение в ответе. Если sources пуст или confidence = "low", система может перенаправить на оператора.
Теория — это хорошо, но давайте перейдём к практике. Вот пошаговый план внедрения всех описанных техник.
Прежде чем что-то исправлять, нужно понять масштаб проблемы. Возьмите 100 последних диалогов бота и проверьте:
Этот аудит даст вам baseline — от чего отталкиваться и что измерять после внедрения.
Самый быстрый и дешёвый способ снизить галлюцинации — переписать системный промпт. Добавьте явные инструкции:
Если вы используете RAG-архитектуру (а для бизнес-бота это must-have), настройте пороги релевантности:
Переведите бота на структурированные ответы. Это потребует изменений в коде, но даст вам контроль над каждым элементом ответа.
Настройте слой валидации после генерации ответа:
Без мониторинга вы не узнаете, работают ли ваши улучшения. Отслеживайте:
Проведём аудит вашего AI-бота, найдём источники галлюцинаций и настроим анти-галлюцинационные механизмы. Первая консультация бесплатно.
Получить консультациюПарадокс: чем лучше бот умеет говорить «я не знаю», тем больше ему доверяют. Но важно, как именно он это делает. Сравните два варианта:
«Я не могу ответить на ваш вопрос.»
«По этому вопросу у меня нет точной информации. Чтобы вы получили актуальные данные, рекомендую связаться с нашим менеджером: +7 727 XXX-XX-XX или написать на support@company.kz»
Хороший отказ содержит три элемента:
Для разных ситуаций нужны разные шаблоны отказа:
| Ситуация | Шаблон ответа |
|---|---|
| Вопрос вне компетенции бота | «Этот вопрос лучше всего решит наш специалист. Давайте я переключу вас на оператора?» |
| Нужна персональная информация (статус заказа, баланс) | «Для доступа к этой информации мне нужно вас идентифицировать. Назовите, пожалуйста, номер заказа...» |
| Информация может быть устаревшей | «У меня есть данные на [дата], но рекомендую уточнить актуальную информацию у менеджера, так как условия могли измениться.» |
| Сложный или неоднозначный вопрос | «Это зависит от нескольких факторов. Чтобы дать точный ответ, мне нужно больше информации. Какой именно [продукт/услуга] вас интересует?» |
В Казахстане есть своя специфика, которую нужно учитывать при борьбе с галлюцинациями.
Боты в Казахстане часто работают на русском и казахском. При этом база знаний может быть на одном языке, а вопрос — на другом. Это увеличивает риск галлюцинаций:
Решение: используйте мультиязычные эмбеддинги для поиска и явно указывайте в промпте, как обрабатывать смешанные запросы.
Казахстанские реалии (Kaspi, БИН/ИИН, тенге, местные банки и компании) хуже представлены в обучающих данных западных моделей. Это означает, что модель с большей вероятностью будет галлюцинировать на локально-специфичных вопросах.
Решение: расширенная база знаний с казахстанской спецификой, более строгие пороги уверенности для локальных вопросов, интеграция с Kaspi и другими локальными системами для валидации.
В финансовом и медицинском секторах неверная информация от бота может иметь юридические последствия. Если бот неправильно сообщил условия кредита или страховки — это потенциальный риск.
Решение: для регулируемых отраслей используйте максимально строгие анти-галлюцинационные настройки, логируйте все ответы, и всегда добавляйте дисклеймер о необходимости проверки у специалиста.
Что не измеряешь — тем не управляешь. Вот метрики, которые стоит отслеживать:
| Метрика | Что измеряет | Целевое значение |
|---|---|---|
| Factual Accuracy Rate | % ответов без фактических ошибок (по результатам аудита) | 95%+ |
| Source Citation Rate | % ответов с указанием источника | 90%+ |
| Graceful Decline Rate | % случаев, когда бот корректно отказался отвечать | Оптимум: 10-20% |
| False Confidence Rate | % ответов с высокой уверенностью, которые оказались неверными | менее 2% |
| Customer Complaint Rate | % диалогов с жалобой на неверную информацию | менее 1% |
Важно: «Graceful Decline Rate» должен быть в балансе. Слишком низкий (менее 5%) — бот, скорее всего, отвечает на вопросы, которые не должен. Слишком высокий (более 30%) — бот бесполезен, потому что на всё говорит «не знаю».
Галлюцинации — это не приговор для AI-ботов. Да, полностью избавиться от них нельзя, но можно свести к минимуму и контролировать последствия. Главные принципы:
Начните с малого: обновите промпт, добавьте базовые пороги, настройте корректные отказы. Уже это даст ощутимый результат. Потом добавляйте более сложные механизмы по мере необходимости.
И помните: клиенты прощают «я не знаю, давайте уточню». Клиенты не прощают уверенную ложь. Честный бот лучше всезнающего врунишки.
Проведём аудит, настроим анти-галлюцинационные механизмы, обучим команду. Бот будет отвечать только правду — или честно молчать.
Получить консультацию