3,583 papers
arXiv:2606.21724 84 19 июня 2026 г. FREE

DISC: итеративный цикл «проверь — оцени — исправь» с защитой от перекоррекции

КЛЮЧЕВАЯ СУТЬ
Попросить LLM «проверь себя» — почти гарантированный способ сломать правильные части ответа: у модели нет механизма спросить «нужно ли вообще что-то менять?». DISC позволяет исправлять реальные ошибки, не трогая то, что уже верно. Ключ — «ворота суждения»: судья обязан найти конкретное доказательство ошибки до любых изменений. Нет доказательства — цикл останавливается. Нашлось противоречие — корректор правит только помеченное место, не трогая остальное.
Адаптировать под запрос

TL;DR

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

Главная боль при самопроверке в LLM — модель исправляет то, что уже правильно. Попросите Claude «перепроверь свой ответ» — и она начнёт переформулировать верные утверждения, добавлять оговорки, менять структуру. В итоге ответ меняется, но качество падает. Это происходит потому что у модели нет «тормоза» — она не спрашивает себя «а нужно ли вообще что-то менять?».

DISC добавляет этот тормоз — «ворота суждения» (judgment gate): прежде чем исправлять, судья должен найти конкретное доказательство ошибки. Нет доказательства — нет исправления, цикл останавливается. Нашёл — цикл повторяется до 3 раз, каждый раз «снимая» один слой ошибок, как в обработке шумного сигнала.


🔬

Схема метода

ИСХОДНЫЙ ОТВЕТ (уже готов)
       ↓
РАУНД 1 (из максимум 3):

  ВЕРИФИКАТОР → задаёт 3-10 точечных вопросов к конкретным 
                утверждениям в ответе → отвечает на них независимо
       ↓
  СУДЬЯ → сравнивает доказательства (ответы верификатора) 
          с исходным ответом → выносит вердикт:

          НЕТ_ОШИБКИ? → немедленная остановка, ответ не трогается
          ОШИБКА?      → указывает точное место и доказательство
       ↓
  КОРРЕКТОР → переписывает ТОЛЬКО помеченное место,
              остальное не трогает
       ↓
РАУНД 2 (если был вердикт ОШИБКА) → повтор цикла
       ↓
РАУНД 3 (если снова ОШИБКА) → последний повтор
       ↓
ФИНАЛЬНЫЙ ОТВЕТ

Все шаги выполняются в одном промпте — модель последовательно играет роли верификатора, судьи и корректора.


🚀

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

Задача: Вы попросили Claude составить коммерческое предложение для клиента — небольшой кофейни в Москве — на поставку кофемашин. Важно: условия кредита, сроки гарантии, сравнение с конкурентами — всё должно быть точным, не выдуманным.

Промпт:

Провери следующий текст коммерческого предложения. Действуй строго по ролям.

ИСХОДНАЯ ЗАДАЧА: коммерческое предложение для кофейни на поставку кофемашин

ТЕКСТ ДЛЯ ПРОВЕРКИ:
"""
Предлагаем профессиональные кофемашины La Marzocco GB5 по цене 380 000 ₽.
Гарантия — 2 года. Доставка по Москве — 3 рабочих дня. 
Рассрочка на 12 месяцев без переплат. Бесплатное обучение баристы (2 часа).
"""

РОЛЬ 1 — ВЕРИФИКАТОР:
Сформулируй 4-5 точечных вопроса к конкретным утверждениям выше.
Затем ответь на каждый вопрос самостоятельно — как будто ты не видел текст выше.

Формат:
Q1: [вопрос]
A1: [ответ]
(и так далее)

РОЛЬ 2 — СУДЬЯ:
Сравни каждый A с соответствующим утверждением в тексте.
Есть ли конкретное противоречие между доказательствами и текстом?

Вынеси один из двух вердиктов:
НЕТ_ОШИБКИ — верни текст без изменений, кратко объясни почему
ОШИБКА — укажи точное место ошибки и какое доказательство её подтверждает

РОЛЬ 3 — КОРРЕКТОР (только при вердикте ОШИБКА):
Исправь ТОЛЬКО помеченное место. Остальной текст оставь дословно.
Выведи финальный текст.

Результат:

Модель последовательно выведет три блока: вопросы верификатора с независимыми ответами, вердикт судьи с указанием конкретного противоречия (или остановку с объяснением), и — если нашлась ошибка — исправленный вариант только в помеченном месте. Если первый раунд нашёл ошибку, можно попросить «повтори цикл ещё раз для нового текста» — до трёх раундов.


🧠

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

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

