Что такое промпт и как его составить для нейросети

Как просить, чтобы получить то, что просишь (а не что тебе нужно)

Что такое промпт и как его составить для нейросети

Сейчас в мире зарегистрировано 60 000 компаний, использующих искусственный интеллект. Некоторые работают автоматически, как навигаторы или система рекомендаций музыки и кино. К другим нужно составлять запросы самостоятельно, чтобы получить какой-то результат.

Запрос к сервису с объяснением, что нужно сделать, называется промпт. Сегодня разбираем основные понятия и правила: что такое промпт, как его писать, что получается из разных запросов и почему.

Что такое промпт для нейросети

Промпт (от английского prompt) — это наше обращение к сервису на основе искусственного интеллекта. В промпте мы объясняем, что нам нужно получить в результате, и даём дополнительные материалы, если нужно.

Какого-то одного устойчивого вида промпта нет. В зависимости от сервиса запрос нужно составлять по-разному, и почти всегда полностью предугадать результат невозможно.

Промпты могут быть простыми, причём часто сервис сам подскажет, что можно попросить:

Что такое промпт и как его составить для нейросети
Источник: chatgpt.com

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

Что такое промпт и как его составить для нейросети
Источник: creator.nightcafe.studio

Что здесь есть:

  1. Выбор модели, которая будет рисовать картинку. Каждая модель — разная программа, которая рисует в разных стилях. Справа показаны названия некоторых доступных в сервисе моделей, их описания, сильные и слабые стороны и стоимость генерации.
  2. Текстовый промпт. Это главное поле с описанием того, что хотим получить. Можно нажать кнопку Shuffle и получить случайный промпт, который потом можно отредактировать или переписать под себя.
  3. Образец — тут можно выбрать близкую к нашей задаче по стилю картинку. Сервис будет ориентироваться на неё и нарисует итоговое изображение похожим.
  4. Дополнительные настройки позволяют задать количество изображений и их пропорции.

Что такое нейросети и почему они понимают промпты

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

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

Масляная живопись, натюрморт, подсолнухи, ваза

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

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

Почему разные ИИ-сервисы дают разные результаты

Основная причина в данных, на которых обучена модель.

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

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

Когда данные готовы, их нужно отдать модели и много раз проверить, как она их усвоила. Нужно сбалансировать первые ошибки, добавить новые материалы для корректировки, проверить качество ответов.

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

Виды промптов для нейросетей

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

Текстовые промпты

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

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

Как это может выглядеть:

Напиши код простой игры на Python, где нужно управлять шариком и уворачиваться от предметов.

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

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

Визуальные промпты

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

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

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

Лучше всего комбинировать изображение с текстовым запросом, чтобы сократить диапазон возможных выходных результатов. В этом примере мы даём изображение сервису для генерации видео и описываем, что должно происходить в итоговом ролике:

Что такое промпт и как его составить для нейросети
Источник: domoai.app

Результат примерно соответствует запросу, но вариантов реализации может быть бесконечное количество. Если повторить этот промпт, на выходе каждый раз будет получаться новое видео:

Что такое промпт и как его составить для нейросети

Гибридные промпты

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

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

Что такое промпт и как его составить для нейросети
Источник: docs.midjourney.com

Что можно узнать в документации про каждый параметр:

  1. Название настройки.
  2. Описание — за что она отвечает.
  3. Что нужно писать в промпте, чтобы она сработала.

Так могут выглядеть эти параметры в итоговом запросе:

Foggy Japanese mountain village at sunrise –ar 16:9 –q 2 –v 6 –chaos 30

Общая схема: в начале идёт текстовое описание задачи, в конце через пробел выставляются более подробные настройки. Что есть конкретно в этом промпте:

  • –ar 16:9 — aspect ratio, соотношение сторон
  • –q 2 — quality, качество. Здесь означает, что качество в два раза выше обычного, что будет затратнее по времени и стоимости.
  • –v 6 — версия движка Midjourney.
  • –chaos 30 — уровень случайности от 0 до 100, влияет на разнообразие и непредсказуемость результата.

Как правильно составить промпт

Хотя точного прогноза итоговому ответу от нейросети дать нельзя, есть несколько общих советов, которые работают в большинстве случаев. Сначала мы рассмотрим правила, а потом посмотрим на примерах, что из них получается.

Структура идеального промпта

Для обучения хороших моделей искусственного интеллекта используются чётко структурированные данные. Поэтому при составлении запросов нужно постараться попасть в эти обозначения и попытаться объяснить, почему это важно.

Вот что нужно учитывать.

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

Плохо: «Нарисуй что-нибудь на тему компьютеров и технологий.
Хорошо: «Нарисуй программиста, сидящего за столом».

Используйте примеры. Часто это помогает программе уловить общий стиль, в котором нужно генерировать ответ.

Плохо: «Картинка должна быть похожа на постер для фильмов.
Хорошо: «Используй стиль американского художника Эдварда Хоппера».

Укажите структуру, которую хотите видеть. Для картинки это может быть формат и цветовая палитра, для текста — таблица, сплошной текст, список.

