Скрипт на Python своими руками
Google Sheets template: https://docs.google.com/spreadsheets/d/1I951dcIb423RpkqZekGnomzsrznYi1_W5aCvWzsH7GA/ Python script: https://github.com/liamtrotzuk/gpt3-dream-diary
В качестве эксперимента я вел простой дневник сновидений в Google Sheets около 3 месяцев, записав за этот период около 35 снов. Затем я использовал простой скрипт Python, чтобы прочитать последние 10 снов и передать их модели машинного обучения языка GPT-3 от OpenAI, попросив модель обобщить сны и найти символические тенденции, чтобы легко продолжать работать с беспристрастными вкладками. на мое общее подсознательное психическое состояние.
Я был вынужден выполнить этот быстрый проект из-за вновь обретенного желания размышлять о странных сценариях, которые вызывает в воображении мой разум, когда он спит, в сочетании с Б. незаинтересованностью в том, чтобы тратить время на попытки обобщить сны (с помощью качественных или количественных средств) из-за возможность личной предвзятости, связанная с C. нежелание позволить другому человеку суммировать мои сны из-за частного характера того, что в них содержится.
В то время я играл с GPT-3, и мне пришло в голову, что беспристрастная машина, которая уже зарекомендовала себя как очень искусная в написании хороших резюме высоко абстрактных произведений художественной литературы (таких как отчеты о книгах), была бы превосходной дискретной машиной. , и эффективный по времени инструмент для обобщения странных непоследовательностей и странного символизма человеческих снов.
Случайная выборка из 3 из 35 записанных мною снов:
А. «Вы наблюдали, как самолеты взлетали и приземлялись из аэропорта в Бронксе, взлетно-посадочная полоса которого была окружена деревьями. До этого вы ехали по линии метро, которая делала петлю вокруг парка в Бронксе, и это было очень похоже на Ван Кортланд. Однако пока вы наблюдали за самолетами, возникла воздушная угроза. Ведьмы на метлах, которые могли атаковать нас сверху какими-то пылающими тыквенными гранатами. Это была постоянная, постоянная угроза, но ее недостаточно, чтобы заставить нас прекратить наблюдать за самолетами».
Б. «Под квартирой открылся хозяйственный магазин, и вы были очень взволнованы».
C. «Вы ехали на метро. Вы были над землей где-то в Бруклине, пытаясь пробраться дальше в БК. Вы пошли не в ту сторону (входя в лифт в сторону Манхэттена), но исправились. Затем вы вошли в обширную, похожую на пещеру станцию, помещение с уклоном вниз, со сложной серией отверстий наверху, через которые проникал солнечный свет. Бассейн/фонтан спускался вниз по всей длине станции. Вы были одни, хотя знали, что дно ведет к большей станции, где больше людей. Вы хотели добавить ее в свой список «Топ-3» любимых станций метро. Следующее, что вы знаете, это то, что вы катаетесь на байдарках на пляже (похоже, что это было в Ванкувере, хотя вы не были уверены), и вы подплыли к яхте Тома Хэнкса, пришвартованной у берега. Том был на палубе и перекинулся с вами несколькими словами. Он сказал, что они скоро отчаливают. Солнце начало садиться. На пляже было многолюдно, и в водах стояло еще несколько лодок. Вы несколько раз падали с доски для весла — ваши навыки казались ржавыми. Наконец, вы начали двигаться вперед, поняв, что вам следует больше ловить рыбу».
Все 3 этих сна входят в число последних 10 снов, которые я запомнил, поэтому они были среди тех 10, которые были прочитаны сценарием. Я вложил эти 3 мечты плюс еще 7 в модель Da Vinci GPT-3, самую мощную из моделей OpenAI (для коммерческих приложений пользователи могут выбрать более быструю модель за счет мощности). Я установил температуру — меру риска, на который модель готова пойти, — 0,9, довольно высокое значение, которое дало самые интересные и небуквальные результаты. Вы можете прочитать больше о том, как OpenAI классифицирует рискованные ответы ИИ здесь.
Поэкспериментировав с различными подсказками, вы сможете быстро получить общее представление о том, где машина демонстрирует последовательность и связность при анализе текста. В конце концов я остановился на том, чтобы задать 3 общих полезных вопроса, от наиболее конкретных до наименее конкретных, которые, как я надеюсь, дадут полезную сводку высокого уровня о том, как тематически развивались мои сны:
#1 openai.Completion.create(model=“text-davinci-002",prompt=“Is the following list of dreams predominately positive or predominately negative or predominately neutral? How many are positive? How many are negative? How many are neutral?” + STR_dreams_last_10,max_tokens=2000,temperature=0.9) #2 openai.Completion.create( model=“text-davinci-002",prompt=“What does the following list of dreams say about the dreamer’s mental state?” + STR_dreams_last_10,max_tokens=2000,temperature=0.9) #3 openai.Completion.create(model=“text-davinci-002",prompt=“What is the overarching theme of the following list of dreams?” + STR_dreams_last_10,max_tokens=2000,temperature=0.9)
В первый раз, когда я запускал эти подсказки, модель возвращала для каждого следующее:
- «text»: «\n\nЕсть 5 положительных снов, 2 отрицательных и 3 нейтральных сна».
- «текст»: «\n\nВозможно, спящий беспокоится о предстоящем событии».
- «text»: «\n\nОсновная тема следующих снов — побег».
Все 3 ответа интересны, и как минимум 1+2 во многом точны. Первый запрос — «преимущественно положительный или преимущественно отрицательный?» — представляет собой всего лишь грубый анализ тональности, точность которого проще всего оценить.
Сопоставив каждый сон с моими собственными суждениями об относительной позитивности или негативности, я согласился с подсчетом GPT-3: 5 позитивных (один из которых был сном о хозяйственном магазине), 2 негативных (один из которых был наблюдением за самолетом, ведьмой). -мечта об атаке) и 3 нейтральных (одна из которых была мечтой Тома Хэнкса о станции метро/катании на байдарках на яхте).
Это впечатляет, несмотря на возможность предвзятости в моем собственном анализе настроений моих собственных снов (по-настоящему беспристрастный анализ попросил бы других ранжировать мои сны, чтобы проверить утверждения GPT-3, но я не стал этого делать). и в целом мы можем считать эту 1 из 3 подсказок полезной и точной на данный момент.
Реакция скрипта на вторую подсказку — беспокойство по поводу предстоящего события — более качественная, но ответ машины кажется точным и для этой подсказки. Я довольно легкомыслен и часто не особо беспокоюсь о будущих событиях, но есть несколько надвигающихся событий в моей жизни, которых я определенно опасаюсь в настоящее время — гораздо больше, чем обычно — так что GPT-3 делает поддающийся проверке утверждение, которое в целом совпадает с конкретными реалиями моей жизни, отличными от статус-кво.
Опять же, эксперимент, основанный на более эмпирических методах, вероятно, попросил бы выборку сторонних наблюдателей за моей жизнью оценить точность утверждения машины с учетом их знаний о моей реальной жизни и психическом состоянии, но простая самостоятельная проверка вменяемости должна достаточно для целей этого небольшого эксперимента.
Реакция машины на 3-ю подсказку больше похожа на гороскоп в газетной колонке, предназначенный для того, чтобы означать все для всех людей — GPT-3, вероятно, мог бы вернуть почти любую туманную концепцию, от фактического «побега». ' до "мужества" до "теплоты" или любых других обобщенных терминов в этом роде, и я бы, вероятно, тщательно отобрал необходимые события и мысли в моей жизни, чтобы поддержать эту реакцию. «Побег» кажется важной темой в моей жизни, но когда это не так? Разве не все ищут спасения? Тем не менее, я наслаждаюсь глупым вербальным тестом Роршаха не меньше, чем любой другой человек, поэтому я решил оставить третью подсказку в качестве забавного напоминания о том, что машина, обученная на человеческих данных, может быть такой же тупой и расплывчатой, как люди.
И я планирую продолжать использовать этот простой в использовании скрипт, чтобы в будущем получить отличное краткое изложение моих мечтаний. Хотя я все еще глупый новичок в экспериментировании с языковыми моделями ИИ, это упражнение послужило хорошим предлогом для настройки программного доступа к GPT-3 и экспериментов с ним, пусть и тривиальных.