Skip to content

mishagrin/ruGPT2

 
 

Repository files navigation

RuGPT2

Russian GPT-2 model

This repository is based on Nvidia GPT-2 realisation from Megatron-LM. And uses YouTokenToMe toketizer.

Pretrain GPT-2 model

  1. Cleanup data and preprocess json:
python3 scripts/cleanup_dataset.py <input_file.txt> <output_file.json>
  1. Preprocess data for training:
python3 scripts/split_gpt2_json.py \
    --input_files <input_file.json> \
    --output_dir <output_dir> \
    --test_percent 0.001 \
  1. Run training:
./scripts/pretrain_gpt2_yttm.sh

Download a pretrained model

Model trained 320K steps on 2x1080Ti with batch size 4.

Trainset is 30G wiki+taiga russian corpus.

------------------------------------------------------------------------------------
 validation loss at iteration 320000 | LM loss: 3.285632E+00 | LM PPL: 2.672587E+01
------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
 validation loss at the end of training for val data | LM loss: 3.306426E+00 | LM PPL: 2.728744E+01
----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
 validation loss at the end of training for test data | LM loss: 3.369688E+00 | LM PPL: 2.906945E+01
-----------------------------------------------------------------------------------------------------

320K steps (4,2G)

Generate text samples

GPT-2 medium

./scripts/generate_text_yttm_file.sh

Generated samples:

Context:Однажды, в студеную зимнюю пору, я

Megatron-LM:как обычно проснулся рано утром, поднялся, оделся, выпил кофе и поехал в университет на трамвае. Как всегда опаздывал, но успел. На остановке стоял парень, лет 10 - 12. Он стоял и смотрел в мою сторону. Мимо проходили девушки и носятся, как угорелые, вокруг. Я смотрел на них, ждал чего то. И вдруг на мгновение я потерял дар речи. Леша стоял и смотрел на меня. Это было что то невероятное, если бы не полное безразличие, это скорее можно было передать про себя, что я занят, уставший и несчастный. Леша, тем временем, стоял и глядел в окно. Я не думал о нем, не знаю как я объяснить то, что " о чем то давно мечтаю ". Я просто смотрел. В его сторону даже ветер стал реже дуть. На остановке было безлюдно. Прошел мимо мальчик, лет 20 - 25 он держал в правой руке портфель по виду не помню какой, и шел домой. Я стоял и ждал когда он остановится и уйдет. Ничего не произошло. Я стоял и думал о чем то ужасно грустном, а Леша спокойно глядел в окно.


Context:От улыбки станет всем светлей. И слону, и даже маленькой

Megatron-LM:зверюшке! Андрюш, это так мило. Ведь это же просто здорово. - И ты думаешь, что это можно сделать. Даже если это невозможно? Компьютер не знает способа, как работает этот интеграл. Он не знает сахара. Сахар нужен - он его всегда доставлял. И масла. Если не можешь, попробуй смазать маслом. Я пробую. Не спеши. Погоди. Тут есть что - то, что просто необходимо. Как ты думаешь, это - просто шутка. Если не хочешь стать реальным, вызывай грузовик. Хорошо, если не даришь Мари. Но она все равно рассчитывает на что - то. Не знаю. Прости. Увидимся в школе. Да, и еще. Смотри, я здесь. Не отвлекайся. Может, когда - то человеку тоже конец? Но пусть это будет началом конца. - Да, конечно. Ты только попробуй. - Хорошо. Ладно. - О, Боже, посмотри, она уже обедает. По - моему, это ты так думаешь. Нет, правда, она не обедает. Нет, я просто. Встретимся. Хорошо. Ладно. Ты сможешь это сделать. Хорошо. Не отвлекаясь. Нет, я не могу. Хорошо, хорошо, хорошо. Я все сделаю. Все, все, все. Увидимся в школе.


Context:С причала рыбачил апостол Андрей, а

Megatron-LM:море плескало белоснежно - белой пеной. Я развалился на большом стуле за спиной, услышав его рассказ об убийствах его родственника Павла, подброшенной мной в Москву книги Фоменко, и не менее величественные суда, бормотали где - нибудь в глубине, а меня там и не было. Я спустил дремавшую рядом рыбу и, взяв лишнюю, показал на дверь, которая осталась приоткрытой. - А у Павла, - сказал я ему, - там, в черном - то озере, когда он убил Павла, и остальная его часть - его голос, показался мне робким и встревоженным. - Ты ошибся, - ответил он. Я подошел к окну и посмотрел, как Антон изображает оттуда в недавнем сне, как Павел с женой едут в метро. Голоса Апраксиных и гостовских. Такой же подъемник. Внизу, на выстраивающейся в самосвале реке - море. Он был жесток, а я вспыльчивый и ехидный. Но море и потом не могло быть спокойным. Сине - золотые волны, по ним размеренно двигался корпус прогулочной внедорожника. Я загляделся на таких. Огромные и хмурые сопки - горные хребты со пятнисто - фиолетовыми снегами. Они словно свисали со своих вершин над морем, охраняя покой во всем мире.

About

Russian GPT2 model

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.2%
  • Shell 0.8%