3,583 papers
arXiv:2607.27912 76 30 июля 2026 г. FREE

IFHierBench: вложенные требования в одном промпте роняют точность LLM почти вдвое

КЛЮЧЕВАЯ СУТЬ
Один уровень вложенности в промпте — и точность падает на 37-53 процентных пункта, у всех моделей без исключения. Бенчмарк IFHierBench показывает, где именно рвётся сложный промпт с вложенной структурой требований — раздел внутри раздела внутри абзаца — и позволяет понять, каким моделям и на какой глубине вообще можно доверять. 600 промптов проверяются программой не по ответу целиком, а по каждому уровню вложенности отдельно, как по слоям матрёшки. На глубоких уровнях точность падает до 1-6% у большинства моделей и держится на 22-35% только у тех, где включено глубокое рассуждение.
Адаптировать под запрос

Стоит добавить в промпт хотя бы один уровень вложенности требований — например, «сделай отчёт в Markdown, где раздел "Итоги" должен содержать два подраздела, а один из подразделов — ровно одно предложение с упоминанием роста» — и точность модели рушится. Исследователи создали бенчмарк IFHierBench: 600 промптов с требованиями, «вложенными» друг в друга на 4 уровня (как матрёшка), и для каждого промпта — программу-проверку, которая сверяет соблюдение правил на каждом отдельном уровне, а не только по всему ответу целиком.

Главная находка: даже сильнейшие модели проходят проверку лишь чуть больше чем в половине случаев, и переход от «плоского» списка требований («ответ короче 100 слов и на английском») к всего одному уровню вложенности («то же самое, но внутри конкретного раздела документа») отрезает 37–53 процентных пункта точности — у всех моделей без исключения. Хуже всего дела с точными числами: «ровно 80 слов», «ровно 5 предложений», «первый абзац начинается с такого-то слова» — эти требования проваливаются чаще всего, а вложенность их только усугубляет. Причина проста: обучающие промпты в основном содержат один уровень требований, а не «требование внутри требования внутри требования», поэтому модель не привыкла удерживать в голове несколько вложенных слоёв сразу.

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

📌

Анатомия проблемы

УРОВЕНЬ 0 (плоский список требований, без вложенности):
  "Ответь в JSON с полями X и Y" → точность ~80-87%

УРОВЕНЬ 1 (один слой вложенности):
  "Ответь в JSON, где поле Y — список из 3 пунктов" → падение на 37-53 п.п.

УРОВЕНЬ 2-3 (глубокая вложенность):
  требование внутри требования внутри требования →
  у большинства моделей точность падает до 1-6%,
  у самых сильных моделей (с включённым глубоким рассуждением) — держится на уровне 22-35%

🚀

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

Задача: Основатель стартапа просит нейросеть подготовить недельный отчёт для инвесторов.

Промпт (типичный, который скорее всего провалится частично):

Подготовь недельный отчёт для инвесторов в формате Markdown с тремя разделами: 
"Итоги", "Метрики", "Риски".

В разделе "Итоги" сделай два подраздела: "Главное" и "Что дальше".

Подраздел "Главное" должен быть ровно одним предложением 
и обязательно упоминать рост "месяц к месяцу".

Результат: Модель почти наверняка сделает три раздела верхнего уровня — это она выполняет надёжно. Но чем глубже забирается требование, тем выше шанс, что оно потеряется: подраздел "Главное" может оказаться не одним предложением, а абзацем, или упоминание "месяц к месяцу" появится где-то в другом месте текста, а не именно в этом подразделе. Исследование показывает: вероятность того, что ВСЕ требования на ВСЕХ уровнях выполнятся одновременно, падает лавинообразно с каждым новым уровнем вложенности.


🧠

Почему это работает (точнее — почему ломается)

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

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

Интересная деталь: у GPT-5.5 и Claude Opus 4.6 (оба тестировались с включённым глубоким рассуждением, то есть режимом расширенного обдумывания перед ответом) точность на глубоких уровнях падает намного мягче, чем у остальных. Это говорит о рычаге управления: если задача требует сложной вложенной структуры — включай режим расширенного рассуждения, если он доступен в модели.


📌

Практическая рекомендация (не из статьи — логичный вывод из находки)

🔧 Техника: явная самопроверка по уровням

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

Задача: {задача}

