3,583 papers
arXiv:2603.10060 76 9 мар. 2026 г. FREE

NabaOS / Эпистемическая маркировка утверждений: как поймать LLM за выдачей домыслов за факты

КЛЮЧЕВАЯ СУТЬ
LLM не врёт, когда говорит 'клиент готов уйти' — это честный вывод из письма. Проблема в другом: вывод звучит так же уверенно, как прямая цитата. Пользователь не знает, что перед ним интерпретация, а не факт. Эпистемическая маркировка даёт возможность видеть, чем именно является каждое утверждение модели — твёрдым фактом, умозаключением или чистым домыслом. Попроси ставить тег после каждого утверждения — [ФАКТ], [ВЫВОД], [МНЕНИЕ] — и модель начинает оценивать собственный текст прямо в процессе генерации. В реальных агентских системах корректность меток достигает 85–92% без какой-либо дополнительной инфраструктуры — только инструкция в промпте.
Адаптировать под запрос

TL;DR

LLM систематически смешивает четыре разных типа знания в одном ответе: прямые факты из источника, умозаключения, чужие слова и собственные догадки — и подаёт всё это одинаково уверенным тоном. Если попросить модель явно маркировать каждое утверждение по его источнику, она перестаёт прятать умозаключения под видом фактов.

Главная находка: модель не обязательно лжёт, когда говорит "Алиса обеспокоена дедлайном" — это может быть честный вывод из прочитанного письма. Проблема в том, что вывод подаётся так же, как прямая цитата. Пользователь не знает, что это интерпретация, а не факт. Исследователи замерили: даже технические системы верификации путаются именно на этом типе галлюцинации — "вывод-как-факт" (inference-as-fact).

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


🔬

Схема метода

(Один промпт — один запрос)

ШАГ 1: Дать задачу → модель генерирует ответ с маркировкой утверждений
ШАГ 2: Читать ответ → смотреть не только на содержание, но на тип каждого утверждения
ШАГ 3 (опционально): Отдельно уточнить "вывод"-утверждения → проверить их обоснованность

🚀

Пример применения

Задача: Ты просишь Claude разобрать переписку с клиентом и понять — стоит ли давать скидку.

Промпт:

Вот переписка с клиентом Иваном за последние 2 недели:

[вставляешь переписку]

Разбери, стоит ли давать ему скидку 20%. 

После каждого утверждения в своём ответе укажи в скобках его тип:
— [ФАКТ] — если это прямо написано в переписке
— [ВЫВОД] — если это твоё умозаключение из написанного  
— [МНЕНИЕ] — если это твоя оценка без прямых доказательств в тексте
— [ОТСУТСТВУЕТ] — если ты говоришь, что чего-то нет в переписке

Результат:

Модель выдаст разбор, где каждое утверждение будет промаркировано. Ты увидишь: "Иван упомянул конкурентов трижды [ФАКТ]" и "скорее всего, он готов уйти [ВЫВОД]" — и сразу поймёшь, где твёрдая почва, а где интерпретация. Утверждения типа [ВЫВОД] и [МНЕНИЕ] — сигнал: стоит перепроверить или задать уточняющий вопрос.


🧠

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

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

Зато модель умеет классифицировать, когда её явно просят. Просьба "укажи тип" — это не магия. Это перенос задачи в инструкцию: теперь у модели есть конкретный критерий, по которому она оценивает собственный текст прямо в процессе генерации. Исследование показало: при правильной инструкции модели корректно маркируют утверждения в 85–92% случаев — и это в реальных агентских системах, а не просто в чате.

Рычаги управления: - Детальность типологии — можно упростить до трёх типов (факт / вывод / мнение) или расширить (добавить "ссылка на источник", "утверждение об отсутствии") - Финальный запрос — после маркированного ответа уточни: "Все ли [ВЫВОД]-утверждения обоснованы? Какой из них наиболее уязвим?" Модель пересмотрит собственные умозаключения - Строгость — добавь "если не уверен в типе — пиши [МНЕНИЕ]", это снизит ложную уверенность


📋

Шаблон промпта

{Твоя задача или вопрос}

{Контекст / текст / данные для анализа}

