3,583 papers
arXiv:2610.30504 78 21 окт. 2026 г. FREE

JSFactCheckBench: оценка LLM-фактчекера зависит от того, что именно ему показали

КЛЮЧЕВАЯ СУТЬ
Покажи открытой модели исходный ответ рядом с утверждением, и доля вердиктов «верно» прыгает с 54% до 93%. Это происходит, хотя в промпте прямо написано «оценивай только утверждение». Исследование JSFactCheckBench (1913 утверждений, шесть моделей) позволяет надёжнее проверять ответы нейросети перед публикацией. Фишка: модель принимает окружающий текст за доказательство. Связный ответ выглядит убедительно, и соглашательство растёт. Лечится просто: одно утверждение на запрос, без исходного ответа, плюс короткая выдержка из источника.
Адаптировать под запрос
⚡

TL;DR

JSFactCheckBench — японский бенчмарк для проверки утверждений из ответов LLM. Он показывает, что результат фактчекинга зависит от условий проверки. Ответ делят на отдельные утверждения (по одному факту в каждом), и каждое проверяют в разных условиях. Условия такие: есть ли дата, что показано рядом с утверждением, как подан источник и насколько утверждение важно для вопроса. Утверждения помечают как Main (прямой ответ на вопрос), Sub (дополнительные детали) или Irrelevant (не по теме).

Главная находка: один общий балл «точности» скрывает самое важное. Только около четверти утверждений в ответе LLM прямо отвечают на вопрос, остальное — пояснения и детали. Все шесть моделей хуже проверяют главные утверждения, чем второстепенные. Ошибка в главном тезисе и ошибка в проходной детали весят в среднем одинаково, поэтому «ответ на 90% верный» может оказаться неверным в единственной строке, ради которой его просили. Вторая находка: если открытым моделям при проверке показать вопрос и весь исходный ответ, они массово ставят «верно». В одном примере доля «верно» выросла с 54% до 93%, хотя в промпте прямо просили оценивать только само утверждение. Модель принимает окружающий текст за доказательство. У GPT-5.1 и Sonnet этот эффект слабый.

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

🔬

Схема метода

Это не авторская техника промптинга, а выводы из эксперимента. Ниже схема рабочего процесса, собранная из того, что показала статья. В Шаге 1 модель видит весь ответ, в Шаге 2 — только утверждение.

ШАГ 1 (отдельный запрос): ответ LLM → список атомарных утверждений
        (одно утверждение = один факт; местоимения раскрыты; сохранены даты и условия)
        + метка важности: Main / Sub / Irrelevant (относительно вопроса)

ШАГ 2 (отдельный запрос на каждое утверждение, БЕЗ исходного ответа):
        утверждение + дата актуальности + короткая выдержка из источника
        → Supported / Refuted / NotEnoughInfo

ШАГ 3: смотрим отдельно вердикты по Main и по Sub
        (Main с Refuted или NotEnoughInfo = ответ нельзя использовать)
🚀

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

Задача: Контент-менеджер готовит для vc.ru статью про налоги самозанятых. Нейросеть написала длинный ответ с цифрами и датами. Нужно понять, можно ли ему верить, и первым делом проверить главный тезис.

Промпт (Шаг 2, отдельный запрос на одно утверждение):

Ты проверяешь одно утверждение по источнику. Оценивай ТОЛЬКО само утверждение.

Дата, на которую утверждение должно быть верным: февраль 2026.

Утверждение:
«Самозанятые на НПД не обязаны платить обязательные страховые взносы в ПФР».

Источник (выдержка со страницы nalog.gov.ru):
{вставь 1–3 абзаца с сайта ФНС про НПД}

Метки:
- Supported — источник подтверждает утверждение на указанную дату.
- Refuted — источник противоречит утверждению на указанную дату.
- NotEnoughInfo — источник не подтверждает и не опровергает.

Формат ответа:
1. Метка
2. Цитата из источника, на которой основан вердикт (дословно)
3. Одно предложение: почему именно эта метка
Если источник не по теме, ставь NotEnoughInfo. Не используй знания вне источника.

Результат: Модель вернёт одну метку, дословную цитату из вставленной выдержки и короткое обоснование. Проверка идёт по одному утверждению, без исходного ответа. Повторите это для каждого утверждения. Сначала прогоните тезисы Main, потом Sub. Цитату стоит сверить глазами, потому что без неё метке нельзя доверять.

