Как GEOZR находит галлюцинации нейросетей

25 июня 2026 г.·8 мин чтения

Нейросеть уверенно пишет, что ваш бренд работает с 2009 года, хотя компания открылась в 2017-м. Или приписывает продукту функцию, которой никогда не было. Или ссылается на исследование, которого не существует. Это и есть галлюцинация – момент, когда модель звучит максимально достоверно, но говорит чушь.

В моей практике это самая болезненная штука при работе с генеративными ответами в поиске. Если бренд представлен в ChatGPT, Perplexity или Gemini с ошибками, это бьёт по доверию сильнее, чем плохой сайт. Пользователь не пойдёт перепроверять — он просто запомнит неправильное.Нейросеть уверенно пишет, что ваш бренд работает с 2009 года, хотя компания открылась в 2017-м. Или приписывает продукту функцию, которой никогда не было. Или ссылается на «ваш» сайт, которого не существует. Это и есть галлюцинация — момент, когда модель звучит максимально достоверно, но говорит чушь.

Поэтому в GEOZR мы построили процесс, который ловит такие моменты чтобы их исправить. Дальше расскажу, как именно это работает: три метода, которые мы используем параллельно, плюс логика, почему один без другого не работает.


Почему одной проверки недостаточно

Сначала о главном: ни один из методов в одиночку не закрывает задачу. У каждого свои слепые зоны.

NLI (это метод сравнения смыслов через векторы) хорошо ловит прямые противоречия, но плохо работает с тонкими искажениями — например, когда модель «дофантазировала» деталь, которой нет, но и противоречия как такового нет.

LLM-as-a-Judge (когда другая нейросеть выступает арбитром) видит контекст и нюансы, но сама может ошибаться. Если судья тоже модель, у неё свои галлюцинации.

Факт-чекинг по сущностям (NER + парсинг утверждений) идеально находит конкретные ошибки в фактах — даты, цифры, названия. Но он слеп к смысловым искажениям, где факты вроде бы верные, но собраны в неправильную картину.

Поэтому мы используем все три подхода вместе. Один проверяет другого, и только то, что прошло все три фильтра, считается чистым ответом.

Метод 1: Natural Language Inference (NLI)

NLI — это техника, которая отвечает на простой вопрос: следует ли утверждение B из утверждения A, противоречит ему или вообще не связано.


Метод 1: Natural Language Inference (NLI)

Как это работает у нас

Берём два текста:

  1. описание проекта, которое задается в настройках бренда,

  2. ответ нейросети на тестовый запрос.

Дальше оба текста переводятся в векторы — математические представления смысла. Каждое предложение становится точкой в многомерном пространстве, где близкие по смыслу фразы лежат рядом, а противоречивые — далеко.

Затем модель сверяет пары утверждений и для каждой выдаёт один из трёх вердиктов:

  1. Следствие — утверждение следует из источника, всё ок;

  2. Противоречие — утверждение противоречит источнику, это галлюцинация;

  3. Нейтрал— связи нет, требуется дополнительная проверка.

Что это ловит

Допустим, в описании бренда указано: «Доставка работает по Москве и области». Нейросеть в ответе пишет: «Компания доставляет заказы по всей России». NLI ловит это как противоречие, потому что в векторном пространстве «Москва и область» и «вся Россия» — разные регионы охвата.

Если же модель пишет «Доставка возможна в пределах столичного региона» — это следствие, потому что смысл совпадает с исходником, просто другими словами.

Где NLI промахивается

Главная слабость — нейтральные случаи. Если нейросеть выдумала факт, которого в исходнике нет вообще (например, «у компании 500 сотрудников», хотя такой цифры нигде не было), NLI пометит это как neutral. Технически противоречия нет — исходник просто молчит на эту тему. Но это и есть классическая галлюцинация.

Поэтому всё, что попадает в neutral, мы отправляем дальше — на следующий уровень проверки.

Метод 2: LLM-as-a-Judge

Второй слой — когда мы используем отдельную нейросеть в роли строгого проверяющего. Звучит парадоксально (проверяем нейросеть нейросетью), но при правильной настройке это работает.


Метод 2: LLM-as-a-Judge

Логика подхода

Судье даётся три вещи:

  1. Промпт с жёсткими критериями оценки.

  2. Исходные данные — то, что считается правдой (описание бренда).

  3. Ответ модели-подсудимого — тот текст, который мы проверяем.

Критерии в промпте прописаны максимально однозначно. Не «оцени качество ответа», а конкретно: «Проверь каждое фактическое утверждение в ответе на соответствие исходным данным. Если факт отсутствует в исходных данных или противоречит им — помечай как галлюцинацию. Указывай конкретное место в тексте».

Почему это работает

Судья видит то, что NLI пропускает. Особенно тонкие искажения:

  1. неправильную интерпретацию цифр («рост на 30%» превратился в «рост в 30 раз»),

  2. подмену причинно-следственных связей,

  3. придуманные функции продукта, которых нет в спецификации,

  4. ложные ассоциации с другими брендами.

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