После каждого фактического утверждения в ответе укажи в скобках его тип:
— [ФАКТ] — прямо содержится в предоставленных данных
— [ВЫВОД] — умозаключение из данных, не сказано напрямую  
— [ИСТОЧНИК] — ссылка на внешний материал или общеизвестное
— [МНЕНИЕ] — оценка без конкретных оснований в тексте
— [ОТСУТСТВУЕТ] — утверждение о том, чего нет в данных

Если тип неочевиден — выбирай наиболее осторожный вариант.

Плейсхолдеры: - {Твоя задача} — что ты хочешь узнать или решить - {Контекст / данные} — переписка, документ, транскрипт, статья, что угодно


🚀 Быстрый старт — вставь в чат:

Вот шаблон для маркировки утверждений по источнику знания. 
Адаптируй под мою задачу: [твоя задача]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

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


⚠️

Ограничения

⚠️ Вывод-как-факт — самый сложный случай: модели хуже всего маркируют умозаключения. Если LLM уверена в выводе, она может пометить его как [ФАКТ]. Это самый распространённый тип галлюцинации — и именно он реже всего отлавливается.

⚠️ Работает только с предоставленными данными: если ты не даёшь источник в промпте, а спрашиваешь о "внешних знаниях" модели — маркировка теряет смысл. Почти всё станет [МНЕНИЕ] или [ИСТОЧНИК] без возможности проверки.

⚠️ Основная система (NabaOS) — инфраструктурная: HMAC-подписанные квитанции, движок верификации, интеграция с агентами — это серверная архитектура, не промпт. В чате ты получаешь только принцип эпистемической классификации, но не криптографическую гарантию.

⚠️ Не для коротких ответов: маркировка раздувает текст. На задачах типа "дай краткий ответ на один вопрос" — избыточно.


🔍

Как исследовали

Команда создала бенчмарк NyayaVerifyBench — 1800 сценариев с намеренно внедрёнными галлюцинациями шести типов на четырёх языках (английский, хинди, китайский, испанский). Интересная деталь: каждый тип галлюцинации тестировался отдельно — "придумал вызов инструмента", "неверное количество", "факт подменён", "вывод выдан за факт", "ложное отсутствие", "выдуманная ссылка". Это позволило увидеть, где конкретно ломается каждый метод.

NabaOS сравнивали с пятью альтернативами: без верификации, самосогласованность (ask twice), RAG-проверка по тексту, регулярные выражения и лёгкий классификатор. Главный сюрприз: текстовые методы (RAG, self-consistency) дали много ложных срабатываний — 12–18% — потому что паrafраза правильного утверждения похожа на галлюцинацию. NabaOS держит 4% ложно-позитивных, потому что сверяется со структурированными данными (квитанциями), а не с текстом.

Ещё важное: в неанглийских языках текстовые методы деградируют на 10–17 процентных пунктов, а receipt-верификация — только на 4. Потому что структурированные данные не зависят от языка. Это прямой аргумент для тех, кто работает с русскоязычными данными.


💡

Адаптации и экстраполяции

🔧 Техника: двойной проход — сначала ответ, потом аудит

Иногда просить маркировать в процессе — неудобно: разбивает текст. Альтернатива — два запроса:

Запрос 1: {задача + данные} — дай ответ

Запрос 2: Возьми свой предыдущий ответ и для каждого фактического утверждения 
скажи: это прямо в тексте, это твой вывод, или это твоё предположение?
Укажи, какое утверждение ты считаешь наименее обоснованным и почему.

Второй запрос работает как ретроспективный аудит. Модель часто замечает свои слабые места, которые пропустила в первом ответе.


🔧 Техника: "маркировка уязвимостей" для важных решений

Если тебе нужно принять решение на основе анализа LLM — добавь блок после маркировки:

...

После маркировки добавь раздел «Уязвимые утверждения»:
перечисли все [ВЫВОД] и [МНЕНИЕ]-утверждения, 
которые при проверке могут оказаться неверными,
и что нужно уточнить чтобы их подтвердить.

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


🔗

Ресурсы

