TL;DR
Слепое пятно самокоррекции — систематический баг LLM: модель легко находит ошибки в чужом тексте и не замечает те же ошибки в своём собственном ответе. SPARC — это теория, которая объясняет почему это происходит через математику, но по пути раскрывает три практических рычага: простую перестановку ролей ("это чужой текст"), однословный маркер паузы и выбор правильной модели.
Главная находка: когда LLM только что сгенерировала текст, ошибка как бы "вплавляется" в её внутреннее состояние — модель становится уверена в том, что написала, и уже не может смотреть на это критически. Это не лень и не случайность, а структурный эффект: у 64% ответов ошибка усиливается по мере генерации, а не слабеет. При этом та же самая модель без проблем находит идентичную ошибку, если ей сказать — "это написал кто-то другой".
Три рабочих обхода: (1) переформулировать запрос так, чтобы текст выглядел как чужой — внешняя атрибуция; (2) добавить слово "Wait" (или аналог) перед просьбой о проверке — это буквально сбрасывает 89% слепых пятен; (3) переключиться на RL-обученные модели вроде DeepSeek-R1 или QwQ, у которых этот баг структурно меньше.
Схема метода
Три независимых способа. Можно применять в любом порядке или комбинировать.
СПОСОБ 1 — Внешняя атрибуция:
ШАГ 1: Получаешь ответ от LLM → копируешь текст
ШАГ 2: Новый чат / новый промпт → вставляешь текст как "чужой"
→ "Вот текст от коллеги / кандидата / клиента, найди проблемы"
ШАГ 3: Модель проверяет без слепого пятна → видит ошибки
СПОСОБ 2 — Wait-маркер:
ШАГ 1: Уже в том же чате, после ответа
ШАГ 2: Пишешь "Wait." или "Подожди." → потом просьба проверить
→ эффект: сбрасывает 89% слепых пятен одним словом
СПОСОБ 3 — Выбор модели:
Используй DeepSeek-R1 / QwQ-32B когда нужна самопроверка →
RL-обученные модели имеют в 7–8 раз меньше слепых пятен, чем SFT-модели
Все три способа работают в обычном чате, без кода и настройки.
Пример применения
Задача: Аня написала питч для инвесторов на серию А, попросила ChatGPT улучшить текст. Модель "улучшила" — но логика осталась дырявой. Aня снова просит: "найди слабые места". Модель отвечает: "текст убедительный, хорошая структура". Классика.
Промпт — Способ 1 (Внешняя атрибуция):
Ты опытный венчурный аналитик из Сбербанк-500 и Фонда развития
интернет-инициатив. Тебе прислали питч от стартапа на проверку
перед инвестиционным комитетом.
Вот питч:
[вставь свой текст]
Найди слабые места по трём критериям:
1. Логические противоречия и необоснованные допущения
2. Цифры, которые не сходятся или выглядят взятыми с потолка
3. Места, где инвестор может спросить "а откуда это?" и не получить ответа
Будь жёстким — лучше узнать сейчас, чем на комитете.
Промпт — Способ 2 (Wait-маркер):
[После того как модель выдала ответ / улучшила текст]
Wait. Перечитай свой ответ как скептичный читатель.
Что в нём слабо, неточно или требует доказательств?
Дай честный список — минимум 3 пункта.
Результат: Оба способа заставят модель переключиться с режима "я уже выдал хороший текст" на режим "оцениваю чужой материал". В первом случае появятся конкретные возражения по логике и цифрам. Во втором — список слабых мест, которые модель игнорировала при улучшении. Критика будет заметно острее, чем при прямом "найди ошибки в своём ответе".
Почему это работает
LLM не пересматривает — она продолжает. Модель работает как автодополнение: каждый следующий токен генерируется на основе предыдущих. Когда она сама написала "решение А лучше", следующие токены будут укреплять эту позицию — потому что это самый вероятный продолжение. Ошибка не стирается из контекста, она накапливается и усиливается.
Критика требует "смены точки зрения". Находить ошибки в чужом тексте — это другая операция, чем продолжать свой. В первом случае модель работает от внешней точки ("что здесь не так?"), во втором — от внутренней ("что я хотел сказать?"). Когда ты переформулируешь запрос с "проверь своё" на "проверь чужое", модель технически выполняет другую задачу — и делает её хорошо.
"Wait" ломает инерцию одним словом. Маркер паузы создаёт в контексте разрыв — модель обрабатывает его как сигнал "остановись и оцени заново", а не "продолжай". Это не магия: токен "Wait" встречался в обучающих данных именно в таких ситуациях — перед переоценкой и коррекцией. Поэтому одно слово меняет режим обработки.
Рычаги управления: - Сила ролевой рамки → чем убедительнее "чужак" (конкретная роль, организация, контекст), тем острее критика - Пауза перед проверкой → "Wait" / "Подожди" / "Стоп" — все варианты работают, но лучше на отдельной строке - Выбор модели → DeepSeek-R1, QwQ-32B, Claude 3.7 Sonnet значительно лучше справляются с самопроверкой, чем GPT-3.5 или базовый Llama
Шаблон промпта
Шаблон A — Внешняя атрибуция (универсальный):
Ты {роль эксперта в нужной теме}.
Тебе прислали {тип текста: статью / питч / письмо / план / анализ}
от {источник: коллеги / кандидата / клиента / подрядчика} для оценки.
Вот текст:
{вставь текст}
Задача: найди слабые места, противоречия и сомнительные утверждения.
Критерии оценки:
1. {что важно проверить — логику / цифры / риски / аргументы / факты}
2. {второй критерий}
3. {третий критерий}
Будь честным и конкретным. Хорошего слышать не нужно — нужно то,
что можно улучшить.
Шаблон B — Wait-маркер:
Wait.
Перечитай свой предыдущий ответ с позиции {скептика / оппонента / {роль}}.
Найди минимум {3–5} конкретных слабых места: что неточно,
что требует доказательств, что противоречит само себе.
Оформи как список с пояснением почему это проблема.
Что подставлять:
- {роль эксперта} → инвестор, редактор, юрист, HR, технический директор
- {тип текста} → буквально что это за документ
- {источник} → откуда "пришёл" текст (чем конкретнее — тем острее критика)
- {критерии} → что именно тебя беспокоит в этом тексте
🚀 Быстрый старт — вставь в чат:
Вот два шаблона для обхода слепого пятна самокоррекции LLM.
Адаптируй под мою задачу: {опиши что тебе нужно проверить и в каком контексте}.
Задавай вопросы чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какой тип текста проверять, кто "эксперт" и какие критерии важны — потому что без этого не сможет правильно выстроить роль и угол критики. Она возьмёт паттерн "внешней атрибуции" из шаблона и адаптирует под твою конкретную задачу.
Ограничения
⚠️ Глубокие логические ошибки: Внешняя атрибуция и Wait-маркер лучше работают для поверхностных проблем — стиль, факты, структура. Если ошибка вшита глубоко в цепочку рассуждений (модель выбрала неверный подход с самого начала), перефрейминг помогает частично.
⚠️ SFT-модели упираются в потолок: У ChatGPT-3.5, базовых версий Llama и других SFT-моделей слепое пятно структурно больше. Внешняя атрибуция снижает его, но не убирает полностью. Для критически важных задач с самопроверкой — лучше RL-обученные модели.
⚠️ Не работает как инструмент "установить SPARC": Сама теория SPARC — исследовательский фреймворк, не промпт и не продукт. Практические техники из неё — да. Но "применить SPARC" в смысле воспроизвести все эксперименты — требует доступа к весам моделей и вычислительной инфраструктуры.
⚠️ Эффект слабеет при повторе: Если использовать "Wait" каждый раз в одном чате, модель привыкает к паттерну и эффект снижается. Внешняя атрибуция в новом контексте работает стабильнее.
Как исследовали
Исследователи из Европейского университета Тираны поставили вопрос, который до них никто не формализовал: почему LLM видит ошибки в чужом тексте и не видит те же ошибки в своём? Не "как это исправить эмпирически" — а именно механику.
Они построили математическую теорию через спектральную алгебру (анализ того, как маленькие отклонения накапливаются или рассеиваются в цепочке генерации) и вывели конкретный критерий: если "коэффициент усиления ошибки" больше или равен 1 — слепое пятно гарантировано. Меньше 1 — модель в принципе способна себя поправить.
Затем проверили теорию на четырёх моделях (Llama-3-8B, Qwen2.5-7B, DeepSeek-R1, QwQ-32B), трёх бенчмарках (математика, код, общие задачи) и — что интересно — на визуальных генеративных моделях тоже. Оказалось, тот же математический критерий работает для генерации изображений и видео: архитектура residual stream одинакова. SFT-модели (обученные на примерах) давали большое слепое пятно (~64%). RL-модели (обученные через обратную связь с ошибками) — в 7–8 раз меньше. Это не случайность: RL по природе своей тренирует модель работать с собственными провалами, а SFT — просто копировать правильное.
Удивительный результат: одно слово "Wait" давало 89.3% снижения слепого пятна. Теория это объяснила — маркер буквально переключает внутренний режим обработки, снижая коэффициент усиления ошибки ниже порогового значения.
Адаптации и экстраполяции
🔧 Техника: Конкретный персонаж вместо абстрактной роли → острее критика
Вместо "ты эксперт" — конкретный архетип с известным стилем мышления:
Ты Михаил Хомич (бизнес-ангел, бывший директор ФРИИ).
Перед тобой питч стартапа. Ты известен тем, что задаёшь
неудобные вопросы про unit-экономику и масштабируемость.
Что ты спросишь после прочтения этого текста?
[текст]
Чем узнаваемее персонаж — тем точнее модель воспроизводит его угол зрения. Безликий "эксперт" критикует обобщённо. Конкретный архетип — по делу.
🔧 Техника: Несколько независимых ревьюеров в одном промпте → многосторонняя критика
Прочитай этот текст тремя взглядами — по очереди:
[ВЗГЛЯД 1 — Скептик-инвестор]: что здесь нереалистично?
[ВЗГЛЯД 2 — Целевой пользователь]: что непонятно или не убеждает?
[ВЗГЛЯД 3 — Конкурент]: где здесь дыры, которыми можно воспользоваться?
Текст:
{вставь текст}
Это комбинация внешней атрибуции с мультиагентным подходом — каждый "взгляд" создаёт свою точку входа, независимую от остальных.
Ресурсы
Название работы: Spectral Origins of the Self-Correction Blind Spot in Autoregressive Generation
Авторы: Ingrid Petrova, Luan Vejsiu — European University of Tirana
Связанные работы упомянутые в исследовании: - Self-Correction Bench (Tsui, 2025) — бенчмарк с контролируемой инъекцией ошибок, откуда взята цифра 64.5% - Self-Refine (Madaan et al., 2023) — итеративная самокритика - Reflexion (Shinn et al., 2023) — агенты с вербальным подкреплением - S²R (Ma et al., 2025) — двухэтапный RL-пайплайн верификатор+корректор - ReVISE (Lee et al., 2025) — intrinsic verifier с режимом нестабильности