Структура ответа по уровням (от внешнего к внутреннему):
Уровень 1 (весь ответ): {требование к структуре целиком}
Уровень 2 (внутри {название раздела}): {требование к разделу}
Уровень 3 (внутри {название подраздела}): {требование к подразделу}

Прежде чем дать финальный ответ:
1. Составь черновик.
2. Пройдись по черновику от самого глубокого уровня к внешнему. 
   По каждому уровню явно напиши: выполнено требование или нет.
3. Если что-то не выполнено — перепиши черновик именно в этом месте и проверь снова.
4. Выведи только финальный ответ, прошедший проверку по всем уровням.

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

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

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

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

Дополнительно: если можно — замени точные числа («ровно 80 слов») на диапазоны («60-100 слов»). Числовые точные ограничения — самое слабое место моделей, а внутри вложенной структуры это слабое место становится критичным.


⚠️

Ограничения

⚠️ Диагностика, не решение: статья не предлагает и не тестирует способ исправить проблему — только показывает масштаб. Мой шаблон самопроверки выше — логичное следствие, но не проверено авторами.

⚠️ Точные числа особенно хрупкие: ограничения «ровно N слов/символов/предложений» проваливаются чаще всего, вложенность только усугубляет ситуацию.

⚠️ Модели ломаются по-разному: одни теряют отдельные детали, разбросанные по тексту, но структуру в целом держат. Другие — если не справились с внешним уровнем, рушат всю вложенную структуру целиком. Значит и стратегия подстраховки может зависеть от того, с какой моделью работаешь.


🔍

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

Команда сначала посмотрела на 1232 реальных промпта из открытых GitHub-проектов, чтобы понять, как на самом деле выглядят вложенные требования к формату — оказалось, что почти 68% промптов с явным форматом содержат хотя бы один уровень вложенности, а почти треть смешивает разные форматы (JSON внутри Markdown и так далее). На основе этого построили синтетический конвейер: брали простую задачу, «выращивали» вокруг неё дерево требований на 4 уровня, для каждого узла дерева писали отдельную программу-проверку — так итоговый чекер способен проверить соблюдение правил именно в той секции текста, к которой они относятся, а не по всему ответу целиком.

Получилось 600 промптов (по 150 на каждый уровень глубины), 35 типов требований, протестировали на семи моделях — от GPT-5.5 и Claude Opus 4.6 до открытых моделей вроде Qwen и Gemma. Результат совпал с ожиданием, но масштаб удивил: даже переход с уровня 0 на уровень 1 (всего один слой вложенности!) обрушивает точность на 37-53 процентных пункта у всех моделей без исключения — значит, проблема не в конкретной модели, а в самом способе, которым модели учили следовать инструкциям.


🔗

Ресурсы

IFHierBench: Hierarchical Instruction Following for Large Language Models, Yuetian Mao, Chunyang Chen — Technical University of Munich. Код и данные: anonymous.4open.science/r/IFHierBench-0087.


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

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

Один уровень вложенности в промпте — и точность падает на 37-53 процентных пункта, у всех моделей без исключения. Бенчмарк IFHierBench показывает, где именно рвётся сложный промпт с вложенной структурой требований — раздел внутри раздела внутри абзаца — и позволяет понять, каким моделям и на какой глубине вообще можно доверять. 600 промптов проверяются программой не по ответу целиком, а по каждому уровню вложенности отдельно, как по слоям матрёшки. На глубоких уровнях точность падает до 1-6% у большинства моделей и держится на 22-35% только у тех, где включено глубокое рассуждение.

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

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

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

Причина в данных, а не в архитектуре: тренировочные примеры почти не содержат вложенных друг в друга инструкций. Модели нужно одновременно держать в голове внешний контейнер, внутренний раздел и точное текстовое ограничение — и с каждым новым слоем шанс всё выполнить одновременно падает лавинообразно. Глубокое рассуждение спасает частично — у GPT-5.5 и Claude Opus 4.6 с включённым этим режимом точность на глубоких уровнях падает мягче, до 22-35%, а не до 1-6%, как у остальных.

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

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

Мини-рецепт

