Примеры промптов
Предыдущий раздел представил базовый пример того, как использовать промпты с LLM.
В этом разделе мы предоставим больше примеров того, как использовать промпты для решения различных задач и представим ключевые концепции на конкретных примерах. Часто лучший способ освоить концепции - это пройти через примеры. Несколько примеров ниже наглядно покажут, как вы можете использовать хорошо разработанные промпты для решения разнообразных задач. Темы:
Сжатие текста
Извлечение информации
Вопросно-ответные системы (QA)
Классификация текста
Диалог
Генерация кода
Рассуждение
Сжатие текста
Одной из стандартных задач в области генерации естественного языка является задача сжатия текста. Сжатие текста может иметь много разнообразных вариантов и применений. Фактически, одним из наиболее перспективных направлений использования языковых моделей является возможность сжатия статей и концепций в краткие и легко читаемые резюме. Давайте рассмотрим базовый пример задачи сжатия текста с помощью промптов.
Предположим, вы хотите получить информацию об антибиотиках, и вы можете воспользоваться следующим промптом:
Промпт:
Объясни, что такое антибиотики A:
Результат:
Антибиотики – это тип лекарств, применяемых для лечения бактериальных инфекций. Они действуют путем уничтожения бактерий или предотвращения их размножения, что позволяет иммунной системе организма справиться с инфекцией. Антибиотики обычно принимаются внутрь в виде таблеток, капсул или жидких растворов, иногда их также вводят внутривенно. Они не действуют против вирусных инфекций, и неправильное использование может привести к развитию устойчивости к антибиотикам.
В разделе "A:" мы предоставляем промпт для ответа, который используется в вопросно-ответной форме (QA). В данном примере это было сделано для указания модели на ожидаемое продолжение. Возможно, данная конструкция пока не слишком полезна, но мы вернемся к этому в дальнейшем. Предположим, что данное объяснение слишком длинное, и вы хотите сжать его еще сильнее. На самом деле, можно попросить модель сжать это в одно предложение, например:
Промпт:
Антибиотики – это тип лекарств, применяемых для лечения бактериальных инфекций. Они действуют путем уничтожения бактерий или предотвращения их размножения, что позволяет иммунной системе организма справиться с инфекцией. Антибиотики обычно принимаются внутрь в виде таблеток, капсул или жидких растворов, иногда их также вводят внутривенно. Они не действуют против вирусных инфекций, и неправильное использование может привести к развитию устойчивости к антибиотикам. Объясни вышесказанное одним предложением:
Результат:
Антибиотики — это лекарства, используемые для лечения бактериальных инфекций путем уничтожения бактерий или остановки их размножения, но они не эффективны против вирусов, и чрезмерное использование может привести к устойчивости к антибиотикам.
Не придавая чрезмерного значения точности вывода выше, о которой мы обсудим позже, модель попыталась сжать данный параграф в одно предложение. Для улучшения результатов рекомендуется провести эксперименты с формулировкой инструкций.
Извлечение информации
Несмотря на то что языковые модели обучаются генерации естественного языка и связанным задачам, они также способны выполнять классификацию и другие задачи обработки естественного языка (NLP).
NLP (Natural Language Processing - Обработка естественного языка) - это область компьютерных наук и искусственного интеллекта, занимающаяся разработкой методов и моделей для взаимодействия компьютеров с естественными языками, такими как речь и текст.
Вот пример промпта, извлекающего информацию из заданного параграфа.
Промпт:
Утверждения о вкладе авторов и благодарности в научных статьях должны ясно и точно указывать, использовали ли авторы технологии искусственного интеллекта, такие как ChatGPT, при подготовке своей рукописи и анализе, и в какой степени. Также следует указать, какие модели больших языковых моделей (LLMs) были задействованы. Это поможет редакторам и рецензентам более детально анализировать рукописи на наличие потенциальных предвзятостей, неточностей и неправильной атрибуции источников. Точно так же научные журналы должны обеспечивать прозрачность в отношении использования LLMs, например, при отборе представленных рукописей. Укажи продукт на основе большой языковой модели, упомянутый в вышеприведенном абзаце:
Результат:
Упомянутый в вышеуказанном абзаце продукт на основе большой языковой модели (LLM) - это ChatGPT.
Существует множество способов улучшить вышеуказанные результаты, но это уже является весьма полезным.
В настоящее время очевидно, что можно попросить модель выполнять разнообразные задачи, просто предоставив ей команды и инструкции. Эта мощная возможность уже активно используется разработчиками продуктов и искусственного интеллекта для экспериментов и создания полезных приложений.
Источник параграфа: ChatGPT: five priorities for research
Вопросно-ответные системы (Q&A)
QA (англ. Question and Answer) переводится на русский как "Вопрос и ответ".
Вопросно-ответные системы (QA) - это методология, которая позволяет пользователю задавать вопросы на естественном языке, а затем получать соответствующие ответы от компьютерной программы или искусственного интеллекта. Этот подход широко используется для автоматизации поиска информации и обмена знаний с помощью компьютерных систем.
Для получения более точных ответов от модели, следует улучшить формат промпта. Как уже рассмотрено выше, промпт может объединять инструкции, контекст, входные данные и индикаторы вывода, что позволяет достичь более высоких результатов. Хотя использование всех этих компонентов не обязательно, это хорошая практика, поскольку более конкретные инструкции способствуют более точным ответам. В примере ниже показано, как это может быть реализовано с помощью более структурированного промпта.
Промпт:
Ответьте на вопрос на основе указанного контекста. Дайте краткий и лаконичный ответ. Ответьте "Не уверен(а) в ответе", если не уверены в ответе. Контекст: Происхождение теплизумаба связано с фармацевтической компанией Ortho Pharmaceutical из Нью-Джерси. Там ученые создали раннюю версию антитела под названием OKT3. Изначально полученное из мышей, это молекула могла связываться с поверхностью Т-клеток и ограничивать их потенциал уничтожения клеток. В 1986 году оно было одобрено для помощи в предотвращении отторжения органов после трансплантации почек, став первым терапевтическим антителом, разрешенным для использования у человека. Вопрос: Изначально откуда был получен OKT3? Ответ:
Результат:
Из мышей.
Контекст получен из Nature.
Классификация текста
До сих пор вы использовали простые инструкции для выполнения задачи. Вашей задачей как промпт-инженера является совершенствование способа предоставления более точных инструкций. Однако этого может быть недостаточно для более сложных случаев. В таких ситуациях важно также учитывать контекст и использовать разные элементы в промпте. Другие элементы, которые вы можете предоставить, это входные данные
или примеры
.
Давайте попробуем продемонстрировать это на примере классификации текста.
Промпт:
Классифицируй текст как нейтральный, отрицательный или положительный. Текст: Я думаю, еда была нормальной. Отзыв:
Результат:
Нейтральный
Вы предложили модель классифицировать текст и она ответила "Нейтральный", что является правильным ответом. Это хорошо, но предположим, что вам важно, чтобы модель отвечала в точном формате, как вы ей задали команду, то есть вместо "Нейтральный" вы хотите, чтобы она ответила "нейтральный" с маленькой буквы. Как этого добиться? Существует несколько способов. Важно быть конкретным, поэтому чем больше информации вы предоставите в промпте, тем лучше будут результаты. Вы можете использовать примеры, чтобы показать правильное поведение. Давайте попробуем снова:
Промпт:
Классифицировать текст как нейтральный, отрицательный или положительный. Текст: Я думаю, что отпуск - это нормально. Настроение: нейтральный Настроение:
Результат:
нейтральный
Отлично! На этот раз модель ответила "нейтральный", что является точной формулировкой, которую мы задали. Кажется, что пример, предоставленный в промпте, помог модели быть более конкретной в ответе.
Чтобы показать, почему иногда важна конкретность, посмотрите на следующий пример и найдите проблему:
Промпт:
Классифицировать текст как нейтральный, отрицательный или положительный. Текст: Я думаю, что отпуск - это нормально. Настроение:
Результат:
Нейтральный
В чем проблема? В данной ситуации проблема заключается в том, что модель игнорирует ключевое слово "нейтральный" из промпта и вместо этого выводит ответ "Нейтральный" с заглавной буквы. То есть, модель не распознает желаемое ключевое слово или настроение, которое указано в промпте, и возвращает вариант ответа, который отличается от ожидаемого формата. Как исправить это? Возможно, вы можете попробовать добавить описания или добавить больше примеров в промпт? Если вы не уверены, мы обсудим несколько идей в следующих разделах.
Диалог
Одним из наиболее увлекательных применений промпт-инжиниринга является указание LLM-системе того, как себя вести, какой должна быть её цель и какой характер ей следует иметь. Это особенно полезно в ситуациях, когда вы создаёте системы для диалога, например, чат-ботов для обслуживания клиентов.
Допустим, давайте разработаем систему диалога, способную формулировать более технические и научные ответы на вопросы. Заметьте, как вы конкретно описываете желаемое поведение системы через инструкции. Это иногда называется ролевым промптингом.
Промпт:
Ниже представлен диалог с искусственным интеллектом, который играет роль научного ассистента. Тон ассистента технический и научный. Человек: Здравствуйте, кто вы? ИИ: Приветствую! Я искусственный интеллект, и моя роль – научный помощник. Как я могу вам помочь сегодня? Человек: Можете рассказать мне о создании черных дыр? ИИ:
Результат:
Конечно! Черные дыры представляют собой участки пространство-времени, в которых гравитационная сила настолько сильна, что ничто, даже свет, не может избежать её. Они образуются, когда очень массивная звезда умирает, и её ядро коллапсирует, образуя сингулярность бесконечной плотности. Интенсивная гравитация сингулярности притягивает всю материю и излучение вокруг себя, создавая черную дыру.
Наши исследовательский помощник звучит слишком технически, верно? Хорошо, давайте изменить это поведение и обучим систему предоставлять более понятные ответы.
Промпт:
Ниже представлен диалог с искусственным интеллектом-исследователем. Ответы помощника должны быть понятны даже ученикам начальной школы. Человек: Привет, кто ты? ИИ: Приветствую! Я искусственный интеллект-исследователь. Как я могу помочь вам сегодня? Человек: Можешь рассказать мне о создании черных дыр? ИИ:
Результат:
Конечно! Черные дыры появляются, когда очень большая звезда исчерпывает свои запасы топлива и начинает сжиматься. Гравитация этой звезды настолько сильна, что ничто, даже свет, не может выбраться из её объятий. Это создаёт особую точку в пространстве и времени с огромной гравитационной силой, которую называют черной дырой.
Вы добились определенного прогресса. Продолжайте работать над улучшением. Добавив больше примеров, вы сможете достичь еще более впечатляющих результатов.
Генерация кода
Один из эффективных способов применения LLM (Большой Языковой Модели) - это создание программного кода. Copilot - превосходный пример такого применения. С помощью внимательно разработанных подсказок можно успешно выполнить множество задач по написанию кода. Давайте рассмотрим несколько примеров далее.
Copilot - это инновационный инструмент для генерации программного кода, разработанный компанией GitHub, которая в настоящее время принадлежит Microsoft. Этот инструмент использует современные языковые модели, включая технологии искусственного интеллекта, чтобы помогать разработчикам писать код более быстро и эффективно.
Давайте сначала напишем простую программу, которая будет приветствовать пользователя.
Промпт:
/* Ask the user for their name and say "Hello" */
Результат:
let name = prompt("What is your name?");
console.log(Hello, ${name}!
);
Обратите внимание, что вам даже не нужно указывать язык программирования.
Давайте немного повысим уровень. Приведенный ниже пример показывает, насколько мощными могут быть LLMs с небольшими усилиями в разработке промптов.
Промпт:
""" 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');
Это очень впечатляюще. В этом примере вы предоставили данные о схеме базы данных и попросили его сгенерировать корректный запрос MySQL.
MySQL - это система управления реляционными базами данных (СУБД), которая предоставляет мощные инструменты для хранения, организации и манипулирования данными. Она позволяет пользователям создавать и управлять базами данных, таблицами, индексами и запросами, обеспечивая эффективное хранение и извлечение информации.
Рассуждение
Возможно, одной из наиболее сложных задач для больших языковых моделей (LLM) на сегодняшний день является способность к рассуждению. Рассуждение представляет собой одну из наиболее интересных областей из-за типов сложных сценариев, которые могут возникнуть из таких моделей.
Были достигнуты определенные успехи в задачах, требующих математических навыков. Тем не менее, стоит отметить, что современные большие языковые модели все еще испытывают затруднения с выполнением задач рассуждения, поэтому для этого требуются еще более совершенные техники промпт-инженерии. Мы рассмотрим эти продвинутые методы позже. А пока давайте рассмотрим несколько простых примеров, чтобы продемонстрировать математические возможности.
Промпт:
Чему равно умножение 9 000 на 9 000?
Результат:
Умножение 9 000 на 9 000 равно 81 000 000 (восемьдесят один миллион).
Давайте рассмотрим более сложную задачу.
Промпт:
Нечетные числа в этой группе дают в сумме четное число: 15, 32, 5, 13, 82, 7, 1. A:
Результат:
Нет, нечетные числа в этой группе дают в сумме нечетное число: 119.
Ответ неправильный! Попробуем улучшить промпт.
Промпт:
Нечетные числа в этой группе дают в сумме четное число: 15, 32, 5, 13, 82, 7, 1. Реши задачу, разбив ее на этапы. Сначала определи нечетные числа, сложи их и укажи, какой результат получился - четный или нечетный.
Результат:
Нечетные числа: 15, 5, 13, 7, 1 Сумма: 41 41 - нечетное число.
Гораздо лучше, не так ли? Кстати, я пробовал это несколько раз, и система иногда ошибается. Если вы предоставите более точные инструкции вместе с примерами, это может помочь получить лучшие результаты.
В следующем разделе мы рассмотрим более сложные концепции и методы промпт-инженерии для повышения результатов при решении данных и более сложных задач.
Last updated