Поделиться через


Введение в инженерию подсказок по цепочке рассуждений

Модели GPT-3, GPT-3.5 и GPT-4 из OpenAI основаны на подсказках. С моделями на основе подсказок пользователь взаимодействует, вводя текстовый запрос, на который модель отвечает путем подстановки текста. Подставляя текст таким образом, модель дополняет текст, который вводится пользователем.

Хотя эти модели очень мощные, их поведение также очень зависит от подсказок. В связи с этим важно развить навыки правильного построения подсказок.

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

Основные сведения

В этом разделе рассматриваются основные понятия и элементы запросов GPT.

Текстовые запросы — это взаимодействие пользователей с моделями GPT. Как и во всех формируемых языковых моделях, модели GPT пытаются создать следующую серию слов, которые, скорее всего, следует из предыдущего текста. Это как будто мы говорим , что первое, что приходит к вашему уму, когда я говорю <prompt>?. В приведенных ниже примерах показано это поведение. Учитывая первые слова известного содержимого, модель может точно продолжить текст.

Prompt Completion
Четыре оценки и семь лет назад отец, выдвинутый на этом континенте, новая страна, задуманная в Свободе, и посвящена предложению, что все мужчины созданы равными. [...]
"Зовите меня Шмаэл". "Несколько лет назад - никогда не помните, как долго - имея мало денег в моем кошельке, и ничего особенного, чтобы заинтересовать меня на берегу, я думал, что я будет плавать около немного и видеть водяную часть мира". [...]

При разработке более сложных запросов полезно учитывать это фундаментальное поведение. Независимо от предоставленного запроса модель просто отвечает на то, что она определяет, скорее всего (учитывая свои учебные данные и целевые показатели обучения). Если задать вопрос в запросе, модель не следует отдельному пути кода Q&A, а скорее ответить на этот вопрос, так как ответ является наиболее вероятным ответом для данного вопроса в качестве входных данных.

Компоненты запроса

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

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

Instructions

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

Тип инструкции Prompt Completion
Простые инструкции Напишите введение в еженедельный бюллетень. Добро пожаловать в наш еженедельный бюллетень. На этой неделе у нас есть особое внимание на производительности. Мы будем делиться советами и трюками о том, как быть продуктивным во всех областях вашей жизни. Мы надеемся, что вы наслаждаетесь и пожалуйста поделитесь своими друзьями!
Сложные инструкции Напишите введение в еженедельный информационный бюллетень в мою компанию contoso. Это должно упоминание великие все руки встречи мы были на прошлой неделе и благодарим команду за всю их трудовую работу за последние несколько месяцев. Добро пожаловать в еженедельный бюллетень Contoso! У нас была большая руками встреча на прошлой неделе, и я хочу поблагодарить команду за всю их тяжелую работу за последние несколько месяцев. Мы с нетерпением ждем яркого будущего, и я уверен, что с преданностью и приверженностью нашей команды, мы будем достичь больших вещей. Спасибо за то, что я являюсь частью нашей команды, и я с нетерпением жду работы со всеми вами в ближайшие недели и месяцы. Искренне, [Ваше имя].
Сложные инструкции Напишите введение в еженедельный бюллетень, в том числе следующие:
— Моя компания называется contoso
- Приветствие изумительным
- Спасибо команде за их трудную работу в течение нескольких трудных месяцев
- Положительный прогноз на ближайший квартал
- Подписанный SLT
Hello Contoso team! Я хотел взять на себя минуту, чтобы поблагодарить вас за всю вашу трудовую работу за последние несколько месяцев. Это было трудно пару месяцев, но вы все вытащили вместе и сделали удивительную работу. Я очень горжусь тобой. Глядя вперед к следующему кварталу, я чувствую себя действительно положительным. Я думаю, что мы собираемся достичь некоторых великих вещей. Еще раз благодарим команду старшего руководства.

Основное содержимое

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

Prompt Completion
Можете ли вы сказать мне, как добраться до музея?
Перевод на французский:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

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

