3,583 papers
arXiv:2509.06770 82 8 сент. 2025 г. FREE

Итеративный промптинг: когда ещё один круг улучшает результат, а когда ломает

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

TL;DR

Расплывчатая обратная связь ("улучши это", "сделай лучше") приводит к деградации после 3–5 итераций в большинстве задач. Модели начинают либо повторяться (идеи), либо раздувать код без улучшения логики, либо застревать на неверном решении (математика). Это происходит потому что LLM без конкретной цели оптимизирует случайные аспекты — добавляет слова, усложняет структуру, варьирует формулировки — вместо улучшения сути.

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

Результаты зависят от домена. В генерации идей польза приходит рано (первые 3–4 круга), потом модель уходит в фантазию или повторяется. В коде успех решается в первые 3 итерации — если не получилось, рестарт эффективнее продолжения. В математике поздние итерации (8–12) дают прорыв, но только если промпт требует детализации ("разбери каждый шаг подробнее"), а не смены подхода.

📌

Схема исследования

ДЛЯ КАЖДОЙ ЗАДАЧИ (50 идей + 50 задач по коду + 50 задач по математике):
 ИТЕРАЦИЯ 1: Модель решает задачу с нуля
 ИТЕРАЦИИ 2-12: Модель видит только свой предыдущий ответ + инструкцию улучшить
 
ДВА ТИПА ИНСТРУКЦИЙ:
 
 Расплывчатые (V):
 - "Улучши это" (v1_improve)
 - "Сделай лучше" (v2_better) 
 - "Доработай" (v3_refine)
 
 Конкретные по домену (S):
 
 Идеи:
 - s1_novel: "Сделай идею более новой и неожиданной"
 - s2_practical: "Сделай идею практичнее и реалистичнее"
 
 Код:
 - s1_perf: "Рефактори для максимальной скорости"
 - s2_maintainability: "Рефактори для читаемости и ясности"
 
 Математика:
 - s1_elaboration: "Детализируй каждый шаг решения"
 - s2_exploration: "Предложи альтернативный метод"

МЕТРИКИ НА КАЖДОЙ ИТЕРАЦИИ:
- Семантический дрейф от первого ответа (cosine similarity)
- Изменчивость между соседними итерациями 
- Лексическая новизна (% новых фраз)
- Рост объёма (слова/строки кода)
- Корректность (unit-тесты для кода, эквивалентность ответа для математики)
- Качественные оценки через Gemini (новизна, реалистичность, читаемость и т.д.)
🚀

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

📌

Пример 1: Генерация идеи для стартапа

Задача: Придумываешь бизнес-идею для EdTech. Хочешь сначала разогнать креатив, потом заземлить на реальность.

Промпт (раунд 1–3, фаза генерации):

Придумай идею EdTech-стартапа для обучения детей программированию.

[получаешь идею]

Сделай эту идею более неожиданной и новой — удиви меня подходом.

[ещё 2 круга с тем же запросом]

Промпт (раунд 4–6, фаза заземления):

Теперь сделай эту идею максимально практичной и реалистичной для запуска за 6 месяцев.

[ещё 2 круга с тем же запросом]

Результат: Первые 3 итерации дадут всё более смелые концепции (AR-песочница, ИИ-наставники, игровые квесты). Следующие 3 — упростят до MVP: конкретная аудитория, простая механика, понятная монетизация. Без переключения на "практичность" модель на раунде 5–6 начнёт генерить всё более фантастические, но нереализуемые идеи.


📌

Пример 2: Отладка кода

Задача: Написал скрипт для парсинга CSV, но он не работает. Пытаешься чинить через итерации.

НЕ работает (расплывчатая обратная связь):

[вставляешь код]

Этот код не работает. Улучши его.

[код ещё не работает после 3 итераций]

Улучши ещё раз.

[код раздувается, добавляются try-except, логирование, но баг остался]

Работает (чёткий сигнал останова):

[вставляешь код]

Этот код не работает. Найди и исправь баг.

[не сработало]

Перепиши с нуля, но сохрани основную логику.

[сработало на 2-й попытке]

Результат: Исследование показало: если код не заработал за 3–4 итерации, дальнейшие "улучши" приводят к раздуванию (рост в 30–40 раз по строкам) без улучшения корректности. Рестарт с сохранением концепции эффективнее.


📌

Пример 3: Решение математической задачи

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

НЕ работает (смена метода):

[задача]

Твой ответ неверный. Попробуй другой метод.

[ещё 5 кругов с "попробуй по-другому"]