Abhinaba Basu — "Tool Receipts, Not Zero-Knowledge Proofs: Practical Hallucination Detection for AI Agents" (2025)

Автор: mail@abhinaba.com

Философская база: Nyāya Sūtras (Готама, ~2 в. н.э.) — индийская эпистемология, классификация источников знания (pramāṇa)

Смежные работы упомянутые в статье: - Chain-of-verification — Dhuliawala et al. (2023) - Self-consistency — Wang et al. (2023) - zkLLM — Sun et al. (2024)


📋 Дайджест исследования

Ключевая суть

LLM не врёт, когда говорит 'клиент готов уйти' — это честный вывод из письма. Проблема в другом: вывод звучит так же уверенно, как прямая цитата. Пользователь не знает, что перед ним интерпретация, а не факт. Эпистемическая маркировка даёт возможность видеть, чем именно является каждое утверждение модели — твёрдым фактом, умозаключением или чистым домыслом. Попроси ставить тег после каждого утверждения — [ФАКТ], [ВЫВОД], [МНЕНИЕ] — и модель начинает оценивать собственный текст прямо в процессе генерации. В реальных агентских системах корректность меток достигает 85–92% без какой-либо дополнительной инфраструктуры — только инструкция в промпте.

Принцип работы

По умолчанию у модели нет встроенного механизма, который отделял бы 'я это прочитала' от 'я это вывела'. Всё выходит одним уверенным потоком — факты, умозаключения и домыслы вперемешку. Явная инструкция создаёт критерий, которого у модели не было: теперь перед каждым утверждением она спрашивает себя — это прямо написано в источнике или я это вывела? Самый коварный случай — вывод-как-факт. Если модель уверена в своём умозаключении, она может пометить его [ФАКТ]. Поэтому в инструкцию стоит добавить правило: 'если тип неочевиден — выбирай самый осторожный вариант'. Это одна фраза, которая режет ложную уверенность.

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

Модель умеет классифицировать — это стандартная задача, которую она решает хорошо. Но без инструкции нет сигнала применять этот навык к собственному тексту. Запрос 'укажи тип' переводит генерацию из автоматического режима в контролируемый. Модель не учится заново — она применяет уже имеющийся навык к своему собственному выводу. Это как попросить человека говорить медленнее: он умел всегда, просто не делал. Именно поэтому метод работает без дообучения и без инфраструктуры — достаточно изменить задачу.

Когда применять

Анализ документов, переписки, интервью, статей — когда важно понять, что в тексте написано прямо, а что модель достроила сама. Особенно ценно при решениях на основе ответа модели: согласовывать ли сделку, давать ли скидку, принимать ли кандидата. НЕ подходит для коротких ответов на один вопрос — теги раздувают текст и создают избыточность там, где она не нужна. НЕ работает без предоставленного источника: если данных в промпте нет, почти всё превратится в [МНЕНИЕ] без возможности проверки.

Мини-рецепт

1. Дай задачу и источник: вставь в промпт документ, переписку или статью — то, что анализируешь. Без источника маркировка теряет смысл.
2. Добавь инструкцию по тегам после условия задачи:
[ФАКТ] — прямо написано в предоставленных данных
[ВЫВОД] — твоё умозаключение из данных, не сказано напрямую
[МНЕНИЕ] — оценка без конкретных оснований в тексте
[ОТСУТСТВУЕТ] — утверждение о том, чего нет в данных
3. Добавь правило осторожности: 'если тип неочевиден — выбирай самый осторожный вариант'. Это одна фраза, которая сильно снижает ложную уверенность.
4. Читай ответ по слоям: [ФАКТ] — твёрдая почва, [ВЫВОД] и [МНЕНИЕ] — сигнал перепроверить или задать уточняющий вопрос.
5. Опционально — второй запрос: Какой из [ВЫВОД]-утверждений наименее обоснован? Модель пересмотрит собственные умозаключения и укажет на слабые места.

Примеры