1. Разбей по уровням: выпиши требования от внешнего к внутреннему отдельным списком, а не одним абзацем.
2. Попроси самопроверку: перед финальным ответом — пройтись по черновику от самого глубокого уровня к внешнему и явно отметить, выполнено или нет.
3. Включи глубокое рассуждение: если доступно в модели — для задач с 2+ уровнями вложенности это ощутимо держит точность.
4. Замени точные числа диапазонами: «60-100 слов» вместо «ровно 80 слов» — точные ограничения ломаются чаще всего, а вложенность это только усиливает.

Примеры

[ПЛОХО] : Подготовь отчёт с разделом "Итоги", где подраздел "Главное" — ровно одно предложение с упоминанием роста месяц к месяцу
[ХОРОШО] : Структура по уровням. Уровень 1: весь отчёт в Markdown, разделы Итоги/Метрики/Риски. Уровень 2: внутри Итоги — два подраздела, Главное и Что дальше. Уровень 3: подраздел Главное — ровно одно предложение с упоминанием роста месяц к месяцу. Составь черновик, проверь каждый уровень от самого глубокого к внешнему, перепиши то что не выполнено, выведи только финальный текст.
Источник: IFHierBench: Hierarchical Instruction Following for Large Language Models
ArXiv ID: 2607.27912 | Сгенерировано: 2026-07-31 04:22

Проблемы LLM

ПроблемаСутьКак обойти
Вложенные требования резко роняют точностьПлоский список требований («ответ короче 100 слов, на английском») модель выполняет хорошо. Но стоит вложить одно требование внутрь другого («в разделе X подраздел Y — ровно одно предложение с упоминанием роста») — точность падает на 37-53 процентных пункта. С каждым новым уровнем вложенности падение усиливается лавинообразно. Модель обучена на простых плоских инструкциях, а не на требованиях внутри требований, поэтому не привыкла удерживать несколько уровней контекста одновременноНе давай сложную вложенную структуру одним промптом. Разбей задачу по уровням явно, попроси модель проверить каждый уровень отдельно перед финальным ответом. Если доступен режим глубокого рассуждения — включи его для таких задач
Точные числа — самое слабое место в структурированных запросах«Ровно 80 слов», «ровно 5 предложений», «первый абзац начинается с такого-то слова» — эти требования проваливаются чаще всего. Внутри вложенной структуры эта слабость становится критичной: модель путает точное число ещё до того, как разберётся с уровнями вложенностиЗамени точные числа на диапазоны. Вместо «ровно 80 слов» пиши «60-100 слов». Точное число оставляй только если оно критично для задачи

Методы

МетодСуть
Самопроверка по уровням от глубокого к внешнемуРаспиши требования по уровням: сначала весь ответ целиком, потом каждый раздел, потом каждый подраздел. Уровень 1 (весь ответ): ... Уровень 2 (внутри раздела): ... Уровень 3 (внутри подраздела): .... Попроси модель составить черновик, затем пройтись по нему от самого глубокого уровня к внешнему и явно отметить — выполнено требование или нет. Если что-то не выполнено — переписать именно этот кусок и проверить снова. Только после этого выдать финальный ответ. Работает потому что модель по умолчанию держит в фокусе один слой требований — явный список уровней заставляет её последовательно проверить каждый, а не пытаться удержать всё сразу. Работает: задачи с 2+ уровнями структуры (документ раздел абзац предложение). Не работает: простые плоские требования — там самопроверка избыточна
📖 Простыми словами

IFHierBench: Hierarchical Instruction Following forLargeLanguageModels

arXiv: 2607.27912

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

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

Что реально работает и как это проверяли: авторы ввели метрику следования иерархическим инструкциям. Они тестировали модели на способности соблюдать ограничения разного уровня — от глобального формата текста до микро-правил в конкретных абзацах. Выяснилось, что даже топовые модели типа GPT-4 лажают, когда количество условий растет. Главный метод проверки — декомпозиция ограничений: если модель не может удержать структуру «отчет -> секция -> предложение», она начинает выдавать галлюцинации в форматировании или просто игнорирует часть ТЗ.

Хотя тест гоняли на синтетических задачах, принцип универсален для любого бизнеса. Если ты просишь AI составить отчет для инвесторов, где нужно одновременно: а) не упоминать расходы на маркетинг, б) использовать только Bullet Points и в) писать в стиле «агрессивный рост», модель с вероятностью 80% провалит хотя бы один пункт. Это касается написания кода, юридических договоров и даже простых рассылок — везде, где есть вложенная логика и куча «но».

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

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

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

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