→ Точность НЕ растёт, модель перебирает подходы поверхностно

Работает (детализация):

[задача]

Твой ответ неверный. Разбери каждый шаг максимально подробно: что делаешь, почему, какие промежуточные результаты.

[ещё 8–10 кругов с "детализируй ещё подробнее"]

→ Точность LLAMA выросла с 7% до 40%, Claude с 32% до 45%

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

🧠

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

Проблема расплывчатых промптов: "Улучши" не указывает ось оптимизации. Модель выбирает случайный аспект — добавляет слов (в идеях), усложняет структуру (в коде), варьирует формулировки (в математике) — вместо улучшения сути. Без якоря она дрейфует: в идеях уходит в фантазию, в коде раздувается, в математике застревает на первой попытке.

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

Доменная специфика:

  • Идеи: Семантическое пространство огромное, модель быстро дрейфует. Новизна — первые 3 раунда, дальше либо повторения (слабые модели), либо отрыв от реальности (сильные модели). Staged steering (сначала widen, потом tighten) использует это.
  • Код: Логика либо правильная, либо нет. Если путь неверный, дальнейшее "улучши" не чинит логику, а усложняет код. Раннее решение или рестарт эффективнее глубокой итерации.
  • Математика: Модели якорятся на первой попытке (низкий drift, быстрый коллапс новизны). Но детализация ("разбери шаг за шагом") разворачивает цепочку рассуждений, и в этом процессе модель часто находит ошибку или другой путь. Это объясняет парадокс: поздние итерации дают прорыв, но только с конкретной инструкцией "elaborate", а не "попробуй по-другому".
📌

Шаблон применения

📌

Для генерации идей

Фаза 1 (раунды 1–3): Расширение

[Задача]: {опиши что нужно придумать}

Предложи идею. Затем сделай её более неожиданной и новой — удиви меня подходом.

[Повтори 2–3 раза]

Фаза 2 (раунды 4–6): Заземление

Теперь сделай эту идею максимально практичной и реалистичной для {контекст: запуск за 6 месяцев / бюджет 500к / команда 3 человека}.

[Повтори 2–3 раза]

📌

Для кода

Правило раннего останова:

{Задача}

[Если не работает после попытки 1]
Найди и исправь баг.

[Если не работает после попытки 2]
Перепиши с нуля, но сохрани основную логику.

[Если не работает после попытки 3]
→ СТОП. Переформулируй задачу или разбей на части.

Для рефакторинга (работающий код):

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

→ Используй ОДНУ цель за раз. Смешивание целей размывает эффект.

📌

Для математики / логических задач

Стратегия детализации:

{Задача}

[Получил ответ]

Разбери каждый шаг решения максимально подробно:
- Что делаешь на этом шаге
- Почему выбран именно этот метод
- Какие промежуточные результаты получаешь
- Как проверяешь корректность

[Повторяй "детализируй ещё подробнее" до 8–12 раз, если ответ всё ещё неверный]

Плейсхолдеры:

  • {задача} — что нужно придумать, какой код написать, какую задачу решить
  • {контекст} — ограничения по времени, бюджету, команде
  • {конкретная цель} — скорость / читаемость / надёжность для кода; новизна / практичность для идей

Ключевой принцип: Одна конкретная инструкция за раз. "Сделай быстрее И читабельнее" размывает фокус. Сначала "сделай быстрее", потом отдельно "теперь улучши читаемость".

⚠️

Ограничения

⚠️ Доменная специфика: Рекомендации работают по-разному в зависимости от задачи. В коде поздние итерации почти всегда вредны, в математике могут дать прорыв, в идеях зависят от переключения стратегии (widen → tighten).

⚠️ Объём данных: Исследование на 50 задачах на домен, 4 моделях. Общие паттерны устойчивы, но конкретные пороги (3 итерации для кода, 8–12 для математики) — ориентиры, не абсолютные правила.

⚠️ Модельная специфика: Слабые модели (Llama-3.1-8B) коллапсируют раньше (лексическая новизна 0.01 к 12 итерации) чем сильные (Claude/GPT держат 0.8+). Если модель повторяется — останови раньше.

⚠️ Нет автоматики: Исследование не даёт автоматический метод определения когда остановиться. Нужно вручную отслеживать сигналы: повторения (идеи), раздувание без улучшения (код), застой в ответе (математика).

🔍

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

