С момента появления ChatGPT я был очарован потенциалом таких LLM (больших языковых моделей). Я считаю их очень умными агентами, которые взломали код, чтобы понимать естественный язык. Без сомнения, общение с этими агентами для выполнения работы — это навык, которым рано или поздно должен овладеть каждый. Это означает, что нам нужно научиться создавать подсказки для агента ИИ.

Итак, дамы и господа, приготовьтесь войти в чарующее царство быстрой инженерии, где мы превращаем путаницу роботов в «Ага!» моменты робота!

Подсказка 1: Расскажите мне о подсказке.

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

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

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

Подсказка 2: Как это делается?

Цепи

Цепочка подсказок относится к технике последовательного использования нескольких подсказок для управления созданием или ответом языковой модели. Вместо предоставления одной подсказки используется серия подсказок для создания более сложных и контекстно-богатых входных данных для модели.

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

Вот упрощенный пример, иллюстрирующий концепцию:

  1. Первоначальная подсказка: «Напишите краткое изложение данной статьи об изменении климата».
  2. Промежуточная подсказка: «В статье обсуждаются причины и последствия изменения климата, включая глобальное потепление, повышение уровня моря и экстремальные погодные явления. Обобщите основные моменты в кратком абзаце».
  3. Последняя подсказка: «На основе предоставленной информации напишите краткое содержание статьи в 3–4 предложениях».

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

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

Агенты и плагины

Это правда, что LLM могут понимать язык, но им нельзя полностью доверять, например, когда дело касается математики. Они также не на 100% точны, когда дело доходит до информации.

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

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

Ниже приведены некоторые плагины, которые OpenAI предлагает с подпиской ChatGPT plus:

Эти агенты и плагины могут использовать реальную мощь LLM.

Сегментация пользователей

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

  1. Определите сегменты пользователей. Начните с определения различных сегментов или групп пользователей, которые взаимодействуют с вашей системой или приложением. Учитывайте такие факторы, как демографические данные, предпочтения пользователей, уровни навыков или конкретные варианты использования. Например, у вас могут быть такие сегменты, как новички, эксперты, студенты, профессионалы или пользователи с разным языковым опытом.
  2. Понимание потребностей пользователей. Анализ потребностей, целей и ожиданий каждого сегмента пользователей. Подумайте, какие задачи они хотят выполнить, тип информации, которую они ищут, и любые конкретные проблемы, с которыми они могут столкнуться. Это понимание поможет вам создавать подсказки, соответствующие их требованиям.
  3. Определить цели для конкретных сегментов. Определите цели или результаты, которых вы хотите достичь для каждого сегмента пользователей. Например, вы можете дать краткие пояснения для новичков, углубленный анализ для экспертов или практические примеры для профессионалов. Четкие цели будут направлять быстрый процесс проектирования.
  4. Создавайте подсказки для конкретных сегментов. Разрабатывайте подсказки, соответствующие характеристикам и целям каждого пользовательского сегмента. Рассмотрите возможность использования языка и терминологии, которые знакомы и подходят для каждой группы. Адаптируйте подсказки для удовлетворения их конкретных потребностей, проблем или интересов. Вы также можете использовать специфический для сегмента контекст или примеры в подсказках.
  5. Повторяйте и уточняйте.Постоянно тестируйте, повторяйте и уточняйте подсказки на основе отзывов пользователей и оценки эффективности. Запросите информацию у пользователей в каждом сегменте, чтобы собрать информацию и внести необходимые коррективы. Регулярный анализ ответов пользователей может помочь определить области, требующие улучшения, и позволит вам точно настроить подсказки для достижения лучших результатов.
  6. Отслеживание и адаптация. Отслеживайте, как пользователи в разных сегментах взаимодействуют с подсказками, и адаптируйтесь соответствующим образом. Отслеживайте удовлетворенность пользователей, показатели завершения или другие соответствующие показатели, чтобы оценить эффективность оперативной сегментации. Со временем корректируйте подсказки, чтобы они продолжали соответствовать меняющимся потребностям каждого сегмента пользователей.

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

Подсказка 3: Что может пойти не так?

Ну, LLM приходят со своими проблемами, но это тема для другого обсуждения. А пока давайте посмотрим, какие общие проблемы возникают при оперативном инжиниринге:

  1. Обобщение. Быстрая разработка направлена ​​на достижение обобщенного поведения языковых моделей. Однако обеспечение согласованной работы подсказок при различных входных данных и сценариях может быть затруднено. Оперативное проектирование может потребовать тонкой настройки и итерации для достижения стабильной и надежной работы.
  2. Данные и погрешность. Как и при обучении LLM, на быстрое проектирование также могут влиять погрешности, присутствующие в обучающих данных. Предвзятые подсказки могут привести к предвзятым или искаженным ответам. Крайне важно проверять и проверять подсказки на предмет потенциальных предубеждений и обеспечивать справедливость и инклюзивность.
  3. Оценка и итерация. Оценка эффективности подсказок может быть сложной задачей. Определение метрик, создание соответствующих наборов тестов и сбор отзывов пользователей требуют тщательного планирования и выполнения. Как определить, лучше ли приглашение A, чем приглашение B? Безопасно ли отправлять новую подсказку? Кроме того, повторение подсказок на основе результатов оценки и отзывов пользователей может занимать много времени и ресурсов.
  4. Интерпретируемость и объяснимость. Быстрая разработка может усложнить интерпретируемость системы. Может быть сложно объяснить конкретное влияние подсказок на поведение модели, особенно в моделях черного ящика. Стремление к прозрачности и интерпретируемости важно для обеспечения доверия пользователей.
  5. Сложность системы. Включение оперативной разработки в существующие системы или рабочие процессы может привести к дополнительной сложности. Интеграция с внешними агентами, плагинами или платформами чат-ботов требует тщательной координации и усилий по разработке.
  6. Сбои. Что вообще означает сбой? Как вы обнаруживаете неудачи? Это сложная задача, когда очень трудно утверждать, что подсказка сгенерировала правильный ответ. Более того, какие показатели мы используем для определения правильного ответа?

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

Итак, это все на данный момент. Я буду публиковать больше информации о Prompt Engineering, LLMOps, MLOps в серии своих блогов. Так что следите за обновлениями и не стесняйтесь следовать за мной и подписаться на мой блог для регулярных обновлений.

Найдите меня на LinkedIn: https://www.linkedin.com/in/harjot-pahwa-492375154/