Сильная сторона LLM: модель хорошо работает с конкретными вопросами. «Какова стандартная гарантия на La Marzocco?» — это другой режим, чем «скажи что-то про гарантию в этом тексте». Независимые точечные вопросы заставляют модель ответить «по существу», а не «в контексте».

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

Рычаги управления: - Число вопросов (3–10) — меньше вопросов для коротких текстов, больше для сложных многошаговых расчётов - Строгость судьи — добавьте «требуй прямое цитирование доказательства» для максимальной точности; уберите для более мягкой проверки - Число раундов (1–3) — один раунд для простых задач, три для цепочек рассуждений - Роль верификатора — попросите его «задавать вопросы как скептически настроенный конкурент» для более острой проверки


📋

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

Провери следующий {тип_текста}. Действуй строго по ролям — не пропускай ни одну.

ИСХОДНАЯ ЗАДАЧА: {задача}

ТЕКСТ ДЛЯ ПРОВЕРКИ:
"""
{текст}
"""

РОЛЬ 1 — ВЕРИФИКАТОР:
Сформулируй {число_вопросов} точечных вопроса к конкретным утверждениям выше.
Отвечай на каждый вопрос самостоятельно — как будто ты не видел текст выше.

Формат вывода:
Q1: [вопрос]
A1: [ответ]
...

РОЛЬ 2 — СУДЬЯ:
Сравни каждый ответ (A1-A{число_вопросов}) с соответствующим утверждением в тексте.
Требуется прямое противоречие, а не субъективная оценка качества.

Вынеси один из двух вердиктов:
НЕТ_ОШИБКИ — верни текст без изменений, одним предложением объясни вывод
ОШИБКА — процитируй точное место ошибки + укажи какое доказательство её подтверждает

РОЛЬ 3 — КОРРЕКТОР (только при вердикте ОШИБКА):
Исправь ТОЛЬКО процитированное место. 
Остальной текст скопируй дословно без изменений.
Выведи финальный текст.

Плейсхолдеры: - {тип_текста} — «коммерческое предложение», «юридическую формулировку», «финансовый расчёт», «технический план» - {задача} — исходная постановка, которую решал текст - {текст} — сам текст для проверки - {число_вопросов} — 3 для коротких текстов, 5-7 для сложных


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

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

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

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


⚠️

Ограничения

⚠️ Слабый судья блокирует всё: Если модель недостаточно сильная, судья будет выносить вердикт НЕТ_ОШИБКИ даже при очевидных противоречиях. Верификатор найдёт ошибку, судья её проигнорирует — коррекция не запустится. Это «пол компетентности»: ниже него метод не работает.

⚠️ Косметика против логики: Метод отлично ловит фактические ошибки — неверные числа, противоречивые утверждения, пропущенные условия. Логические ошибки в цепочках рассуждений исправляет хуже — особенно если ошибка в предпосылке, а не в следствии.

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

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


🔍

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

Команда из Thomson Reuters Labs построила систему так, чтобы проверить именно архитектурный вклад каждого элемента — а не просто «лучше или хуже». Они взяли три принципиально разных набора задач: BIG-Bench Mistake (готовые цепочки рассуждений с намеренными ошибками — начальная точность ~15%), HotpotQA (7405 вопросов с поиском по двум статьям Википедии) и GPQA Diamond (198 вопросов уровня аспирантского экзамена по физике, химии, биологии).

Самый интересный эксперимент — пять конфигураций на GPQA, где роли верификатора, судьи, генератора и корректора распределялись между слабой моделью (gpt-4.1-nano) и сильной (gpt-5.2). Результат удивил: сильный верификатор без сильного судьи давал +0 улучшений (судья говорил НЕТ_ОШИБКИ в 100% случаев). Сильный судья без сильного верификатора — +3. А оба вместе — +34. Эффект не суммируется, он умножается. Это значит: в паре «проверяющий + оценивающий» слабейший определяет результат всей цепочки.

Ещё один чистый эксперимент — отключение «ворот»: те же промпты, та же модель, но судья всегда выносит вердикт ОШИБКА и всегда запускает исправление. Результат: количество деградаций (ломаем правильное) выросло в 2-3 раза. Это доказывает — именно тормоз, а не сами промпты, останавливает перекоррекцию.


💡

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

1. Симуляция кросс-модельной проверки в одном чате

Исследование показало: главная проблема самопроверки — подтверждение собственных предубеждений (self-confirmation bias). Модель проверяет ответ теми же «глазами», которыми его писала. В реальном исследовании это решают заменой модели. В чате можно симулировать смену точки зрения:

🔧 Техника: смена роли верификатора → острее проверка

Замени в шаблоне начало РОЛИ 1 на:

