ChatGPT

Промпт инжиниринг в ChatGPT

В данном разделе мы освещаем последние методы промпт-инжиниринга для ChatGPT, включая рекомендации, применение, ограничения, научные статьи и дополнительные материалы для чтения.

Данный раздел находится в активной стадии разработки.

Введение в ChatGPT


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

Модель ChatGPT обучается с использованием обратной связи с подкреплением от людей (RLHF). Несмотря на то, что эта модель значительно более мощная, чем предыдущие версии GPT, и её обучение направлено на снижение нежелательных и неточных результатов, она всё равно обладает своими ограничениями. Давайте проанализируем некоторые из её возможностей и ограничений на примерах.

RLHF расшифровывается как "Reinforcement Learning from Human Feedback," что на русский язык можно перевести как "Обучение с подкреплением на основе обратной связи от людей." Это метод обучения машинных моделей, при котором модель улучшается, анализируя обратную связь и реакции от людей на её ответы и результаты.

Вы можете использовать пользовательскую версию ChatGPT здесь, но для приведенных ниже примеров мы будем использовать режим Chat на OpenAI Playground.

Обзор задачи диалогов


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

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

Промпт:

Ниже приводится разговор с научным ассистентом ИИ. Тон помощника - технический и научный. Человек: Здравствуйте, кто вы? ИИ: Приветствую! Я - исследовательский ассистент ИИ. Чем я могу помочь вам сегодня? Человек: Можете ли вы рассказать мне о создании черных дыр? ИИ:

Из приведенного примера видно две важные составляющие:

  • намерение или объяснение того, что представляет собой чат-бот

  • идентичность, которая определяет стиль или тональность, с которой чат-бот будет отвечать

Простой пример выше хорошо работает с использованием API для заполнения текста, использующего text-davinci-003. Недавно OpenAI анонсировала API ChatGPT, который представляет собой более мощную и экономичную модель gpt-3.5-turbo, специально созданную для такого типа функциональности (завершения диалогов). Фактически, OpenAI рекомендует ее как свою лучшую модель даже для случаев использования, не связанных с чатом. Другие преимущества использования API ChatGPT - значительное снижение стоимости (на 90%) и повышение эффективности.

Крупные компании, такие как Snap Inc. и Instacart, уже интегрируют возможности диалога, основанные на ChatGPT, в свои продукты, начиная от персонализированных рекомендаций и заканчивая улучшением опыта покупок.

Диалоги с ChatGPT


Диалоги с несколькими ходами

Чтобы продемонстрировать возможности ChatGPT, мы воспользуемся примером беседы с ассистентом-чатботом, приведенным выше, и обсудим результаты. В отличие от text-davinci-003, модель gpt-3.5-turbo, на которой работает ChatGPT, использует формат диалога в качестве входных данных. Модель ожидает серию сообщений на входе и использует их для генерации ответа.

Промпт:

СИСТЕМА: Вы - исследовательский ассистент ИИ. Вы используете тон, который является техническим и научным. ПОЛЬЗОВАТЕЛЬ: Здравствуйте, кто вы? АССИСТЕНТ: Приветствую! Я исследовательский ассистент ИИ. Чем я могу помочь вам сегодня? ПОЛЬЗОВАТЕЛЬ: Можете ли вы рассказать мне о создании черных дыр?

Результат:

АССИСТЕНТ: Конечно! Черные дыры образуются, когда у массивной звезды заканчивается топливо и она разрушается под действием собственной гравитации. В результате коллапса звезда становится невероятно плотной, а гравитационное поле настолько сильным, что даже свет не может его покинуть. Эта точка невозврата известна как горизонт событий. Когда звезда пересекает горизонт событий, она считается черной дырой...

Обратите внимание, что в приведенном выше примере мы упростили входные и выходные данные, но для API завершения диалогов ChatGPT требуется, чтобы сообщения были в определенном формате. Я добавил ниже скриншот того, как будет выглядеть этот пример при использовании режима Chat на OpenAI Playground:

Более официальный запрос к API в нашем примере может быть сформулирован следующим образом:

import openai openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are an AI research assistant. You use a tone that is technical and scientific."}, {"role": "user", "content": "Hello, who are you?"}, {"role": "assistant", "content": "Greeting! I am an AI research assistant. How can I help you today?"}, {"role": "user", "content": "Can you tell me about the creation of black holes?"} ] )

Фактически, взаимодействие разработчиков с ChatGPT в будущем планируется осуществлять с помощью языка разметки диалогов (ChatML в кратком виде).

Задачи с одним ходом


Формат диалога позволяет проводить многоходовые беседы, но также поддерживает одиночные запросы, как это было использовано в случае с text-davinci-003. Это означает, что мы можем использовать ChatGPT для решения аналогичных задач, как было продемонстрировано с предыдущими моделями GPT. Давайте, например, попробуем выполнить следующую задачу по ответу на вопрос с использованием ChatGPT:

Промпт:

ПОЛЬЗОВАТЕЛЬ: Ответьте на вопрос на основе контекста ниже. Держитесь краткого и ясного ответа. Ответьте "Не уверен в ответе", если не уверены в ответе.

Контекст: Препарат теплизумаб имеет свои корни в фармацевтической компании Ortho Pharmaceutical в Нью-Джерси. Там ученые создали раннюю версию антитела под названием OKT3. Изначально оно было получено из мышей и могло связываться с поверхностью Т-клеток, ограничивая их способность уничтожать клетки. В 1986 году оно было одобрено для предотвращения отторжения органов после трансплантации почек и стало первым лечебным антителом, разрешенным для использования у людей.

Вопрос: Из какого источника изначально получали OKT3?

Ответ:

Результат:

АССИСТЕНТ: Мыши.

Имейте в виду, что я добавил метки USER(ПОЛЬЗОВАЕТЛЬ) и ASSISTANT(АССИСТЕНТ), чтобы лучше продемонстрировать, как можно выполнить задачу с использованием ChatGPT. Вот пример с использованием Playground:

Более формально, вот вызов API (я включил только компонент сообщения в запрос):

CONTENT = """Ответьте на вопрос, основываясь на приведенном ниже контексте. Отвечайте кратко и лаконично. Если вы не уверены в ответе, ответьте "Не уверен в ответе".

Context: Препарат теплизумаб имеет свои корни в фармацевтической компании Ortho Pharmaceutical в Нью-Джерси. Там ученые создали раннюю версию антитела под названием OKT3. Изначально оно было получено из мышей и могло связываться с поверхностью Т-клеток, ограничивая их способность уничтожать клетки. В 1986 году оно было одобрено для предотвращения отторжения органов после трансплантации почек и стало первым лечебным антителом, разрешенным для использования у людей.

Question: На основе чего изначально был создан OKT3? Answer: """ response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": CONTENT}, ], temperature=0, )

Инструкции для моделей Chat

Согласно официальной документации OpenAI, доступны версии модели gpt-3.5-turbo на разные даты. Например, можно запросить версию модели gpt-3.5-turbo-0301.от 1 марта, обозначаемый как gpt-3.5-turbo-0301. Это предоставляет разработчикам возможность выбирать конкретные версии модели. Однако стоит иметь в виду, что рекомендации по инструктированию моделей могут меняться от версии к версии.

Текущая рекомендация для gpt-3.5-turbo-0301 состоит в добавлении инструкций в сообщение от пользователя (user), в отличие от доступного сообщения от системы (system).

Ссылки


Last updated