From 636905f87cb9679b48f29102455984ce0b5cd9c5 Mon Sep 17 00:00:00 2001 From: Anton Emelyanov Date: Thu, 11 Feb 2021 23:12:12 +0300 Subject: [PATCH] remove unused examples --- examples/README.md | 66 -- examples/pretrain_ruGPT2Large_essay.sh | 21 - .../pretrain_ruGPT2Large_essay_sample.txt | 1 - .../pretrain_ruGPT3Large_essay_sample.txt | 1 - examples/ruGPT3XL_generation.ipynb | 689 ------------------ examples/ruGPT3_generation_example.ipynb | 228 ------ 6 files changed, 1006 deletions(-) delete mode 100644 examples/README.md delete mode 100644 examples/pretrain_ruGPT2Large_essay.sh delete mode 100644 examples/pretrain_ruGPT2Large_essay_sample.txt delete mode 100644 examples/pretrain_ruGPT3Large_essay_sample.txt delete mode 100644 examples/ruGPT3XL_generation.ipynb delete mode 100644 examples/ruGPT3_generation_example.ipynb diff --git a/examples/README.md b/examples/README.md deleted file mode 100644 index cd21100..0000000 --- a/examples/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# Examples -All instructions was written for [Christophari](https://sbercloud.ru/ru/christofari). - -For contest: you can obtain checkpoints from aws s3. - -| Section | Description | -|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------ -| [ruGPT3Large finetune on essays](#ruGPT3Large-finetune-on-essays) | Examples of finetuning ruGPT3Large model for generating school essays. | -| [ruGPT2Large finetune on essays](#ruGPT2Large-finetune-on-essays) | Examples of finetuning ruGPT2Large model for generating school essays. | -| [ruGPT3Small finetune on essays](#ruGPT3Small-finetune-on-essays) | Examples of finetuning ruGPT3Small model for generating school essays in colab. | -| [ruGPT3Large generate](#ruGPT3Large-generate) | Examples of generate with ruGPT3Large model in colab. | - - -## ruGPT3Large finetune on essays -Finetune ruGPT3Large for school essays generation. - -We prepare data with the following format: - -``` -{"text": "Тема: С какой целью В.А. Жуковский вносит русские фольклорные мотивы в традиционный балладный сюжет? (по балладе «Светлана»)\nСочинение: ..."} -``` - -For run finetuning download ruGPT3Large [checkpoint](https://drive.google.com/file/d/12JkbnzSoQwJqanVP-zoLNnFX3e4HHyvY/view?usp=sharing) and unpack to `/home/jovyan/ruGPT3Large`: - -``` -tar -zxvf ruGPT3Large.tar.gz -``` - -Download data to `/home/jovyan/data`. Data you can obtain here: [train](https://drive.google.com/file/d/1XEJWoVsZhDwrKy801y9K6iljDJdM0_zs/view?usp=sharing) and [valid](https://drive.google.com/file/d/1s5b7WvyCBB9nPprEXPgs45ljqhb8dQsn/view?usp=sharing). - -Run script for pretrain: `bash ./examples/pretrain_ruGPT3Large_essay.sh`. - -We obtain around 8 perplexity on valid set. Sample of generation you can see [here](pretrain_ruGPT3Large_essay_sample.txt) - -You can download pretrained checkpoint [here](https://drive.google.com/file/d/13ezv9NpquKCB5TAgKC0jRRfxUKjzc7Mp/view?usp=sharing). - -## ruGPT2Large finetune on essays - -Finetune ruGPT2Large for school essays generation. - -We prepare data with the following format (raw text): - -``` -Тема: С какой целью В.А. Жуковский вносит русские фольклорные мотивы в традиционный балладный сюжет? (по балладе «Светлана»)\nСочинение: ... -Тема: ... -``` - -For run finetuning download ruGPT2Large [checkpoint](https://drive.google.com/file/d/1r65MwU0arie8NggxpSmc_3Ja5ldRNS70/view?usp=sharing) and unpack to `/home/jovyan/gpt2_large_bbpe_v50`: - -``` -tar -zxvf gpt2_large_bbpe_v50.tar.gz -``` - -Download data to `/home/jovyan/data`. Data you can obtain here: [train](https://drive.google.com/file/d/1CBXZjcNcqGdiyChzSlffVqIaeCp-7486/view?usp=sharing) and [valid](https://drive.google.com/file/d/1MhmPhj-VKCTmCWXf6WfR3Czuw3V7QMB9/view?usp=sharing). - -Run script for pretrain: `bash ./examples/pretrain_ruGPT2Large_essay.sh`. - -We obtain around 3 perplexity on valid set. Sample of generation you can see [here](./pretrain_ruGPT2Large_essay_sample.txt) - -You can download pretrained checkpoint [here](https://drive.google.com/file/d/1AtK_2a-gx7-BBy8oBDlDSbbc0Z8JFCoa/view?usp=sharing). - -## ruGPT3Small finetune on essays -Try example of finetune on essays and generation in colab [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sberbank-ai/ru-gpts/blob/master/examples/Finetune_ruGPT3Small.ipynb) - -## ruGPT3Large generate -Try example of generation in colab [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sberbank-ai/ru-gpts/blob/master/examples/ruGPT3_generation_example.ipynb) diff --git a/examples/pretrain_ruGPT2Large_essay.sh b/examples/pretrain_ruGPT2Large_essay.sh deleted file mode 100644 index 2431639..0000000 --- a/examples/pretrain_ruGPT2Large_essay.sh +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/bash - -NUM_GPUS_PER_WORKER=1 - -now=$(date +"%Y_%m_%d_%H_%I_%S") -host=$(hostname) - -mpirun --np ${NUM_GPUS_PER_WORKER} python pretrain_transformers.py \ - --output_dir=/home/jovyan/gpt2_large_bbpe_v50/essays/checkpoints_"${now}"_"${host}" \ - --model_type=gpt2 \ - --model_name_or_path=/home/jovyan/gpt2_large_bbpe_v50 \ - --do_train \ - --train_data_file=/home/jovyan/data/all_essays.txt \ - --do_eval \ - --eval_data_file=/home/jovyan/data/valid_essays.txt \ - --fp16 \ - --num_train_epochs 10 \ - --overwrite_cache \ - --block_size=1024 \ - --per_gpu_train_batch_size 1 \ - --gradient_accumulation_steps 8 \ diff --git a/examples/pretrain_ruGPT2Large_essay_sample.txt b/examples/pretrain_ruGPT2Large_essay_sample.txt deleted file mode 100644 index 2deacb6..0000000 --- a/examples/pretrain_ruGPT2Large_essay_sample.txt +++ /dev/null @@ -1 +0,0 @@ -Тема: С какой целью В.А. Жуковский вносит русские фольклорные мотивы в традиционный балладный сюжет? (по балладе «Светлана»)\nСочинение: Баллада «Светлана» — одно из самых совершенных поэтических произведений Жуковского. В ней органично соединены традиции русской народной баллады и романтической традиции.Создавая свой шедевр, поэт опирался в первую очередь на литературный опыт. Известно, что еще в 1814 году Жуковский написал «русскую песню» («Узник»), а в 1816-м — «русскую песню» («Узник»). В 1817 году он завершил работу над поэмой, а в 1819-м — завершил работу над поэмой «Светлана». Таким образом, к началу 1820-х годов Жуковский создал свой шедевр, вобравший в себя лучшие достижения русской литературы.Но для создания баллады «Светлана» Жуковскому пришлось пройти длинный путь. В основу сюжета «Светланы» положен реальный факт. 14-летняя княжна Светлана вместе с матерью и тремя сестрами попала в плен к татарам. Оказавшись в неволе, Светлана потеряла рассудок, а когдаоклемалась, поняла, что стала ведьмой. С помощью волшебства она сумела вернуть себе человеческий облик и бежать из плена.Сюжет баллады «Светлана» построен на трех взаимосвязанных мотивах. Во-первых, это исторический сюжет (жертвоприношение девы во искупление грехов народа). Во-вторых, это легендарный сюжет о чудесном спасении семьи Муромских, основывающийся на народных сказках. И, в-третьих, это сюжет о любви несчастной княжны к бедному рыцарю, который является плодом поэтического вымысла автора.Все три сюжета тесно связаны между собой, и именно благодаря им возникает ощущение подлинности происходящего.Создавая свое произведение, Жуковский опирался на литературный опыт, но в то же время он стремился к созданию максимально реалистичной баллады. Так, в основу сюжета «Светланы» он положил реальный исторический факт, но использовал при этом народное предание. При этом Жуковский следовал не исторической, а романтической традиции в изображении любви. Так, в основу сюжета «Светланы» он положил легенду о девушке, ставшей ведьмой, но ставшей в итоге счастливой. При этом Жуковский несколько видоизменил сюжетную канву. Вместо того чтобы следовать по пути, который вела народная баллада, поэт перенес действие в XV век, когда на Руси еще не было ни Юрьева дня, ни инквизиции. Таким образом, благодаря народным балладам, Жуковский смог создать истинно национальную балладу.На наш взгляд, сюжет «Светланы» настолько фантастичен, что может считаться художественным вымыслом. И все же мы считаем, что именно в этом произведении поэт смог наиболее ярко выразить свои лучшие черты — романтизм и верность традициям русской литературы. \ No newline at end of file diff --git a/examples/pretrain_ruGPT3Large_essay_sample.txt b/examples/pretrain_ruGPT3Large_essay_sample.txt deleted file mode 100644 index 6f3c3a1..0000000 --- a/examples/pretrain_ruGPT3Large_essay_sample.txt +++ /dev/null @@ -1 +0,0 @@ -Тема: «Кто, имея возможность предупредить преступление, не делает этого, тот ему способствует».(Сенека)\nСочинение: шего женщин — труд физическев и зла рач ние, в гробницы домашнего очага и зла в творчестве Пушкине два противоположных качества личности и его сущность психологию Ионыча может двигаться вперед. Он обладает определённым риском: «Герой нашего времени» показали, влия тельными для создания чего-то различать три этапа: «героя времени» Фридрих Ницше ни одного феноменов, что человек пользуется неограниченной свободой, как парадоксально бы факторы, так как целостное, предстает в деятельности. Но свобода. В истории очень положительным - врожденных порокованно. Одним из них проходит 3) переходит от других людей, другие источники дохода, такие условия, когда уже скоро наступит «сшее веселье...». Теперь искусство». Согласно Ницше некогда воспоми на её волю к своему пути. Так что с влияющие должными. В данном случае Пушкин, о капитане Копейкине содержития, с автором это наиболее ярких примеров можно считать человека, другие. Если люди имеют неодинаковый смысл того, как сказал Томас Форд считает, что «Конфликт – моральное решение, но все более правильному пониманию свободы и разрешение конфликта с детьми разного возраста, и новые качества личности, которые могут служить объединены никакой моральных изменений может привести к своему усмотрению. В-третьих, например, что она складывается в стране.Я считаю, что ситуация затоваривания, это является тому, что он знает, что ситуация разрешится до того, как возникнет социальная напряженность, а следовательно и причина для конфликта с окружающими. Ведь многочисленные изменения, что ситуация разрешится до конфликта с окружающими. Умелые действия властей зимой-весной 2012 года по отношению к оппозиции, на мой взгляд, привели к тому, что страна не была ввергнута вся Русь.Я тоже иногда попадаю в конфликтные ситуации. Для разрешения конфликтов я часто использую посредников или прибегаю к стратегии компромисса.Худой мир лучше доброй ссоры.Овтин Виталий, 11 Б. \ No newline at end of file diff --git a/examples/ruGPT3XL_generation.ipynb b/examples/ruGPT3XL_generation.ipynb deleted file mode 100644 index 72f46de..0000000 --- a/examples/ruGPT3XL_generation.ipynb +++ /dev/null @@ -1,689 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.8" - }, - "colab": { - "name": "ruGPT3XL_generation", - "provenance": [], - "collapsed_sections": [] - }, - "accelerator": "GPU" - }, - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "q4tnxQoRogVV" - }, - "source": [ - "# Install env" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JfKxFhRPoWNv" - }, - "source": [ - "### Install Apex" - ] - }, - { - "cell_type": "code", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QW1w_w0itrLP", - "outputId": "d5b83680-0fe3-4122-885d-5caf3385da91" - }, - "source": [ - "%%writefile setup.sh\n", - "\n", - "export CUDA_HOME=/usr/local/cuda-10.1\n", - "git clone https://github.com/NVIDIA/apex\n", - "pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" ./apex" - ], - "execution_count": 1, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Writing setup.sh\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "4Hwo1XzYts5a" - }, - "source": [ - "!sh setup.sh" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MMXQ-moaoayT" - }, - "source": [ - "### Install triton" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "F4b2CBehhQX7" - }, - "source": [ - "!apt-get install llvm-9-dev" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "gbWxEvnN02bY" - }, - "source": [ - "!pip install cpufeature" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "euv2A1weyZ5p" - }, - "source": [ - "!pip install triton==0.2.3" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IId2GBmCod9A" - }, - "source": [ - "### Install DeepSpeed" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "hmx7xwp_Kmz6" - }, - "source": [ - "!DS_BUILD_CPU_ADAM=1 DS_BUILD_SPARSE_ATTN=1 pip install deepspeed==0.3.7" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "47RnjoAJolAc" - }, - "source": [ - "#### Test installation: we should have the following output" - ] - }, - { - "cell_type": "code", - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hRR8wi7kK3dO", - "outputId": "86074d56-214b-4dd6-dac3-0f4091e9c5c1" - }, - "source": [ - "!ds_report" - ], - "execution_count": 7, - "outputs": [ - { - "output_type": "stream", - "text": [ - "--------------------------------------------------\n", - "DeepSpeed C++/CUDA extension op report\n", - "--------------------------------------------------\n", - "NOTE: Ops not installed will be just-in-time (JIT) compiled at\n", - " runtime if needed. Op compatibility means that your system\n", - " meet the required dependencies to JIT install the op.\n", - "--------------------------------------------------\n", - "JIT compiled ops requires ninja\n", - "ninja .................. \u001b[92m[OKAY]\u001b[0m\n", - "--------------------------------------------------\n", - "op name ................ installed .. compatible\n", - "--------------------------------------------------\n", - "cpu_adam ............... \u001b[92m[YES]\u001b[0m ...... \u001b[92m[OKAY]\u001b[0m\n", - "fused_adam ............. \u001b[93m[NO]\u001b[0m ....... \u001b[92m[OKAY]\u001b[0m\n", - "fused_lamb ............. \u001b[93m[NO]\u001b[0m ....... \u001b[92m[OKAY]\u001b[0m\n", - "sparse_attn ............ \u001b[92m[YES]\u001b[0m ...... \u001b[92m[OKAY]\u001b[0m\n", - "transformer ............ \u001b[93m[NO]\u001b[0m ....... \u001b[92m[OKAY]\u001b[0m\n", - "stochastic_transformer . \u001b[93m[NO]\u001b[0m ....... \u001b[92m[OKAY]\u001b[0m\n", - "utils .................. \u001b[93m[NO]\u001b[0m ....... \u001b[92m[OKAY]\u001b[0m\n", - "--------------------------------------------------\n", - "DeepSpeed general environment info:\n", - "torch install path ............... ['/usr/local/lib/python3.6/dist-packages/torch']\n", - "torch version .................... 1.7.0+cu101\n", - "torch cuda version ............... 10.1\n", - "nvcc version ..................... 10.1\n", - "deepspeed install path ........... ['/usr/local/lib/python3.6/dist-packages/deepspeed']\n", - "deepspeed info ................... 0.3.7, unknown, unknown\n", - "deepspeed wheel compiled w. ...... torch 1.7, cuda 10.1\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "HDyVwahMCLKR" - }, - "source": [ - "# And this cell should be run without errors\n", - "import deepspeed.ops.sparse_attention.sparse_attn_op" - ], - "execution_count": 8, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sbNKoC8mo0_S" - }, - "source": [ - "### Download repo and install other libs" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "t43yH5k1jtZZ", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "e1cb348a-3ba6-4c11-9df9-ed74f7e1555d" - }, - "source": [ - "!git clone https://github.com/sberbank-ai/ru-gpts.git" - ], - "execution_count": 5, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Cloning into 'ru-gpts'...\n", - "remote: Enumerating objects: 77, done.\u001b[K\n", - "remote: Counting objects: 100% (77/77), done.\u001b[K\n", - "remote: Compressing objects: 100% (58/58), done.\u001b[K\n", - "remote: Total 325 (delta 38), reused 47 (delta 19), pack-reused 248\u001b[K\n", - "Receiving objects: 100% (325/325), 263.91 KiB | 8.80 MiB/s, done.\n", - "Resolving deltas: 100% (162/162), done.\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "H2XiJvm_tQgL" - }, - "source": [ - "!pip install transformers==3.5.1" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "gJLYfiOitYNx" - }, - "source": [ - "!pip install natsort" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7TbybJfIpBVa" - }, - "source": [ - "# Test model" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rU8lvJHAjpPQ" - }, - "source": [ - "### Load model" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "EnTy1SEajpPV" - }, - "source": [ - "import warnings\n", - "warnings.filterwarnings(\"ignore\")" - ], - "execution_count": 6, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "Z-DSEz0ljpPV" - }, - "source": [ - "import sys\n", - "sys.path.append(\"ru-gpts/gw\")" - ], - "execution_count": 7, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "_HeCFnJEjpPV" - }, - "source": [ - "from generation_wrapper import RuGPT3XL" - ], - "execution_count": 8, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OdyughHDjpPV" - }, - "source": [ - "Note! seq_len is max sequence length for generation used in generation process. Max avialable seq_len is 2048 (in tokens).\n", - "Also inference takes around 10 Gb GPU memory." - ] - }, - { - "cell_type": "code", - "metadata": { - "scrolled": true, - "id": "56aNJNPYjpPW", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "30a94066-8356-4dd6-fe59-8e728eba59a8" - }, - "source": [ - "gpt = RuGPT3XL.from_pretrained(\"sberbank-ai/rugpt3xl\", seq_len=512)" - ], - "execution_count": 9, - "outputs": [ - { - "output_type": "stream", - "text": [ - "> initializing model parallel with size 1\n", - "> initializing model parallel cuda seeds on global rank 0, model parallel rank 0, and data parallel rank 0 with model parallel seed: 3952 and data parallel seed: 1234\n", - "Use alternating sparse & dense attention layers\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7qR_3287jpPW" - }, - "source": [ - "### Get logits" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "9yfRylnnjpPW" - }, - "source": [ - "logits = gpt(\"Кто был президентом США в 2020? \").logits" - ], - "execution_count": 12, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "BHcwcMwHjpPX", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "2f481a21-4995-498f-ee1f-b0c195f6d794" - }, - "source": [ - "type(logits), logits.shape" - ], - "execution_count": 13, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "(torch.Tensor, torch.Size([1, 8, 50264]))" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 13 - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "J7a29eADjpPX" - }, - "source": [ - "### Get loss" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "q44D1VlojpPX" - }, - "source": [ - "input_ids = [gpt.tokenizer(\"Кто был президентом США в 2020? \")['input_ids']]\n", - "labels = input_ids" - ], - "execution_count": 14, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "9zIpNDegjpPX" - }, - "source": [ - "import torch\n", - "\n", - "\n", - "with torch.no_grad():\n", - " loss = gpt(input_ids=input_ids, labels=labels).loss" - ], - "execution_count": 15, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "WcYvXFsBjpPY", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "eaab922b-b74e-4517-c72e-1c05d017fdff" - }, - "source": [ - "loss" - ], - "execution_count": 16, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "[tensor(4.3908, device='cuda:0')]" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 16 - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lgi-JUNijpPY" - }, - "source": [ - "### Simple generation" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "Z0AIfKPPjpPY" - }, - "source": [ - "def filter_resuls(nr):\n", - " return [x[:x.find(\"<|endoftext|>\")] for x in nr]" - ], - "execution_count": 17, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aHWixkU3jpPY" - }, - "source": [ - "Greedy decoding" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "wla741VxjpPY", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "6b3d93d0-b6c9-4a97-d645-82a1fdd6b21d" - }, - "source": [ - "filter_resuls(gpt.generate(\n", - " \"Кто был президентом США в 2020? \",\n", - " max_length=50,\n", - " no_repeat_ngram_size=3,\n", - " repetition_penalty=2.,\n", - "))" - ], - "execution_count": 18, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "['Кто был президентом США в 2020? \\nВ этом году выборы президента Соединенных Штатов Америки пройдут уже через несколько дней. И, как и всегда на протяжении последних лет (а это не первый раз), кандидаты будут бороться за право стать главой государства с помощь']" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 18 - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "I_ltaza-jpPZ" - }, - "source": [ - "sample" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "3oPE1lP2jpPZ", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "9d4040fd-2beb-4efd-96f6-c44ebd260c31" - }, - "source": [ - "filter_resuls(gpt.generate(\n", - " \"Кто был президентом США в 2020? \", do_sample=True, num_return_sequences=5,\n", - " max_length=50,\n", - " no_repeat_ngram_size=3,\n", - " repetition_penalty=2.,\n", - "))" - ], - "execution_count": 19, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "['Кто был президентом США в 2020? \\nНовым, на первый взгляд странным и непонятным образом определилось будущее Америки. За несколько часов до конца таймера ожидания выборов президента уже ясно было - кто займет президентский пост после окончания голосования – Дональд Трам',\n", - " 'Кто был президентом США в 2020? \\n\"Я никогда не выйду живым из этого леса\",- говорит главный герой фильма \"Зеленая миля\". Услышав это, начинаешь задумываться: а так ли хорош твой опыт жизни на другой стороне земного шара',\n", - " 'Кто был президентом США в 2020? \\nВы хотите знать, как будет выглядеть ваш мир через сорок лет после того срока своего президентства уходящего следующего президента? Посмотрите на эти четыре изображения и попробуйте угадать кто бы это мог быть. \\n Вот первый предполаг',\n", - " 'Кто был президентом США в 2020? \\nВ интернете появился новый опрос на тему, которую так трудно назвать \"демократичной\". Народ хочет знать о том. какие президенты стояли у руля их страны и за сколько часов до собственной смерти они успевали подписат',\n", - " 'Кто был президентом США в 2020? \\nВот, мы знаем. Кто президент России с 2018 — точно: Владимир Владимирович Путин наш дорогой и любимый (пока не отлучим его по суду). У остальных тоже есть свои любимчики... или там ненав']" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 19 - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9FbokoJDjpPZ" - }, - "source": [ - "### Top_k top_p filtering" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "8L-CF6uLjpPZ", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "6bd8a3d2-a751-43e7-9770-6378cbd4050e" - }, - "source": [ - "filter_resuls(gpt.generate(\n", - " \"Александр Сергеевич Пушкин родился в \",\n", - " top_k=5,\n", - " top_p=0.95,\n", - " temperature=1.2,\n", - " num_return_sequences=5,\n", - " do_sample=True,\n", - " max_length=50,\n", - " no_repeat_ngram_size=3,\n", - " repetition_penalty=2.,\n", - "))" - ], - "execution_count": 20, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "['Александр Сергеевич Пушкин родился в \\nМоскве. В 1799 г., после того как его отец, отставной поручик лейб-гвардии Преображенского полка Александр Иванович (17451816), женился на вдове капитана Екатерине Петро',\n", - " 'Александр Сергеевич Пушкин родился в \\nМоскве, а его отец - Александр Иванович Глинка (1786-1831) служил капельмейстером при дворе императора Павла I. В 1811 г. семья Пушкиных переехала во Владимирскую губерни',\n", - " 'Александр Сергеевич Пушкин родился в \\n1817 году. Его отец – Александр Иванович, служил чиновником при министерстве внутренних дел Российской империи и умер рано; его мать Мария Алексеевна Ганнибал (урожденная Пушкина), урождённая Энгельга',\n", - " 'Александр Сергеевич Пушкин родился в \\n1817 г. (по другим сведениям 1820). В детстве и ранней юности жил с родителями за границей, учился у лучших педагогов Франции - Лагарпа, Жозефа Мари Ашара. С ранних лет увле',\n", - " 'Александр Сергеевич Пушкин родился в \\n1799 г. Его отец, Александр Матвеевич Ганнибал (ум.-1831), был родом из деревни Слепушкино Тверской губернии; дед - отставной майор Иван Петрович Гамильтон-Пушки']" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 20 - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "scs7xKdhjpPZ" - }, - "source": [ - "### Beamsearch" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "7Qw65CVzjpPZ", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "a07008ae-efd4-4673-dee5-c3350890a56f" - }, - "source": [ - "filter_resuls(gpt.generate(\n", - " text=\"Александр Сергеевич Пушкин родился в \",\n", - " max_length=50,\n", - " num_beams=10,\n", - " no_repeat_ngram_size=3,\n", - " repetition_penalty=2.,\n", - " num_return_sequences=5,\n", - "))" - ], - "execution_count": 21, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "['Александр Сергеевич Пушкин родился в \\n1799 году в селе Михайловском Псковской губернии. Его отец, \\nАлександр Львович Пушкин, происходил из старинного \\nдворянского рода. Мать, урожденная Ганнибал, был',\n", - " 'Александр Сергеевич Пушкин родился в \\n1799 году в селе Михайловском Псковской губернии. Его отец, \\nАлександр Львович Пушкин, происходил из старинного \\nдворянского рода. Мать поэта, Мария Алексеевна Ганнибал',\n", - " 'Александр Сергеевич Пушкин родился в \\n1799 году в селе Михайловском Псковской губернии. Его отец, \\nАлександр Львович Пушкин, происходил из старинного \\nдворянского рода. Мать поэта, Наталья Николаевна \\nПушкин',\n", - " 'Александр Сергеевич Пушкин родился в \\n1799 году в селе Михайловском Псковской губернии. Его отец, \\nАлександр Львович Пушкин, происходил из старинного \\nдворянского рода. Мать, урождённая Ганнибал, был',\n", - " 'Александр Сергеевич Пушкин родился в \\n1799 году в селе Михайловском Псковской губернии. Его отец, \\nАлександр Львович Пушкин, происходил из старинного \\nдворянского рода. Мать, урожденная Ганнибал,']" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 21 - } - ] - } - ] -} \ No newline at end of file diff --git a/examples/ruGPT3_generation_example.ipynb b/examples/ruGPT3_generation_example.ipynb deleted file mode 100644 index cd9ebe9..0000000 --- a/examples/ruGPT3_generation_example.ipynb +++ /dev/null @@ -1,228 +0,0 @@ -{ - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "GPT generation example.ipynb", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "accelerator": "GPU" - }, - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "ScihOkrU8mzF" - }, - "source": [ - "# How to generate text with ruGPTs models?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dktqThMB_qlM" - }, - "source": [ - "### Install enviroment" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "VWk_Cl9qn0O-", - "outputId": "db69bc3d-e39c-480a-aeac-f9cdfff7b659", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 204 - } - }, - "source": [ - "!wget https://raw.githubusercontent.com/sberbank-ai/ru-gpts/master/generate_transformers.py" - ], - "execution_count": 5, - "outputs": [ - { - "output_type": "stream", - "text": [ - "--2020-10-23 11:25:36-- https://raw.githubusercontent.com/sberbank-ai/ru-gpts/master/generate_transformers.py\n", - "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n", - "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 10472 (10K) [text/plain]\n", - "Saving to: ‘generate_transformers.py.1’\n", - "\n", - "generate_transforme 100%[===================>] 10.23K --.-KB/s in 0s \n", - "\n", - "2020-10-23 11:25:36 (60.9 MB/s) - ‘generate_transformers.py.1’ saved [10472/10472]\n", - "\n" - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vx50iHm3FqTL" - }, - "source": [ - "Here your mabe need to restart colab notebook" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "5yzxF35lAZZ1" - }, - "source": [ - "!pip3 install urllib3==1.25.4" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": { - "id": "W1bnQrMb_WM4" - }, - "source": [ - "!pip3 install transformers==2.8.0" - ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pIHQP__UB0U8" - }, - "source": [ - "### Run generation script" - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "Y8DYR4d6_-w7", - "outputId": "0f6adecd-5967-4c3a-ec1e-98f792ca03a1", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - } - }, - "source": [ - "!python generate_transformers.py \\\n", - " --model_type=gpt2 \\\n", - " --model_name_or_path=sberbank-ai/rugpt3large_based_on_gpt2 \\\n", - " --k=5 \\\n", - " --p=0.95 \\\n", - " --length=100" - ], - "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "text": [ - "2020-10-23 11:44:30.538874: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1\n", - "10/23/2020 11:44:34 - INFO - transformers.tokenization_utils - Model name 'sberbank-ai/rugpt3large_based_on_gpt2' not found in model shortcut name list (gpt2, gpt2-medium, gpt2-large, gpt2-xl, distilgpt2). Assuming 'sberbank-ai/rugpt3large_based_on_gpt2' is a path, a model identifier, or url to a directory containing tokenizer files.\n", - "10/23/2020 11:44:35 - INFO - transformers.tokenization_utils - loading file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/vocab.json from cache at /root/.cache/torch/transformers/39e50567636d4014628a4fb0b7665a179a6109d96765eb4e6a10e9f2306f963d.de52bc5880aff0437c7f24c33b71ecae48f6f03f0449dfe933503132c6c1cc26\n", - "10/23/2020 11:44:35 - INFO - transformers.tokenization_utils - loading file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/merges.txt from cache at /root/.cache/torch/transformers/0a94bcfc9ca640e268e53959b05f2ebe267a5cb686289b46cac4ffac589eac40.5885500c9887f152893bfadf3b511a9105243c57bfc45889e3552bdc61090032\n", - "10/23/2020 11:44:35 - INFO - transformers.tokenization_utils - loading file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/added_tokens.json from cache at None\n", - "10/23/2020 11:44:35 - INFO - transformers.tokenization_utils - loading file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/special_tokens_map.json from cache at None\n", - "10/23/2020 11:44:35 - INFO - transformers.tokenization_utils - loading file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/tokenizer_config.json from cache at None\n", - "10/23/2020 11:44:36 - INFO - transformers.configuration_utils - loading configuration file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/config.json from cache at /root/.cache/torch/transformers/53218293a9edec913332b4f2d178496a60f98d64a1af74f92984804152f9404c.02a103afdbdbf4896cc41fc6495e47b7e5e2f353a287fe98d178e669be028903\n", - "10/23/2020 11:44:36 - INFO - transformers.configuration_utils - Model config GPT2Config {\n", - " \"_num_labels\": 2,\n", - " \"activation_function\": \"gelu_new\",\n", - " \"architectures\": [\n", - " \"GPT2LMHeadModel\"\n", - " ],\n", - " \"attn_pdrop\": 0.1,\n", - " \"bad_words_ids\": null,\n", - " \"bos_token_id\": 50256,\n", - " \"decoder_start_token_id\": null,\n", - " \"do_sample\": false,\n", - " \"early_stopping\": false,\n", - " \"embd_pdrop\": 0.1,\n", - " \"eos_token_id\": 50256,\n", - " \"finetuning_task\": null,\n", - " \"gradient_checkpointing\": false,\n", - " \"id2label\": {\n", - " \"0\": \"LABEL_0\",\n", - " \"1\": \"LABEL_1\"\n", - " },\n", - " \"initializer_range\": 0.02,\n", - " \"is_decoder\": false,\n", - " \"is_encoder_decoder\": false,\n", - " \"label2id\": {\n", - " \"LABEL_0\": 0,\n", - " \"LABEL_1\": 1\n", - " },\n", - " \"layer_norm_epsilon\": 1e-05,\n", - " \"length_penalty\": 1.0,\n", - " \"max_length\": 20,\n", - " \"min_length\": 0,\n", - " \"model_type\": \"gpt2\",\n", - " \"n_ctx\": 2048,\n", - " \"n_embd\": 1536,\n", - " \"n_head\": 16,\n", - " \"n_inner\": null,\n", - " \"n_layer\": 24,\n", - " \"n_positions\": 2048,\n", - " \"no_repeat_ngram_size\": 0,\n", - " \"num_beams\": 1,\n", - " \"num_return_sequences\": 1,\n", - " \"output_attentions\": false,\n", - " \"output_hidden_states\": false,\n", - " \"output_past\": true,\n", - " \"pad_token_id\": null,\n", - " \"prefix\": null,\n", - " \"pruned_heads\": {},\n", - " \"repetition_penalty\": 1.0,\n", - " \"resid_pdrop\": 0.1,\n", - " \"summary_activation\": null,\n", - " \"summary_first_dropout\": 0.1,\n", - " \"summary_proj_to_labels\": true,\n", - " \"summary_type\": \"cls_index\",\n", - " \"summary_use_proj\": true,\n", - " \"task_specific_params\": null,\n", - " \"temperature\": 1.0,\n", - " \"top_k\": 50,\n", - " \"top_p\": 1.0,\n", - " \"torchscript\": false,\n", - " \"use_bfloat16\": false,\n", - " \"vocab_size\": 50257\n", - "}\n", - "\n", - "10/23/2020 11:44:36 - INFO - transformers.modeling_utils - loading weights file https://s3.amazonaws.com/models.huggingface.co/bert/sberbank-ai/rugpt3large_based_on_gpt2/pytorch_model.bin from cache at /root/.cache/torch/transformers/5f2ce73f5df1b0b20e9c0d5fadbedefdc9b484edcbc39252a1c913b1b4ce6cd2.5bdac7adaf803c2b7192441aba3020af4140f7177089f8f95940a0c073059a31\n", - "10/23/2020 11:45:50 - INFO - transformers.modeling_utils - Weights from pretrained model not used in GPT2LMHeadModel: ['transformer.h.0.attn.masked_bias', 'transformer.h.1.attn.masked_bias', 'transformer.h.2.attn.masked_bias', 'transformer.h.3.attn.masked_bias', 'transformer.h.4.attn.masked_bias', 'transformer.h.5.attn.masked_bias', 'transformer.h.6.attn.masked_bias', 'transformer.h.7.attn.masked_bias', 'transformer.h.8.attn.masked_bias', 'transformer.h.9.attn.masked_bias', 'transformer.h.10.attn.masked_bias', 'transformer.h.11.attn.masked_bias', 'transformer.h.12.attn.masked_bias', 'transformer.h.13.attn.masked_bias', 'transformer.h.14.attn.masked_bias', 'transformer.h.15.attn.masked_bias', 'transformer.h.16.attn.masked_bias', 'transformer.h.17.attn.masked_bias', 'transformer.h.18.attn.masked_bias', 'transformer.h.19.attn.masked_bias', 'transformer.h.20.attn.masked_bias', 'transformer.h.21.attn.masked_bias', 'transformer.h.22.attn.masked_bias', 'transformer.h.23.attn.masked_bias']\n", - "10/23/2020 11:45:56 - INFO - __main__ - Namespace(device=device(type='cuda'), k=5, length=100, model_name_or_path='sberbank-ai/rugpt3large_based_on_gpt2', model_type='gpt2', n_gpu=1, no_cuda=False, num_return_sequences=1, p=0.95, padding_text='', prompt='', repetition_penalty=1.0, seed=42, stop_token='', temperature=1.0, xlm_language='')\n", - "Context >>> Бразильские ученые открыли редкий вид карликовых единорогов, обитающих на западе Ютландии.\n", - "10/23/2020 11:46:30 - WARNING - transformers.modeling_utils - Setting `pad_token_id` to 50256 (first `eos_token_id`) to generate sequence\n", - "ruGPT:\n", - "Бразильские ученые открыли редкий вид карликовых единорогов, обитающих на западе Ютландии. Об этом сообщает Agence France-Presse. Единорог, получивший название Pygmaea cristata (P. cristata), был описан в 2011 году и назван в честь бразильского зоолога Фернандо Пабло Кастеллано (F. Fernando Castellano). По словам ученых, карликовые единорожки имеют размер около 1,8 метра, а длина тела составляет около 2,6 метра. В длину они достигают примерно 2\n", - "Context >>> " - ], - "name": "stdout" - } - ] - }, - { - "cell_type": "code", - "metadata": { - "id": "2rZAwIvXG31F" - }, - "source": [ - "" - ], - "execution_count": null, - "outputs": [] - } - ] -} \ No newline at end of file