Всем привет! Интересно, что на Хабре статьи по этой теме я не смог найти.

Однако на западном и восточном сегментах довольно достаточно обсуждений. Надо бы исправить! В этом посте мы говорим об автопромптинге.

Историческая справка (на 30 секунд, максимум 1 минуту)

В 2018 году появляется новый тип архитектуры нейронной сети — трансформеры, о которых многие имеют представления и с ними работают. С их последующим развитием также эволюционируют методы дообучения (адаптеры, LoRA, prompt‑tuning) и методы взаимодействия с этими моделями через изменение входной последовательности запроса (он же промпт или инструкция). Причины эволюции взаимодействия произошло из растущего кол‑ва и сложности решаемых NLP задач, следовательно, увеличивается необходимость в разделении и детализации задачи. В 2020 году выходит GPT-3 от OpenAI — она же большая языковая модель (LLM), которая укрепила эту необходимость, способностью выполнять различные задачи по текстовой инструкции.

Впоследствии появляется отдельная исследовательская область — промпт‑инжиниринг, в которой специалисты этой области (промпт‑инженеры) подбирают и формируют такой запрос, чтобы модель дала максимально лучший и точный ответ. В ходе исследования работы с запросами в передовых компаниях, как (OpenAI, Google, Anthropic и т. д.) появляются отдельные штаты сотрудников по работе с промптами, публикуются первые статьи и систематические гайды по техникам промптинга (Few‑shot, Chain‑of‑Thought, Self‑Consistency), которые повышают качество ответа.

Ручной промпт-инжиниринг

На сегодняшний момент промпт‑инжиниринг широко применим для:

  • Прямой формализации задачи к LLM

  • (Полу‑)автоматического составления разметки в дообучении

  • Формализации оценки качества ответа с помощью той же LLM

  • Агентных систем

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

Каждую составляющую инструкции можно описать разными словами (например, в этом посте от МТС можно ознакомиться с описанием труда промпт‑инженера и оценить объемы для себя такой работы).

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

  • Составить набор хороших комбинаций требует наличие экспертизы, знаний техник и опыта ds‑специалиста в промптинге, что значительно повышает порог вхождения по написанию эффективных промптов. К текущему моменту кол‑во техник промптинга достаточно велико (ссылка на обзор техник промптинга) и будет увеличиваться.

  • Ручной перебор или переборы с помощью сетки или брутфорса отнимают огромное кол‑во времени в рамках решения одной задачи, в частности, с ростом кол-ва кандидатов промптов.

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

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

  • Более того, эффективный промпт может игнорировать человеческую интерпретацию инструкции, как показали исследования тут и тут.

Третья проблема — применяемость одних и тех же промптов не приводит к гарантированному результату, а также присутствует неспособность адаптироваться к меняющимся условиям задачи.

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

Автопромптинг

Автопромтинг — это автоматическая оптимизация промпта путем исследования комбинаторных пространств инструкций с использованием различных методов оптимизаций. Первые алгоритмы автопромптинга появились в 2020-х годах, где одним из методов был (как ни странно) AutoPrompt. На текущий момент автопромптинг применим для различных NLP задач, а также для мультимодальных моделей (как VLM).

Если вкратце, про что автопромтинг:

  • Выявить новые паттерны инструкций при создании

  • Быстрее и дешевле повысить метрики, чем дообучать модель

  • Оптимизировать и удешевить работу промпт‑инженеров, сэкономив время поиска и вычислительные ресурсы

  • Зачастую не является альтернативой дообучения, а скорее как следующий уровень промптинга и дополнение к промпт‑инжинирингу

Само направление автопромптинга достаточно велико, а методы оптимизации могут быть разными. Оптимизацию промпта можно выделить по двум аспектам:

  1. Области поиска промпта

  2. Методы оптимизации

Пройдемся по каждому аспекту.

Области поиска промпта

Области поиска можно разделить по следующим типам данных: дискретные, непрерывные и гибридные.

Область поиска дискретных данных подразумевает поиск комбинаций интерпретируемых человеком элементов (предложений, слов или токенов). Она напрямую связана с текущими техниками промптинга и является распространенным типом поиска для ручного промпт‑инжиниринга. В ходе поиска по дискретным данным перебираются комбинации: инструкций задач, примеры вопрос‑ответов (Few‑shot), форматы ответов, триггер рассуждений (как в Chain‑of‑Thoughts) и другое.

Помимо отдельных элементов можно искать в разрезе непрерывных данных или обучаемых эмбеддингов токенов, которые встраивается вместе с основным промптом (К примеру, использование soft prompts (мягкие промпты) в prompt‑tuning или в этом исследовании). Под поиском в гибридных данных подразумевается поиск дискретных совместно с непрерывными данными, к примеру применимо для мультимодальных моделей.

Методы оптимизации с примерами алгоритмов

Автопромптинг я выделяю на следующие типы:

  1. Gradient‑Based

  2. LLM‑Based

  3. Evolutionary‑Based

  4. Reinforcement Learning‑Based

Gradient-Based

