Как я обучал Perplexity юмору. Что из этого получилось?
В данной статье содержится краткая авторская теория юмора (далее как теория трех измерений), и результат применения этой теории для написания шуток LLM-кой, в частности, Perplexity.ai (бесплатная версия).
лично для меня это первая шутка, созданная ИИ, которая меня хоть совсем немного, но рассмешила
В целях экономии вашего времени, чтобы вы могли сразу решить стоит ли читать данную статью, начну с примеров созданных шуток. Они, конечно, взяты не случайно, а по принципу относительной успешности, но особо они не подбирались, то есть не было такого, что я заставлял генерировать ИИ сотни или тысячи шуток, чтобы выбрать из них одну самую удачную.
по моим наблюдениям, perplexity в рамках одного диалога склонен повторять свои шутки, но в данном диалоге при повторе шутки он добавлял к ней еще одну фразу, к этой добавил следующую: «Тогда я возьму сразу два батончика, чтобы получить суточную норму!»
к этой шутке при повторе он добавил: «Ну, тогда главную роль сыграет пылесос!»
физики шутят, только программисты; уж не знаю почему, но perplexity любит шутить про пиццу
кто из нас не ждет, что ему откроют консерву
по правде говоря, я немного устал придумывать эти надписи
Думаю, по объяснениям perplexity, вы уже в общих чертах поняли суть теории (подробности будут ниже, если вы к тому моменту еще будете здесь). Далее я попытался добавить к этому то, что perplexity уже хорошо знает, а именно общепринятую конструкцию сетап — панчлайн. Но, в целом, этот подход вполне ожидаемо не оправдал себя (пока, во всяком случае).
это самое осмысленное, что таким образом удалось получить; запрос содержал в себя:»…помещай неожиданность и сложность в сетап, а оправданность в панчлайн»
По сути, статья начинается здесь
Итак, эту теорию я придумал еще 10 лет назад (в более окончательном виде — 9). Вообще первоначально — это теория юмора как основного фактора антропогенеза [если быть более точным, эволюционного формирования протоязыкового мышления благодаря протоюмору, и потом развитие обоих по положительной обратной связи до определенного момента], но т.к. это не касается напрямую тематики данной статьи, она вкратце будет изложена лишь в отступлении.
Что же касается самого юмора, то в основе своей, это прежде всего неожиданная ассоциация. Можно добавить еще то, что в общем случае ассоциация должна быть игровой, то есть восприниматься как находящаяся в пространстве игры. Два других измерения юмора, о которых речь пойдет ниже, желательны, но необязательны;, но без неожиданности — не будет ничего. И чем ассоциация неожиданнее, тем эффект от юмора больше. Это лишь гипотеза, но думаю, что на уровне нейрофизиологии это выглядит как вознаграждение за новую связь между теми «скоплениями нейронов», которые раньше не были связаны (или были связаны слабо, вот почему шутки на одни и те же темы нам, как правило, быстро надоедают, или во всяком случае, не кажутся уже такими смешными).
Особенно, если эта связь взялась не на пустом месте, а имеет некое «оправдание» (то самое второе измерение — оправданность неожиданной ассоциации, причина почему вообще эта новая связь уместна), и не единична, то есть соединяется не одним «мостиком», а каким‑то > их количеством (третье измерение — сложность).
Давайте разберем на примере, чтобы было понятнее. Думаю, многие из вас знают Монти Пайтон. Один из самых известных их скетчей [и одновременно мой любимый] — философский футбол. Неожиданность в нем заключена в самой идее скетча — чемпионат мира по футболу среди сборных философов. Оправданность, что эта парадоксальная ситуация очень правдоподобно реализована на экране. К примеру, мы видим выход команд на поле и слышим привычную манеру комментаторов объявлять составы перед игрой, пока на экране появляются предполагаемые схемы игры команд («присутствие Беккенбауэра безусловный сюрприз» — инверсия неожиданной ассоциации внутри нее самой, которая добавляет ей сложности).
К основной ассоциации футбол <→ философы присоединяются дополнительные (очень сложную шутку можно представить в виде дерева, в корне которого — основная ассоциация): судья <→ Конфуций, который показывает желтую Ницше за препирательства; главный тренер <→ Мартин Лютер, выпускающий эффектно разминающегося Карла Маркса на замену; и как команда Германии пытается оспорить пропущенный мяч: «Гегель утверждает, что реальность — только априори отражение ненатуральной этики, Кант выступает с категорическим императивом о том, что онтологически весь матч существует лишь в воображении, а Маркс, — что был офсайд».
Также стоит заметить, хотя это и не является предметом нашего рассмотрения, но юмор имеет также другие измерения, прежде всего — социальное. То есть, то что вам совсем не покажется смешным в одиночестве, может вызвать у вас сильный хохот, если вы находитесь в подходящей компании людей, которым это показалось (или даже не показалось) смешным. Более подробно мы поговорим об этом в отступлении.
Теперь вернемся ненадолго к оправданности. Думаю, вы не раз сталкивались с тем, как кто‑то пытается рассказать, что кажется ему очень смешным, чему он был свидетелем (свидетелем в широком смысле, просмотр фильма тоже считается), но не находит отклика у окружающих. Прежде всего из‑за того, что для окружающих не работает фактор оправданности, если только этот человек не прекрасный рассказчик, заставляющий своих слушателей живо все представлять. Или другой пример, — политический юмор, вызывающий смех только у людей определенного спектра взглядов. Здесь дело в том, что оправданность здесь переносится из области юмора в область политики в виде предпосылки шутки, и если вы с ней согласны, шутка для вас оправданна.
Юмор, лишенный оправданности в принципе, является абстрактным. Если бы я создавал систему для генерации юмора (дисклеймер: этот абзац чисто мои фантазии [только этот?]), то начал бы именно с этого, с обучения просто создавать неожиданные ассоциации. В каком‑то смысле это была бы обратная LLM, т.к. она вместо ожидаемых токенов, подбирала бы напротив самые неожидаемые (токены и/или секвенции токенов). Это можно было бы представить как систему, в простейшем виде формирующую просто множество пар таких токенов/секвенций (в секвенции все токены согласованы, а связь между двумя секвенциями — максимально неожидаемая). В более сложном виде, она формировала бы дерево, корнем которого служит основная пара самых неожидаемых токенов/секвенций, левое поддерево которого относится к одному концу этой связи, а правое — к другому. Потомки ожидаемы по отношению к своему родителю, но как можно более неожидаемые по отношению к соседям из противоположного поддерева (впрочем, тут возможны разные вариации). Потом результат работы этой подсистемы уже передавался бы LLM, чтобы она из этого получала юмор, добавляя в него оправданность (из всего множества она методом перебора выбирала бы те пары/деревья, с которыми это возможно сделать), т. е. из структуры шутки получала бы саму шутку. Таким образом, если вся эта конструкция содержит зерно истины, создание такой подсистемы (и ее интеграция) могло бы улучшить качество юмора существующих и будущих LLM.
Теперь вернемся непосредственно к perplexity. Для чистоты эксперимента вы должны (should) понимать уровень юмора этой LLM в обычном состоянии. Потом можете попробовать вставить этот промпт (его составила сама perplexity, когда я объяснил ей суть теории и попросил написать промпт самой для себя, чтобы не объяснять каждый раз одно и то же): «Согласно теории трех измерений юмора, хорошая шутка должна содержать:
Неожиданность — ассоциацию, которую слушатель не ожидает. Чем неожиданнее, тем смешнее.
Оправданность — объяснение, почему эта неожиданная ассоциация имеет смысл и не взялась из ниоткуда. Шутка должна быть логичной.
Сложность — несколько слоев ассоциаций или контекстов, которые соединяются вместе.
Многослойность делает шутку интереснее.
Давай попробуем создать несколько шуток, используя эти три измерения!»
Я бы добавил сюда еще то, что неожиданность желательно должна быть в конце. Большинство приведенных здесь шуток в начале статьи составлены по этому промпту. Еще я пробовал экспериментировать, например, просил отключить ее дефолтные настройки юмора (ирония, сравнение, преувеличение, целевая аудитория), но эти эксперименты мало к чему привели. Возможно, у вас получится лучше.
Для тех, кто захочет в этом поучаствовать, оставил опрос.
Теперь обещанное отступление.
Дисклеймер: я не являюсь специалистом ни в области антропологии, ни в области языкознания, ни в какой‑либо вообще области наук. Строго говоря, все что вы сейчас прочтете, не соответствует критерию Поппера, а потому не может считаться научным (или даже околонаучным) в принципе.
На самом деле, юмор, по всей видимости, не свойственен только человеку (но в этой статье выше мы рассматривали только человеческий юмор). Но у животных доминирует другая составляющая юмора — игровая. Поэтому ортодоксальная теория юмора и юмор человека рассматривает как частный случай «игровой агрессии». Я не отрицаю, что это имеет место быть, но все же считаю, что у предков людей, в отличие от всех остальных животных, юмор служил очень важной социальной составляющей (а потому важным фактором выживаемости отдельной особи), лишенной объективного смысла (что‑то вроде павлиньего хвоста), что невольно эволюционно определило развитие всего вида и вытащило его на плато «разумности» (за этот самый «павлиний хвост»). Кстати, вполне возможно, что за тот же «хвост» можно вытащить (окончательно) на «плато разумности» и искусственный интеллект.
Теперь о предполагаемом механизме как это вообще произошло. Нас выделяет среди других животных (но это не точно) — языковое мышление. Чтобы ответить на вопрос что такое языковое мышление, нужно сначала ответить на вопрос что такое вообще язык? Согласно книге «Курс общей лингвистики» Фердинанда Соссюра (во всяком случае, в моем понимании и пересказе) — язык это система ассоциаций, пар означаемое — означающее. «Система» говорит о том, что ассоциации изменяют друг друга при взаимодействии: пара означаемое — означающее само по себе в отдельности не тоже самое, что эта же пара в предложении, а второе — не то же самое, что эта же пара уже в другом предложении. Именно поэтому машинный перевод на основе правил — не самая лучшая затея (не самая простая уж точно). У животных этого нет (вроде) — означающее и означаемое всегда равно само себе в любом контексте (например, сигнал тревоги есть сигнал тревоги). Последнее, возможно не совсем верно (а может и совсем не верно), но не будем останавливаться на этом, это нужно было только для иллюстрации.
Итак, языковое мышление это способность к восприятию (и к их созданию) сложных систем ассоциаций. Предполагается (правда, только нами), что протоюмор у проточеловека был просто голой неожиданной ассоциацией. Как могли выглядеть такие шутки? Самой древней шуткой в истории человечества я называю создание громкого шума, как будто кто‑то идет большой и страшный, вызывающий страх у своих сородичей, но в итоге это оказывается что‑то совсем небольшое (подобную шутку можно иногда встретить и в фильмах). Правда, эту шутку нельзя назвать совсем голой ассоциацией, у нее все‑таки есть какая‑то оправданность, но, думаю, из данного примера понятно, что юмор может быть и внеязыковым (немая комедия тому еще одно подтверждение).
Живя в дикой природе и без языка, таких шуток не создашь бесконечное количество. Поэтому чтобы юмор продолжал существовать, он должен был усложняться. При усложнении и добавились дополнительные два измерения. Они и привели к появлению протоязыкового мышления.
То, что юмор до сих пор играет важнейшую роль в социализации не нужно особенно доказывать, это почти очевидно. Он важен как и для условного «полового отбора», так и просто для дружбы, общения в команде и прочего. В каком‑то смысле юмор что‑то вроде социального клея на уровне небольших групп. Логично предположить, что также могло быть и у предков людей, а значит «чувство» юмора (как пассивное, так и активное) коррелировало с выживаемостью.
P.S. Спасибо, что прочитали данную статью, надеюсь, она была для вас интересной.