Промпт-инжиниринг (Prompt Engineering) — системный подход к проектированию, тестированию и улучшению промптов для языковых моделей. Его задача — сформулировать запрос так, чтобы модель получила достаточно информации для выполнения задачи и выдала результат в требуемом формате.
Чем промпт-инжиниринг отличается от промпта
Промпт — это конкретная инструкция или запрос, который передается языковой модели. Промпт-инжиниринг — более широкий процесс работы с такими инструкциями.
Он включает не только написание текста запроса, но и определение задачи, подбор контекста, ограничений и примеров, описание формата ответа, а затем проверку полученного результата и доработку промпта. Например, запрос «напиши функцию для обработки данных» задает общую задачу. В рамках промпт-инжиниринга можно дополнительно указать язык программирования, формат входных данных, ограничения по библиотекам, ожидаемое поведение при ошибках и требования к структуре результата.
Что включает промпт-инжиниринг
При проектировании промпта обычно определяют:
- какую задачу должна выполнить модель;
- какую информацию ей необходимо передать;
- какие ограничения нужно учитывать;
- в каком формате должен быть представлен результат;
- нужны ли примеры желаемого ответа или выполнения задачи.
Состав промпта зависит от конкретного сценария. Для одних задач достаточно короткой инструкции, для других требуется дополнительный контекст, набор правил и несколько примеров.
Почему промпты дорабатывают итеративно
Даже подробно составленный промпт не всегда сразу дает нужный результат. Формулировки могут интерпретироваться неоднозначно, части контекста — конкурировать между собой, а ограничения — не давать ожидаемого эффекта.
Поэтому промпты обычно проверяют на реальных примерах, анализируют ответы модели и изменяют инструкции с учетом результата. Такой итеративный подход позволяет постепенно сделать поведение модели более предсказуемым для конкретной задачи.
Промпт-инжиниринг в программировании
При работе с LLM в разработке промпт-инжиниринг используется для генерации и анализа кода, поиска ошибок, рефакторинга, подготовки тестов и других задач. Разработчик может задавать модели технический контекст, требования к реализации, ограничения и формат ответа.
В AI-инструментах промпты также могут быть частью более сложной системы: инструкции задают правила работы модели, а необходимые данные и инструменты передаются ей дополнительно.