[ПЛОХО] : Разбери переписку с клиентом и скажи, стоит ли давать скидку 20% Получишь уверенный ответ — но не поймёшь, где твёрдые факты из писем, а где модель достроила картину сама.
[ХОРОШО] : Вот переписка с клиентом Иваном за две недели: [переписка]. Разбери, стоит ли давать скидку 20%. После каждого утверждения ставь в скобках его тип: [ФАКТ] — написано напрямую в переписке, [ВЫВОД] — твоё умозаключение из написанного, [МНЕНИЕ] — твоя оценка без прямых доказательств, [ОТСУТСТВУЕТ] — если говоришь о чём-то, чего нет в переписке. Если тип неочевиден — ставь самый осторожный вариант. Увидишь разницу: 'Иван упомянул конкурентов трижды [ФАКТ]' и 'скорее всего, он готов уйти [ВЫВОД]' — сразу ясно, где почва твёрдая, а где интерпретация.
Источник: ToolReceipts, Not Zero-Knowledge Proofs: Practical Hallucination Detection for AI Agents
ArXiv ID: 2603.10060 | Сгенерировано: 2026-03-12 04:28

Проблемы LLM

ПроблемаСутьКак обойти
Факты и домыслы подаются одинаково уверенноМодель отвечает одним тоном. "Иван упомянул скидку" и "Иван, скорее всего, уйдёт" — звучат одинаково. Нельзя отличить, где прямой факт из текста, а где вывод модели. Особенно опасно при анализе документов, переписок, данных — всего, что ты сам передал в запросеПопроси явно помечать каждое утверждение: [ФАКТ] — прямо в тексте, [ВЫВОД] — умозаключение, [МНЕНИЕ] — без оснований в данных. Маркировка вынуждает модель разделять слои знания прямо в процессе ответа

Методы

МетодСуть
Маркировка утверждений — видишь где факт, а где домыселДобавь в запрос инструкцию: после каждого утверждения писать тип в скобках. Минимальный набор: [ФАКТ] — есть в переданных данных, [ВЫВОД] — вывод из данных, [МНЕНИЕ] — оценка без опоры на данные. Расширенный: добавь [ОТСУТСТВУЕТ] — когда модель говорит, что чего-то нет в данных. Добавь страховку: "если тип неочевиден — пиши [МНЕНИЕ]". Почему работает: По умолчанию у модели нет критерия разделить "прочитал" и "вывел". Явная инструкция даёт этот критерий. Модель оценивает собственный текст прямо при генерации — и маркирует корректно в большинстве случаев. Когда применять: Анализ переписок, документов, данных — когда ты передал источник и хочешь знать, что из него следует. Когда не применять: Короткие ответы на один вопрос — маркировка раздувает текст без пользы. Вопросы к внутренним знаниям модели без переданного источника — почти всё станет [МНЕНИЕ]
📖 Простыми словами

ToolReceipts, Not Zero-Knowledge Proofs: Practical Hallucination Detection forAIAgents

arXiv: 2603.10060

Суть проблемы в том, что нейронки — это патологические лжецы, которые сами не понимают, когда врут. В одном ответе LLM умудряется смешать жесткие факты, свои догадки и цитаты так, что они выглядят монолитным текстом. Модель просто генерирует следующий токен, не имея внутреннего «детектора правды», который отделял бы то, что она реально прочитала в документе, от того, что она только что галлюцинировала на ходу. Для неё всё это — просто поток слов, произнесенный с одинаково уверенным лицом.

Это как если бы ты нанял ассистента, который на вопрос «Сколько денег на счету?» отвечает: «Миллион, и вообще мы скоро захватим рынок, потому что я видел вещий сон». Формально он ответил на вопрос, но смешал выписку из банка со своими фантазиями, не моргнув и глазом. В бизнесе такая каша — это полный провал, потому что ты не понимаешь, на что можно опираться, а что — просто «творчество» модели.

Решение до смешного простое: нужно заставить модель использовать явную маркировку источников для каждого предложения. Когда ты просишь Claude или GPT не просто выдать текст, а приклеить к каждой фразе ярлык — «взято из текста», «мой вывод» или «цитата» — магия исчезает. Модель перестает прятать свои догадки под видом фактов, потому что сам процесс классификации заставляет её «осознать», откуда пришла информация. Это работает как внешний фильтр, который разделяет слои знаний до того, как они превратятся в неразличимый винегрет.

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

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с