РОЛЬ 1 — ВЕРИФИКАТОР:
Ты — скептичный редактор, который видит этот текст впервые 
и не доверяет ни одной цифре. Ты никогда не писал этот текст.
Сформулируй вопросы как человек, который хочет поймать автора на неточности.

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

2. DISC для проверки промптов перед отправкой

Принцип верификации через независимые вопросы работает не только для финальных ответов, но и для самих промптов.

Проверь следующий промпт перед тем, как я отправлю его в работу.

ПРОМПТ ДЛЯ ПРОВЕРКИ:
"""
{мой_промпт}
"""

РОЛЬ 1 — ВЕРИФИКАТОР:
Задай 4 вопроса к конкретным инструкциям в промпте:
- Какой результат ожидается?
- Что считается успехом?
- Есть ли противоречивые инструкции?
- Что модель сделает, если встретит неоднозначность?
Ответь на каждый вопрос самостоятельно.

РОЛЬ 2 — СУДЬЯ:
Есть ли конкретное противоречие между ожидаемым результатом 
и формулировками промпта?

НЕТ_ОШИБКИ — промпт чёткий, отправляй
ОШИБКА — укажи конкретную неоднозначность

РОЛЬ 3 — РЕДАКТОР (только при ОШИБКА):
Исправь только помеченное место.

🔗

Ресурсы

Название работы: Denoising Iterative Self-Correction: Structured Verification Loops for Reliable LLM Reasoning

Авторы: Shen Yin, David Ken, Joel Stremmel — Thomson Reuters Labs

Связанные работы из статьи: - Chain-of-Verification (CoVe) — Dhuliawala et al., 2023 - Self-Refine — Madaan et al., 2023 - GPQA Diamond benchmark — Rein et al., 2023 - Критика самокоррекции — Huang et al., 2024; Kamoi et al., 2024


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

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

Попросить LLM «проверь себя» — почти гарантированный способ сломать правильные части ответа: у модели нет механизма спросить «нужно ли вообще что-то менять?». DISC позволяет исправлять реальные ошибки, не трогая то, что уже верно. Ключ — «ворота суждения»: судья обязан найти конкретное доказательство ошибки до любых изменений. Нет доказательства — цикл останавливается. Нашлось противоречие — корректор правит только помеченное место, не трогая остальное.

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

Не «оцени и улучши», а «сравни два независимых источника». Стандартный запрос «проверь себя» — это приглашение продолжить текст. Модель входит в режим генерации и начинает переписывать, потому что переписывание само по себе выглядит как ожидаемое продолжение запроса. DISC разрывает этот круг: верификатор отвечает на вопросы об утверждениях текста, не видя самого текста. Потом судья сравнивает два источника. Совпадают — ничего не трогаем. Расходятся — конкретное место, конкретное доказательство, точечная правка. Цепочка: верификатор (точечные вопросы → независимые ответы) → судья (сравнение → вердикт «ошибка / нет ошибки») → корректор (правка только помеченного). До 3 раундов — каждый снимает один слой ошибок.

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

У LLM два режима работы, которые дают разные результаты. В режиме «продолжи текст» — модель ориентируется на контекст и переписывает то, что «видит». В режиме «ответь на конкретный вопрос» — она обращается к тому, что знает независимо от контекста. DISC использует это различие: верификатор вытаскивает знания модели через режим «конкретный вопрос», затем судья сравнивает их с исходным текстом. Если модель написала «гарантия 2 года», а верификатор знает, что стандарт для этого класса — 1 год, противоречие видно без субъективной оценки. Судья не спрашивает «хорошо ли написано» — он спрашивает «есть ли конкретное расхождение».

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

Фактические тексты — коммерческие предложения, юридические формулировки, технические расчёты, финансовые отчёты — особенно когда цифры, условия или сроки должны быть точными, а не «примерно верными». Хорошо работает для многошаговых рассуждений и цепочек выводов — до 3 раундов, каждый ловит следующий слой ошибок. НЕ подходит для оценки стиля, тона или «соответствия голосу бренда» — судья не может вынести объективный вердикт там, где нет однозначного доказательства. Не стоит использовать для коротких очевидных текстов: один раунд DISC в 5 раз дороже по токенам, чем обычный «проверь».

Мини-рецепт

1. Возьми шаблон трёх ролей: «РОЛЬ 1 — ВЕРИФИКАТОР: задай N вопросов к конкретным утверждениям. Отвечай самостоятельно — как будто не видел текст выше. РОЛЬ 2 — СУДЬЯ: сравни ответы с текстом. Вынеси вердикт: НЕТ_ОШИБКИ — верни без изменений / ОШИБКА — процитируй место и доказательство. РОЛЬ 3 — КОРРЕКТОР (только при ОШИБКА): исправь только упомянутое, остальное скопируй дословно.»
2. Подставь параметры: тип текста (коммерческое предложение / расчёт / план), исходную задачу, сам текст и число вопросов — 3 для коротких, 5-7 для сложных.
3. Запусти первый раунд: если судья вынес вердикт ОШИБКА — скопируй исправленный текст и запусти второй раунд. Максимум три — после этого убывающая отдача.
4. Настрой строгость судьи под задачу: добавь «требуй прямое цитирование доказательства» для максимальной точности; убери для более мягкой проверки.

