Когда LLM создают структурированные данные, они могут выдумывать правдоподобно выглядящие факты. Entity Enricher использует 8 уровней защиты, чтобы вы получали точные данные или ничего — но не убедительно звучащий вымысел.
В свободном тексте вымышленное предложение явно расплывчато. В структурированном выводе вымышленное поле вроде "founded_year": 1987 выглядит авторитетно, и его почти невозможно отличить от корректного значения. Особенно опасным это делают три фактора:
Галлюцинированное значение JSON выглядит в точности как настоящее. Никаких оговорок, никакого «примерно» — просто чистая, уверенная единица данных, которая оказывается неверной.
Обязательные поля вынуждают LLM выдавать значение, даже когда у неё нет данных. Модель выдумывает данные вместо того, чтобы оставить пробел в структуре.
Структурированные данные поступают напрямую в базы данных, аналитику и автоматизации. Неверное значение распространяется по конвейерам без проверки человеком.
| Шаблон | Пример | Причина |
|---|---|---|
| Уверенная фабрикация | "ceo": "John Smith" | LLM заполняет обязательное поле правдоподобным именем |
| Временная путаница | "revenue": "$2.3B" | Ограничение обучающих данных или смешение периодов |
| Смешение сущностей | Атрибуты компании A для компании B | Похожие имена в пересекающихся обучающих данных |
| Разумные значения по умолчанию | "employees": 500 | LLM выбирает «разумное» число вместо того, чтобы признать незнание |
| Вымышленные связи | "subsidiary_of": "Alphabet" | LLM выводит несуществующую связь |
Entity Enricher не полагается на один-единственный приём. Он объединяет 8 независимых уровней защиты, каждый из которых нацелен на свой тип сбоя. Если один уровень пропускает галлюцинацию, её ловит следующий.
Перед началом обогащения быстрая LLM классифицирует, соответствует ли сущность типу схемы. Это пресекает галлюцинации по всей сущности в самом источнике.
Пример: «Titan» относительно схемы «Planet» помечается как спутник — модели обогащения получают этот контекст и используют null для полей, специфичных для планет.
Все стратегии инструктируют LLM: «Будьте точны и осторожны — предпочитайте null догадкам». Nullable-поля схемы дают модели явное разрешение сказать «Я не знаю».
Это напрямую устраняет давление схемы — причину №1 структурированных галлюцинаций.
Свойства схемы сгруппированы по областям экспертизы. Каждый вызов LLM видит только поля своей области с инструкцией сосредоточиться исключительно на ней.
Более узкая область означает меньше возможностей для галлюцинаций. Финансовый эксперт никогда не гадает о нормативных данных.
Ключевые свойства (отмеченные is_key: true) выделяются в промптах, чтобы сориентировать LLM на идентифицирующей информации перед заполнением остальных полей.
Это опирает модель на известные факты, снижая отклонение в сторону вымышленных деталей.
8 правил валидации проверяют вывод LLM на несоответствия типов, недопустимые ссылки и структурные ошибки. Неудачная валидация запускает ModelRetry — ошибки отправляются обратно в LLM для исправления.
До 6 автоматических попыток исправления в рамках одного запуска агента. LLM исправляет собственные ошибки.
Поля, отмеченные preserve: true (ID, SKU, метки времени), после обогащения восстанавливаются до исходных входных значений. LLM не может перезаписать эталонные данные.
Защищённые поля: ID сущностей, системные коды (EAN, SKU), идентификаторы импорта, метки времени создания.
Пропуск одной и той же сущности через 2 и более независимых моделей со сравнением результатов поле за полем. Расхождения помечаются как потенциальные галлюцинации.
Если Claude сообщает, что выручка $2,3 млрд, а GPT-4 — $1,8 млрд, этот конфликт обнаруживается и выводится.
Обнаруженные конфликты разрешаются с помощью голосования по правилам (большинство, медиана, объединение) или специальным LLM-арбитром, который оценивает точность, полноту и согласованность.
Каждое решение arbitration включает обоснование и уровень уверенности — полная прозрачность того, как были разрешены конфликты.
Основной принцип
Отсутствие данных всегда лучше неверных данных. Каждый уровень усиливает этот принцип — система спроектирована так, чтобы возвращать null, а не правдоподобную выдумку.