🧠

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

Слабость. Когда рядом с утверждением лежит весь исходный ответ, модель путает текст-контекст с доказательством. Открытые модели начинают соглашаться: ответ звучит связно, значит, утверждение «верное». Эту ошибку промпт «оценивай только утверждение» не устраняет. Вторая слабость: чем длиннее и «шумнее» материал (целая страница или несколько страниц, из которых надо выбрать нужную), тем хуже модель находит нужный фрагмент и тем сильнее расходятся результаты разных моделей.

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

Как это использовать. Процесс убирает лишний контекст и сокращает нагрузку на поиск. Утверждение изолировано, выдержка короткая, нужный кусок вы нашли заранее. Модели остаётся только сверка.

Рычаги управления: - Размер выдержки. Хотите надёжнее — режьте источник до абзацев по теме. Лучше короткая цитата, чем вся страница. - Контекст. Выкиньте из запроса вопрос и исходный ответ. Оставьте утверждение, в котором местоимения уже заменены на конкретные имена («он» → «Роспотребнадзор»). - Дата. Для быстро меняющихся тем (ставки, лимиты, правила сервисов) указывайте дату актуальности. Её эффект в таблицах нестабилен: у части моделей оценки меняются, у части нет. Для таких тем это страховка, но не гарантия. - Метка NotEnoughInfo. Оставьте её. Она не даёт модели угадывать, когда в источнике нет ответа. - Важность. Размечайте Main/Sub и читайте вердикты по Main отдельно.

📋

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

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

Шаг 1: разбор ответа на утверждения (отдельный запрос):

Вопрос пользователя: {вопрос}

Ответ, который нужно разобрать:
{ответ_модели}

Разбей ответ на атомарные утверждения. Для каждого:
1. Одно утверждение = один факт, который можно проверить отдельно.
2. Замени местоимения и неполные названия на конкретные («он» → «Банк России»).
3. Верни пропущенные время, причину, сравнение.
4. Добавь предпосылки, без которых утверждение непонятно.
5. Оставь только то, что можно проверить объективно. Мнения и оценки пометь как Unevaluable.

Для каждого утверждения поставь метку важности относительно вопроса:
- Main — прямо отвечает на вопрос или содержит ядро/часть ответа.
- Sub — даёт связанную информацию, но не отвечает на вопрос.
- Irrelevant — не связано с вопросом и ответом.

Формат: нумерованный список «[Метка] утверждение».

Шаг 2: проверка (отдельный запрос на каждое утверждение, без вопроса и исходного ответа):

Оценивай ТОЛЬКО это утверждение.
Дата, на которую оно должно быть верным: {дата}.

Утверждение: {утверждение}

Источник (короткая выдержка): {выдержка}

- Supported — источник подтверждает утверждение на указанную дату.
- Refuted — источник противоречит утверждению на указанную дату.
- NotEnoughInfo — источник не подтверждает и не опровергает.

Ответ:
1. Метка
2. Дословная цитата из источника
3. Одно предложение с обоснованием
Не используй знания вне источника.

Что подставлять: {вопрос} и {ответ_модели} — оригинал разговора. {утверждение} — одна строка из списка Шага 1. {дата} — когда факт должен быть верным. {выдержка} — 1–3 абзаца с официального сайта, взятые вами вручную или найденные поиском.

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

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

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

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

⚠️

Ограничения

⚠️ Без источника проверка слабая: если не дать модели выдержку и просить судить «по памяти», результат лишь заметно лучше случайного угадывания, даже у лучших коммерческих моделей. Фактчекинг без источника не заменяет проверку человеком.

⚠️ Эффект «соглашательства» показан на открытых моделях: падение при добавлении контекста — у четырёх открытых моделей среднего размера. У GPT-5.1 и Sonnet оно слабое. Если вы работаете с топовыми коммерческими моделями, выигрыш от изоляции утверждения будет скромнее.

⚠️ Дата не панацея: указание даты по-разному влияет на разные модели. Надёжного правила «всегда указывай» в статье нет.

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

