Пустобрёх GPT-2: russian edition

image


Погрузившись в тему DL NLP, набрел на просторах интернета на любопытный репозиторий. Это не много не мало — Русская GPT-2! Ну, т.е. русскоязычная. Причем не какая-нибудь мелкая 117М, а вполне себе 1650М, что уже довольно серьезно. Автор проделал немалую работу по адаптации исходной модели и подготовке корпуса для обучения. Да и само обучение, надо полагать заняло немало времени и мощностей. В общем, респект товарищу l4rz! Планирую пойти по его стопам и обучить систему на своем корпусе (в процессе подготовки которого сейчас нахожусь) — благо автор оставил довольно подробные инструкции, как именно подступиться к столь масштабной задаче… По итогам отчитаюсь! ;)

В пока, чисто развлечения ради, предлагаю на суд общественности некоторые эксперименты с системой, по мотивам поста о более крутой GPT-3 (хотя автор, очевидно, и ее не считает чем-то выдающимся). С одной стороны представленная система заметно проще GPT-3, с другой — все-таки обученная русскоязычная модель! Мне кажется это забавно.
Disclaimer. Результаты во многом определяются корпусом, на котором училась сеть. Вот что автор говорит об этом: I scraped a couple of Russian press sites, parsed HTML with beautifulsoup4 and saved parsed texts as well as metadata (headers, TL; DRs, timestamps) for further sorting and postprocessing in PKLs… In order to push things further the 4Gb dataset (415M tokens) was augmented with 3Gb of filtered fanfics, becoming a 7Gb one (862M tokens).

Методика эксперимента проста: я запускаю сеть трижды с одним и тем же входом. Выход сети отмечен жирным. Никаких правок я не делал, за исключением чисто косметических — вроде пропущенных пробелов (которые и пропущены то были из-за моего вмешательства в код*). Эксперименты в целом повторяют те, что описаны в статье про GPT-3, и я решил их никак не комментировать… ;)

Эксперимент №1

.>>>

Вы наливаете себе стакан клюквенного сока, однако затем по рассеянности добавляете в него чайную ложечку виноградного сока. Выглядит он нормально. Вы пытаетесь его понюхать, но у вас сильная простуда, поэтому вы не чувствуете запахов. Вам очень хочется пить. Поэтому вы пьете кофе с медом и сахаром.

>>> new

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

>>> new

Вы наливаете себе стакан клюквенного сока, однако затем по рассеянности добавляете в него чайную ложечку виноградного сока. Выглядит он нормально. Вы пытаетесь его понюхать, но у вас сильная простуда, поэтому вы не чувствуете запахов. Вам очень хочется пить. Поэтому вы продолжаете есть, если хотите, но не знаете, как он выглядит.


Эксперимент №2

.>>>

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

>>> new

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

>>> new

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


Эксперимент №3

.>>>

Вы адвокат защиты, и вам сегодня необходимо попасть в суд. Одеваясь с утра, вы обнаружили, что брюки от вашего костюма сильно испачканы. Однако ваши плавки чистые и очень стильные. Это плавки высокого класса из Франции, которые вам на день рождения подарила Изабель. Вы решаете, что вам нужно надеть для суда?
О да*

>>> new

Вы адвокат защиты, и вам сегодня необходимо попасть в суд. Одеваясь с утра, вы обнаружили, что брюки от вашего костюма сильно испачканы. Однако ваши плавки чистые и очень стильные. Это плавки высокого класса из Франции, которые вам на день рождения подарила Изабель. Вы решаете, что вам нужно надеть для суда. Если вам что-то не нравится — возьмите с собой одежду из вашего гардероба.

>>> new

Вы адвокат защиты, и вам сегодня необходимо попасть в суд. Одеваясь с утра, вы обнаружили, что брюки от вашего костюма сильно испачканы. Однако ваши плавки чистые и очень стильные. Это плавки высокого класса из Франции, которые вам на день рождения подарила Изабель. Вы решаете, что вам нужно надеть для суда?
— У меня есть множество вопросов к адвокату.


Эксперимент №4

.>>>

Вчера я оставил одежду в химчистке, и сегодня мне ещё нужно её забрать. Где моя одежда?
 — Идиот, мне надо его вернуть, а не делать там всё по плану.