Плохо: «Картинка должна быть прямоугольной».
Хорошо: «Картинка должна быть в формате 16:9 с минимумом деталей по краям, чтобы при просмотре с разных устройств не обрезалось ничего важного».

Учитывайте контекст и конечных пользователей. Иллюстрация для художественной книги будет отличаться от иллюстрации для студентов аспирантуры.

Плохо: «Картинка для широкой аудитории».
Хорошо: «Эта иллюстрация будет опубликована в статье на Хабре, её будут читать в основном технические специалисты».

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

Если вы напишете что-то вроде «На картине не должно быть роз», то вполне вероятно, что нейросеть увидит только слово «розы» и нарисует именно их. Ещё примеры:

Плохо: «На картинке не должно быть котов, гитар, кофе и программистов в капюшоне. Не рисуй ночное время суток».
Хорошо: «Программист одет в серый свитер и синие джинсы. За окном день. На столе стоит есть компьютер, кактус, кубик Рубика, несколько аниме-фигурок».

Часто в приложениях есть отдельное поле для негативных промптов. Там можно прописывать именно то, что нужно исключить.

Примеры плохих и хороших промптов

Попробуем объединить хорошие и плохие примеры выше в цельные промпты и посмотреть, что будет. Для генерации используем две разные нейросети: Kandinsky 3.0 и NightCafe.

Первый промпт: «Нарисуй что-нибудь на тему компьютеров и технологий. Картинка должна быть похожа на постер для фильмов. Картинка должна быть прямоугольной. Картинка для широкой аудитории. На картинке не должно быть котов, гитар, кофе и программистов в капюшоне. Не рисуй ночное время суток».

Результат от Kandinsky 3.0:

Что такое промпт и как его составить для нейросети

Сгенерированные варианты изображений в NightCafe:

Что такое промпт и как его составить для нейросети

Обратите внимание, как в итоговом варианте появилось именно то, чего мы просили не добавлять: программисты в капюшонах, с кофе и гитарами ночью.

Второй промпт: «Нарисуй программиста, сидящего за столом. Используй стиль американского художника Эдварда Хоппера. Картинка должна быть в формате 16:9 с минимумом деталей по краям, чтобы при просмотре с разных устройств не обрезалось ничего важного. Эта иллюстрация будет опубликована в статье на Хабре, её будут читать в основном технические специалисты. Программист одет в серый свитер и синие джинсы. За окном день. На столе стоит есть компьютер, кактус, кубик Рубика, несколько аниме-фигурок».

Что нарисовал Kandinsky 3.1:

Что такое промпт и как его составить для нейросети

Что получилось у NightCafe:

Что такое промпт и как его составить для нейросети

Это уже ближе к описанию, хотя у обоих вариантов есть свои плюсы и недостатки: Kandinsky лучше уловил манеру Эдварда Хоппера, но не смог нарисовать детали. У NightCafe хорошо получилась обстановка на столе, но общий стиль получился скорее анимационный, чем масляной живописи.

Специальные техники для эффективных промптов

Вот два приёма, которые могут помочь при промптах. Для лучшего результата лучше попробовать их все в разных сервисах и сравнить.

Обучение на примерах

Модели учились на больших объёмах данных и чаще всего хорошо умеют находить закономерности. Если вы дадите примеры того, что вам нужно, программа будет стараться подстраиваться под них.

Как учить на примерах: 

«Напиши описание товара. Пример описания: Элегантная ваза из белого фарфора, хорошо подходит для минималистичного интерьера».

Ролевые промпты

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

Как задать роль:

«Действуй как PR-менеджер с 10-летним стажем и спланируй кампанию по продвижению компьютерной игры продолжительностью в 6 месяцев. Объясни, какие методы нужно использовать и почему, а какие нельзя».

Лучшие библиотеки промптов

Чтобы не писать промпты самому, можно воспользоваться готовыми из библиотек промптов. Часто у промпта есть примерный результат, который получился у его автора.

Готовых библиотек платных и бесплатных промптов много, вот две из них.

Promptbase — большая база промптов с примерами, большинство платные:

Что такое промпт и как его составить для нейросети
Источник: promptbase.com

Prompthero — можно выбрать картинку и сразу скопировать для неё промпт:

Что такое промпт и как его составить для нейросети
Источник: prompthero.com

Как адаптировать чужой промпт под свои задачи

Лучше всего сначала разбить готовый промпт на составные части.

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

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

Бонус для читателей

Скидка 20% на все курсы Практикума до 30 ноября! Чёрная пятница и такие скидки бывают раз в год.

Вам слово

Приходите к нам в соцсети поделиться своим мнением о статье и почитать, что пишут другие. А ещё там выходит дополнительный контент, которого нет на сайте — шпаргалки, опросы и разная дурка. В общем, вот тележка, вот ВК — велком!

Обложка:

Алексей Сухов

Корректор:

Александр Зубов

Вёрстка:

Мария Климентьева

Соцсети:

Юлия Зубарева

Вам может быть интересно
hard