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
).
Ссылки
Column Type Annotation using ChatGPT(Июнь 2023 г.)
Fairness of ChatGPT(Май 2023 г.)
Playing repeated games with Large Language Models(Май 2023 г.)
Does ChatGPT have Theory of Mind?(Май 2023 г.)
ChatGPT as your Personal Data Scientist(Май 2023 г.)
Are Large Language Models Fit For Guided Reading?(Май 2023 г.)
Zero-shot Temporal Relation Extraction with ChatGPT(Апрель 2023 г.)
Toxicity in ChatGPT: Analyzing Persona-assigned Language Models(Апрель 2023 г.)
Multi-step Jailbreaking Privacy Attacks on ChatGPT(Апрель 2023 г.)
Is ChatGPT a Good Sentiment Analyzer? A Preliminary Study(Апрель 2023 г.)
Human-like Summarization Evaluation with ChatGPT(Апрель 2023 г.)
Large language models can rate news outlet credibility(Апрель 2023 г.)
Can AI Put Gamma-Ray Astrophysicists Out of a Job?(Март 2023 г.)
Zero-shot Clinical Entity Recognition using ChatGPT(Март 2023 г.)
ChatGPT Participates in a Computer Science Exam(Март 2023 г.)
Consistency Analysis of ChatGPT(Март 2023 г.)
Making a Computational Attorney(Март 2023 г.)
Is ChatGPT a Good NLG Evaluator? A Preliminary Study(Март 2023 г.)
How to format inputs to ChatGPT models(Март 2023 г.)
Cross-Lingual Summarization via ChatGPT(февраль 2023 г.)
ChatAug: Leveraging ChatGPT for Text Data Augmentation(февраль 2023 г.)
ChatGPT: A Meta-Analysis after 2.5 Months(февраль 2023 г.)
A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT(февраль 2023 г.)
Zero-Shot Information Extraction via Chatting with ChatGPT (февраль 2023 г.)
ChatGPT: Jack of all trades, master of none (февраль 2023 г.)
Linguistic ambiguity analysis in ChatGPT (февраль 2023 г.)
What ChatGPT and generative AI mean for science февраль 2023 г.)
Exploring AI Ethics of ChatGPT: A Diagnostic Analysis (Январь 2023 г.)
Introducing ChatGPT (Ноябрь 2022 г.)
Last updated