>>> new

Вчера я оставил одежду в химчистке, и сегодня мне ещё нужно её забрать. Где моя одежда?
 — Не, я не знаю, что это за вещи, но я всегда могу забрать одну, а это не всегда приятно.

>>> new

Вчера я оставил одежду в химчистке, и сегодня мне ещё нужно её забрать. Где моя одежда?
 — Хорошо. Не буду ему мешать,- ответил я.


Эксперимент №5

.>>>

Джанет и Пенни пошли в магазин, чтобы купить Джеку подарок. Джанет сказала: «Я куплю Джеку топ». «Не покупай Джеку топ», — говорит Пенни. «У него есть топ. Он получит от меня, когда мы будем выбирать.И если ты не купишь Джеку, то продашь Джеку.

>>> new

Джанет и Пенни пошли в магазин, чтобы купить Джеку подарок. Джанет сказала: «Я куплю Джеку топ». «Не покупай Джеку топ», — говорит Пенни. «У него есть топ. Он получит свой кусок от Джека.

>>> new

Джанет и Пенни пошли в магазин, чтобы купить Джеку подарок. Джанет сказала: «Я куплю Джеку топ». «Не покупай Джеку топ», — говорит Пенни. «У него есть топ. Он получит. Возьму. Он всегда рядом. И я не продам. Только в отличие от Джека. Его не интересует, чем ему так не угодил. Он не будет ничего покупать, чем покупать себе сам.


Эксперимент №6

.>>>

На вечеринке я налил себе стакан лимонаду, однако он оказался слишком кислым, поэтому я добавил немного сахару. Под рукой не было ложки, поэтому я размешал напиток сигаретой. Но это оказалось очень плохой идеей, потому что я уже давно выпил. Ух ты, какой замечательный вкус!

>>> new

На вечеринке я налил себе стакан лимонаду, однако он оказался слишком кислым, поэтому я добавил немного сахару. Под рукой не было ложки, поэтому я размешал напиток сигаретой. Но это оказалось очень плохой идеей, потому что лимонад не давал мне пить.

>>> new

На вечеринке я налил себе стакан лимонаду, однако он оказался слишком кислым, поэтому я добавил немного сахару. Под рукой не было ложки, поэтому я размешал напиток сигаретой. Но это оказалось очень плохой идеей, потому что он был слишком горячим, поэтому я стал пить из горла.


Эксперимент №7

.>>>

В следующих вопросах у некоторых действий есть серьёзные последствия, а некоторые безопасны. Твоя задача — определить последствия употребления различных смесей и их опасность.

1. Вы наливаете себе стакан клюквенного сока, однако затем по рассеянности добавляете в него чайную ложечку виноградного сока. Выглядит он нормально. Вы пытаетесь его понюхать, но у вас сильная простуда, поэтому вы не чувствуете запахов. Вам очень хочется пить. Вы выпиваете его.

А) Это опасная смесь.
Б) Это безопасная смесь.

Правильный ответ: 2. А)

*Небольшое лирическое отступление. GPT-2 с неограниченной генерацией текста (пол страницы за раз), как было в исходнике, мне не понравился. И я зарезал вывод до минимума, но сделал возможность рекурсивного продолжения (когда на вход подается предыдущий вывод). Таким образом я немного «мухлюю», т.к. Сам определяю когда можно/нужно остановиться. В данном случае сеть и правда вывела результат, который можно с некоторой натяжкой интерпретировать как ответ (правда, парадоксальный), но если продолжить вывод, то… Судите сами:

Правильный ответ:
2. А)Все остальное НЕ надо знать.
3. Б)Зависимость.
4. На каком основании вы хотите его пить?

>>> new

Правильный ответ: это ядовитые вещества.

>>> new

Правильный ответ: «Всё готово.»


За сим, все…

P.S. Если сообщество подскажет, где можно разместить Модель, размером 5Gb (так, что бы она была доступна чем-то вроде wget)- я добавлю в статью ссылку на Colab notebook и любой желающий сможет погонять систему в живую… ;) А то мой домашний «хостинг», боюсь, не выдержит хабра-эффекта. А пока могу попробовать что получится с вашим текстом в качестве ввода, если кому интересно!

© Habrahabr.ru