Новости ChatGPT

Как оптимизация промптов превратилась из шаманства в инженерную дисциплину

Ещё пару лет назад промпт-инжиниринг выглядел как подбор удачного заклинания: "а давай добавим think step by step, "а давай попросим быть аккуратнее" и о приправим xml-тегами".

Сегодня это типовая задача оптимизации в условиях чёрного ящика.

Уже 2026 год и современные LLM одновременно:

  • чувствительны к формулировкам;

  • дороги по токенам;

  • нестабильны между версиями;

  • плохо прощают ручную настройку на глазок.

Промпт -> это не текст, а параметр модели, и оптимизировать его нужно алгоритмически, а не интуитивно.

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

1. Как вообще формализуется оптимизация промптов

Все подходы сводятся к поиску аргумента, максимизирующего функцию в дискретном пространстве:

Где f — это не только точность (accuracy), но и стоимость, формат (JSON compliance) и латентность.

Главные инженерные барьеры:

  1. Отсутствие градиентов: Мы не можем сделать loss.backward(), так как API — это чёрный ящик.

  2. Смерть лог-вероятностей (Logprobs): Большинство современных API (OpenAI, Anthropic) либо скрывают лог-пробы, либо делают их бесполезными для сложных рассуждений. Это убило методы типа AutoPrompt.

  3. Комбинаторный взрыв: Пространство вариантов текста бесконечно.

Решения делятся на три класса: эволюционные, программные и генеративно-эвристические, .

2. Эволюционные методы

MetaPrompt и TextGrad

Подход, основанный на "текстовых градиентах. https://github.com/zou-group/textgrad

  • Раз мы не имеем доступа к весам, мы используем критику LLM как градиент. Forward Pass (ответ) -> Loss (оценка судьи) -> Backward Pass (текстовая критика) -> Update (правка промпта).

  • MetaPrompt: Реализует цикл Generate -> Critique -> Refine. Отлично подходит для исправления проблем с JSON-схемами или стилем.

HRPO — Hierarchical Reflective Prompt Optimizer

Оптимизация серого ящика с анализом корневых причин. Вместо исправления каждой ошибки отдельно, HRPO кластеризует ошибки (например, «модель путает даты в 30% случаев») и вносит системные правки в промпт. Это снижает дрейф промпта.. https://arxiv.org/abs/2305.17126

Как работает:

  1. Батчевый прогон;

  2. Сбор неудач;

  3. Кластеризация ошибок;

  4. Точечные мутации.

Исправляется класс ошибок и файндинги, а не отдельный кейс.

GEPA: Эволюция с Парето-фронтиром

Генетические алгоритмы, адаптированные для текста.

  • Как работает:

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

    2. Парето-оптимизация: GEPA ищет не один «лучший» промпт, а набор (фронтир). Например: один промпт дает 95% точности, но длинный и дорогой; второй — 93%, но дешевый и быстрый. Оба сохраняются в популяции.

  • Результат: Превосходит RL-методы, требуя в 35 раз меньше вызовов API.

  • Ссылки на почитать: Paper (GEPA) | Opik Docs

2. Программные

DSPy — программирование вместо текста

Это смена парадигмы. Ты больше не пишешь промпты. Ты описываешь:

  • сигнатуры;

  • модули;

  • ограничения;

  • связи между шагами.

DSPy сам компилирует это в оптимальные инструкции. https://arxiv.org/abs/2310.03714, https://github.com/stanfordnlp/dspy. Кстати неплохо разбрано тут "“Answer the question carefully”

Retrieve → Reason → Answerconstraint: output_schema