Prompt Completion
В компьютерной науке сложность времени — это вычисление сложности, описывающее время компьютера, необходимое для выполнения алгоритма. Сложность времени обычно оценивается [...]
Суммирует предыдущий текст в нескольких предложениях:
Сложность времени — это мера продолжительности выполнения алгоритма. Обычно оно выражается как функция размера входных данных. Наиболее распространенной мерой является сложность времени худшего случая, которая является максимальным временем, необходимым для входных данных заданного размера.
В компьютерной науке сложность времени — это вычисление сложности, описывающее время компьютера, необходимое для выполнения алгоритма. Сложность времени обычно оценивается [...]
TL;DR (Слишком долго не читался)
Сложность алгоритма — это время, необходимое для выполнения алгоритма. Сложность времени обычно оценивается путем подсчета количества простых операций, выполняемых алгоритмом, предполагая, что каждая элементарная операция занимает фиксированное время для выполнения. Сложность времени обычно выражается как функция размера входных данных.

Модели GPT также могут обрабатывать основное содержимое, структурированное. В приведенном ниже примере TSV о beers в Бельгии (сокращенном для отображения в этой статье) передается модели в рамках запроса. Он может правильно интерпретировать содержимое и отвечать на вопросы о данных.

Prompt Completion
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[...]
Ссылка на таблицу выше, сколько пчел меньше 6 % ABV?
В таблице есть 10 пчел, которые меньше 6 % ABV.

Примеры

Успешные запросы часто полагаются на практику "один выстрел" или "несколько выстрелов" обучения. Это относится к включению одного или нескольких примеров требуемого поведения модели, как правило, путем включения пар входных и выходных данных. Это не учится в том смысле, что модель постоянно изменилась, но вместо того, чтобы примеры лучше условий модели реагировать как нужное только текущее вывод. Использование запросов без примеров иногда называется "нулевой выстрел" обучением. Обратите внимание, что при использовании API завершения чата в набор сообщений обычно добавляются в массив сообщений в виде примеров взаимодействия пользователя или помощник после первоначального системного сообщения.

Тип обучения Prompt Completion
Ноль выстрел Заголовок: Тренер уверенный травмы не сорвать воинов
Раздел.
Тренер уверен, что травма не упустит сезон воинов. Команда по-прежнему сосредоточена на своих целях, и что они будут продолжать работать над достижением их.
Несколько выстрелов Заголовок: Twins'Correa использовать отказ, тест бесплатное агентство
Тема: Бейсбол
Заголовок: Кубок мира Катара иметь зоны для отрезвления
Тема: Футбол
Заголовок: Yates: Фантазия футбол intel на неделю 6
Тема: Футбол
Заголовок: Тренер уверенный травмы не сорвать воинов
Раздел.
Баскетбол

В приведенном выше примере показана служебная программа обучения с несколькими выстрелами. Без примеров модель, кажется, догадывается о требуемом поведении, в то время как примеры четко показывают, как работать модель. Это также демонстрирует силу модели, она может вывести категорию метки, которая нужна, даже без "баскетбола" метки в примерах.

Подсказки

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

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

Количество подсказок Prompt Completion
0 Обзоры производительности — это основной компонент нашего подхода к повышению производительности и разработке в Компании Contoso. [...]
Сводные данные по приведенному выше сообщению электронной почты:
Эта электронная почта предназначена для информирования сотрудников о последних изменениях в интерфейсе проверки производительности, который является частью подхода компании Contoso в области производительности и разработки. Изменения включают улучшенную структуру, обновленный интерфейс пользователя и ориентированные запросы. Кроме того, теперь существует дополнительный раздел "Начальные беседы" для сотрудников, чтобы пометить темы, которые они хотели бы обсудить со своими руководителями.
1 Обзоры производительности — это основной компонент нашего подхода к повышению производительности и разработке в Компании Contoso. [...]
Сводные данные по приведенному выше сообщению электронной почты:
Ключевым выводом сообщения является
Компания Contoso улучшает возможности проверки производительности, делая ее более ориентированной на основные приоритеты, ожидания и влияние. Кроме того, они обновляют интерфейс пользователя с подсказками, ресурсами и рекомендациями. Наконец, они добавляют рекомендации по активации основных приоритетов всей компании.
2 Обзоры производительности — это основной компонент нашего подхода к повышению производительности и разработке в Компании Contoso. [...]
Сводные данные по приведенному выше сообщению электронной почты:
Основные моменты:
Компания Contoso вводит изменения в интерфейс проверки производительности на основе отзывов сотрудников.
• Изменения включают новое внимание на основные приоритеты, ожидания и влияние; обновленное взаимодействие с пользователем; и новые рекомендации по основным приоритетам всей компании.
• Обзоры производительности — это время для отражения прошлых показателей производительности и обучения, а также планирования будущих приоритетов и возможностей роста.
• Сотрудники и руководители должны писать комментарии перед собранием по проверке производительности.
• В год должно быть по крайней мере два обзора производительности.
• Затраты на время для каждой проверки должны оставаться примерно одинаковыми.

