← Claude на русском
Перевод с разбором · для Сони
Адаптировал Claude Opus 4.7 (ИИ) на основе документации Anthropic. Полная версия — в docs/reduce-hallucinations.html.

Снижение галлюцинаций

Адаптация для Сони · 2026-04-27

Что такое галлюцинация

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

Базовый фундамент — в гайде «Как работают LLM», раздел про галлюцинации. Эта адаптация — про конкретные техники, которые применимы к твоему боту.

Типичные галлюцинации в твоём боте

1. Выдуманные факты о пользователе

Самый частый случай. Модель «помнит», что пользователь работает в банке (хотя он не говорил), что у него есть собака (нет), что он раньше упоминал поход к психиатру (тоже нет). Это собралось из похожих диалогов в обучающих данных, или из неаккуратной истории чата.

Лечение: подавать факты о пользователе из БД, а не из памяти модели. В системном промпте — раздел <user_notes> с тем, что ты знаешь, и инструкция: «не делай предположений о фактах, которых нет в user_notes; если нужно — спроси».

2. Несуществующие ссылки и источники

«Прочитай статью на psychology-today.ru/adhd-2024» — такого URL нет. Модель собрала его из похожих. Или: «Карл Юнг писал, что…» — Юнг такого не писал.

Лечение: запретить в системном промпте давать URL и цитировать конкретных авторов. Если нужно «отправить почитать» — пусть бот говорит «есть исследования о...», без конкретных ссылок. Или вообще не идёт в эту тему — у тебя бот поддержки, не справочник.

3. Уверенные ответы на вопросы вне компетенции

«Какие лекарства от СДВГ» — модель ответит уверенно, и это опасно. Бот не врач.

Лечение: явный список тем «не отвечай, перенаправь к специалисту»: медицина, юриспруденция, диагностика, точные дозы.

4. «Помню, что» в долгом диалоге

После 30 сообщений модель может «вспомнить» что-то, чего пользователь не говорил, но что собралось из общего тона диалога. Это особенность окна контекста: история длинная, факты в середине плывут.

Лечение: сжимать историю в структурированную сводку и подавать как факт, а не полагаться на сырую историю сообщений.

Базовые техники из оригинала

«Разреши модели сказать "не знаю"»

Anthropic в оригинале: «Эта простая техника может резко уменьшить количество ложной информации». Звучит банально, и действительно работает.

Если ты не уверена в каком-то факте — скажи «не знаю» или «не
помню, расскажи ещё раз», не выдумывай. Это нормальный ответ, не
ошибка.

Без явного разрешения модель «по умолчанию» считает, что от неё ждут ответа, и заполнит пустоту правдоподобной выдумкой. Разрешение не молчать — снимает это давление.

«Опирайся только на предоставленный контекст»

Если ты подмешиваешь в промпт заметки о пользователе из БД, добавь инструкцию: модель должна опираться только на них, не на общие предположения.

Все факты о пользователе, которые ты можешь использовать — в блоке
<user_notes>. Не предполагай ничего, чего там нет. Если нужна
дополнительная информация — спроси у пользователя, не додумывай.

Цитаты-якори (для длинных документов)

В оригинале Anthropic советует для документов больше 20k токенов: сначала попросить модель извлечь прямые цитаты, потом отвечать на их основе. У тебя в боте длинных документов нет — но похожий приём работает с историей чата:

Прежде чем ответить, найди в истории чата 1-2 фразы пользователя,
которые относятся к текущему вопросу. Цитируй их в <quotes>.
Дальше отвечай, опираясь только на эти цитаты, не на «общее
впечатление».

Продвинутые техники

Самопроверка

После того как модель сформулировала ответ — попроси проверить его. Это ловит грубые галлюцинации (см. также адаптацию «Chain-of-thought»):

После того как сформулировала ответ, проверь:
- Все ли факты о пользователе, которые ты упомянула, есть в
  <user_notes>?
- Не дала ли ты конкретный URL или цитату конкретного автора?
- Не дала ли медицинских/юридических рекомендаций?

Если что-то не так — перепиши ответ.

Best-of-N

Если задача критичная (например, классификация кризисного сообщения) — прогони модель несколько раз с температурой 0.3–0.7 и сравни ответы. Если все совпали — высокая уверенность. Если разошлись — флаг для ручного разбора.

Для бота с десятками сообщений в минуту — это дорого, поэтому применяй точечно: только на критичных решениях (триггеры кризисного протокола, сохранение долгосрочной цели).

Итеративная доработка

Тот же приём, что и в адаптации «Цепочка промптов»: первый запрос — черновик, второй — критика, третий — переписать. Помогает на задачах, где ответ длинный и в нём может быть несколько мелких выдумок.

Конкретный системный промпт против галлюцинаций

Готовый блок, который можно вставить в системный промпт бота:

# БОРЬБА С ВЫДУМКАМИ

1. Все факты о пользователе бери ТОЛЬКО из <user_notes>.
   Не предполагай работу, семейное положение, диагнозы, опыт —
   ничего, чего там нет. Если нужно — спроси.

2. Не давай конкретных URL, не цитируй конкретных авторов и научные
   статьи. Если уместно — говори «есть исследования о...», без
   ссылок.

3. Не давай медицинских рекомендаций, дозировок, диагнозов. Если
   пользователь просит — направь к специалисту.

4. Если ты не уверена в чём-то — скажи «не знаю» или «не помню,
   расскажи ещё раз». Это лучше, чем угадать неправильно.

5. Перед финальным ответом перепроверь: все ли упомянутые факты
   подтверждены <user_notes> или текущим сообщением пользователя?
   Если нет — убери или перефразируй.

Это не панацея. Anthropic в оригинале честно пишет: «хотя эти техники значительно уменьшают галлюцинации, они не устраняют их полностью. Всегда валидируй критически важную информацию». Для бота это значит: важные действия — через tools и подтверждение пользователя (не «модель сохранила цель», а «модель спросила, цель такая? — да — tool save_goal»).

Как ловить галлюцинации в эксплуатации

Памятка