Denis Zelenykh

Универсальный фреймворк для работы с нейросетями

Привет, интернет! Меня зовут Денис Зеленых, я дизайнер, арт-директор, а также ревьюер в Яндекс Практикуме. В этой статье хочу поделиться универсальными рекомендациями по написанию промтов для нейросетей.

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

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

Ранее я делился своим личным топом нейросетей для дизайнеров, в этой подборке. Можете ознакомиться с ним, ели пока не нашли подходящие варианты для себя.

Описанные выше нейросети можно условно разделить на три типа:

1. Сети, которые работают как приложение, где можно нажимать кнопочки и выбирать оптимальные настройки

2. Нейронки, обрабатывающие текстовые запросы

3. Гибриды

Если с первыми всё относительно понятно, то со вторым типом нейросетей необходимо взаимодействовать определённым образом, составляя понятные промты (запросы), чтобы получить необходимый результат.

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

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

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

Предлагаю использовать следующий фреймворк для составления промта:

1. Общая инструкция — задаёт общий стиль ответа, ситуацию, ролевое поведение модели: «Ты поэт. Ты всегда отвечаешь стихами».

2. Запрос пользователя — вопрос или инструкция, которые будут выполняться моделью в ходе генерации ответа: «Что такое небо?»

3. Контекст — дополнительная информация, необходимая модели для подготовки ответа: «Сформируй ответ с использованием слова “лазурь“».

4. Формат ответа — описание формата ответа или его пример: «Ответ подготовь в виде стихотворения из четырёх строк».

Полный промт (запрос) будет звучать следующим образом: «Ты поэт. Ты всегда отвечаешь стихом из четырёх строк. Что такое небо? Сформируй ответ с использованием слова «лазурь». Ответ подготовь в виде стихотворения».

И вот что нам на наш запрос ответил ChatGPT:

«Лазурь небес — безбрежная стихия,
Там звёзды, свет и облаков игра.
Пронизывая высь, парят как в снах мессии,
И манит в даль небесная кора»

А вот что нам ответил YaGPT:

«Небо — это бескрайняя лазурь,
Что манит нас своей красотой.
Оно как будто шепчет: “Не грусти!”
И дарит нам покой»

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

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

Вот такой результат получился в Миджорни:

Универсальный фреймворк для работы с нейросетями

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

ИИ предложил совершенно разные варианты на выбор:

Универсальный фреймворк для работы с нейросетями

Промт звучал так: «Ты художник компании Пиксар, нарисуй небо в своём фирменном стиле. Изобрази тёмное ночное небо, с луной. Луна расположена в центре кадра»

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

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

Вот что у меня получилось когда я закинул в него картинку со слоном и запросом описать её.

Попросил бота описать картинку

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

Я перевёл на английский составленный ChatGPT запрос, закинул в Midjourney и вот что получилось:

Картинка подготовленная Midjourney, по запросу составленному ChtaGPT

А если закинуть картинку в YandexGPT, в Яндекс браузере, сетка коротко опишет что изображено на картинке и предложит сгенерировать промпт в других сервисах, что тоже полезно.

Универсальный фреймворк для работы с нейросетями

Эта статья не является исчерпывающим руководством по написанию промтов для всех существующих нейросетей.

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

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

Пара сервисов, помогающих с написанием промтов для Midjourney:

Гайд для начала работы с Midjourney
Полный гайд по работе с Midjourney
Библиотека промтов для Midjourney Комьюнити миджорни

Сервисы с промтами для Dalle:

Интересная подборка промтов
И ещё немного промтов для в вдохновения

Промты для Runway:

Небольшая подборочка с примерами
И тут ешё немного примеров для вдохновения

Подборка промтов для Suno:

Рекомендации по работе с ИИ
Классная подборочка промтов

Таких сервисов и подборок довольно много в открытых источниках. Их вполне можно использовать в работе. А для достижения наилучшего результата следует опираться на описанный мной алгоритм составления запросов.

Отрицательные результаты работы и галлюцинации ИИ

Иногда возникает ситуация, когда нейросеть не знает ответа или часть ответа на вопрос. В таком случае она может ответить: «Я не знаю ответа на этот вопрос» или «У меня нет информации для ответа».

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

Причины галлюцинаций модели бывают разные:

• Нехватка контекста — нейросети недостаточно информации для корректного ответа

• Неправильная формулировка вопроса или инструкции

• Настройки внутренних параметров генерации ответа

• Недостаточный объём данных, использованных при обучении модели

• Отсутствие механизма проверки фактов перед генерированием ответа

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

Ранее я говорил о третьем типе интерфейсов нейросетей — комбинированном. Они выполнены в формате полноценных редакторов графики, видео или аудио и дополнительно содержат консоли для ввода промтов, например, Recraft. Для них также применимы выше описанные правила составления промтов, а для достижения оптимального результата необходимо пробовать различные комбинации запросов.

На этом у меня всё, спасибо за внимание. Желаю вам успехов в освоении нейронных сетей!

Интересуешься дизайном привычных вещей и технологиями – подписывайся на мой канал в Телеграме @Lorrrem 👾