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

Однако на западном и восточном сегментах довольно достаточно обсуждений. Надо бы исправить! В этом посте мы говорим об автопромптинге.
Историческая справка (на 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).
Если вкратце, про что автопромтинг:
Выявить новые паттерны инструкций при создании
Быстрее и дешевле повысить метрики, чем дообучать модель
Оптимизировать и удешевить работу промпт‑инженеров, сэкономив время поиска и вычислительные ресурсы
Зачастую не является альтернативой дообучения, а скорее как следующий уровень промптинга и дополнение к промпт‑инжинирингу
Само направление автопромптинга достаточно велико, а методы оптимизации могут быть разными. Оптимизацию промпта можно выделить по двум аспектам:
Области поиска промпта
Методы оптимизации
Пройдемся по каждому аспекту.
Области поиска промпта
Области поиска можно разделить по следующим типам данных: дискретные, непрерывные и гибридные.
Область поиска дискретных данных подразумевает поиск комбинаций интерпретируемых человеком элементов (предложений, слов или токенов). Она напрямую связана с текущими техниками промптинга и является распространенным типом поиска для ручного промпт‑инжиниринга. В ходе поиска по дискретным данным перебираются комбинации: инструкций задач, примеры вопрос‑ответов (Few‑shot), форматы ответов, триггер рассуждений (как в Chain‑of‑Thoughts) и другое.
Помимо отдельных элементов можно искать в разрезе непрерывных данных или обучаемых эмбеддингов токенов, которые встраивается вместе с основным промптом (К примеру, использование soft prompts (мягкие промпты) в prompt‑tuning или в этом исследовании). Под поиском в гибридных данных подразумевается поиск дискретных совместно с непрерывными данными, к примеру применимо для мультимодальных моделей.
Методы оптимизации с примерами алгоритмов
Автопромптинг я выделяю на следующие типы:
Gradient‑Based
LLM‑Based
Evolutionary‑Based
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).
Делитесь вашим мнением, что думаете насчет этой темы. Надеюсь, данный пост даст вам основную информацию, интерес и понимание касательно автоматической оптимизации промптов.
Комментарии (17)
i-netay
11.07.2025 19:19Уже и автопромптинг, не хватает автоматического кормления и удаления отходов. А ваша полезность точно выше батарейки?
"
АгентТоварищ Смит, они готовы к матрице."mrcoolinhabr Автор
11.07.2025 19:19Касательно полезности интересный момент: ведь это полезно не только промпт-инженерам, но и обычным людям, которые вне контекста ИИ и буквально находятся в использовании ИИ на уровне новичка (зачастую из-за этого они не получают нужного ответа)
И тут есть выбор:
1) Платить за курсы промпт-инжиниринга
2) Помочь пользователям в подсказках, как составлять промпт, с помощью автопромптинга
Кажется, что логичный и более продуктивный выбор 2)i-netay
11.07.2025 19:19Может, у меня несколько древний взгляд, но мне кажется логичным получать образование и его использовать, понимать что-то на самом деле самому, не полагаясь во всём на нейронки. А при изучении нейронок понимать их устройство и математический смысл, в чём они могут подвести, а где верить можно.
Но нейронки -- это инструмент численной оптимизации, а вовсе не интеллектуального превосходства. Стоит посмотреть матчасть, как устроен градиентный спуск, архитектуры нейронок и что там может обладать разумом (спойлер: ничего). И случайно разум там не самозародится.
Стремление всё обратить в промпт-инжениринг -- это примерно как стремление создать магию, но её там нет, никаких чудес. Это численная оптимизация и только она. Это может быть идеально для дипфейков, но для разработки и творчества о чём мы вообще говорим?
i-netay
11.07.2025 19:19Можно во всём полагаться на нейронки и ставить их выше себя. Но это не сделает умнее нейронки. А вот неравенство в разуме утвердить может. В нынешних LLM нет ничего, что бы по смыслу анализировало текст и ловило семантику, осмыслило бы и делало бы выводы, это просто аппроксимация текста и не более того. Если вы верите, что сработает "вдруг", то в типичном случае оно натренировано, а иначе хуже лотереи.
Вам настолько лень читать мануалы, и вы настолько ниже себя ставите любого джуна, который вместо нейронок прочитает мануал, как оно на самом деле устроено? И он-то поймёт и сможет сделать правильно, а не будет промпты поверх промптов городить, просто возьмёт и сделает, и оно будет работать. Вы так к себе или к читателям относитесь?
mrcoolinhabr Автор
11.07.2025 19:19Согласен с тем, что у вас нестандартный взгляд)
1) "кажется логичным получать образование и его использовать, понимать что-то на самом деле самому, не полагаясь во всём на нейронки" - в посте эта тема вообще никак это не затрагивается, не вижу смысла продолжать
2) весь второй абзац - просто тезисы вне реальности, вы не можете понять о чем и для чего статья? - тогда она не для вас)
MaksimMukharev
11.07.2025 19:19Если это просто численная оптимизация, почему вас так напрягает вопрос оптимизации входящих значений?
i-netay
11.07.2025 19:19Ваша серия постов наводит на мысли. Посты только о том, как заставить LLM написать код. Но нет постов о том, что удалось написать хороший код для какого-либо проекта. То есть практика не подтверждает, что хоть что-то из этого хоть раз сработало? Хоть что-то не совсем бытовое и немного содержательное?
mrcoolinhabr Автор
11.07.2025 19:19Практика и научные исследования как раз подтверждают, вы не до конца изучили этот момент, если такое пишите
XC01Q
11.07.2025 19:19Практика и научные исследования как раз подтверждают
Может я что-то не так понимаю но у науки должна быть предмет изучения. Какой предмет изучения у промтов для llm?
сэкономив время и ресурсы промпт-инженеров
Конечно мода называть любого уборщика "Инженером по оптимизации процессов уборки" для меня выглядит странно. Да и зачем вам эти "инженеры" если вы подключаете к одной llm другую llm? Подключите тогда уж каскад llm чтобы они хукали задание из таск менеджера и прогоняли через себя.
mrcoolinhabr Автор
11.07.2025 19:19"Да и зачем вам эти «инженеры» если вы подключаете к одной llm другую llm?" - среди упомянутых мною методов такого подхода нет) не знаю, откуда вы это взяли
Wosk1947
Ну то есть мы подключим к ЛЛМке, которая должна давать ответ, ЛЛМку, которая будет формировать запрос. Мне просто интересно, сколько еще ЛЛМок должно будет быть в этой цепочке, и сколько дата-центров с ними понадобится, чтобы понять задачу по покраске кнопки.
mrcoolinhabr Автор
Это больше про сложные с точки зрения постановки задачи и инструкций. И здесь не идет речь о нескольких LLM-ках, в рассмотренных алгоритмах используется одна модель.
Hardcoin
С человеком ещё сложнее, 20 лет кормить, воспитывать, учить, а результат не гарантирован. Может поймет, может нет. А если нужно 1000 кнопок, то проблема ещё сложнее.
Viilture
Тут есть еще одна проблема. ИИ обучен на данных со всех языков, которые собирались десятки лет инженерами со всего мира. А сейчас корпорации как бы заявляют, спасибо за данные, но это все наше, а не ваше. "Мы сами ии обучили и не важно, что без этих данных ничего не было бы. А теперь устроим децимацию."
Не, увеличение производительности дело хорошее, но сейчас уже какая то власть корпораций намечается. 10 - 20 - 40 лет назад не было триллионных корпораций.