Промпт-инжиниринг / Введение в промптинг
Промпт-инжиниринг на практике: 7 примеров для бизнеса и разработки¶
В прошлых материалах мы разобрали базовые принципы работы с промптами. Теперь давайте посмотрим, как эти знания применяются на практике для решения конкретных задач. Лучший способ освоить промпт-инжиниринг - разобрать живые примеры. Ниже я покажу, как с помощью правильно составленных инструкций можно заставить нейросеть выполнять разные виды работы: от простого сжатия текста до сложных рассуждений. Эти техники уже используют разработчики в России и мире для создания полезных продуктов на базе GigaChat, YandexGPT и других моделей.
Сжатие текста¶
Одна из самых востребованных задач - сокращение длинных текстов до сути. Это полезно для создания выжимок из статей, отчетов или технической документации. Попробуем базовый пример.
Допустим, мы хотим получить объяснение, что такое антибиотики:
Промпт:
Ответ модели:
Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
Формат "A:" здесь явно указывает модели, где должен начинаться ответ. Допустим, этот текст всё ещё слишком длинный. Мы можем приказать нейросети сжать его в одно предложение, просто добавив соответствующую инструкцию после исходного текста:
Промпт:
Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.
Explain the above in one sentence:
Ответ модели:
Antibiotics are medications used to treat bacterial infections by either killing the bacteria or stopping them from reproducing, but they are not effective against viruses and overuse can lead to antibiotic resistance.
Модель успешно выполнила сжатие. Точность вывода мы обсудим позже, но сам принцип ясен: экспериментируя с инструкциями, вы управляете степенью сокращения.
Извлечение информации¶
Помимо генерации текста, нейросети отлично справляются с задачами извлечения конкретных данных из общего контекста. Это полезно для анализа документов, новостей или научных статей.
Промпт:
Author-contribution statements and acknowledgements in research papers should state clearly and specifically whether, and to what extent, the authors used AI technologies such as ChatGPT in the preparation of their manuscript and analysis. They should also indicate which LLMs were used. This will alert editors and reviewers to scrutinize manuscripts more carefully for potential biases, inaccuracies and improper source crediting. Likewise, scientific journals should be transparent about their use of LLMs, for example when selecting submitted manuscripts.
Mention the large language model based product mentioned in the paragraph above:
Ответ модели:
Это базовый, но уже рабочий пример. Результаты можно улучшать, добавляя больше контекста или уточняя формат ответа.
Источник параграфа: ChatGPT: five priorities for research
Вопросно-ответные системы¶
Чтобы получить точный и краткий ответ, важно правильно структурировать промпт. Хорошая практика - явно указывать модельке инструкцию, контекст, вопрос и требуемый формат ответа.
Промпт:
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:
Ответ модели:
Модель корректно извлекла ответ из контекста, следуя инструкции «short and concise». Контекст взят из Nature.
Классификация текста¶
Для простых задач иногда достаточно одной инструкции. Но в реальных проектах часто требуется жёстко контролировать формат вывода. Рассмотрим задачу определения тональности (sentiment analysis).
Промпт:
Ответ модели:
Модель вернула правильную категорию, но в формате Neutral с заглавной буквы. А если нашей системе нужен строго нижний регистр neutral? Один из самых эффективных способов задать формат - привести пример желаемого поведения прямо в промпте:
Промпт:
Classify the text into neutral, negative or positive.
Text: I think the vacation is okay.
Sentiment: neutral
Text: I think the food was okay.
Sentiment:
Ответ модели:
Теперь модель выдала ответ в точности в требуемом формате. Пример (one-shot prompting) скорректировал её поведение.
А что если мы по ошибке напишем в инструкции несуществующую метку? Модель её проигнорирует.
Промпт:
Ответ модели:
Модель вернула знакомую ей метку Neutral, а не нашу опечатку nutral. Исправить это можно, добавив описание меток или больше примеров.
Диалог¶
Одно из ключевых применений - создание диалоговых агентов с заданным стилем общения. Через промпт мы можем задать роль, тон и уровень сложности ответов. Этот приём называется ролевым промптингом (role prompting).
Создадим технического ассистента для научных вопросов:
Промпт:
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 blackholes?
AI:
Ответ модели:
Sure! Black holes are regions of spacetime where the gravitational force is so strong that nothing, not even light, can escape from it. They are created when a very massive star dies and its core collapses in on itself, forming a singularity of infinite density. The intense gravity of the singularity pulls in all the matter and radiation around it, creating the black hole.
Ответ получился слишком научным. Изменим инструкцию, чтобы объяснения были понятны даже школьникам:
Промпт:
The following is a conversation with an AI research assistant. The assistant answers should be easy to understand even by primary school students.
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:
Ответ модели:
Sure! Black holes are created when a very massive star runs out of fuel and collapses in on itself. The gravity of the star is so strong that nothing, not even light, can escape its pull. This creates a point in space-time with an intense gravitational force called a black hole.
Тон изменился, объяснение стало проще. Добавляя больше примеров диалога в промпт, можно ещё точнее настроить поведение чат-бота.
Генерация кода¶
Нейросети стали мощным инструментом для разработчиков, ускоряя написание кода. Рассмотрим два примера: от простого приветствия до SQL-запроса.
Простой запрос на создание кода:
Промпт:
Ответ модели:
Модель сама определила, что это должен быть код на JavaScript, и предложила рабочее решение.
Более сложная задача - генерация SQL-запроса по описанию схемы базы данных:
Промпт:
"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science Department
"""
Ответ модели:
SELECT StudentId, StudentName
FROM students
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');
Модель корректно интерпретировала структуру таблиц и составила верный запрос с подзапросом. Это демонстрирует мощь LLM в автоматизации рутинных задач разработки.
Рассуждения¶
Задачи, требующие логических рассуждений, - самое сложное испытание для современных нейросетей. Особенно это касается математики. Часто простого запроса недостаточно, нужно разбивать задачу на шаги.
Простейший расчёт:
Промпт:
Ответ модели:
А теперь задача посложнее - нужно определить, даёт ли сумма нечётных чисел чётный результат:
Промпт:
Ответ модели:
Ответ неверный! Модель поспешила с выводом. Улучшим результат, заставив модель рассуждать по шагам:
Промпт:
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
Solve by breaking the problem into steps. First, identify the odd numbers, add them, and indicate whether the result is odd or even.
Ответ модели:
Теперь модель выполнила задачу корректно, следуя нашей инструкции. Этот приём - chain-of-thought prompting - один из ключевых для сложных задач. Однако важно помнить, что даже с такими техниками модели могут ошибаться, поэтому для продакшена нужны дополнительные проверки.
Эти примеры показывают спектр возможностей промпт-инжиниринга. В следующих разделах мы разберём более продвинутые техники, которые позволят улучшить результаты для каждой из этих задач и решать ещё более сложные проблемы.
Нейросеть на ваших встречах, документах и переписке: отвечает со ссылкой на источник. Это ваша вторая память на базе ИИ. Данные хранятся в России, старт бесплатный.
Зарегистрироваться бесплатноENGRAM запоминает ваши встречи, документы и переписку и мгновенно находит ответ со ссылкой на источник. Ваша вторая память на базе ИИ. Данные в России, старт бесплатный.
Зарегистрироваться бесплатно