Команда запустила 18,000 итераций (4 модели × 150 задач × 5 промптов × 12 раундов) и отслеживала не только финальный результат, но каждый шаг. Для кода — прогоняли unit-тесты на каждой итерации. Для математики — проверяли эквивалентность ответа и оценивали логическую связность рассуждений (через Gemini, как LLM-судью). Для идей — замеряли новизну и реалистичность.

Три семейства метрик показали разные грани поведения:

Семантическое движение: Drift from Origin (насколько далеко ушли от стартовой идеи) и Turn-to-Turn Volatility (насколько сильно меняется между соседними раундами). В идеях drift огромный — Claude уходит на 0.73 от оригинала к 12 итерации с промптом "сделай новее". В коде drift минимальный — модели застревают на решении (similarity 0.74 даже после 12 раундов у Llama). Volatility везде высокая в первые 2–3 раунда, потом резко падает — модели якорятся.

Лексическая новизна: Процент новых фраз (2-grams, 3-grams) относительно всех предыдущих ответов. Показывает когда модель начинает повторяться. Llama в идеях коллапсирует к 0.08 (8% новых фраз = почти полное повторение). Claude/GPT держат 0.8+ (80% новых фраз = генерят свежий контент). В математике новизна падает быстрее всего — модели застревают на формулировках.

Рост объёма: В идеях/математике — слова, в коде — строки. Llama раздувает идеи в 16 раз к 12 итерации (с промптом "сделай новее"), при этом новизна 0.08 — это чистая болтовня. Claude раздувает код в 40 раз под расплывчатым "улучши", при этом корректность падает с 90% (раунд 1) до ~0% (раунд 4) — over-engineering без пользы.

Что удивило: В математике поздние итерации работают. Llama с 7% (раунд 1) до 40% (раунд 12) точности — рост в 5.7 раза. Claude 32% → 45%. Но только с промптом "детализируй каждый шаг". С "попробуй другой метод" точность стагнирует на 16–22%. Это противоречит находкам для кода (там поздние итерации вредны) и показывает доменную специфику: в математике детализация разворачивает рассуждения и находит ошибки, в коде та же детализация просто раздувает без улучшения логики.

Почему верить результатам: Для кода и математики — объективные метрики (unit-тесты, эквивалентность ответа). Для идей — LLM-судья (Gemini 2.5 Pro, топ-2 на Chatbot Arena), но там субъективность неизбежна. Ключевые паттерны устойчивы между моделями и промптами — это говорит о фундаментальных, не случайных эффектах.

💡

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

📌

Адаптация 1: Анализ бизнес-решения

Контекст: Не задача по генерации, а разбор готовой идеи/стратегии. Хочешь многосторонний анализ — сначала критика, потом защита, потом синтез.

💡 Адаптация для критического анализа:

{Бизнес-решение/стратегия}

Раунд 1–3 (АТАКА):
Разбери эту стратегию как скептик-аналитик: в чём слабые места, риски, неявные допущения. Сделай критику острее и конкретнее.

Раунд 4–6 (ЗАЩИТА):
Теперь разбери эту же стратегию как её сторонник: какие сильные стороны, какие риски преувеличены, какие возможности упущены критиками. Сделай защиту убедительнее.

Раунд 7 (СИНТЕЗ):
На основе критики и защиты: какое решение принять? Какие риски реальны, какие терпимы, что улучшить.

Принцип: Staged steering работает не только для генерации (widen → tighten), но и для анализа (attack → defend → synthesize). Каждая фаза разгоняет мышление по своей оси.


📌

Адаптация 2: Документация

Контекст: Пишешь техническую документацию или инструкцию. Хочешь сначала полноту (покрыть все кейсы), потом ясность (убрать лишнее).

💡 Адаптация для документации:

{Техническая задача}

Раунд 1–3 (ПОЛНОТА):
Напиши документацию. Добавь больше примеров, граничных случаев, вариаций использования. Сделай покрытие шире.

Раунд 4–6 (ЯСНОСТЬ):
Теперь упрости: убери избыточные примеры, объедини похожие кейсы, сделай структуру линейной и предсказуемой.

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


📌

Адаптация 3: Дебаг математики через "псевдокод рассуждений"

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

🔧 Техника: Псевдокод рассуждений

{Математическая задача}

[Получил неверный ответ]

Перепиши своё решение как псевдокод — пошаговый алгоритм без формул, только логика:
1. Что дано
2. Что нужно найти
3. Какой план решения (5–7 шагов)
4. Для каждого шага: вход, действие, выход
5. Финальная проверка: соответствует ли выход условию задачи

Теперь выполни этот псевдокод с реальными формулами, проверяя каждый шаг.

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


📌

