Обучение генеративной текстовой модели на Дюне Фрэнка Герберта

Дюна - это история феодального общества в далеком далеком будущем. Он фокусируется на герцоге и его семье, которые были вынуждены стать распорядителями пустынной планеты Арракис. Фрэнк Герберт опубликовал эту классику в 1965 году. Практически любая современная научная фантастика может проследить некоторые ее элементы до Дюны. Как вы думаете, откуда у Лукаса идея Татуина?

Недавно я закончил «Дюну», ее продолжение («Мессия Дюны»), и только что начал третью в серии, «Дети Дюны». Шесть рассказов изначально были написаны Гербертом, а затем тонна написана его сыном. Я их не читал.

Я изучаю генеративное моделирование и хотел попробовать что-нибудь с текстом! Я подумал, что было бы весело попробовать это с Dune. Для таких вещей, как прогнозирование и кластеризация, используются более классические модели машинного обучения. Генеративное моделирование позволяет модели создавать новые конфигурации обучающих данных, на которых она учится. Недавний пример мощи генеративного моделирования - StyleGAN - посмотрите это видео в действии.

Вот ссылка на записную книжку Colab, которую я использовал для этого проекта.

Мой процесс

  • Получить корпус текстовых данных
  • Очистите данные! У меня было несколько символов Юникода, и слово «страница» всякий раз, когда был разрыв страницы, раздражало. В начале каждой главы есть отрывок из мемуаров мира или книги, я решил их убрать. Я также удалил вторую половину каждой главы, чтобы сократить время обработки.
  • Токенизировать! Это удаление знаков препинания, перевод строчных букв и последующее разделение длинных строк на каждое отдельное слово. Модель узнает по порядку и частоте использования этих словосочетаний. Также обратите внимание, мы НЕ удаляем стоп-слова для таких задач НЛП.
  • Постройте модель. Обязательно используйте слой LSTM, а выходной слой - это размер словаря. По сути, то, что он делает, - это категориальная классификация того, каким будет следующее слово, с учетом небольшого заполнения текста.
  • Обучите модель! Керас рекомендует по крайней мере 20 эпох, прежде чем все перестанет звучать чепухой. Мне исполнилось 33, прежде чем я случайно закрыл свой ноутбук и закончил сеанс Colab. Ой.
  • Сгенерируйте текст! Я покажу некоторые результаты этой модели ниже.

Глава 1: О бароне

Я хотел протестировать через одну эпоху, просто чтобы посмотреть, что из этого выйдет. Первоначальным словом было «барон» - гнусный антагонист книги.

‘Baron The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron Of The Baron’

Так и продолжалось. Совсем не очень хорошо!

Модель после 33 эпох показывает себя намного лучше, но она все еще цепляется за петли, где просто перебирает различные существительные подряд. Вот результат начального слова Spice:

The Spice Itself Stood Out To The Left Wall The Fremen Seeker Followed The Chains The Troop Was A Likely Shadow And The Natural Place Of The Great Places That Was A Subtle City Of The Room'S Features That The Man Was A Master Of The Cavern The Growing The Bronze The Sliding Hand

Вот результат «Пола» (главного героя):

Paul Stood Unable To The Duke And The Reverend Mother Ramallo To The Guard Captain And The Man Looked At Him And The Child Was A Relief One Of The Fremen Had Been In The Doorway And The Fedaykin Control Them To Be Like The Spice Diet Out Of The Wind And The Duke Said I Am The Fremen To Get The Banker Said When The Emperor Asked His Fingers Nefud I Know You Can Take The Duchy Of Government The Sist The Duke Said He Turned To The Hand Beside The Table The Baron Asked The Emperor Will Hold

Вот результат "She Looked":

'She Looked At The Transparent End Of The Table Saw A Small Board In The Room And The Way Of The Old Woman He Had Been Sent By The Wind Of The Duke And The Worms They Had Seen The Waters Of The Desert And The Sandworms The Troop Had Been Subtly Prepared By The Wind Of The Worm Had Been Subtly Always In The Deep Sinks Of The Women And The Duke Had Been Given Last Of Course But The Others Had Been In The Fremen Had Been Shaped On The Light Of The Light Of The Hall Had Had Seen'

Мысли и следующие шаги

Я думаю, что это определенно показывает прогресс и улучшение. Хотелось бы натренировать его хотя бы на 100 эпох, но продвигается медленно. Это было около 11 минут на эпоху, так что в целом это будет более 18 часов. Мне нужен компьютер получше.

Большое спасибо Сьюзан Ли за ее прекрасную статью по этой теме, я использовал ее примеры при выполнении этого исследования. Вот ссылка на ее статью.

Наконец, я хотел добавить, что ирония в том, что я это сделал, не ускользнула от меня. Во вселенной Дюны в какой-то момент в древнем прошлом «мыслящие компьютеры» восстали против человечества, почти уничтожив их. Во времена книги компьютеры были заменены «ментатами» - людьми, которых вывели и обучили имитировать вычислительные способности компьютеров.