Оптимизация градиентов — это классические принципы оптимизации, которые применимы в оптимизации непрерывных данных. Методы данной оптимизации либо аппроксимируют градиенты для навигации в дискретных пространствах (как в автопромптинг алгоритмах AutoPrompt, HPME, ZOPO), либо оптимизируют непрерывные параметры в контексте мягких подсказок (Prompt‑tuning, Prefix‑tuning, P‑tuning).

LLM-Based

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

Из ключевых идей как и с чем использовать LLM:

  • Мета‑промпты — это дополнительные промпты для определения шагов оптимизации. В качестве мета‑промптов можно определить промпты‑рассуждения, промпты для суммаризации, промпты памяти для мемоизации предыдущих этапов и результатов оптимизации, а также промпты‑критики для самоанализа ошибок на некорректных ответах. Такие промпты могут быть составлены не только заранее вручную, но и генерироваться автоматически с помощью LLM. Примеры автопромптинг методов, которые используют мета‑промпты: OPRO, iPrompt, ProteGi, AutoHint.

  • Поиск и планирование кандидатов используется LLM для создании кандидатов и отбора промптов, генерируемых моделью. Используется в таких подходах как APE, AMPO и OPT2I (для text2image).

Evolutionary-Based

Эволюционные методы моделируют оптимизацию генетического или эволюционного процесса. Основные этапы такого процесса как отбор, кроссинговер (скрещивание) и мутация — рассматривают популяцию промптов с целью получения более эффективного с точки зрения задачи промпта в дискретных оперативных пространств.

Из основных идей используются:

  • Самореференциальная эволюция используется LLM для определения промптов для генерации различных кандидатов, мутаций и кроссинговера. Также могут использоваться дополнительные эвристики или эвристические модели. Пример автопромтинг алгоритмов: PromptBreeder, EvoPrompt.

  • Генетический алгоритм на основе эвристик в чистом виде использует в дополнительные эвристики или эвристические модели и промпты на каждом из этапов, на основе которого есть такие автопромптинг алгоритмы как Grips, LongPO и PhaseEvo

RL-Based

Методы RL‑обучения с подкреплением преобразуют дизайн промптов в задачу RL, где ключевой идеей состоит в том, чтобы сформулировать цель оптимизации как марковский процесс принятия решений, где частичные или повторяющиеся оперативные изменения представляют собой действия, а целевая метрика задачи служит непосредственно вознаграждением.

Данные методы активно используются в GenAI и в частности в автопромптинге, в котором представлены следующие алгоритмы: TEMPERA, Prompt‑OIRL, PRewrite, StablePrompt, PromptAgent и RLPrompt.

Дальнейшее исследование автопромптинга

Это не все алгоритмы автопромптинга, которые я привел, еще больше примеров можно найти в открытых источниках. Несмотря на такое большое разнообразие автопромптинга на текущий момент стоят актуальные направления исследования:

  • Интерпретируемость vs эффективность промпта: есть различные примеры алгоритмов автопромптинга, в которых интерпретация промпта как важна, так и нет — и на текущий момент нет точного ответа, насколько действительно эффективный промпт должен быть человекочитаемым. В дальнейшем это может определить новые направления развития оптимизации промпта.

  • Мультимодальность: Многие работы сосредоточены на текстовых задачах, оптимизация промпта с другими модальностями как изображения, аудио и видео гораздо менее изучена.

  • Real‑time автопромптинг: Перечисленные в посте методы и многие другие работают в оффлайн режиме и для оптимизации требуется определенное кол‑во времени. Однако, в дальнейшем может произойти рост потребности автоматической оптимизации со стабильной производительности при высоких нагрузках приложений и систем. Помимо этого, с real‑time автопромтингом появится возможность собирать обратную связь от пользователей.

  • Многоцелевая оптимизация: Получаемые автопромтингом промпты зачастую оптимизируются под конкретную задачу, однако, в качестве цели можно задать поиск паттернов к созданию многоцелевого промпта, которые можно было бы применять на многие задачи без изменения самой инструкции.

В будущем мы увидим новые алгоритмы автопромптинга, которые покроют направления выше. На мой взгляд, тема автопромптинга очень актуальна и будет как таковой, пока большие foundation модели не будут понимать нас «с полуслова» (пока не наступит AGI).

Делитесь вашим мнением, что думаете насчет этой темы. Надеюсь, данный пост даст вам основную информацию, интерес и понимание касательно автоматической оптимизации промптов.

Комментарии (2)


  1. Wosk1947
    11.07.2025 19:19

    Ну то есть мы подключим к ЛЛМке, которая должна давать ответ, ЛЛМку, которая будет формировать запрос. Мне просто интересно, сколько еще ЛЛМок должно будет быть в этой цепочке, и сколько дата-центров с ними понадобится, чтобы понять задачу по покраске кнопки.


    1. mrcoolinhabr Автор
      11.07.2025 19:19

      Это больше про сложные с точки зрения постановки задачи и инструкций. И здесь не идет речь о нескольких LLM-ках, в рассмотренных алгоритмах используется одна модель.