Комбинация: Multi-stage для исследовательских задач

Контекст: Большая неструктурированная задача — исследование темы, анализ рынка, дизайн системы.

Этап 1 (ГЕНЕРАЦИЯ, 3 раунда):
Набросай 10–15 направлений/идей/подходов. Сделай список шире и разнообразнее.

Этап 2 (КРИТИКА, 2 раунда):
Для каждого направления: риски, слабые места, неявные допущения. Убери откровенно слабые.

Этап 3 (СИНТЕЗ, 2 раунда):
Выбери топ-3 направления. Для каждого: как реализовать, какие ресурсы, какие риски терпимы.

Этап 4 (ДЕТАЛИЗАЦИЯ, 3–5 раундов):
Возьми лучшее направление. Детализируй план: шаги, метрики, ресурсы, зависимости. Добавь конкретики.

Принцип: Многоэтапный pipeline с переключением стратегии на каждом этапе. Не пытайся делать всё сразу — модель размажет. Staged approach использует итерации для разных целей.

🔗

Ресурсы

Another Turn, Better Output? A Turn-Wise Analysis of Iterative LLM Prompting

Shashidhar Reddy Javaji (Stevens Institute of Technology), Bhavul Gauri (Meta), Zining Zhu (Stevens Institute of Technology)

Preprint, 2025


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

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

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

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

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

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

Расплывчатое улучши не указывает что именно улучшать. Модель выбирает случайный аспект: в идеях уходит в фантазию (новизна растёт, реалистичность падает), в коде добавляет try-except и логирование но баг остаётся, в математике якорится на первой попытке и переформулирует то же самое. Конкретная инструкция — это якорь. Сделай новее → модель генерит непривычные связи. Детализируй шаги → раскрывает рассуждения, и в этом процессе всплывает ошибка. Прикол: в математике поздние итерации (8-12) дают прорыв, но только с требованием детализации — модель углубляется вместо поверхностного перебора методов. В коде исследование показало: если не заработало за 3-4 итерации, дальнейшие улучши приводят к раздуванию в 30-40 раз по строкам без улучшения корректности.

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

Любые задачи где используешь итеративное улучшение через LLM → конкретно для генерации идей (от концепции к MVP), отладки кода (рестарт вместо бесконечных улучшений), решения математических и логических задач (детализация вместо смены метода). Особенно когда модель начинает повторяться или раздувать ответ без улучшения сути. НЕ подходит для задач где нужно одно финальное решение без промежуточных шагов — там классический промпт эффективнее.

Мини-рецепт

1. Для идей — поэтапное управление: Раунды 1-3 предложи идею, затем сделай её более неожиданной и новой, раунды 4-6 теперь сделай максимально практичной для запуска за 6 месяцев. Переключение стратегии вместо одного вектора.
2. Для кода — правило раннего останова: Попытка 1 не сработала → найди и исправь баг. Попытка 2 не сработала → перепиши с нуля но сохрани основную логику. Попытка 3 не сработала → СТОП, переформулируй задачу или разбей на части.
3. Для математики — стратегия детализации: Ответ неверный → разбери каждый шаг максимально подробно: что делаешь, почему выбран метод, какие промежуточные результаты, как проверяешь. Повторяй до 8-12 раз если нужно углубление.
4. Для рефакторинга работающего кода: Одна конкретная цель за раз — рефактори для максимальной скорости ИЛИ рефактори для читаемости и ясности, не смешивай в одном запросе.

Примеры

[ПЛОХО]: `Этот код не работает. Улучши его` → после 5 итераций код раздулся с 20 до 600 строк (try-except, логирование, комментарии), но баг остался [ХОРОШО]: `Этот код не работает. Найди и исправь баг` → не сработало → `Перепиши с нуля но сохрани основную логику` → сработало на 2-й попытке. Ранний рестарт вместо накручивания слоёв поверх неверной логики. [ПЛОХО]: `Твой ответ неверный (математическая задача). Попробуй другой метод` → 5 кругов поверхностного перебора подходов, точность не растёт [ХОРОШО]: `Твой ответ неверный. Разбери каждый шаг максимально подробно: что делаешь на этом шаге, почему выбран именно этот метод, какие промежуточные результаты получаешь, как проверяешь корректность` → после 8-10 кругов детализации точность Llama выросла с 7% до 40%, Claude с 32% до 45%
Источник: Another Turn, Better Output? A Turn-Wise Analysis of Iterative LLM Prompting
ArXiv ID: 2509.06770 | Сгенерировано: 2026-01-12 01:37

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

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

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