“Любая достаточно развитая технология неотличима от магии”.

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

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

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

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

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

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

“Проволочные” и “тканевые” промпты

Промпт-инжиниринг  —  это способ запрограммировать модель общего назначения, такую как ChatGPT или Gemini, на выполнение конкретной задачи. Он включает в себя предоставление инструкций или “цепочку” инструкций для выполнения этой работы. Однако в промптинге гораздо больше искусства, чем науки.

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

“Мама” из ткани (слева), “мама” из проволоки (справа)

Используя эту аналогию, можно определить разницу между понятиями: “промпт-инжиниринг” и “промпт-дизайн”.

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

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

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

Логан Килпатрик, руководитель команды по коммуникации с разработчиками OpenAI, сводит все к “контексту”. Чтобы модель хорошо выполняла конкретную задачу, ей нужен контекст. Такой подход делает промптинг “сугубо человеческой” задачей, поскольку требует понимания нюансов того, что люди пытаются достичь.

Рискну констатировать очевидное: это как раз то, что мы делаем.

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

Промпт-дизайн  —  итеративный процесс

Между традиционной программной инженерией и промпт-инжинирингом есть фундаментальное различие, которое стоит подчеркнуть.

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

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

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

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

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

Лично я использую шесть категорий для структурирования процесса промпт-дизайна:

  • поток;
  • роль;
  • миссия;
  • руководства;
  • примеры;
  • параметры вывода.

Сила промптов  —  в понимании пользователя

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

Поток

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

Допустим, дизайнер изначально наметил поток, состоящий из трех шагов: 1) выяснить повод для использования наряда; 2) определить стиль пользователя; 3) представить пользователю варианты одежды. Однако в ходе тестирования дизайнер замечает, что пользователи часто сообщают о том, что вдохновляет их при выборе одежды (например, “Поскольку в моей одежде преобладают нейтральные цвета, хотелось бы пополнить свой гардероб более яркими моделями”). В связи с этим дизайнер рекомендует добавить в поток четвертый промпт, в котором помощник ИИ выясняет у пользователя цель выбора того или иного наряда.

Примеры

Самый эффективный метод направить недетерминированную модель к желаемому результату  —  привести примеры выполнения поставленной задачи. Этот подход, известный как few-shot prompting, позволяет модели подражать обучающим примерам.

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

  • Ввод пользователя: “Мне нужно платье для выпускного”.
  • Ответная реакция модели: повод, выпускной.

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

Руководства

Примеры  —  мощный инструмент, но иногда модели требуется дополнительная помощь. Вот тут-то и пригодятся руководства: они помогут уточнить поведение модели  —  причем более явно, чем просто пример.

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

Например:

  • Ввод пользователя: “Мне нужно платье на выпускной”.
  • Ответная реакция модели: повод, пользователю нужно платье для танцев.

Дизайнер добавляет к промпту рекомендацию, в которой четко указывается: “Используй точную формулировку, которую дает пользователь; старайся не перефразировать его ответ”. Это указание обеспечивает дополнительный контекст для определения результата.

Время действовать

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

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

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

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Alex Klein: Prompts should be designed — not engineered

Предыдущая статьяНаш первый миллиард строк в DuckDB
Следующая статьяКак перейти от монолитной системы к событийной