Тезисы пейпера "Оценка генеративных шуток с помощью промтов для больших языковых моделей"

May 13, 2023 09:12

Тема использования знаний LLM через хитрые затравки раскручивается и затрагивает даже такие интересные мне темы, как ранжирование шуток. Далее - мои рабочие заметки по статье, вышедшей в декабре 22 года с названием "CROWD SCORE: A METHOD FOR THE EVALUATION OF JOKES USING LARGE LANGUAGE MODEL AI VOTERS AS JUDGES".

1. Итак, задача - оценивать смешность генераций разного рода шуток (анекдотов, каламбуров и т.д.), полученных от нейросеток. Кто пробовал генерировать анекдоты с помощью гэпэтэх, тот знает, что это только кажется простой задачей. Типа взял датасет наскрапленных анекдотов, отфайнтюнил гэпэтэшку и вуаля. Подвох в том, что подавляющая доля генераций получается либо унылой, либо плагиатом. Но если постараться, то иногда попадаются хорошие и уникальные хохмы. Отсюда идея - научиться ранжировать генерации, чтобы определять их смешность (the funniness of jokes).

2. Ранжирование по смешности, в свою очередь, тоже не такая простая задача. Да, можно наскрапить пользовательские лайки к анекдотам и пытаться обучать классификатор или регрессор, чтобы предсказывать лайки для генераций. Я как-то рассказывал о подобном эксперименте для задачи ранжирования стихов. Для анекдотов и стихов из категорий "юмор", "сатира", "пародии" такое тоже проделывал, примерно с таким же неудовлетворительным результатом.

3. И вот переходим к идее в статье. Авторы предлагают анализировать каждую генерацию, формируя затравки к большой языковой модели. Проще говоря, кидаем в ChatGPT запрос с приложением текста генерации и просим чатбот дать вердикт, смешно или не смешно.

Выглядят такие промты так. Для zero-shot режима:


Для few-shot, когда в затравку добавляются примеры классификаций:


4. Чтобы улучшить надежность классификации, авторы предлагают следующее: давайте формулировать запрос так, чтобы чатбот "перевоплощался" в личность, предпочитающую определенный вид шуток из набора предопределенных. Типа кто-то любит сальные анеки, кто-то умный сарказм и т.д. В статье этот механизм называется "personality induction". Таким образом, получаются такие затравки:


Таких "оценщиков" может быть несколько, что открывает путь к усреднению оценок, делая результат более надежным. Отсюда термин "crowd score" в названии пейпера.

5. Но авторы идут еще дальше. Так как генеративные модели вообще способны галлюцинировать на любую тему, хочется убедиться, что выданный моделью вердикт основан на какой-то мотивации (насколько это применимо к нейросеткам вообще), а не просто рандомный выбор токенов yes и no при сэмплинге. Для этого затравку усложняем и просим конкретного "оценщика" представить пошаговое объяснение своего вердикта:


И вот эту выданную пошаговую раскладку загоняем в новый промт, где просим гэпэтэху дать заключение: логично ли сгенерированное объяснение, или нет. Только если такая "двойная бухгалтерия" подтверждает логичность, принимаем голос для учета в итоговой оценке:




PS: я как-то пытался проверить, умеет ли чатгэпэтэ объяснять, в чем изюминка конкретного анекдота, шутки или забавного стихотворения на русском языке. Получалось плохо. Хотя в каком-то смысле это хорошо, что данная шайтан-машина не умеет объяснять русскочзычные шутки, так как это открывает целое поле для интересного ресёрча :)

генеративное искусство, генеративная модель, prompt engineering, генерация текста

Previous post Next post
Up