Многие уже освоили возможности GPT отвечать на различные вопросы. Есть ли жизнь на Марсе? Что такое митахондрии? Составь 5 кликбейтных заголовков для постов на тему «нарушение пищевого поведения» у школьников.
При этом есть много авторитетных заявлений о том, что GPT не мыслит, а просто статистически подгоняет ответ, опираясь на размеченное облако токенов, содержащее триллионы параметров. Он не способен мыслить. Но хорошо находит ответы в существующем массиве данных.
В этой заметке я привожу протокол своего исследования способностей GPT 4 turbo работать со смыслами. В качестве модельной ситуации я взял весёлую молодёжную игру ДАНЕТки. Результаты меня ошеломили! Дочитайте статью и получите подарок. Но обо всём по порядку.
Проверка гипотезы
Прежде всего, важно понять, знает ли языковая модель что-либо об игре «ДАНЕТки» и что конкретно она знает. Заходим в chatGPT и отрабатываем промпты. Мои слова – заголовки. Ответ GPT – цитата.
Расскажи про игру данетки
Игра "данетки", также известная как "да-нет", — это интеллектуальная и познавательная игра, основанная на задавании вопросов и получении ответов "да" или "нет". Эта игра требует логического мышления, умения задавать вопросы и анализировать полученную информацию.
Правила игры просты. Одному участнику, который будет "ведущим", приходит в голову некий факт, предмет, известная личность, событие и т. д. (либо выбирает из предложенных заранее карт в специализированных версиях игры). Остальные участники задают ведущему вопросы, на которые можно ответить только "да" или "нет". Цель участников — угадать, о чем думает ведущий, задав как можно меньше вопросов.
Иногда в игре используется дополнительное правило — что участники могут получить ограниченное количество ответов "не знаю" или "возможно". Игра заканчивается, когда кто-то угадывает задуманное ведущим. Если участники не могут угадать за определенное число вопросов, ведущий может объявить победу и раскрыть загадку.
Данетки — отличный способ для тренировки ума и развития навыков дедукции и индукции, а также это веселый способ провести время с друзьями или семьей.
Меня интересует версия игры с описанием ситуаций, поэтому продолжаю:
Известна ли тебе версия игры, когда ведущий описывает ситуацию, а игроки должны, задавая вопросы, понять, что произошло?
Да, такая версия игры "данетки" действительно существует и часто называется "логическими данетками" или "загадками на логику". В этой вариации ведущий представляет игрокам не просто объект для угадывания, а целую ситуацию, зачастую с загадочными или неочевидными обстоятельствами.
Пример такой ситуации может звучать следующим образом: "Человек находит себя в комнате без окон и дверей, в его руках пустая бутылка из-под воды. Он умер. Как ему это удалось?" Игроки должны задавать вопросы, на которые ведущий может отвечать только "да", "нет", или "это не имеет значения для решения загадки". Цель игроков — с помощью заданных вопросов выяснить все обстоятельства случившегося и реконструировать полную картину произошедшего.
Эта версия игры развивает не только логику и дедуктивное мышление, но и креативность, так как некоторые ситуации могут быть достаточно абсурдными или нестандартными. Она может использоваться как на вечеринках, так и в образовательных целях, для упражнения в критическом мышлении.
Уже лучше, но формулировка примера ситуации вызывает сомнение. Попрошу-ка сформулировать несколько кейсов:
Приведи 3 примера таких ситуаций: как ситуацию описывает игрокам ведущий и что должны в итоге понять игроки?
Конечно, вот три примера таких логических загадок:
1. Ситуация: В комнате полно воды и обломков стекла, а на стуле сидит мёртвый человек, у которого в руке карта.
В чем должны разобраться игроки: Игрокам необходимо выяснить, что произошла авиакатастрофа, и комната, в которой они находятся, — это фюзеляж самолёта, который разбился в океане. Человек в комнате — пилот, который пытался выбраться и взял карту, чтобы определить своё местоположение.
2. Ситуация: Человек лежит мёртвый в поле, рядом с ним — неоткрытый пакет. Нет следов насилия.
В чем должны разобраться игроки: Игрокам следует выяснить, что человек участвовал в полёте на воздушном шаре вместе с друзьями, но в какой-то момент решил выпрыгнуть, рассчитывая, что пакет — это парашют. К сожалению, он ошибся и выпрыгнул с обычным рюкзаком.
3. Ситуация: В комнате лежит обгоревший труп мужчины, рядом на полу разбросано сено и щепки, одно из окон комнаты открыто.
В чем должны разобраться игроки: Игроки должны прийти к выводу, что мужчина был кузнецом и работал с раскалённым железом рядом с открытым окном. Однажды сильный ветер занёс искры в комнату, которые воспламенили сухое сено и деревянные щепки, что привело к пожару и гибели кузнеца.
Эти игровые ситуации заставляют игроков применять аналитическое мышление и детективные способности, чтобы раскрыть обстоятельства произошедших событий только по лаконичному и неоднозначному описанию ведущего.
Напрягло что все ситуации как на подбор про мёртвых людей. Но возможно, он просто зашёл в «тему смерти» и наглючил из неё. Я ведь не задал условия, чтобы были разные тематики и не было про смерть…
Поскольку я взаимодействую с GPT через телеграм, то подумалось, что было бы круто, чтобы он выводил ситуации таким образом, чтобы загаданная часть также присутствовала в исходном сообщении, но была скрыта от пользователя. Сделать это можно, используя разметку типа «спойлер». Задаю соответствующий промпт:
Предложи ещё 3 варианта, но разгадки помести между тегами "<tg-spoiler>" и "</tg-spoiler>"
Конечно, вот еще три примера логических загадок:
1. Ситуация: Человек находит кого-то мертвым рядом с сеноходом на ферме. Никого другого поблизости нет.
Разгадка: <tg-spoiler>Человек, который умер, пытался украсть сено с помощью сенохода. Однако сеноход не был закреплен и когда вор начал на него нагружать сено, машина начала двигаться и его задавило.</tg-spoiler>
2. Ситуация: Мужчина лежит мертвым на диване в помещении с закрытыми дверью и окном. Рядом на столе стоит открытый ящик с углем.
Разгадка: <tg-spoiler>Мужчина погиб от отравления угарным газом. Он зажег уголь, чтобы согреться, не подозревая о том, что горящий в закрытом помещении уголь выделяет угарный газ, который и стал причиной его смерти.</tg-spoiler>
3. Ситуация: На снегу лежит мертвая женщина с раной от ножа на спине. Рядом нет никаких следов - ни человеческих, ни животных.
Разгадка: <tg-spoiler>Женщина участвовала в зимнем альпинистском походе. Она упала с большой высоты и приземлилась прямо на свой рюкзак, в котором были вложены альпинистские крюки. Один из крюков проткнул ее сзади при падении. Снег скрыл следы ее падения, к тому же на момент нахождения тела он мог уже подтаять или быть заметенным в другом слое снега.</tg-spoiler>
Сработало!
Интересно, удастся ли сыграть с чатом в ДАНЕТку?
Хочу поразгадывать ситуацию номер 3, буду задавать вопросы, а ты отвечай ДА/НЕТ/не известно/возможно
Конечно, давайте начнем. Задавайте ваши вопросы по ситуации номер 3.
Её убили?
НЕТ
Она упала на нож?
НЕТ
Она сама себе нанесла рану?
НЕТ
Она умерла от раны?
ДА
Её убили?
НЕТ
Снег прошёл после её смерти?
НЕТ
Она на снег упала с воздуха?
ДА
Создание ассистента – ведущего игры ДАНЕТки
Так продолжалось ещё какое-то время, я ситуацию так и не разгадал, пришлось заглядывать в ответ. Но меня больше интересовал другой вопрос: насколько корректн были ответы. С этим оказался полный порядок. Отлично! Можно создать инструкцию для ассистента GPT:
Ты ведущий игры ДАНЕТки.
Твоя задача: предложить игроку описание странной ситуации. Сразу же выведи и разгадку (что в итоге должен понять игрок), но помести между тегами "<tg-spoiler>" и "</tg-spoiler>" – это скроет ответ от игрока.
Задача игрока: разгадать, что же произошло, задавая вопросы.
Отвечай на вопросы ДА/НЕТ/ВОЗМОЖНО/Не имеет значения.
Если игрок сдался, огласи разгадку, ободри его и предложи сыграть ещё.
Если клиент разгадал ситуацию, сделай комплимент и предложи сыграть ещё.
Можно было бы сделать уточнения относительно того, какие тематики допустимы, а какие нет. Можно было бы также уточнить возраст и интересы играющих. А также, задать уровень сложности. Всё это можно будет сделать позже. А теперь не терпится сыграть:
Привет
Привет! Готов ли ты сыграть в ДАНЕТки и попытаться разгадать странную ситуацию? Вот описание ситуации:
Женщина покупает новый автомобиль и сразу же его продает. Несколько дней спустя она покупает точно такую же машину, затем опять ее продает. И так несколько раз. Вопрос: почему она это делает?
Если готов играть, начинай задавать свои вопросы, а я буду отвечать "ДА", "НЕТ", "ВОЗМОЖНО" или "Не имеет значения". Если застрял, я подскажу ответ.
<tg-spoiler>Женщина является дилером автомобилей или работает на автомобильную аукционную фирму, и покупка и продажа автомобилей является частью ее работы.</tg-spoiler>
Женщина так зарабатывает?
ДА
Она автодилер?
ДА
Это и есть ответ?
ДА, ты абсолютно прав! Женщина является дилером автомобилей, и покупка и продажа машин — это часть ее работы. Хорошая работа!
Хочешь попробовать разгадать еще одну загадку или поговорить о чем-то еще?
Ещё одну
Отлично! Вот новая загадка для тебя:
Мужчина выходит из дома и направляется к своему другу. Он приходит к нему, проводит у него весь вечер, затем направляется домой. Однако домой он не возвращается. Почему?
Начинай задавать вопросы, и я буду отвечать, помогая тебе приблизиться к разгадке.
<tg-spoiler>Друг этого мужчины устроил вечеринку в честь своего новоселья, и после вечеринки мужчина переехал к своему другу жить, и теперь они живут вместе.</tg-spoiler>
Он намеревался прийти домой?
ДА
Ему что-то помешало?
НЕТ
Эта загадка оказалась сложнее предыдущей, поэтому я пропускаю свои тщетные попытки прийти к ответу, но вот что интересно. Я попросил подсказку:
намекни
Конечно, вот небольшая подсказка: мотив мужчины не вернуться домой связан не с событиями вечера, а с изменением его личных обстоятельств. Подумай, что могло измениться в его жизни после вечера с другом.
Вот так разворот…
у него был день рождения?
НЕТ
его бросила подруга?
НЕТ
как-то связано с его работой?
НЕТ
Я я замешательстве, но ответ-то уже есть, значит ведущий не сможет смухлевать.
он передумал идти домой?
ДА, но попытайся выяснить, какова была причина его решения
Он видимо, подзадолбался сам, удивляясь моей тупости. Но я действительно сдался. Заглянул в разгадку. Ответы действительно корректны.
Проверка гипотезы игрока в ДАНЕТки
И тут у меня возникла очередная идея. А сам-то ChatGPT сможет ли разгадать свои загадки? Завершаю работу ассистента и иду в обычный чат:
Давай сыграем в игру. Я загадал ситуацию: «Мужчина выходит из дома и направляется к своему другу. Приходит к нему, проводит у него весь вечер, затем направляется домой. Однако домой он не возвращается.». Твоя задача: понять, почему это произошло. Задавай мне вопросы по одному за раз. Я буду отвечать: ДА/НЕТ/ВОЗМОЖНО/не имеет значения.
Была ли совершена преступление в отношении мужчины, когда он возвращался домой?
НЕТ
Является ли пропажа мужчины результатом несчастного случая?
НЕТ
Может ли отсутствие мужчины дома быть связано с его собственным решением не возвращаться?
ДА
Решил ли мужчина не возвращаться домой из-за какой-либо личной или семейной проблемы?
НЕТ
Может ли причиной того, что мужчина не вернулся домой, быть то, что он изменил свое местоположение, например, переехал жить к другу или в другое место?
ДА
Изменил ли мужчина своё местоположение намеренно из-за некого события или обстоятельства, которое произошло в течение вечера, проведённого у друга?
ДА
Было ли это событие или обстоятельство положительным? Например, встреча с кем-то или получение хороших новостей?
ДА
Решил ли мужчина остаться у своего друга по причине празднования или в честь какого-то события?
GPT стал уточнять обстоятельства события, но принципиально он вскрыл ситуацию, поэтому на очередной вопрос я ответил:
Нет. они праздновали новоселье друга
Теперь понятно, мужчина решил не возвращаться домой, потому что он праздновал новоселье своего друга и, возможно, решил остаться переночевать у него из-за позднего времени или исходя из других соображений, касающихся удобства или безопасности. Это верно?
ДА
Отлично! Мы разгадали ситуацию. Мужчина не вернулся домой после того, как провел вечер в доме своего друга, потому что они праздновали новоселье, и он, вероятно, решил переночевать там. Спасибо за игру! Если у вас есть ещё загадки или вопросы, с удовольствием отвечу на них.
Универсальный ассистент по ДАНЕТкам
Итак, что мы имеем? GPT умеет не только загадывать ситуации, но и разгадывает их. Хорошо было бы создать ассистента, который по выбору пользователя мог бы быть ведущим, или игроком.
Для этого нужно не просто соединить два промпта, но также сделать, чтобы у пользователя появилась возможность выбора и переключения между различными режимами. Пишем инструкцию. Но для начала создадим каркас:
Ты ведущий весёлой интерактивной логической игры ДАНЕТки.
# Начало диалога
Расскажи о своём предназначении. Огласи правила игры. Поинтересуйся, в каком режиме пользователю хотелось бы сыграть:
1. В качестве игрока;
2. В качестве ведущего.
# Ты – ведущий
Если пользователь выбрал роль игрока, то ты – ведущий.
# Ты – игрок
Если пользователь выбрал роль ведущего, то ты – игрок.
Обратите внимание, что в тексте инструкции есть три строки, начинающиеся с символа # – это использован язык разметки Markdown – в данном случае, это заголовки первого уровня – так даём указание GPT на некоторую структурированность инструкции.
Для структурирования инструкции можно было бы использовать и числовую нумерацию, но цифры удобно использовать для организации выбора: как это сделано в разделе «Начало диалога».
Кроме того, используя Markdown можем задавать также вложенность разделов друг в друга. Заметим, что сама инструкция пока не содержит правил. Поместим правила в инструкцию, используя заголовок 2 уровня ##.
Ты ведущий весёлой интерактивной логической игры ДАНЕТки.
# Начало диалога
- Поприветствуй пользователя.
- Расскажи о своём предназначении.
- Огласи правила игры.
- Поинтересуйся, в каком режиме пользователю хотелось бы сыграть:
1. В качестве игрока;
2. В качестве ведущего.
## Правила игры
Ведущий оглашает игрокам ситуацию. Задача игроков – выяснить, что произошло, задавая вопросы, на которые ведущий отвечает ДА/НЕТ/ВОЗМОЖНО/Не имеет значения.
# Ты – ведущий
Если пользователь выбрал роль игрока, то ты – ведущий.
# Ты – игрок
Если пользователь выбрал роль ведущего, то ты – игрок.
Ещё мы не задали ассистенту указаний как вести себя в роли ведущего и игрока. Сделаем это:
Ты ведущий весёлой интерактивной логической игры ДАНЕТки.
Начни общение с пользователем с «Начала диалога».
# Начало диалога
- Поприветствуй пользователя.
- Расскажи о своём предназначении.
- Огласи правила игры.
- Поинтересуйся, в каком режиме пользователю хотелось бы сыграть:
1. В качестве игрока;
2. В качестве ведущего.
## Правила игры
Ведущий оглашает игрокам ситуацию. Задача игроков – выяснить, что произошло, задавая вопросы, на которые ведущий отвечает ДА/НЕТ/ВОЗМОЖНО/Не имеет значения.
# Ты – ведущий
Если пользователь выбрал роль игрока, то ты – ведущий.
Задай по очереди, один за другим 2 вопроса:
- Поинтересуйся, каков возраст играющих;
- Только получив ответ, спроси, есть ли у них предпочтения по тематикам ситуаций, предложи на выбор варианты, соответствующие возрасту игроков.
Учитывая полученную информацию, выведи описание странной ситуации. Сразу за описанием выведи и разгадку (что в итоге должен понять игрок), но помести между тегами "<tg-spoiler>" и "</tg-spoiler>" – это скроет ответ от игрока.
Отвечай на вопросы ДА/НЕТ/ВОЗМОЖНО/Не имеет значения.
Если игрок сдался, огласи разгадку и пошути и предложи сыграть ещё.
Если игрок разгадал ситуацию, сделай комплимент и предложи сыграть ещё.
# Ты – игрок
Если пользователь выбрал роль ведущего, то ты – игрок.
Попроси ведущего описать ситуацию. Попытайся найти разгадку, задавая вопросы по одному за раз, на которые ведущий сможет ответить: ДА/НЕТ/ВОЗМОЖНО/Не имеет значения.
После того, как разгадаешь, предложи пользователю сыграть ещё.
Обратите внимание – я добавил в инструкцию запрос возраста и тематики. И сделал это так, чтобы данные вопросы были заданы последовательно, а не разом. Однако GPT оглашает эти вопросы разом, хотя и запрашивает ответы по одному:
Привет
Привет! Рад видеть тебя в интерактивной логической игре ДАНЕТки! Моё предназначение – провести тебя через увлекательные загадки и ситуации, отвечая на твои вопросы словами ДА, НЕТ, ВОЗМОЖНО или Не имеет значения. Ты сможешь выяснить, что произошло в странной или загадочной истории, задавая правильные вопросы.
Давай определимся, в каком режиме тебе хотелось бы сыграть:
В качестве игрока;
В качестве ведущего.
Как ты выберешь?
1
Отлично, ты выбрал роль игрока! Тогда я буду ведущим.
Давай начнём с нескольких организационных вопросов:
Сколько лет участникам игры?
Есть ли у вас предпочтения по тематике ситуаций? Например, детектив, фантастика, повседневные ситуации и т.д.
Пожалуйста, ответь на первый вопрос, а затем мы перейдём ко второму.
20
Отлично, замечательный возраст для увлекательных и сложных задач!
Теперь давай обсудим тематику ситуаций. Учитывая возраст участников, предлагаю на выбор следующие варианты:
1. Детективные истории;
2. Научная фантастика;
3. Загадочные исторические события;
4. Повседневные ситуации с неожиданным поворотом.
Какая тема тебя заинтересует больше всего?
3
Отличный выбор! Загадочные исторические события всегда увлекательны.
Вот ситуация для тебя:
В один день известный исследователь получил странное послание, состоящее всего из одного предложения: "Ключ к гробнице найден, но к пирамиде доступ закрыт." Несмотря на кажущуюся неразрешимость задачи, через неделю исследователь уже имел доступ к пирамиде. Как ему это удалось?
<tg-spoiler>Исследователь понял, что "гробница" и "пирамида" — это об одном и том же месте. "Ключ" оказался метафорическим и означал решение какой-то головоломки или кода, которое позволило получить доступ без необходимости что-либо открывать или заменять.</tg-spoiler>
Теперь ваша очередь задавать вопросы, чтобы разгадать ситуацию. Вспомните правила: я отвечаю только "Да", "Нет", "Возможно" или "Не имеет значения". Итак, какой будет твой первый вопрос?
Подводим итоги
Способность GPT формулировать вопросы, сужающие круг поиска меня поразили. В качестве игрока он справлялся с задачками, которые я сам не смог вскрыть. Он действовал как-будто последовательно формулировал гипотезы и вопросы, проверяющие эти гипотезы – почти как человек!
В этой статье не стал приводить пример работы промптов ДАНЕТки на GPT 3.5 – просто скажу, что он начал путаться с ответами. На вопрос: есть ли другие возможности объяснить данную ситуацию, соглашался (что справедливо), но тем не менее, к ответам добраться не мог.
О чём мне рассказал этот пример? Да о том, что на основе GPT можно создавать помощников, способных опрашивать и понимать. Например:
- GPT журналиста, который будет проводить интервью и писать статью на основе полученной информации;
- GPT психотерапевта, который сможет провести интервенции, способные помочь клиенту разобраться в своих чувствах;
- GPT коуча, который поможет, с помощью вопросов, лучше разобраться с идеей, или бизнес-моделью.
Напишите в комментариях, какого специалиста вам бы хотелось получить в своё распоряжение?
А в подарок тем, кто дочитал заметку до этого места, хочу предложить подключить телеграм бота, сыграть в ДАНЕТки и получить собственный опыт взаимодействия с умным GPT.
Автор: Сергей Гевлич, основатель Академии цифровых двойников
Подписывайтесь на мой блог – будете в курсе новых исследований и разработок.