Журнал / польза

Как писать промты, чтобы нейросеть выдавала нужный результат

Общение пользователя и генеративной модели напоминает диалог между людьми. Чем точнее собеседники выражают свои мысли, тем легче им понять друг друга. Как правильно составлять запросы к нейросети, чтобы получать желаемый результат, разбираемся вместе со старшим менеджером продукта в Яндекс Учебнике Никитой Андреевым и руководителем отдела разработки Яндекс Учебника Алексеем Ярошевичем

Что такое промт

Промт — текстовый запрос пользователя к нейросети. Он может включать разные элементы, но не обязательно все сразу:

  • Инструкцию — это условие или задача, которую модель должна выполнить.
  • Контекст — дополнительная информация от пользователя, она поможет модели меньше галлюцинировать.
  • Входные данные — вопрос, на который человек ищет ответ.
  • Индикатор вывода — формат, в котором модель должна выдать результат.

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

Правильных или неправильных промтов не бывает. Одни запросы достигают цели и отвечают на вопрос. На другие модель даёт фейковую или неполную информацию, а иногда отказывается отвечать.

Корректные промты кратно увеличивают вероятность того, что пользователь получит правильный вывод в нужном виде. Они сокращают время, которое человек тратит на взаимодействие с нейросетью. Например, если ответ должен быть в виде таблицы, можно указать это в запросе и прописать, по каким ячейкам нужно распределить информацию.

Никита Андреев, старший менеджер продукта в Яндекс Учебнике

Один из примеров, как может выглядеть формула промта:

Действие +Вид текста +Тема +Аудитория +Ограничения
НапишиПост«5 лучших IT-профессий в 2023 году»Для выпускников школУложись в 2000 символов
ОбъясниСлово«Промт»Ребёнку 5 летВ двух абзацах
ПридумайИсториюПро айтишника, который проспал Новый годДля продвинутых разработчиковУложись в пять предложений
СоставьТезисы для выступления«Как развивается искусственный интеллект»Из 8 пунктов
Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»
Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»
Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»
Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»

Формулу можно расширять или сокращать — всё зависит от класса задач. Например, добавлять дополнительные детали, примеры, на которые модель будет ориентироваться при ответе, или задавать роли: «Расскажи про машинное обучение, как будто ты учитель физкультуры».

Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»
Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»

На результат ответа влияет любой токен — слово и даже знак препинания. Бывает, что модель галлюцинирует, но характером вранья можно управлять с помощью промта. Например, набрасывать нейросети дополнительные факты, на которые она будет опираться. Тогда ей останется делать то, что она хорошо умеет, — писать связный текст. Не нужно просить «Составь рассказ про полководца в войне 1812 года и одноимённый торт» и заставлять модель гадать. Лучше сразу уточнить: «Составь рассказ про полководца Наполеона Бонапарта».

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

Алексей Ярошевич, руководитель отдела разработки Яндекс Учебника

Какие бывают промты

Корнеллский университет разработал общепринятую шкалу категоризации промтов, в неё входит шесть пунктов:

  1. Семантика ввода. Пользователь задаёт модели правила, которые она запоминает и учитывает при ответе. Это позволяет упростить синтаксис и сэкономить время. Пример запроса: «Запомни, когда я попрошу построить маршрут из точки А в Б, я введу только названия городов, а ты подставишь их вместо А и Б».
  2. Настройка вывода информации. Можно попросить модель выдавать информацию по шаблону. Сначала нужно загрузить в нейросеть правила, а потом указать в запросе, когда их использовать. Например: «Разбей ответ на три колонки и заполни таблицу, используя следующие показатели и шаблон».
  3. Идентификация ошибок. Опасно копировать ответы модели без дополнительной проверки. Можно попросить нейросеть привести источники и факты, на основании которых она составила ответ. А ещё она умеет задавать уточняющие вопросы, они помогут пользователю скорректировать промт и получить более точный результат.
  4. Улучшение подсказок. Иногда модель отказывается отвечать. Тогда можно использовать разные приёмы, чтобы обойти её ограничения. Например, на запрос «указать мотивы в образовании у подростков» она выдаёт пять основных пунктов. А когда пользователь просит уточнить их, говорит, что нет информации. Чтобы пробить этот барьер, стоит поговорить с нейросетью и позволить ей задать уточняющие вопросы.
  5. Взаимодействие. К этой категории могут относиться задачи, когда нужно сгенерировать бесконечное количество маркетинговых слоганов или креативов по определённому правилу. Чтобы не вставлять шаблон каждый раз, можно сказать модели: «Генерируй мне ответы без остановки по заданному правилу».
  6. Управление контекстом. Пригодится, когда нужно исключить из ответа некоторые источники. Например, вы исследуете российскую аудиторию и не хотите видеть информацию о людях из других стран. Тогда можно задать нейросети условие: «Подготовь мне ответ, не включая зарубежные источники». Так отсекается ненужный контекст — и модель выдаёт результат с учётом данных, которые важны для пользователя.

Из этих шести категорий чаще всего я использую три:

1. Про ошибки. Я, как менеджер продукта, провожу исследования пользователей. Мне важно понимать, на основании каких данных модель сделала вывод. Иначе её ответ ничего не стоит.

2. Про контекст. Я работаю над продуктами для конкретных пользователей, например учеников российских школ, учителей и родителей. Мне не нужно анализировать поведение всех людей на свете. Я ищу информацию, релевантную для моей аудитории. Поэтому контроль контекста и отрезание лишних кусков значительно увеличивают качество ресёрча и полученных выводов.

3. И подсказки. Я всегда прошу нейросеть задавать мне уточняющие вопросы, которые помогут ей дать более точный ответ. Когда модель это делает, она заставляет меня задуматься, осмыслить мой исследовательский вопрос и понять, зачем я его задаю. А ещё прокачивает качество ответа.

Никита Андреев, старший менеджер продукта в Яндекс Учебнике

Что важно помнить при составлении промтов

Главная ошибка новичка — полностью полагаться на ответ нейросети и не включать критическое мышление. Важно всегда оценивать ответы модели и правильно фильтровать контент.

Например, просить её привести факты, на которые она опирается. Если вы не эксперт в исследуемой области и не понимаете, хороший факт или нет, тогда нужно дополнительно проверять информацию в других источниках.

Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»
Ответ YandexGPT 2 в навыке «Алиса, давай придумаем»

Иногда можно обнаружить логические нестыковки внутри ответа без дополнительного фактчекинга. Если попросить модель показать алгоритм решения задачи по шагам и расписать результат на каждом этапе, станет понятно, в какой момент нейросеть ошибается.

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

Алексей Ярошевич, руководитель отдела разработки Яндекс Учебника