Примеры

[ПЛОХО] : Проверь это коммерческое предложение и улучши его
[ХОРОШО] : Проверь следующее коммерческое предложение. Действуй строго по ролям. ИСХОДНАЯ ЗАДАЧА: предложение для кофейни на поставку кофемашин ТЕКСТ: """ La Marzocco GB5 — 380 000 ₽. Гарантия 2 года. Рассрочка 12 месяцев без переплат. """ РОЛЬ 1 — ВЕРИФИКАТОР: сформулируй 4 точечных вопроса к конкретным утверждениям. Отвечай самостоятельно — как будто не видел текст выше. РОЛЬ 2 — СУДЬЯ: сравни ответы с текстом. НЕТ_ОШИБКИ — верни без изменений, объясни одним предложением. ОШИБКА — процитируй точное место и доказательство. РОЛЬ 3 — КОРРЕКТОР (только при ОШИБКА): исправь только помеченное, остальное скопируй дословно.
Источник: Denoising Iterative Self-Correction: Structured Verification Loops for Reliable LLM Reasoning
ArXiv ID: 2606.21724 | Сгенерировано: 2026-06-28 21:37

Проблемы LLM

ПроблемаСутьКак обойти
Самопроверка ломает правильные частиПросишь модель «перепроверь свой ответ». Она начинает переформулировать верные куски, добавлять оговорки, менять структуру. Ошибки остаются. Правильное портится. Это происходит потому что у модели нет «тормоза» — она не спрашивает себя «нужно ли вообще что-то менять». Она просто продолжает текстДобавь явное условие остановки. До любого исправления — вердикт с доказательством. Нет доказательства ошибки — модель не трогает текст

Методы

МетодСуть
Три роли с воротами суждения — точечная самопроверкаЗапусти три роли в одном запросе. Верификатор — задаёт 3–7 точечных вопросов к конкретным утверждениям текста. Отвечает на них как будто не видел текст. Судья — сравнивает ответы верификатора с исходным текстом. Выносит строгий вердикт: НЕТ_ОШИБКИ — текст не трогаем, останавливаемся. ОШИБКА — цитирует точное место и доказательство. Корректор — переписывает только процитированное место. Остальное копирует дословно. Повтори цикл до 3 раз. Почему работает: верификатор отвечает независимо — это другой режим, чем «оцени текст». Судья сравнивает два независимых источника, а не переписывает один. Когда не применять: субъективные задачи (тон, стиль), слабые модели (судья пропускает ошибки), короткие тексты с очевидными ошибками — дорого

Тезисы

ТезисКомментарий
Независимые вопросы к тексту точнее чем просьба «оцени»Когда модель отвечает на отдельный вопрос («какова стандартная гарантия на этот продукт?»), она работает в режиме поиска факта. Когда её просят оценить свой же текст, она работает в режиме продолжения — и «соглашается» со своими же ошибками. Разрыв между этими режимами и создаёт возможность для проверки. Применяй: вместо «проверь свой ответ» задавай конкретные вопросы к конкретным утверждениям — независимо от исходного текста
📖 Простыми словами

Denoising Iterative Self-Correction: Structured Verification Loops for ReliableLLMReasoning

arXiv: 2606.21724

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

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

Метод DISC (Denoising Iterative Self-Correction) ломает этот порочный круг, разделяя процесс на три жесткие роли, чтобы модель не могла «схалявить». Сначала включается верификатор, который не просто смотрит текст, а задает едкие вопросы к каждому факту. Затем в дело вступает судья, который оценивает доказательства и выносит вердикт: «это бред» или «это норма». И только в самом конце корректор переписывает исключительно те куски, на которые указал судья. Такой структурированный цикл проверки не дает модели растекаться мыслью по древу и заставляет её работать с конкретными данными.

Хотя метод тестировали на сложных логических задачах, этот принцип — золотой стандарт для любого серьезного контента. Будь то коммерческое предложение для кофейни, юридический договор или техническая документация, нельзя доверять «самопроверке» в одном окне чата. Нужно заставлять AI работать по ролям, имитируя многоступенчатый аудит, где одна часть системы ищет дыры, а другая их латает. Обычный промпт «проверь себя» — это мусор, который только плодит ошибки.

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

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

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

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