Журнал / будущее

Кто такой промт-инженер и чем он занимается

Умение писать качественные и эффективные запросы к нейросетям теперь считают необходимым навыком. Сможет ли оно заменить программирование? Обсудили с Валентином Хрульковым, учёным-исследователем из Yandex Research

Расскажи о себе: как ты попал в Яндекс и чем сейчас занимаешься в компании?

Я учился в МГУ, на мехмате, и в аспирантуре в США, а потом перевёлся в Россию — в Сколтех, на направление Data Science. В это время Яндекс создал премию за успехи в области искусственного интеллекта. Я подал заявку на участие, выиграл и попал на стажировку в Yandex Research. После стажировки перешёл в штат и до сих пор работаю в этом направлении компании.

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

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

А что такое промт-инжиниринг, если простыми словами?

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

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

Картинка по запросу «Нарисуй утро в деревне»
Картинка по запросу «Нарисуй утро в деревне»
Картинка по запросу «Нарисуй утро в деревне, высококачественное изображение, высокая детализация, фотореалистично»
Картинка по запросу «Нарисуй утро в деревне, высококачественное изображение, высокая детализация, фотореалистично»

Почему результат, который выдаёт модель, сильно зависит от формулировок в запросе?

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

Формулируя промт, мы можем явно уточнять качество желаемого результата — например, используя эпитеты «хороший», «великолепный», «высококачественный». Конечно, нужно ещё и конкретизировать задание для нейросети, описывая детали, но и приведённый метод может улучшить результаты.

А можешь сформулировать ещё несколько принципов написания промтов для нейросети?

Для получения простых результатов от хороших моделей каких-то особых хитростей нет. Достаточно явно сформулировать задачу, подробно и чётко попросить сделать то, что нам нужно, — и результат обычно бывает неплохой. Такие системы, как ChatGPT и YaGPT, в подобных случаях неплохо работают «из коробки».

Если модель не даёт удовлетворительного ответа по простому описанию, можно привести для неё несколько примеров и попросить выдать что-то подобное. Допустим, мы хотим загрузить в модель несколько пользовательских отзывов и попросить её вывести резюме, что в целом думают клиенты. Эта задача не из простых, и здесь можно привести примеры, указав, на что именно нужно обращать внимание в отзывах. С помощью примеров можно создать описание товаров, письмо, набросок в соцсети.

Ещё один хороший совет — исследовать лучшие практики. Сейчас можно найти много ресурсов (например, «Хабр»), где люди рассказывают, какие ключевые слова наиболее эффективны для распространённых моделей. Причём не в целом для всех задач, а по отраслям: для разработчиков, студентов, специалистов по разметке данных. Скажем, иногда можно попросить, чтобы модель представила себя галактическим судьёй, журналистом, простым покупателем или инженером.

Можно ли выделить промт-инжиниринг как специальность? Как ему научиться?

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

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

Есть академические статьи, которые исследуют промт-инжиниринг. Появляются и книги, например «GPT студентам. 580 промптов, способных решить любую проблему», и целые руководства по промт-инжинирингу. В сети полно самых разных ресурсов — читайте и повторяйте за другими специалистами.

Промт-инжиниринг — профессия будущего? Или мода на него быстро пройдёт?

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

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

Как нейросети будут нам помогать?

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

Будут ли нейросети полезны при создании новых прорывных продуктов — неизвестно. Пока кажется, что вряд ли. Будущее покажет.