Техники

Приёмы промпт-инжиниринга: что и когда использовать

Пятнадцать приёмов промпт-инжиниринга в сравнении: от few-shot и цепочки рассуждений до ReAct, цепочек промптов и сжатия, с правилом выбора для каждого.

  • Автор: Vijayraj Palanisamy
  • Обновлено
  • 4 мин чтения

Перевод английского оригинала. Код, промпты и вывод моделей оставлены на английском.

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

Приёмы вкратце

Приём Что делает Цена
Few-shot промптинг Показывает примеры желаемого вывода Токены на вызов
Ролевой промптинг Задаёт экспертизу, аудиторию и тон Минимальная
Внедрение контекста Добавляет факты, которых не хватает модели Токены на вызов
Ограничения вывода Фиксирует длину, формат и допустимые значения Минимальная
Промптинг для структурированного вывода Возвращает данные, соответствующие схеме Минимальная
Цепочка рассуждений Рассуждает шаг за шагом перед ответом Выходные токены, задержка
Самосогласованность Выбирает несколько ответов и берёт большинство Несколько вызовов
Декомпозиция промптов Разбивает задачу на подвопросы Усилия на проектирование
Цепочка промптов Выполняет подзадачи отдельными промптами по очереди Несколько вызовов
ReAct Чередует рассуждения с вызовами инструментов Несколько вызовов, инструменты
Итеративная оптимизация Улучшает промпт на основе измерений Ваше время
Доработка промптов Правит формулировки ради ясности и точности Ваше время
Оценка промптов Оценивает вывод по критериям Тестовый набор
Тестирование промптов Перезапускает проверки после каждого изменения Автоматизация
Сжатие промптов Убирает токены без потери смысла Минимальная

Приёмы, формирующие один промпт

Few-shot промптинг. Включите пары «ввод — вывод». Лучше всего для оценочных суждений и особого стиля. Руководство: few-shot промптинг.

Ролевой промптинг. Начните с того, кто такая модель и с кем она говорит. Он выбирает регистр, но не добавляет знаний. Руководство: системные промпты и ролевой промптинг.

Внедрение контекста. Вставьте документ, запись или результат поиска, от которого зависит ответ, внутрь разделителей и велите модели отвечать, опираясь на него. Когда контекст извлекается автоматически, это превращается в RAG-промптинг.

Answer using only the policy in the tags. If it does not say, reply "not covered".

<policy>
{{policy_text}}
</policy>

Ограничения вывода и структурированный вывод. Укажите формат, поля, длину и что делать с недостающими данными. Руководство: промпты для структурированного вывода.

Приёмы для рассуждений

Цепочка рассуждений. Попросите модель проработать задачу, прежде чем дать ответ. Она помогает в многошаговой логике и арифметике с моделями, которые не рассуждают внутри. Модели со встроенным рассуждением уже делают это, и указание «думай шаг за шагом» мало что добавляет.

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

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

Приёмы с несколькими промптами

Декомпозиция промптов. Разбейте трудный вопрос на более мелкие, на каждый из которых можно хорошо ответить, затем объедините ответы.

Цепочка промптов. Выполняйте эти части отдельными вызовами, передавая каждый вывод на следующий шаг. Каждый промпт остаётся простым и тестируемым. Руководство: цепочки и декомпозиция промптов.

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

Приёмы для улучшения промпта

Итеративная оптимизация и доработка. Запустите промпт на тестовом наборе, найдите сбои, измените одну вещь и измерьте снова. Руководство: итеративная оптимизация промптов.

Оценка и тестирование. Определите, что значит «хорошо», оцените это и перезапускайте проверки при каждом изменении промпта. Руководство: тестирование и оценка промптов.

Сжатие промптов. Уберите лишние слова, повторы и ненужный контекст, чтобы снизить стоимость и задержку. Руководство: оптимизация токенов.

Как выбирать

Идите по этому списку сверху вниз и остановитесь на первом шаге, который решает задачу.

  1. Напишите чёткую инструкцию с форматом вывода. На этом заканчивается большинство проблем.
  2. Добавьте недостающий контекст. Если ответ общий или фактически неверный.
  3. Добавьте примеры. Если стиль или суждение не те.
  4. Попросите рассуждение. Если задаче нужно несколько логических шагов, а модель не из моделей с рассуждением.
  5. Разбейте задачу на цепочку. Если один промпт делает слишком много.
  6. Дайте модели инструменты. Если ей нужны актуальные данные или нужно совершать действия.
  7. Сэмплируйте несколько раз. Если точность в задаче с единственным ответом оправдывает несколько вызовов.

Добавление приёма, который задаче не нужен, делает промпт длиннее, медленнее и сложнее в отладке.

Сочетание приёмов

Приёмы накладываются друг на друга. Типичный промпт для продакшена использует роль, внедрённый контекст, два примера и схему. Типичный агент использует ReAct поверх цепочки таких промптов. Добавляйте по одному приёму и измеряйте, чтобы знать, какой заслужил своё место.

Начинайте с прочной основы

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

Применить на практике

Попробуйте: оптимизатор промптов

Меньше токенов и больше структуры — с доказательством, что все требования сохранились. Бесплатно, детерминированно и без аккаунта.

Связанные инструменты PromptFlowEngine