TL;DR
Когда в одном промпте слишком много правил («не короче», «только точные термины», «третье лицо», «без исправления опечаток», «только одно предложение»), модель начинает сбоить — игнорирует часть инструкций, пропускает ключевые слова, нарушает формат. Исследование названо "constraint overload": модель буквально перегружается ограничениями и начинает выбирать, какие соблюдать.
Главная находка: при добавлении нового правила к и без того длинному списку ограничений модель не становится «умнее» — она начинает хуже выполнять уже заданные. Это не баг конкретной модели. Это системная особенность всех LLM: чем больше условий одновременно в промпте, тем выше вероятность частичного игнорирования.
Решение — пошаговая декомпозиция (extract-then-generate): сначала один запрос извлекает нужные элементы (термины, ключевые факты, структуру), потом другой — генерирует финальный результат на основе уже извлечённого. Два коротких целевых запроса бьют один длинный перегруженный.
Схема метода
ШАГ 1: Извлечение → отдельный запрос
Задача: выделить ключевые элементы из исходного текста
Вывод: список терминов / фактов / структур (БЕЗ генерации)
ШАГ 2: Генерация → отдельный запрос
Задача: создать финальный текст, используя элементы из Шага 1
Вывод: готовый результат с соблюдением всех ограничений
Два запроса подряд. Сначала извлечь — потом сгенерировать на основе извлечённого.
Пример применения
Задача: Клиент Wildberries прислал 600-словный голосовой монолог с пожеланиями к карточке товара. Нужно написать SEO-заголовок — строго до 15 слов, с сохранением точных названий характеристик, которые клиент назвал сам.
Промпт (Шаг 1 — Извлечение):
Прочитай описание от клиента и выпиши ТОЛЬКО ключевые характеристики товара —
точными словами клиента, без перефразирования.
Формат: маркированный список.
Описание клиента:
[вставь текст монолога]
Промпт (Шаг 2 — Генерация заголовка):
Используй ТОЛЬКО термины из списка ниже. Напиши заголовок для карточки Wildberries.
Требования:
— строго до 15 слов
— начни с главной характеристики
— не добавляй ничего, чего нет в списке
Список терминов: [вставь результат Шага 1]
Результат: Шаг 1 вернёт список точных формулировок клиента — без добавлений от модели. Шаг 2 создаст заголовок строго из этих слов, не превышая лимит. Модель не будет «придумывать» характеристики, потому что работает с готовым ограниченным материалом, а не со всем монологом сразу.
Почему это работает
Слабость LLM: Модель генерирует текст последовательно и удерживает все инструкции одновременно в одном «рабочем пространстве». Чем больше правил — тем сложнее их одновременно соблюдать. Модель начинает неявно расставлять приоритеты сама: какие-то правила выполняет, какие-то незаметно нарушает. Без злого умысла — просто ресурс конечен.
Сильная сторона LLM: Модель отлично работает с одной чёткой задачей в моменте. «Найди все медицинские термины» — справляется. «Напиши текст строго из этих терминов» — тоже справляется. Но «найди термины И напиши текст строго из них И соблюди длину И сохрани голос клиента» — начинается деградация.
Как декомпозиция обходит проблему: Разбивая задачу на два изолированных шага, мы убираем конкуренцию между инструкциями. На Шаге 1 у модели одна задача. На Шаге 2 — другая, но уже с готовым «якорем» из Шага 1. Ограничений в каждом отдельном промпте становится меньше, а качество выполнения — выше.
Рычаги управления: - Количество шагов — если задача очень сложная, добавь промежуточный шаг (например, «классифицируй извлечённые элементы» перед генерацией) - Детализация Шага 1 — чем точнее инструкция на извлечение, тем более предсказуем результат Шага 2 - Формат вывода Шага 1 — список, JSON, таблица — выбирай под задачу; структурированный вывод легче передать в Шаг 2
Дополнительные техники из исследования
Помимо основной декомпозиции, авторы применяли три техники, каждая из которых работает отдельно:
Техника 1: Скрытое предварительное мышление (Implicit Pre-computation)
Вместо того чтобы просить модель «думать вслух» (Chain-of-Thought), попроси её молча определить нужные элементы перед тем как писать финальный ответ.
Зачем: Цепочка рассуждений в ответе «загрязняет» финальный текст — модель начинает объяснять вместо того чтобы делать. Скрытое мышление даёт точность CoT без его балласта в выводе.
Как добавить в промпт:
Прежде чем отвечать, молча определи [что нужно найти/понять].
Используй это в ответе, но не включай в вывод — только финальный результат.
Техника 2: LLM-as-a-Judge с приоритетами
Запусти несколько вариантов промпта (или несколько моделей) → попроси отдельного LLM выбрать лучший по явному списку критериев в порядке приоритета.
Зачем: Устраняет «повезло/не повезло» при генерации. Судья смотрит на все варианты сразу и выбирает по твоим критериям, а не по своим.
Как задать критерии судье:
Оцени варианты ответов по критериям в порядке приоритета:
1. [Главный критерий — факты/точность/соответствие исходнику]
2. [Второй критерий — полнота/охват]
3. [Третий критерий — стиль/краткость]
Выбери лучший вариант и объясни почему.
Варианты:
[Вариант А]: ...
[Вариант Б]: ...
[Вариант В]: ...
Важно: порядок критериев имеет значение. Что написал первым — то судья приоритизирует.
Техника 3: Структурные теги для задач выравнивания
Когда модель должна связать части одного текста с частями другого (например, тезисы ответа с источниками), заранее пронумеруй каждое предложение тегами.
Как это выглядит:
Источник:
[1] Первое предложение источника.
[2] Второе предложение источника.
Ответ:
[A1] Первое утверждение ответа.
[A2] Второе утверждение ответа.
Задача: для каждого [A*] укажи какие [*] из источника его подтверждают.
Где применять: разбор документов, проверка аргументов, fact-checking, анализ контрактов — везде, где нужно явно связать утверждение с доказательством.
Шаблон промпта
Двухшаговая декомпозиция
Шаг 1:
Прочитай {исходный текст} и извлеки {что именно нужно извлечь}.
Формат вывода: {список / таблица / JSON}.
Не перефразируй — только точные формулировки из текста.
Текст: {вставь текст}
Шаг 2:
Используй ТОЛЬКО элементы из списка ниже.
Напиши {что нужно создать}.
Ограничения: {лимит слов / формат / стиль}.
Не добавляй ничего, чего нет в списке.
Список элементов: {вставь результат Шага 1}
Плейсхолдеры:
- {исходный текст} — что анализируем (бриф, статья, документ)
- {что именно нужно извлечь} — ключевые слова, факты, требования, аргументы
- {список / таблица / JSON} — выбери удобный формат для передачи в Шаг 2
- {что нужно создать} — заголовок, резюме, ТЗ, письмо
- {лимит слов / формат / стиль} — все ограничения финального текста
🚀 Быстрый старт — вставь в чат:
Вот шаблон двухшагового промпта "сначала извлечь, потом генерировать".
Адаптируй под мою задачу: [опиши задачу].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит что нужно извлечь и что создать на выходе — потому что это определяет что идёт в Шаг 1, а что в Шаг 2. Она возьмёт паттерн и адаптирует под твою ситуацию.
Ограничения
⚠️ Простые задачи: Если задача короткая и понятная — декомпозиция избыточна. Два запроса вместо одного оправданы когда в промпте уже 4+ правил или когда качество страдает.
⚠️ Задачи выравнивания (структурные теги): Работает хорошо для точного цитирования, но модель может ошибаться когда утверждение косвенно, а не прямо поддерживается источником.
⚠️ LLM-as-a-Judge для генеративных задач: В их эксперименте судья добавил меньше 0,1 балла к лучшей одиночной модели — оверхед не всегда окупается. Используй когда нужна максимальная надёжность, а не для рутинных задач.
⚠️ Открытые модели нестабильны: Проприетарные модели (Claude, GPT, Gemini) значительно устойчивее к вариациям промпта. Открытые — чувствительнее к формулировкам и чаще выдают непарсируемые ответы. Для критичных задач — проприетарные.
Как исследовали
Команда участвовала в соревновании ArchEHR-QA 2026 — задача: отвечать на вопросы пациентов по их медицинским картам, без обучения на специализированных данных. Они взяли только промптинг — никакого дообучения. Протестировали 5 проприетарных моделей (Claude Sonnet 4.5, GPT-4.1, Gemini 2.5 Flash, Grok 4.1, Gemini 3 Flash) и несколько открытых (MedGemma 27B, Qwen 3, Llama).
Для каждой подзадачи — от 7 до 11 вариантов промптов. Сначала все гипотезы проверяли на 20 примерах dev-сета, потом лучшие — на скрытом тесте (47–147 примеров).
Любопытный результат: Task Decomposition стабильно побеждала прямую генерацию с ограничениями — почти у всех протестированных моделей, не только у лучших. Это редкость в исследованиях промптинга — обычно «лучший промпт» зависит от модели. Здесь принцип оказался универсальным.
Неожиданность: для задачи генерации (Subtask 3) промпт почти не влиял на результат — важнее был выбор модели. Но для задачи согласования (Subtask 4) — наоборот, именно few-shot структура примеров давала большой прирост. Вывод: чем «творческее» задача, тем больше решает модель; чем «точнее» — тем больше решает промпт.
Общий бюджет на API за всё соревнование: $109 — вполне посильно для серьёзной экспериментальной работы.
Адаптации и экстраполяции
🔧 Адаптация: Скрытое мышление + Декомпозиция вместе
Объедини обе техники: в Шаге 1 попроси модель думать молча, в Шаге 2 — генерировать только финал.
Шаг 1:
Прочитай текст. Молча определи главные аргументы.
Выведи только список: [аргумент 1], [аргумент 2]...
Шаг 2:
Напиши вывод на основе этих аргументов.
Строго до {N} слов. Только то, что есть в списке.
Получаешь точность мышления без «шума» рассуждений в финальном тексте.
🔧 Адаптация: Персона-аудитор + Отрицательные ограничения
Для задач где нужно чтобы модель не «творила» — используй связку жёсткой персоны и явных запретов:
Ты — строгий редактор фактических текстов.
НЕ додумывай, НЕ обобщай, НЕ интерпретируй, НЕ добавляй контекст.
Только то, что явно написано в тексте.
Задача: {задача}
Текст: {текст}
Особенно работает при саммаризации договоров, технических условий, юридических текстов — где «творческая» интерпретация меняет смысл.
Ресурсы
Название работы: BIT.UA-AAUBS at ArchEHR-QA 2026: Evaluating Open-Source and Proprietary LLMs via Prompting in Low-Resource QA
Код, промпты, результаты: https://github.com/bioinformatics-ua/ArchEHR-QA-2026
Авторы: Richard A. A. Jonker, Alexander Christiansen, Alexandros Maniatis, Rúben Garrido, Rogério Braunschweiger de Freitas Lima, Roman Jurowetzki, Sérgio Matos
Организации: Aalborg University Business School (Дания), IEETA/DETI/LASI, University of Aveiro (Португалия)
Референсы: Chain-of-Thought (Wei et al., 2022), LLM-as-a-Judge (Zheng et al., 2023), Task Decomposition (Zhou et al., 2023), ICL (Brown et al., 2020)