⚠️ Это бенчмарк, не проверенная техника промптинга: предложенный выше процесс собран из выводов статьи. Сами авторы такой двухэтапный процесс как готовый метод не тестировали. Кроме того, в доступной части текста нет разбора, как именно ведут себя модели на Main и Sub и как работает выбор источника при нескольких страницах: об этом известны только общие выводы из аннотации и цифры из таблиц.

⚠️ Строить бенчмарк вам не нужно: главная ценность статьи для практика — принципы проверки, а не датасет и список доверенных доменов.

🔗

Ресурсы

  • Rethinking the Evaluation of LLM Fact-Checkers — Ayana Niwa, Masahiro Kaneko (MBZUAI), Miyu Yamada (Science Tokyo), Hisami Suzuki, Kouta Nakayama, Satoshi Sekine (NII-LLMC)
  • Датасет: https://huggingface.co/datasets/llm-jp/JSFactCheckBench
  • Основа вопросов: JSocialFact (Nakazato et al., 2024)
  • Метод декомпозиции на атомарные утверждения: Liu et al. (2025)

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

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

Покажи открытой модели исходный ответ рядом с утверждением, и доля вердиктов «верно» прыгает с 54% до 93%. Это происходит, хотя в промпте прямо написано «оценивай только утверждение». Исследование JSFactCheckBench (1913 утверждений, шесть моделей) позволяет надёжнее проверять ответы нейросети перед публикацией. Фишка: модель принимает окружающий текст за доказательство. Связный ответ выглядит убедительно, и соглашательство растёт. Лечится просто: одно утверждение на запрос, без исходного ответа, плюс короткая выдержка из источника.

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

Правило такое: изолируй утверждение. Сначала разбей ответ на отдельные факты, по одному в строке. Потом проверяй каждый факт отдельным запросом, где нет ни вопроса, ни исходного текста. Модели остаётся только сверка одного факта с одним куском источника. Это как проверять чек в кассе: сверяешь одну позицию с одной строкой в накладной, а не перечитываешь весь договор. Добавь второй слой: помечай утверждения как Main (прямой ответ на вопрос) и Sub (детали вокруг). Вердикты по Main читай первыми.

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

Когда рядом лежит весь ответ, открытые модели начинают кивать. Текст звучит гладко, значит, «верно». Инструкция «оценивай только утверждение» это не лечит. У GPT-5.1 и Sonnet эффект слабый. Вторая беда: длинный источник. Целая страница или несколько страниц, из которых надо выбрать нужную, ухудшают поиск нужного куска. На короткой выдержке все шесть моделей показали лучшие результаты в таблице. Третья находка неприятная. Только около четверти утверждений в ответе прямо отвечают на вопрос. Все шесть моделей проверяют главные утверждения хуже второстепенных. Ошибка в главном тезисе и ошибка в проходной детали весят одинаково, поэтому «ответ верен на 90%» может быть неверным в единственной строке, ради которой его просили.

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

Проверка текстов перед публикацией → конкретно для статей, где есть цифры, даты и правила (налоги, лимиты, медицина), особенно когда проверяешь открытой моделью. Работает и в автоматизации: любая схема, где нейросеть судит чужой ответ, выигрывает от изоляции утверждения. НЕ подходит, если источника нет. Проверка «по памяти» лишь немного лучше угадывания даже у топовых моделей. Человека она не заменяет. Для GPT-5.1 и Sonnet выигрыш от изоляции будет скромнее. Честная оговорка: это бенчмарк на японском (85 вопросов), а не проверенная авторами техника. Двухэтапный процесс собран из их выводов.

Мини-рецепт

1. Разбери ответ на факты: отдельным запросом попроси список утверждений, один факт на строку. Местоимения замени на имена («он» → «Роспотребнадзор»), даты сохрани.
2. Расставь важность: пусть модель пометит каждое утверждение как Main (прямой ответ), Sub (детали) или Irrelevant (не по теме).
3. Найди источник сам: возьми 1-3 абзаца с официального сайта по теме. Не вставляй всю страницу целиком.
4. Проверяй по одному: каждое утверждение идёт в новый запрос. Вопроса и исходного ответа там нет.
5. Укажи дату: для быстро меняющихся тем напиши, на какой момент факт должен быть верным. Это страховка, не гарантия: у части моделей оценки от даты не меняются.
6. Оставь третий вариант: «не хватает данных» не даёт модели угадывать, когда в источнике нет ответа.
7. Требуй цитату: вердикт без дословной цитаты из выдержки не принимай. Цитату сверь глазами.
8. Читай Main первыми: если главный тезис «неверно» или «не хватает данных», ответ в работу не идёт.

