Промтинг — термин из области обработки естественного языка, которым обозначается общение человека и нейросети. Строится общение просто: мы — люди — даем машине запрос, она отвечает нам результатом, созданным при помощи алгоритмов машинного обучения. Но результат зависит от того, как именно составлен запрос. Напоминает общение людей друг с другом: чем лучше сформирована просьба, тем релевантнее получится ответ. Значение имеет даже интонация.
Что нужно знать о промте
Промт может быть в формате вопроса, фразы, предложения — чего угодно. Иногда приходится перебрать несколько вариантов, чтобы добиться от нейросети нужного результата. И совсем не факт, что если вы будете спрашивать одно и то же у разных нейросетей, ответ получится одинаковым. Модели тренируются на различных массивах данных, некоторые имеют доступ в интернету и даже способны гуглить что-то самостоятельно.
Процесс манипуляции с запросом для получения идеального результата называется промт-инжинирингом, и сейчас это очень востребованное направление в IT. Промт-инженеры обучают нейросети для компаний, например, если нужно создать чат-бота для компании.
Много и подробно мы пишем о промт-инжиниринге и нужных для этого скиллах в блоге «Я зерокодер», а еще рассказываем о новом IT-направлении на бесплатном вебинаре. Узнайте, как войти в айти без знания кода и стать востребованным специалистом!
А пока поделимся секретами составления качественных промтов. Есть несколько подходов, принятых среди специалистов по большим языковым моделям: они называются zero-shot, one-shot, few-shot и chain-of-thought. Приблизительно это можно перевести как «без примеров», «один пример», «несколько примеров» и «цепочка мыслей».
Zero-shot подход: без примеров
Во всех гайдах говорится, что чем больше примеров вы предоставите нейросети, тем точнее будет ее ответ. Это правда. Но действительно хороший промт-инженер пользуется несколькими подходами, потому что только так можно получить идеальное решение.
Zero-shot подход подразумевает, что вы не даете нейросети никаких примеров, опираясь исключительно на ее способность понять ваш запрос и на те данные, на которых она была обучена.
Например, вы пишете такой промт:
— Проведи анализ настроения следующего текста и оцени его как нейтральный, негативный или позитивный. Текст: «Карбонара в этом ресторане была посредственной».
Нейросеть отвечает:
— Настроение: негативное.
Никаких специфических данных для анализа поступающего промта нейросеть не получает. Того же результата можно добиться, используя, например, популярное вступление для промта: «Фламинго — это…». Система продолжит предложение, предоставив информацию из базы данных. Ей не нужны уточнения, она пользуется своими алгоритмами, информацией и умением понимать контекст.
One-shot и few-shot подходы: с примерами
Несмотря на то, что нейросеть способна генерировать результат без примеров, и делает это весьма эффективно, в случае с более сложными промтами она может испытывать трудности. В такой ситуации примеры можно и нужно использовать — и подход, когда мы буквально показываем большой языковой модели, что именно хотим от нее, называется one-shot и few-shot подходы. В первом случае мы даем ей один пример, а во втором — от двух и более.
Когда это может использоваться? Например, если мы изобретаем несуществующее слово. Для того, чтобы нейросеть научилась использовать его корректно, нужно сначала объяснить ей значение и показать примеры употребления.
Например, мы пишем:
— «Гакбакить» означает прыгать от радости. Пример употребления: «Получив письмо от возлюбленного, Ирина начала в восторге гакбакить по комнате». Напиши свой пример с использованием этого слова.
И получаем ответ:
— Когда Максим узнал, что его стартап получил инвестиции, он начал гакбакить по всей квартире, словно детеныш кенгуру, испытывающий первые скачки радости.
Соответственно, подход с примерами можно использовать, если вы пишете чат-бот для какой-то узкоспециализированной области. Или если планируете создать свою фэнтези-вселенную — почему нет.
Chain-of-thought подход: следим за ходом мысли
Иногда нейросети ошибаются, и лучший способ исправить ситуацию — предложить им поразмыслить над своими ошибками. Процесс активируется простой командой: «Давай подумаем над этим шаг за шагом». Именно промтинг с использованием этой волшебной фразой и называется подходом chain-of-thought (CoT), буквально «цепочка мыслей».
Современные нейросети GPT делают это в автоматическом режиме.
Например, мы пишем:
— В среднем Сергей может ударить 25 раз за минуту. Бой длился на протяжении 5 раундов, каждый раунд занял 3 минуты. Сколько ударов нанес Сергей?
И нейросеть отвечает:
Это и есть цепочка мыслей — размышление над ответом шаг за шагом.
Подход может быть как с примерами, так и без них: zero-shot-CoT и few-shot-CoT. Нейросеть можно научить последовательно выполнять алгоритм для того, чтобы прийти к определенному результату. Это очень полезно, когда мы создаем сложный сценарий.
Хороший промт-инженер сочетает разные подходы и использует те, которые лучше всего подойдут для определенной ситуации. Смело экспериментируйте — тем более, что специальность пока очень молода и не имеет четких правил.