Используются MIPRO и MIPROv2 (https://dspy.ai/api/optimizers/MIPROv2/):

  • байесовская оптимизация;

  • совместная оптимизация всей цепочки;

  • учёт стоимости токенов.

По сути это компилятор для LLM-программ. Вместе с Opik выходит 9.5 из 10.

Нюанс

Кстати, без граунд тру датасета и метрик с ивалами DSPy превращается в извращенный способ писать промпты. Помните это. Иначе не лучше GigaChat.

APE — Automatic Prompt Engineer

Старая, но попрежнему используемая штука. LLM сама генерирует инструкции, сама же их прогоняет и сама выбирает лучшие. https://arxiv.org/abs/2211.01910

Максимизация лог-правдоподобия правильных ответов:

max_p  E_{(x,y)} logP(y | x, p)

Как работает:

  1. Генерируется N кандидатов инструкций;

  2. Они прогоняются по датасету;

  3. Считается метрика;

  4. Лучшие идут в следующий раунд

Обычный search + evaluation loop, только вместо параметров текст. Где APE хорош:

  • классификация,

  • извлечение информации,

  • задачи с чёткой автоматической метрикой.

Где ломается:

  • высокая дисперсия,

  • быстрый оверфит,

  • плохой перенос между доменами.

3. Генеративно-эвристические

OPRO — Optimization by PROmpting

Здесь начинается инженерная магия. Мы не оптимизируем промпт напрямую. Мы даём модели историю прошлых попыток:

[prompt₁ → score₁,
 prompt₂ → score₂,
 prompt₃ → score₃]

и просим предложить следующий, который будет лучше. https://arxiv.org/abs/2309.03409

Фактически in-context learning используется как оптимизатор.

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

  • LLM хорошо улавливают тренды;

  • умеют экстраполировать улучшения;

  • не требуют доступа к логпробам.

Топвая инструкция в свое время

“Take a deep breath and work on this problem step by step”

была найдена именно через OPRO и стабильно обгоняла классический CoT.

Минусы будут:

  • нестабильность;

  • высокая стоимость;

  • нужен жёсткий контроль за репрезентативность.

Где применять

  • reasoning-задачи;

  • математика и логика;

  • когда нет доступа к модели.

4. Самообучающиеся промпты (простенькое)

STaR, ReST

Просто оставлю ссылки, привожу для кругозора, они не работают почти. STaR: https://arxiv.org/abs/2203.14465. ReST: https://arxiv.org/abs/2304.06263

5. Сравнительный обзор

Метод

Датасет

Метрика

Стоимость

Стабильность

Продакшен

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

APE

Да

Да

Средняя

Низкая

Ограниченная

Простые задачи

OPRO

Да

Да

Высокая

Низкая

Низкая

Reasoning

DSPy

Да

Да

Средняя

Высокая

Высокая

RAG, агенты

MetaPrompt

Нет

Нет

Низкая

Средняя

Средняя

Быстрый буст

HRPO

Да

Желательно

Средняя

Очень высокая

Высокая

Продакшен

GEPA

Да

Да

Очень высокая

Средняя

Низкая

Offline

STaR / ReST

Да

Да

Высокая

Высокая

Средняя

Свои модели

6. Рецепт как выстрелить себе в ногу

  • Оптимизация без валидации: Самая частая ошибка. Промпт-оптимизаторы (особенно OPRO и APE) находят "хаки" — формулировки, которые работают на тестовом датасете, но ломаются на реальных данных. Всегда имейте отложенную выборку и граунд тру датасет;

  • Дрейф моделей: Промпт, идеально вылизанный под gpt-4-o, может деградировать на gpt-5.1. Оптимизированные промпты хрупкие. Делайте аля CI/CD для промптов. При смене версии модели запускайте перекомпиляцию/хот реалоад проекта и проверяйте;

  • Гниение контекста : В длинных контекстах (например, Gemini 2.5 Pro) оптимизированные инструкции могут теряться. Использовать техники типа цепочек и оптимизировать звенья цепи отдельно помогает лишь частично на данный момент.

7. Почему открыть Google AI Studio и попросить улучшить промпт не работает

Да потому что это не оптимизация, а перефразирование.

В таком режиме LLM:

  • не видит метрики;

  • не знает, что считать успехом;

  • не видит распределения ошибок;

  • не платит за токены!!!!

Она оптимизирует правдоподобие текста, а не качество решения.

Без цикла Generate → Evaluate → Compare → Select улучшения не существует.

Именно поэтому такие промпты:

  • хуже обобщаются;

  • ломаются при смене модели;

  • дороже в продакшене;

  • нравятся авторам телеграм каналов про ИИ.

8. Главная мысль

Переход совершён. Если вы пишете промпты руками в 2026 году — вы занимаетесь кустарным производством в эпоху конвейеров. Используйте готовые фреймворки (DSPy, TextGrad), настраивайте пайплайны оценки и перестаньте гадать на кофейной гуще.

Если делаете ИИ-шку, ну поставьте вы себе prompt-base любой и observability. Есть куча связок вроде Agenta + LLM Studio + Langfuse\Opik.