3,583 papers
arXiv:2608.22376 77 23 авг. 2026 г. FREE

Concurrent Functional Loading: непрерывная самопроверка вместо проверки блоками поднимает точность решения

КЛЮЧЕВАЯ СУТЬ
Если попросить модель не «сначала решить, потом проверить», а держать проверку активной всё время и чинить ошибку сразу, как только заметила — точность решения сложных задач растёт заметно сильнее, чем при классической проверке «после каждого абзаца». Это не просто «попроси модель быть внимательнее» — это конкретная формулировка: одновременно поддерживать несколько ролей (решение, проверка логики, проверка границ, проверка вычислений, контроль формата) на каждом шаге рассуждения, а не переключат
Адаптировать под запрос

TL;DR

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

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

Метод исправляет это одной инструкцией: просит модель непрерывно удерживать все цели (не только «решить», но и «проверить», «не выйти за границы», «пересчитать») и чинить ошибку в момент обнаружения, не дожидаясь конца абзаца. В исследовании это дало точность 76.67% против 53-57% у альтернатив — и без пропорционального роста длины типичного ответа.


🔬

Схема метода

ШАГ 0 (в одном промпте): формулируешь задачу + список обязательств
   → решение, проверка логики, проверка границ, проверка вычислений, формат вывода

ШАГ 1 (тот же запрос, без разделения на этапы): 
   инструкция "держи все обязательства активными непрерывно, 
   чини ошибку сразу при обнаружении, не жди конца шага"
   → модель генерирует ответ с вкраплёнными самоисправлениями

Всё выполняется в одном промпте, без отдельных запросов.


🚀

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

Задача: Считаешь юнит-экономику доставки еды перед питчем инвестору — маржу с одного заказа с учётом комиссии агрегатора, стоимости курьера и скидки клиенту. Классическая ловушка: модель красиво считает, но забывает вычесть комиссию или не замечает, что маржа ушла в минус.

Промпт:

Посчитай маржу с одного заказа доставки: 
цена блюда 890₽, комиссия агрегатора 22%, 
доставка курьеру 180₽, скидка клиенту 100₽.

Пока считаешь — одновременно, на каждом шаге, держи активными:
- Решение: посчитай итоговую маржу по шагам, без пропусков.
- Проверка логики: убедись, что порядок вычитания издержек верный 
  (сначала скидка, потом комиссия, потом доставка).
- Проверка границ: если маржа отрицательная или больше цены блюда — 
  это ошибка, останови и найди её.
- Проверка вычислений: пересчитывай каждое арифметическое действие.
- Формат: в финале — только итоговое число маржи в рублях.

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

Результат: модель выдаст расчёт, где видно, как она иногда останавливается посреди шага и переписывает его («стоп, я вычел комиссию из полной цены, а нужно из цены после скидки — пересчитываю»), а не идёт до конца и потом «проверяет всё сразу». В финале — чистое число маржи. По сравнению с промптом «посчитай, а потом проверь» — точность выше, а длина ответа растёт не сильно.


🧠

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

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

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

Рычаги управления: - Список обязательств — под юридический текст добавь «проверка соответствия закону», под код — «проверка граничных случаев ввода» - Фраза «чини сразу» vs «проверяй после каждого абзаца» — это переключатель между двумя режимами из исследования - Для простых задач убери часть пунктов — иначе рискуешь получить непропорционально длинный ответ (см. ограничения)


📋

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

Реши задачу: {задача}.

Пока решаешь, одновременно на каждом шаге держи активными эти обязательства:
- Решение: {основной ход решения}
- Проверка логики: {что должно быть логически непротиворечивым}
- Проверка границ: {какие значения/выводы недопустимы}
- Проверка вычислений: пересчитывай каждое действие
- Формат: {в каком виде выдать финальный ответ}

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

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

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

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

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


⚠️

Ограничения

⚠️ Узкая проверка: метод протестирован только на математических олимпиадных задачах с одним точным числовым ответом (AIME) — для творческих или субъективных задач (текст, идея, дизайн) он не проверялся.

⚠️ Риск раздувания ответа: метод может увести модель в очень длинную «зависшую» генерацию — иногда ответ раздувается в 2-3 раза без выигрыша в точности. Это происходит нечасто, но именно на таких случаях держится средняя длина ответа.

⚠️ Причинность не доказана: авторы честно пишут — связь «шире внимание → выше точность» это совпадение, не доказанный механизм. Возможно, есть третий фактор, который влияет на оба показателя.

⚠️ Один прогон, одна модель: каждая задача решалась только один раз на одной модели (deepseek-v4-flash). Нет проверки, что эффект воспроизведётся на других моделях или при повторных запусках.


🔍

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

Исследователи взяли 30 задач AIME 2025 (сложные математические олимпиадные задачи с целочисленным ответом от 0 до 999) и прогнали каждую три раза — с разной формулировкой промпта: без дополнительных инструкций, с проверкой блоками после каждого абзаца, и с непрерывной проверкой с немедленным исправлением ошибок. Всё через API одной модели, с фиксированными настройками генерации.

Точность считали по совпадению финального числа с эталоном, а заодно напрямую измерили матрицы внимания модели — насколько широко она распределяет фокус между условием задачи, ограничениями и текущим выводом на каждом шаге генерации. Оказалось, что режим с непрерывной проверкой дал точность 76.67% против 53-57% у альтернатив, при этом типичная длина ответа не выросла пропорционально — раздулись только несколько крайних случаев.

Что удивило: обычно рассеянное внимание считается признаком ошибки или «растерянности» модели — а тут оно совпало с более высокой точностью. Авторы специально подчёркивают: это предварительный, разведочный результат (один прогон на 30 задачах) — не доказательство причинности, но достаточный сигнал, чтобы стоило проверить формулировку на своих задачах.


Проблемы LLM

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

Методы

МетодСуть
Непрерывная многоролевая самопроверкаВ одном промпте перечисли роли, которые модель должна держать активными одновременно: решение, проверка логики, проверка границ значений, проверка вычислений, контроль формата ответа. Синтаксис: раздели инструкцию на пункты-обязательства и добавь фразу "держи все обязательства активными непрерывно, чини ошибку сразу при обнаружении, не откладывай до конца шага". Почему работает: модель генерирует текст последовательно, но внимание внутри может распределяться широко — на условие задачи, текущий вывод и критерии проверки одновременно. Классическая инструкция "проверь в конце" заставляет модель разносить решение и проверку по отдельным текстовым блокам, как два человека работающих по очереди. Непрерывная формулировка не даёт этого разделения — модель держит все критерии в поле внимания весь путь. Когда применять: многошаговые задачи с чёткими проверяемыми критериями — расчёты, код, юридические тексты, где легко сформулировать конкретные пункты проверки (границы значений, формат, логика шагов). Когда не работает: на простых задачах список обязательств может раздуть ответ в 2-3 раза без выигрыша в точности; список должен быть конкретным — общие формулировки типа "будь внимательнее" эффекта не дают
📖 Простыми словами

CanLargeLanguageModels"Hyper-Thread"?

arXiv: 2608.22376

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

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

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

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

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

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

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

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