Вспомогательное содержимое

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

Вспомогательное содержимое Prompt Completion
Без Список семинаров:
Описание заголовка
Планирование семинар стартов, пожалуйста, присоединитесь к нам, чтобы начать наш семинар! Прозвучит от наших лидеров о перекрестных приоритетах и обучении в течение года. Приглашение на это событие уже отправлено всем пользователям в [...]
Обобщайте приведенные выше семинары, сгруппированные по разделу:
Список семинаров:
Начало семинара по планированию
-Планирование мастерской сверток
— Core MeetUp
— Перспективы, управляемые клиентом
-Влияние и ключевые области фокуса
-Рекомендации
-Ускорение внедрения приложений [...]
With Список семинаров:
Описание заголовка
Планирование семинар стартов, пожалуйста, присоединитесь к нам, чтобы начать наш семинар! Прозвучит от наших лидеров о перекрестных приоритетах и обучении в течение года. Приглашение на это событие уже отправлено всем пользователям в [...]
Мои важные темы: поиск, поиск моделей GPT
Обобщайте приведенные выше семинары, сгруппированные по моим важным темам:
1. Проектирование запросов:
- Новые советы по проектированию запросов
- Искусство разработки подсказок
2. Поиск:
-Введение в векторный поиск с внедрением
3. Модели GPT:
— введение в GPT-4
- GPT-35-Turbo в глубине.

Рекомендации

  • Будьте конкретными. Оставляйте как можно меньше возможностей для интерпретации. Ограничивайте рабочее пространство.
  • Будьте описательными. Используйте аналогии.
  • Дважды вниз. Иногда может потребоваться повторить себя в модели. Добавляйте инструкции до и после основного содержания, используйте инструкцию и подсказку и т. д.
  • Вопросы заказа. Порядок представления сведений модели может повлиять на выходные данные. Можно ли поместить инструкции перед содержимым ("суммировать приведенные ниже...") или после ("суммировать приведенные выше...") значения выходных данных. Значение может иметь даже порядок, в котором приведены несколько примеров. Этот эффект называется предвзятостью ретроспекции.
  • Присвойте модели значение out. Иногда это может быть полезно, чтобы предоставить модели альтернативный путь, если он не может завершить назначенную задачу. Например, при запросе вопроса над фрагментом текста можно включить что-то вроде "ответить с "не найдено", если ответ отсутствует". Это поможет модели избежать создания ложных ответов.

Эффективность использования пространства

Хотя размер входных данных растет с каждым новым поколением моделей GPT, будут периодически возникать сценарии, когда модель получает больше данных, чем может обработать. Модели GPT разбивают слова на "токены". Хотя распространенные многологовые слова часто являются одним маркером, менее распространенные слова разбиваются в слогах. Иногда маркеры могут быть интуитивно понятными, как показано в приведенном ниже примере, демонстрирующем границы маркеров для разных форматов дат. В этом случае написание всего месяца является более эффективным, чем полностью числовая дата. Текущий диапазон поддержки маркеров переходит от 2000 маркеров с более ранними моделями GPT-3 до 32 768 маркеров с 32-й версией последней модели GPT-4.

Снимок экрана: строка текста с выделенными цветами, обозначающая границы маркера.

Учитывая это ограниченное пространство, важно использовать его как можно эффективнее.

  • Таблицы— как показано в примерах в предыдущем разделе, модели GPT могут легко понять табличные данные. Это может быть эффективный способ включения данных, а не предыдущих полей с именем (например, с JSON).
  • Пробелы — последовательные пробелы рассматриваются как отдельные маркеры, которые могут быть простым способом для пустого пространства. Пробелы, предшествующие слову, с другой стороны, обычно рассматриваются как часть того же маркера, что и слово. Внимательно следите за использованием пробелов и не используйте знак препинания, когда пространство будет делать только.

Следующие шаги

Дополнительные сведения о службе Azure OpenAI.