Может показаться, что взаимодействие с GPT — это «забрасывание» промта в поисках хорошего ответа: чем лучше соткан наш промт, тем удачнее будет результат.
Мысль верная, однако, как говорят математики, это необходимое, но недостаточное условие.
В этом параграфе мы выделили три основных паттерна взаимодействия с моделью, различая их по способу и логике конструирования последовательности наших вопросов и реплик. Вот они:
- «Вопрос — ответ».
- «Ход размышления».
- «Актуализация знаний».
Количество приёмов промтинга растёт каждый год. И помимо приведённых паттернов существует много вариаций. Однако начнём мы наше знакомство с этих трёх, поскольку они лежат в основе других приёмов.
«Вопрос — ответ»
Подобный подход наиболее интуитивен, и чаще всего именно его мы используем в первых контактах с генеративными технологиями. Логика такой стратегии вырастает из привычного способа работы в интернете, когда мы просто задаём вопрос в поисковой строке.
Суть: мы формулируем вопрос и отправляем его умному ассистенту. Мы можем задать такой вопрос без примера или снабдить его одним или несколькими примерами. С их помощью мы будто бы «пристреливаемся», чтобы максимально точно попасть в цель. Поэтому иногда такие стратегии называют one-shot — с одним примером или few-shot — с несколькими примерами.
Стратегия «Вопрос — ответ» полезна при двух условиях:
- область ответа хорошо известна GPT;
- наш вопрос может быть понят без дополнительных вводных или примеров (или без большого их количества).
Оба условия чаще всего соблюдаются, когда наш запрос касается общеизвестных и достоверных фактов, дат, данных или иной информации.
Вариант стратегии с одиночным запросом, как правило, содержит только сам вопрос или поручение плюс один пример. При множественном запросе мы снабжаем промт несколькими образцами, которые позволяют показать, как мы понимаем связку вопроса и ответа.
«Вопрос — ответ» без примера (zero-shot):
Укажи даты жизни первых трёх российских князей после 850 года.
«Вопрос — ответ» с примерами (few-shot):
Напиши пару слов для объяснения базовых экономических понятий; первое из них — экономический термин, второе — его смысл.
Например:
● деньги — эквивалент
● рынок — обмен
Мы можем построить стратегию, упаковав её в один вопрос или разделив наше взаимодействие на серию обращений и ответов. Вторая стратегия иногда оказывается более эффективной, если мы имеем изначально не очень точную формулировку вопроса. Вместе с GPT мы можем уточнить запрос.
«Ход размышления»
Если «Вопрос — ответ» фокусируется на том, как задать наиболее точный и понятный вопрос, то «Ход размышления» использует другой метод. Этот паттерн иногда называют «цепочка размышлений» (Chain-of-thoughts).
При такой стратегии в обращении к GPT мы стремимся показать логику конструирования ответа на наш вопрос, как бы свой ход размышлений (то есть вовсю используем принцип логичности запроса). Общая цель в том, чтобы разбить большую задачу на несколько более мелких логических шагов.
Двигаясь такими шагами и показывая свои размышления, языковая модель сможет наиболее точно решать задачи. Кроме того, мы сможем легче скорректировать ошибку, если заметим её в цепочке рассуждений.
Подобный паттерн легче всего удаётся при разборе близких или аналогичных к нашему запросу задач или примеров. То есть сначала мы демонстрируем, какими шагами движемся в разборе сходных вопросов, а потом ставим вопрос.
Это пригодится для задач:
- требующих конструирования решения;
- где для проверки результата необходимо видеть логику решения.
Следует отметить, что последние версии GPT довольно часто сами определяют необходимость подобной цепочки размышления, особенно ярко это видно, когда они решают математические задачи.
Пример — запрос без стратегии «Ход размышления»
У Сергея день рождения. Он пригласил в гости 10 друзей. Половина поехала на автобусе и проехала 3 остановки, потратив по 5 минут между остановками. Пятеро поехали на такси и, застряв в пробке, потратили вдвое больше времени. Сколько всего времени ждал Сергей гостей, если они выехали одномоментно?
Пример — запрос, использующий стратегию «Ход размышления»
Реши задачу, показывая ход размышления и используя пример:
Пример:
Задача: // Это задача-пример!
У Петра есть 6 друзей. Трое ездят на работу на автобусе, проезжая 2 остановки по 10 минут от одной до другой. Ещё трое ездят на машинах и проводят в пробках 30 минут. Кто дольше едет на работу?
Ответ:
Трое друзей ездят на автобусе. Они выезжают одновременно.
Три друга проезжают 2 остановки.
Между 3 остановками 2 пролёта, каждый пролёт — 10 минут.
Значит трое друзей едут 2 × 10 = 20 минут
Трое других ездят на машинах. И проводят 30 минут в дороге.
20 < 30, значит, дольше на работу ездят друзья на машинах.
Задача: // А вот это уже та, на которую ищем ответ
У Сергея день рождения. Он пригласил в гости 10 друзей. Половина поехала на автобусе и проехала 3 остановки, потратив по 5 минут между остановками. Пятеро поехали на такси и, застряв в пробке, потратили вдвое больше времени. Сколько всего времени ждал Сергей гостей, если они выехали одномоментно?
Паттерн «Ход размышления» имеет множество вариаций. Один из них — «Самосогласованный ход размышлений». Хитрость заключается в том, чтобы показать GPT несколько вариантов решения задачи и попросить собрать решение также несколькими вариантами. Такой приём позволяет языковой модели самой увидеть разные решения и оценить их корректность.
Как и в случае с паттерном «Вопрос — ответ», «Ход размышления» может быть реализован через диалог, а не одиночный запрос. Пожалуй, диалоговый формат даже более предпочтителен для такой стратегии. В таком варианте мы можем меньше сил уделить примеру, но больше — разделению большой задачи на отдельные шаги.
Пример — ход размышления
Промт 1
Давай решим задачу:
Шаг 1. У Сергея день рождения. Он пригласил в гости 10 друзей. Половина поехала на автобусе и проехала 3 остановки, потратив по 5 минут между остановками. Сколько времени они потратили на дорогу?
Промт 2
Шаг 2. Пятеро поехали на такси и, застряв в пробке, потратили вдвое больше времени. Сколько времени они потратили на дорогу?
Промт 3
Если друзья из Шага 1 и друзья из Шага 2 выехали одновременно, сколько всего времени ждал Сергей гостей?
Одним из дополнительных приёмов стратегии является прямая просьба к большой языковой модели показать ход размышлений.
И ещё — иногда в промтинге полезными оказываются неожиданные фразы. Например, часть исследователей и практиков говорят, что если добавить фразу «Расслабься, никуда не спеши», то модель генерирует более длинный и подробный ответ. Плюс он оказывается более точным.
«Актуализация знаний»
При решении задач вместе с GPT нам важно быть уверенными, что она использует актуальное знание — и в части его достоверности, и в части специфики нашей конкретной задачи. Чтобы обеспечить это, мы можем до постановки задачи произвести такую сборку знания для последующего построения на его основе ответа. Этот паттерн называют ещё «Сгенерированное знание» (Generated knowledge).
Суть паттерна — до промта вместе с языковой моделью создать контекст предварительного знания для ответа. Это можно сделать двумя путями.
- Первый: самостоятельно дать серию пояснений или фактов.
- Второй: запросить факты, данные или иную информацию у GPT.
Это пригодится:
- для запросов или задач, требующих конструирования ответа или решения;
- при наличии «знания» или возможности его найти с помощью языковой модели.
Общая механика «Актуализации знаний» заключается в двух шагах. Первый мы обозначили выше — это создание контекста предварительного знания. Второй — это интеграция знания в наш ответ.
Эти последовательные такты общения могут комбинироваться в разных итерациях — например, серия вопросов к языковой модели, чтобы собрать необходимую информацию (такт актуализации), а потом серия уточняющих запросов с основной задачей (такт интеграции).
Пример — актуализация знаний.
Общая задача: написать 10 вопросов для эссе по наиболее заметным учёным в области компьютерных наук.
Такт актуализации
Промт:
Собери информацию о 2 наиболее заметных учёных в области компьютерных наук, используя пример.
Пример:
Норберт Винер. Дата рождения: 1894. Дата смерти: 1964.
Что создал: Основатель кибернетики и теории искусственного интеллекта.
Главный труд: Книга «Кибернетика», опубликована в 1948 году.
Ответ:
- Алан Тьюринг. Дата рождения: 1912. Дата смерти: 1954. Страна: Великобритания. Что создал: Внёс вклад в создание компьютера, способного выполнять программу, хранящуюся во внешней памяти. Главный труд: «О вычислимых числах».
- Джон фон Нейман. Дата рождения: 1903. Дата смерти: 1957. Страна: Венгрия, США. Что создал: Концепцию компьютера с хранимой в памяти программой, теорию клеточных автоматов, теорию игр и многое другое. Главный труд: «Теория самовоспроизводящихся автоматов».
Такт интеграции
Промт
Создай к каждому пункту списка два вопроса, используя пример:
Список:
- Алан Тьюринг. Дата рождения: 1912. Дата смерти: 1954. Страна: Великобритания. Что создал: Внёс вклад в создание компьютера, способного выполнять программу, хранящуюся во внешней памяти. Главный труд: «О вычислимых числах».
- Джон фон Нейман. Дата рождения: 1903. Дата смерти: 1957. Страна: Венгрия, США. Что создал: Концепцию компьютера с хранимой в памяти программой, теорию клеточных автоматов, теорию игр и многое другое. Главный труд: «Теория самовоспроизводящихся автоматов».
Пример:
Информация:
- Алан Тьюринг. Дата рождения: 1912. Дата смерти: 1954. Страна: Великобритания. Что создал: Внёс вклад в создание компьютера, способного выполнять программу, хранящуюся во внешней памяти. Главный труд: «О вычислимых числах».
Ответ:
Вопрос 01 к информации 01: В каком году родился Алан Тьюринг?
Вопрос 02 к информации 01: Какой главный вклад в науку?
«Актуализация знаний» может комбинироваться с различными вариантами «Хода размышлений». Особенно это полезно, когда у нас мало исходных данных в задаче и мы не можем без дополнительного «знания» разбить её на подшаги.
Вот и всё — теперь вы знаете основные паттерны для эффективного промтинга. Прежде чем двигаться дальше, попробуйте применить их на практике.
А в следующем параграфе мы расскажем о том, как проверить достоверность ответов GPT.