Большие языковые модели, такие как ChatGPT, научились писать код на разных языках программирования, анализировать данные, предоставлять статистику и составлять прогнозы. Для таких сложных задач нужен точный запрос — промпт.
Промпт-инженер — это специалист, который «умеет общаться» с искусственным интеллектом. Он составляет текстовые запросы для того, чтобы получить от модели максимально точный ответ. Если промпт составлен неправильно, нейросеть не справится с задачей и даст неверный результат.
Мы поговорили с NLP-инженером Марией Нгуен о том, как устроена работа промпт-инженера, как войти в профессию и сколько зарабатывают такие специалисты.
Задачи промпт-инженера
У промпт-инженера две основные задачи: создать и протестировать промпт.
Сначала техническая или продуктовая команда составляет требования к результату. На основе этих данных промпт-инженер пишет запрос и оценивает ответы модели. Затем редактирует и тестирует запрос, пока нейросеть не сгенерирует нужный результат. После этого промпт добавляется в «библиотеку» — список успешных запросов для конкретных задач.
Если команда дообучает языковую модель, то есть обучает на новой информации, промпт-инженер участвует в сборе или выборе данных.
Примеры проектов, в которых участвует промпт-инженер:
- Создание инструкций для чат-бота: промпт-инженер разрабатывает фразы и вопросы, которые чат-бот использует при взаимодействии с пользователями. Например, для медицинского чат-бота он может написать промпт, чтобы бот правильно спросил о симптомах человека и дал полезные советы.
- Оптимизация запросов для поиска информации: промпт-инженер придумывает запросы, с помощью которых ИИ должен найти конкретную информацию в большой базе данных.
- Создание сценариев для генерации текстов: специалист составляет запросы для генерации статей, рассказов, стихов и другого текстового контента. Он придумывает, какой промпт сделает текст модели более интересным и логичным. Например, для описания продукта промпт-инженер выбирает и добавляет в запрос те характеристики товара, которые важны для потребителя.
- Обучение и настройка ИИ-моделей: специалист собирает примеры правильных и неправильных ответов для конкретной задачи и тем самым помогает ML-команде обучать нейросеть и улучшать ее результаты. При обучении модели для распознавания изображений промпт-инженер может создавать текстовые описания, которые она будет использовать для сопоставления с картинками.
Раньше эти задачи выполняли специалисты по Data Science и NLP-инженеры. Но с развитием больших языковых моделей многие компании начали использовать искусственный интеллект для многих задач. Командам потребовались узкие специалисты, которые умеют работать с нейросетями и могут быстро писать запросы. Так промпт-инжиниринг стал отдельной профессией.
Какие проблемы решает промпт-инженер
Несмотря на то что работа промпт-инженера кажется однообразной, он каждый день сталкивается с разными вызовами. Вот некоторые из них.
«Галлюцинация» модели
Одна из главных проблем в работе с языковыми моделями — «галлюцинация». Это ситуация, при которой модель генерирует правдоподобный, но неверный текст.
К примеру, промпт-инженер задает вопрос ChatGPT-4o: «Какой сюжет книги Марианы Энрикес “Опасности курения в постели”?»
И получает следующий ответ:
Вводная часть верна, но первого и второго рассказа в сборнике писательницы нет, а сюжет третьего рассказа описан неправильно. При этом ответ модели выглядит достаточно правдоподобным, и это может запутать человека, который не знаком с произведением.
Такое происходит, когда ИИ отвечает на основе сохраненных обучающих данных. Чтобы решить проблему, специалист должен добавить в запрос фактическую информацию по теме. Этот подход называется поисковой расширенной генерацией, или retrieval-augmented generation (RAG).
Дополнительная информация обычно хранится в какой-то базе данных. Поэтому задача промпт-инженера — написать такой запрос, который правильно использует информацию из базы знаний и исключит всё лишнее.
На генерацию модели может влиять что угодно: формат, в котором представлена информация, порядок слов и так далее. Поэтому способы решения «галлюцинации» иногда бывают нетривиальными. В моей практике был случай, когда мы продублировали в промпте наиболее релевантные фрагменты текста и тем самым улучшили качество ответа.
Ограничения ИИ
Иногда в процессе тестирования и отладки промптов специалист понимает, что модель банально не может справиться с задачей. Более умная нейросеть может, к примеру, имитировать стиль поэзии Пушкина сразу после активации, без дополнительной настройки или обучения, а другие нужно специально дообучать под такую задачу.
Сложную задачу можно разложить на более простые шаги:
— извлеки из текста сущность 1;
— извлеки из текста сущность 2;
— извлеки из текста отношение между сущностью 1 и сущностью 2.
Допустим, у нас есть система для анализа отзывов покупателей. Компания, которая продает компьютеры, хочет не анализировать весь отзыв целиком, а выделить отдельные характеристики товара и узнать мнение покупателя о каждой из них. Для этого можно использовать языковую модель.
Если написать один промпт для этой задачи, то модель может пропустить некоторые характеристики товара. Тогда стоит разделить задачу на несколько запросов:
- «Извлеки все аспекты (характеристики) товара из отзыва» — модель извлечет, например, производительность, объем памяти.
- «Извлеки из текста тональность (мнение) по отношению к каждому из этих аспектов (характеристик)».
Оценка качества генерации
Еще один вызов для промпт-инженера — оценка качества генераций текстов. В зависимости от задачи генерации могут оцениваться по разным критериям и разными способами.
Например, это можно делать с помощью человека — когда промпт-инженер вручную оценивает достоверность и качество текста. Но такой способ отнимает много времени и ресурсов. Поэтому промпт-инженер должен быстро понять, как изменения запроса повлияли на качество ответа. Для этого используются автоматические метрики. Например, если модель должна определить, к какой категории относится объект или событие, будут использоваться стандартные метрики классификации: точность, полнота, F-мера, accuracy и другие.
Как стать промпт-инженером
Для работы с искусственным интеллектом потребуется образование в области компьютерных наук. Также промпт-инженером могут стать лингвисты, которые прошли дополнительные курсы по Data Science или машинному обучению.
Ключевые навыки
- Понимание AI, ML и NLP: промпт-инженер должен быть знаком с концепциями, алгоритмами и структурами моделей машинного обучения. Создание эффективных подсказок также требует владения принципами обработки естественного языка, синтаксисом, семантикой и языковой структурой.
- Навыки программирования: основным языком программирования является Python, поэтому фундаментальные знания Python и других языков полезны для задач, связанных с разработкой сценариев, интеграцией моделей и манипулированием данными.
- Навыки работы с ML-библиотеками и фреймворками: одни из основных инструментов промпт-инженера — библиотека requests для запросов по API, фреймворки Langchain и LlamaIndex. Также промпт-инженерам необходимо уметь использовать в своей работе библиотеки PyTorch и transformers.
- Навыки коммуникации: поскольку такие специалисты часто взаимодействуют с другими командами, а также общаются с системами ИИ, они должны обладать сильными навыками письменного и устного общения, чтобы эффективно работать с заинтересованными сторонами, объяснять критические требования и понимать цели проекта.
Полезные материалы по профессии
Всем, кто интересуется профессией промпт-инженера, будет полезно почитать статьи и гайды по этой теме:
- Prompting Guide. Руководство по созданию и улучшению промптов для работы с большими языковыми моделями. В него входят актуальные статьи, учебники, модели и ML-инструменты.
- Learn Prompting. Вводный курс по генеративному ИИ и промпт-инжинирингу для начинающих. Материалы регулярно обновляются.
- Best Practices for Prompt Engineering with the OpenAI API. Руководство по созданию промптов для работы с API OpenAI. Описывает специфические форматы промптов, которые, по мнению OpenAI, дают самые полезные результаты.
Сколько зарабатывают специалисты
В среднем на hh.ru встречаются вакансии с разбросом зарплат от 100 до 200 тысяч рублей.
![Зарплата промпт-инженера в Санкт-Петербурге](https://blog.skillfactory.ru/wp-content/uploads/2024/06/prompt-ingener-zaeplata.png)
![Зарплата промпт-инженера в Москве](https://blog.skillfactory.ru/wp-content/uploads/2024/06/prompt-ingener.png)
Как и в других областях, зарплата промпт-инженера зависит от навыков и опыта работы. Поскольку профессия новая и стаж специалистов не превышает двух-трех лет, работодателей может заинтересовать опыт работы в смежных областях, связанных с обработкой естественного языка. Более высокую зарплату предлагают промпт-инженерам с хорошим техническим бэкграундом.
Промпт-инженер может развиваться в разных направлениях. Например, специалист может перейти в бизнес-аналитику или заниматься более сложными задачами в области ИИ и машинного обучения.
Что ждет промпт-инжиниринг в будущем
В будущем специалисты могут перейти от разовых задач к системной работе и создавать инструменты, которые помогут людям общаться с нейросетями.
Например, сейчас маркетологи используют возможности языковых моделей для копирайтинга. И промпт-инженеры участвуют в создании веб-интерфейсов, которые помогают генерировать качественные тексты.
Также во многих сферах начали появляться «копилоты». Это инструменты на базе искусственного интеллекта, которые содержат разные подсказки и автозаполнения для выполнения рутинных задач. В их основе — специальный промпт, который создают промпт-инженеры. Уже сейчас разрабатываются копилоты для программистов, врачей и сотрудников банков.
Промпт-инженер — главное
- Промпт-инженер — специалист, который умеет общаться с ИИ. Он составляет текстовые запросы — промпты, чтобы получить точные и релевантные ответы нейросети.
- Главные задачи промпт-инженера — создать и протестировать промпт. Он участвует в разных проектах, например создает инструкции для чат-ботов, оптимизирует запросы для поиска информации, участвует в обучении моделей.
- Для работы промпт-инженером требуются знание компьютерных наук, навыки программирования, а также понимание принципов обработки естественного языка, синтаксиса, семантики и языковой структуры.
- Основные инструменты промпт-инженера: языковые модели, языки программирования, ML-библиотеки и фреймворки.
- Зарплата специалистов в среднем составляет от 100 000 до 200 000 рублей. Промпт-инженер может развиваться в бизнес-аналитике или перейти в область машинного обучения.