Перейти к содержанию

← Модели

Промпт-инжиниринг / Модели

Промпт-инжиниринг для ChatGPT: практическое руководство

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

Что такое ChatGPT и как он работает

ChatGPT - это большая языковая модель, дообученная специально для ведения диалога. Ее ключевая особенность - способность понимать контекст беседы и следовать инструкциям, заложенным в промпте (запросе пользователя). В отличие от своих предшественников вроде GPT-3 (text-davinci-003), ChatGPT изначально создавался для многоходовых бесед.

Модель обучалась с помощью RLHF (Reinforcement Learning from Human Feedback) - метода, где люди оценивали ответы ИИ, тем самым "натаскивая" его на более полезные и безопасные реплики. Несмотря на продвинутость, у ChatGPT есть ограничения: он может "галлюцинировать" (выдавать неправдоподобную информацию), быть излишне многословным или не до конца понимать сложный контекст. Управление этими особенностями - задача промпт-инжиниринга.

Диалог как задача для ИИ: намерение и идентичность

В основе любого эффективного диалога с ChatGPT лежат два ключевых элемента, которые вы задаете в промпте: намерение (что должен делать бот) и идентичность (как он должен это делать).

Представьте, что вам нужен научный ассистент. Вы можете задать это через систему ролей в промпте. Вот классический пример:

Промпт:

The following is a conversation with an AI research assistant. The assistant tone is technical and scientific.

Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI:

Ответ модели:

Of course! Black holes are regions in spacetime where gravity is so strong that nothing, not even light, can escape from it. They are formed when a massive star exhausts its nuclear fuel and undergoes gravitational collapse...

Здесь намерение - "отвечать как научный ассистент", а идентичность - "технический и научный тон". Раньше для таких задач использовали text-davinci-003, но сейчас OpenAI рекомендует модель gpt-3.5-turbo - она оптимизирована для чата, дешевле и эффективнее. Именно на ней работает публичный ChatGPT и его API.

Как устроены диалоги в ChatGPT: многоходовые беседы

Модель gpt-3.5-turbo ожидает на вход не просто текст, а структурированный диалог в формате списка сообщений с ролями: system (системная инструкция), user (пользователь) и assistant (ассистент, т.е. предыдущие ответы модели). Это позволяет вести длинные, контекстно-зависимые беседы.

Вот как выглядит тот же запрос о черных дырах в формате, понятном для API:

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?"}
    ]
)
Сообщение с ролью system - это ваша главная инструкция, которая задает тон и правила на всю беседу. В российских аналогах, например в YandexGPT или GigaChat, также используется схожий принцип передачи системного промпта для определения поведения модели.

CHATGPT1

ChatGPT для одиночных задач: не только диалоги

Несмотря на "чат" в названии, ChatGPT отлично справляется и с одиночными, несвязанными задачами - как классические GPT-модели. Например, для извлечения ответа из контекста (задача Question Answering).

Промпт:

Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.

Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT3 originally sourced from?

Answer:

Ответ модели:

Mice.

Для API такой запрос оформляется как одно сообщение от пользователя (user):

CONTENT = """Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer.

Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT3 originally sourced from?

Answer:
"""

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)
Параметр temperature=0 делает ответы максимально детерминированными и краткими, что идеально для задач на извлечение фактов.

CHATGPTCLASSIC

Важные особенности и версии моделей

OpenAI периодически выпускает "снимки" (snapshots) модели gpt-3.5-turbo, например gpt-3.5-turbo-0301 (снимок на 1 марта 2023). Это позволяет зафиксировать поведение модели для долгосрочных проектов. Важный нюанс: рекомендации по промпт-инжинирингу могут меняться от версии к версии.

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

Ссылки на исследования

Активное развитие ChatGPT породило волну исследований. Вот некоторые ключевые работы, посвященные его возможностям и ограничениям: - ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks (March 2023) - A Comprehensive Evaluation of ChatGPT's Zero-Shot Text-to-SQL Capability (March 2023) - Is ChatGPT a Good Sentiment Analyzer? A Preliminary Study (April 2023) - ChatGPT is a Knowledgeable but Inexperienced Solver: An Investigation of Commonsense Problem in Large Language Models (March 2023) - Can ChatGPT Defend the Truth? Automatic Dialectical Evaluation Elicits LLMs' Deficiencies in Reasoning (May 2023) - A Survey on ChatGPT: AI-Generated Contents, Challenges, and Solutions (May 2023)

Попробуйте ENGRAM на своих данных

Нейросеть на ваших встречах, документах и переписке: отвечает со ссылкой на источник. Это ваша вторая память на базе ИИ. Данные хранятся в России, старт бесплатный.

Зарегистрироваться бесплатно
Обучаем команды работе с нейросетями под ваши процессы. Узнать о корпоративном обучении