Настройки, которые критичны

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

  1. Температура низкая — чтобы модель не фантазировала.

  2. Формат ответа структурированный — JSON с полями claim, verdict, source_reference. Никакой свободной формы.

  3. Запрет на оправдания — судья не может сказать «возможно, имелось в виду». Либо факт есть в источнике, либо нет.

  4. Чек двойной — мы запускаем двух разных судей и сравниваем их вердикты. Если они расходятся более чем на 20%, кейс уходит на ручную проверку. Но такое случается действительно редко.

Слабое место

Судья сам может галлюцинировать. Был случай, когда модель-судья «придумала», что в исходнике есть упоминание о сертификации, хотя его там не было, и на этом основании одобрила ответ. Поэтому одного судьи недостаточно — нужен либо второй контур проверки.

Метод 3: Факт-чекинг через NER и парсинг утверждений

Третий метод самый «инженерный». Здесь мы не просим нейросеть оценить ответ — мы разбираем его на атомарные факты и проверяем каждый по отдельности.


Метод 3: Факт-чекинг через NER и парсинг утверждений

Как разбираем текст

Сначала из сгенерированного ответа извлекаются именованные сущности через NER (named entity recognition — распознавание имён, дат, организаций, локаций, цифр). Это даёт нам сырой список:

  1. персоны,

  2. организации,

  3. даты,

  4. денежные суммы,

  5. проценты,

  6. географические объекты,

  7. продукты,

  8. технологии.

Дальше парсер строит из этих сущностей конкретные утверждения. Не просто «компания» и «2017», а связное утверждение: «Компания была основана в 2017 году».

Проверка по описанию бренда

Каждое утверждение сопоставляется с базой знаний о бренде. База — это структурированное описание: когда основана компания, какие продукты выпускает, в каких регионах работает, кто руководители, какие сертификации, какие цены, какие сроки доставки и т.д. Все что мы можем собрать из описания бренда.

Для каждого утверждения возможны три исхода:

  1. подтверждено — факт есть в базе и совпадает;

  2. противоречит — факт есть в базе, но значение другое;

  3. не найдено — такого факта в базе нет вообще.

Третий случай самый интересный. Если нейросеть пишет «компания получила премию X в 2022 году», а в базе никаких упоминаний этой премии нет — это сигнал. Либо модель сгенерировала несуществующий факт, либо база неполная. В обоих случаях нужно разбираться.

Где факт-чекинг сильнее всего

Этот метод бьёт точечно по конкретным ошибкам:

  1. Даты — год основания, дата выхода продукта, сроки гарантии.

  2. Числа — цены, проценты, количественные характеристики.

  3. Имена — ФИО руководителей, названия продуктов, имена партнёров.

  4. География — регионы работы, адреса офисов.

  5. Сертификации и награды — самая частая зона галлюцинаций, модели любят придумывать сертификаты.

Именно через этот разбор на атомы мы и находим большую часть галлюцинаций. Один разбитый факт = одна проверка. Никаких общих оценок.

Что метод не видит

Слепая зона факт-чекинга — смысловые искажения без конкретных сущностей. Если нейросеть пишет «компания позиционирует себя как премиум-сегмент», а на деле бренд работает в среднем ценовом диапазоне, NER не извлечёт из этой фразы проверяемый факт. Здесь нужен либо NLI, либо судья.

Как три метода работают вместе

В одиночку каждый метод даёт около 50-65% точности. Вместе они закрывают большинство сценариев. Логика последовательности:

Шаг 1: NLI прогоняет ответ через сравнение с источником. Получаем разметку: что подтверждено, что противоречит, что нейтрально.

Шаг 2: Факт-чекинг разбирает текст на атомарные утверждения. Параллельно проверяем все конкретные факты по базе.

Шаг 3: LLM-as-a-Judge оценивает спорные случаи. Всё, что попало в neutral у NLI или «не найдено» у факт-чекера, отправляется судье.

Шаг 4: Сводный отчёт. На выходе получаем три типа меток для каждого утверждения в ответе:

  1. зелёное — все три метода подтвердили;

  2. жёлтое — есть расхождение между методами, нужна ручная проверка;

  3. красное — минимум один метод нашёл противоречие.

Это даёт реальную картину, а не общую оценку «ответ хороший / плохой».

Реальные кейсы галлюцинаций, которые мы ловили

Пара примеров из практики, чтобы было понятно, о чём речь.

Кейс 1. Несуществующая функция продукта. Нейросеть в ответе на вопрос о CRM-системе клиента описала функцию автоматической интеграции с конкретным мессенджером. В реальности такой интеграции не было. NLI пометил как neutral (в описании продукта про этот мессенджер просто не было ни слова). Факт-чекинг извлёк сущность «мессенджер» + «интеграция» и не нашёл её в базе. Судья подтвердил: факт выдуман. Метка — красное.

