TL;DR
Когда просишь LLM оценить текст на правдивость целиком — она смотрит на то, звучит ли текст убедительно, а не на то, правда ли там написано. Исследователи разложили любой ответ модели на мелкие проверяемые факты ("атомы") и сверяли каждый отдельно с источником истины, вместо общей оценки "хорошо/плохо".
Главная находка: обычный LLM-судья систематически обманывается уверенным тоном. В 40% случаев, когда текст содержал массу фактических ошибок, судья всё равно ставил ему высокую оценку за "релевантность" — потому что сам судья не эксперт в узкой теме и не может отличить убедительную ложь от правды. Модели без доступа к внешнему источнику фактов ошибались в 22-55% отдельных утверждений, при этом текст выглядел гладко и профессионально.
Метод решает это через три шага: разбить ответ на отдельные проверяемые факты, сверить каждый по отдельности с надёжным источником (не с "памятью" модели), и только потом сравнить с эталонным списком того, что должен был упомянуть эксперт. Оценка складывается из трёх метрик: точность фактов, полнота покрытия ключевых идей и правильность общего вердикта.
Схема метода
ШАГ 1: Разбить сгенерированный текст на атомарные утверждения (каждое = один факт) → список атомов
ШАГ 2: Каждый атом разбить на конкретные проверяемые под-факты → список под-утверждений
ШАГ 3: Проверить каждое под-утверждение через внешний источник истины (не через "память" модели) → вердикт верно/неверно на каждый атом
ШАГ 4: Сравнить подтверждённые атомы с эталонным списком "что должен был сказать эксперт" → оценка полноты
Все шаги выполняются в рамках одного запроса к модели-судье, но с обязательным обращением к внешнему источнику на шаге 3.
Пример применения
Задача: Вы попросили ChatGPT сделать резюме договора аренды перед подписанием — какие там риски, сроки, штрафы. Хотите проверить, не наврала ли модель, прежде чем доверять этому резюме.
Промпт:
Вот текст договора:
{текст договора}
Вот резюме, которое ты сделал ранее:
{резюме}
Разбей резюме на отдельные атомарные утверждения — каждое должно содержать один конкретный факт (например: "штраф за просрочку — 0,1% в день" или "договор можно расторгнуть за 30 дней").
Для каждого утверждения:
1. Сформулируй его как отдельное предложение
2. Найди в тексте договора точный пункт, который это подтверждает или опровергает
3. Дай вердикт: подтверждено / не подтверждено / противоречит договору / в договоре не упоминается
Не давай общую оценку резюме целиком — только вердикт по каждому пункту отдельно.
Результат: Модель выдаст пронумерованный список из 8-15 утверждений. У каждого — цитата из договора и вердикт. Вы сразу увидите, какие пункты резюме модель придумала или переврала, а какие подтверждаются текстом — без общей размытой оценки "резюме хорошее".
Почему это работает
Когда модель оценивает текст целиком, она реагирует на гладкость и уверенность подачи, а не на скрытые ошибки внутри. Особенно в специализированных темах — шахматы, юриспруденция, финансы — судья сам не эксперт и подкупается профессиональным тоном.
Зато LLM отлично умеет дробить текст на конкретные утверждения — это задача на структурирование, а не на экспертное знание. Разложить фразу "Qe4 централизует ферзя и атакует слона на b4" на два отдельных факта модели легко.
Метод берёт эту сильную сторону и заставляет модель проверять не текст целиком, а один факт за раз, каждый — против внешнего источника (движок, документ, база данных). Общая ложь размывается и прячется в потоке текста; отдельный факт спрятать негде.
Рычаги управления: - Источник верификации — замени шахматный движок на документ, поиск, калькулятор — под свою задачу. - Уровень детализации атомов — крупнее атомы = быстрее, но грубее; мельче = точнее, но дольше. - Эталонный список (Stage 3) — если у вас есть образец "правильного" ответа эксперта, добавьте сравнение на полноту, а не только на точность.
Шаблон промпта
Вот текст: {текст}
Вот источник для проверки: {источник_истины}
Разбей текст на отдельные атомарные утверждения — каждое должно содержать ровно один конкретный факт, который можно проверить.
Для каждого утверждения:
1. Сформулируй его отдельным предложением
2. Проверь по {источник_истины}: можно ли подтвердить или опровергнуть
3. Если да — процитируй точное место в источнике
4. Дай вердикт: подтверждено / не подтверждено / противоречит источнику / невозможно проверить
Не давай общую оценку текста — только вердикты по каждому утверждению отдельно.
Что подставлять: {текст} — то, что нужно проверить (резюме, анализ, объяснение); {источник_истины} — документ, данные или файл, с которым можно сверить факты.
🚀 Быстрый старт — вставь в чат:
Вот шаблон атомарной проверки фактов. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какой у вас источник истины (документ, данные, база) и какой текст проверять — потому что без конкретного источника атомарная проверка превращается в пустую формальность. Она возьмёт паттерн из шаблона и подгонит под вашу тему.
Ограничения
⚠️ Нужен надёжный источник истины: метод работает только если есть на что сверять факты — документ, база данных, точные цифры. Для чисто оценочных или творческих текстов (мнения, стиль) атомизация бессмысленна — там нечего проверять.
⚠️ Точность фактов ≠ полнота идей: даже если все факты в тексте верны, модель может пропустить главную мысль, которую заметил бы эксперт. В исследовании даже лучшая модель с доступом к инструментам покрывала только 61% ключевых экспертных идей.
⚠️ Судья осторожен, но не идеален: если судья говорит "ошибка" — это почти всегда правда. Но если говорит "всё верно" — он может пропустить часть реальных ошибок, которые заметит внимательный человек.
Как исследовали
Исследователи собрали 325 шахматных позиций из учебников, турнирных партий и специально сконструированных критических моментов. Для 125 из них эксперты-гроссмейстеры составили эталонные списки ключевых идей. Шесть моделей (GPT-5.4, Claude Opus, Gemini, DeepSeek, две версии Qwen) писали комментарии к ходам — с доступом к шахматному движку Stockfish и без него.
Самое интересное — сравнение с обычным LLM-судьёй: на 264 комментариях, где новый метод нашёл массовые фактические ошибки, старый судья всё равно ставил хорошую оценку почти в 40% случаев. Это не случайность, а систематический сбой — судья без доступа к внешней проверке просто не может отличить уверенную ложь от правды.
Чтобы убедиться, что новый метод сам не врёт, его сверили с реальными шахматистами (рейтинг 1800-2200). Согласие судья-человек оказалось в тех же пределах, что и согласие человек-человек — то есть метод не хуже живого эксперта в определении ошибок, хотя и склонен их немного недооценивать.