Примеры

[ПЛОХО] : Вот вопрос и ответ нейросети про налоги самозанятых: [весь текст]. Проверь, верно ли, что самозанятые не платят страховые взносы в ПФР. Оценивай только это утверждение.
[ХОРОШО] : Оценивай ТОЛЬКО это утверждение. Дата, на которую оно должно быть верным: февраль 2026. Утверждение: «Самозанятые на НПД не обязаны платить обязательные страховые взносы в ПФР». Источник (выдержка с nalog.gov.ru): [1-3 абзаца]. Метки: верно / неверно / не хватает данных. Ответ: 1) метка, 2) дословная цитата из источника, 3) одно предложение почему. Не используй знания вне источника. В плохом примере модель видит весь связный текст и склонна согласиться. В хорошем у неё есть только факт, дата и короткий кусок источника.
Источник: Rethinking the Evaluation of LLM Fact-Checkers
ArXiv ID: 2610.30504 | Сгенерировано: 2026-10-26 15:50

Проблемы LLM

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

Методы

МетодСуть
Проверка по одному утверждению с короткой выдержкой — меньше ложных «верно»Что делать. Шаг 1: отдельным запросом разбей ответ на атомарные утверждения. Одно утверждение — один факт. Замени местоимения на конкретные имена. Сохрани даты и условия. Пометь важность: Главное (прямой ответ на вопрос), Второстепенное (связанные детали), Не по теме. Шаг 2: на каждое утверждение — отдельный запрос. Без исходного ответа и без вопроса. Дай утверждение, дату актуальности и 1–3 абзаца из источника. Метки: Подтверждено / Опровергнуто / Недостаточно данных. Попроси дословную цитату из источника и одну фразу обоснования. Добавь: «Не используй знания вне источника». Шаг 3: читай вердикты по главным утверждениям отдельно. Почему работает: изоляция убирает лишний контекст, который склоняет к согласию. Короткая выдержка снимает нагрузку поиска нужного места. Длинная страница или несколько страниц ухудшают поиск, и результаты моделей расходятся. Модели остаётся только сверка. Метка «Недостаточно данных» не даёт угадывать, когда ответа в источнике нет. Когда применять: длинные ответы с цифрами и датами перед публикацией. Источник можно найти заранее. Когда не работает: источника нет. Проверка «по памяти» слабая даже у лучших моделей. Дата помогает не всегда: у части моделей оценки от неё не меняются. Для быстро меняющихся тем (ставки, лимиты) всё равно указывай. Цитату сверяй глазами: без неё метке нельзя доверять
📖 Простыми словами

Rethinking the Evaluation ofLLMFact-Checkers

arXiv: 2610.30504

Заставлять нейросеть проверять факты за самой собой — гиблое дело, если скармливать ей текст целиком. Модели мыслят связностью, а не логикой: если бред звучит красиво и гладко, LLM радостно ставит штамп «проверено, всё правда». Она банально путает контекст с доказательством, считая сам факт складного повествования гарантией истины. Японский бенчмарк JSFactCheckBench вскрыл эту проблему: автоматический фактчекинг разваливается, как только меняются базовые условия подачи данных.

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

Чтобы система не галлюцинировала, портянку текста нужно жестко препарировать на атомарные утверждения и изолировать их. Дальше включается простая сортировка по важности: Main (суть ответа на вопрос), Sub (детали и украшательства) и Irrelevant (мусор не по теме). Главное правило чистого теста: на этапе верификации модель должна видеть только одно голое утверждение и независимый источник, а не всю простыню первоначального ответа, иначе промпты вроде "оценивай критически" просто идут лесом.

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

Короче: автоматический фактчекинг «из коробки» пока что полная фигня. Хватит просить ChatGPT просто «проверить текст на ошибки». Режь ответ на тезисы, выкидывай контекстный шум, проверяй только критический Main-пласт по чистым источникам. Иначе ты просто масштабируешь чужую уверенную ложь.

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

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

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