Кейс 2. Сдвиг по дате. Модель написала, что компания работает «более 15 лет». В реальности — 8 лет. NLI поймал противоречие сразу (так как в описании было «основана в 2017»). Факт-чекинг извлёк «15 лет» как количественный факт и сверил с актуальной датой — противоречие. Двойное подтверждение.

Кейс 3. Тонкое смысловое искажение. Нейросеть описала бренд как «бюджетный вариант для тех, кто не хочет переплачивать». В реальности бренд позиционируется как «доступная альтернатива премиальному сегменту с акцентом на качество». NLI не увидел противоречия — фразы близки по векторам. Факт-чекинг ничего не извлёк — нет конкретных сущностей. Поймал только судья, потому что у него в промпте было прописано проверять соответствие позиционированию.


Реальные кейсы галлюцинаций ИИ, которые мы ловили

Что важно понимать про базу знаний

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

В моей практике подготовка базы занимает больше времени, чем сама настройка проверок. Что в неё входит:

  1. Фактологический слой — даты, цифры, имена, география.

  2. Продуктовый слой — список продуктов, их характеристики, функции, цены.

  3. Позиционный слой — как бренд себя описывает, какие у него ценности, тон коммуникации.

  4. Контекстный слой — с кем сравнивают, в какой нише работает, какие частые заблуждения существуют.

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

Что делать с найденными галлюцинациями

Когда система выдаёт список проблемных мест, следующий шаг — не просто их зафиксировать. Нужно понять, почему модель ошиблась, и закрыть источник ошибки.

Чаще всего причины такие:

  1. Пробел в публичных данных. Если в открытых источниках о бренде мало информации, модели «додумывают». Решение — публиковать больше структурированной информации: на сайте, в Wikipedia, в отраслевых каталогах.

  2. Конфликт источников. Где-то в интернете осталась старая информация (например, прежний адрес или старая цена), и модель её цитирует. Решение — зачистить устаревшие упоминания.

  3. Шумные ассоциации. Бренд путают с похожим по названию или из той же ниши. Решение — усиливать уникальные идентификаторы (полное название, домен, уникальные характеристики)

  4. Слабый authority-сигнал. Если о бренде пишут только сам бренд и пара мелких каталогов, модели не доверяют этому как источнику. Решение — работать над упоминаниями на авторитетных площадках.

Найти галлюцинации это половина задачи. Вторая половина — закрыть причины, чтобы эти галлюцинации не появлялись снова при следующем обновлении модели.

Куда движется эта история

Галлюцинации в LLM не исчезнут полностью — это особенность архитектуры моделей. Но проверка становится точнее, и инструменты вроде наших постоянно дообучаются на новых паттернах ошибок.

Главное, что меняется — подход к работе с генеративным поиском. Раньше задача была «появиться в выдаче». Сейчас задача шире: появиться + быть корректно описанным + контролировать, что о тебе говорят модели. Без слоя проверки галлюцинаций эта задача не решается.

Вывод

Три метода проверки — NLI, LLM-as-a-Judge и факт-чекинг через NER — закрывают разные типы ошибок. NLI ловит противоречия смыслов. Судья видит тонкие искажения и контекст. Факт-чекинг бьёт по конкретным фактам. Вместе они дают картину, которой нет, если использовать только один подход.

Получите полный отчет об ИИ-галлюцинациях, связанных с вашим брендом, и готовый план из 50+ конкретных шагов по улучшению ситуации в нашем трекере AI-видимости: geozr.com

FAQ

В чём разница между NLI и LLM-as-a-Judge, если оба сравнивают тексты?

NLI работает на уровне векторов и даёт формальный вердикт: противоречие, следование или нейтральность. Это быстрая математическая проверка. Судья видит контекст, нюансы позиционирования, тон — то, что в векторное представление не упаковывается. Один метод не заменяет другой.

Можно ли проверить ответ нейросети без базы знаний о бренде?

Технически можно — через сверку с публичными источниками. Но точность будет низкой, потому что в публичных источниках тоже бывают ошибки и противоречия. Структурированная база, подтверждённая владельцем бренда, остаётся главным эталоном.

Как часто нужно перепроверять ответы моделей?

По опыту, раз в 3–5 недель для активных запросов. Модели обновляются, контекст в их обучающих данных смещается, и то, что было корректным месяц назад, может измениться. Для критически важных запросов (продуктовые карточки, цены, контакты) — чаще.

Что делать, если разные модели описывают бренд по-разному?

Это нормальная ситуация. У каждой модели свои источники и алгоритмы. Задача — не добиться идентичности, а убрать фактические ошибки в каждой из них отдельно. Проверка по описанной схеме делается для каждой модели в отдельности.

Что считать галлюцинацией, а что — допустимым перефразированием?

Перефразирование сохраняет смысл и факты, галлюцинация искажает или придумывает их. Если модель пишет «доступная цена» вместо «средний ценовой сегмент» — это перефраз. Если пишет «премиум-сегмент» — это галлюцинация, потому что искажается позиционирование.