Аналогия с классическим ML полезна потому, что она убирает лишнюю мистику. Если команда обучает модель, она не спорит о том, какая скорость обучения звучит убедительнее. Она задает метрику, собирает валидационный набор и смотрит, какие изменения реально улучшают целевой показатель без деградации на ограничениях. В LLM-приложении вокруг API-модели можно делать примерно то же самое, только объект поиска смещается с внутренних весов модели, которые настраивают разработчики LLM, на внешний управляющий слой на стороне пользователя.
Это особенно заметно в корпоративных сценариях, где базовая LLM уже выбрана по соображениям стоимости, безопасности, совместимости или стратегии работы с вендором. Команда не может переобучать модель под каждую локальную задачу, так как это дорого, зато может менять системный промпт, примеры, извлечение контекста (retrieval), формат ответа и правила работы с инструментами. В такой конфигурации хороший результат рождается из правильной комбинации этих элементов.
Anthropic, например, пишет, что промпт-инжиниринг стоит начинать с описания успешного ответа и эмпирического тестирования первого драфта промпта. OpenAI в Prompt Optimizer строит немного иной подход вокруг репрезентативного набора данных и автоматических оценщиков. Тем не менее, оба вендора подталкивают нас к одной идее:
сначала определить, что именно считается хорошим ответом, а потом уже искать настройки, которые систематически повышают вероятность такого результата.
В
Automatic Prompt Engineer промпты рассматриваются как программы, которые можно генерировать и отбирать по качеству. В
OPRO LLM используется как оптимизатор, предлагающий кандидатные решения и их оценки. В
TextGrad авторы переносят идею textual gradients (текстовых градиентов) на оптимизацию текстовых переменных. Таким образом, качество промпта можно переводить в язык целевых функций, стратегии поиска оптимума и повторяемых итераций.