Основы промптинга

Основные промпты


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

Давайте рассмотрим пример простого промпта:

Промпт:

Небо -

Результат:

Голубое Небо голубое в ясный день. В пасмурный день небо может быть серым или белым.

Как видите, языковая модель выводит продолжение строк, которое имеет смысл в контексте "Небо - ". Результат может быть неожиданным или далеким от задачи, которую вы хотите выполнить.

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

Давайте попробуем немного улучшить его:

Промпт:

Завершите предложение: Небо -

Результат:

такое красивое сегодня.

Уже лучше, не так ли? Вы сказали модели завершить предложение, поэтому результат выглядит гораздо лучше, так как он точно следует вашей инструкции ("Завершите предложение:"). Такой подход к проектированию оптимальных промптов для указания модели выполнения задачи называется промпт инжинирингом.

Приведенный выше пример - это базовая иллюстрация того, что сегодня возможно с помощью LLM (Large Language Models - Большие языковые модели). Современные LLM могут выполнять самые разные задачи, начиная от суммирования текста и математического рассуждения, и заканчивая генерацией кода.

Оформление промптов


Вы только что попробовали использовать очень простой промпт выше. Стандартная структура промпта обычно выглядит следующим образом:

<Вопрос>?

Или

<Инструкция>

Вы можете структурировать его в соответствии с стандартным форматом вопроса и ответа (QA), который широко применяется во многих наборах данных QA. Вот как это делается:

QA (англ. Question and Answer) переводится на русский как "Вопрос и ответ".

Q: <Вопрос>? A:

При применении такого форматирования промпта это также называется промптингом без примеров (zero-shot prompting), то есть вы напрямую запрашиваете ответ у модели без предоставления каких-либо примеров или демонстраций задачи, которую вы хотите выполнить. Некоторые большие языковые модели имеют возможность выполнять промптинг без примеров, но это зависит от сложности и знания задачи.

"Zero-shot prompting" переводится на русский как "Промптинг без примеров или дословно нулевой выстрел".

Учитывая стандартный формат выше, одна популярная и эффективная техника промптинга называется промптинг с несколькими примерами (few-shot prompting/несколько выстрелов), где вы предоставляете примеры (т.е. демонстрации). Вы можете отформатировать промпты с несколькими примерами следующим образом:

"Few-shot prompting" переводится на русский как "Промптинг с несколькими примерами или дословно несколько выстрелов".

<Вопрос>? <Ответ> <Вопрос>? <Ответ> <Вопрос>? <Ответ> <Вопрос>?

В формате вопроса и ответа (QA) это будет выглядеть так:

Q: <Вопрос>? A: <Ответ>

Q: <Вопрос>? A: <Ответ>

Q: <Вопрос>? A: <Ответ>

Q: <Вопрос>? A: <Ответ>

Учтите, что использование формата вопроса и ответа (QA) не является обязательным. Формат промпта зависит от конкретной задачи. Например, вы можете выполнить простую задачу классификации и предоставить образцы, демонстрирующие задачу, следующим образом:

Промпт:

Это круто! // Положительное Это плохо! // Отрицательное Ничего себе фильм! // Положительное Какой ужасный сериал! //

Результат:

Отрицательное

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

Last updated