Maple_old/Demo.ipynb

1 line
46 KiB
Plaintext

{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"Demo.ipynb","provenance":[],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"accelerator":"GPU"},"cells":[{"cell_type":"code","metadata":{"id":"c12qYj4FafMr","colab_type":"code","outputId":"8efa05de-2341-4798-e282-931a2bfc1a8b","executionInfo":{"status":"ok","timestamp":1579191364107,"user_tz":-60,"elapsed":9601,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":631}},"source":["!pip install transformers==2.3.0"],"execution_count":2,"outputs":[{"output_type":"stream","text":["Collecting transformers==2.3.0\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/50/10/aeefced99c8a59d828a92cc11d213e2743212d3641c87c82d61b035a7d5c/transformers-2.3.0-py3-none-any.whl (447kB)\n","\r\u001b[K |▊ | 10kB 29.0MB/s eta 0:00:01\r\u001b[K |█▌ | 20kB 5.5MB/s eta 0:00:01\r\u001b[K |██▏ | 30kB 6.3MB/s eta 0:00:01\r\u001b[K |███ | 40kB 5.3MB/s eta 0:00:01\r\u001b[K |███▋ | 51kB 5.6MB/s eta 0:00:01\r\u001b[K |████▍ | 61kB 6.7MB/s eta 0:00:01\r\u001b[K |█████▏ | 71kB 7.4MB/s eta 0:00:01\r\u001b[K |█████▉ | 81kB 7.5MB/s eta 0:00:01\r\u001b[K |██████▋ | 92kB 8.2MB/s eta 0:00:01\r\u001b[K |███████▎ | 102kB 8.2MB/s eta 0:00:01\r\u001b[K |████████ | 112kB 8.2MB/s eta 0:00:01\r\u001b[K |████████▉ | 122kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████▌ | 133kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████▎ | 143kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████ | 153kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████▊ | 163kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████▌ | 174kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████████▏ | 184kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████ | 194kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████▋ | 204kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████▍ | 215kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████████▏ | 225kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████████▉ | 235kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████████████▋ | 245kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████████▎ | 256kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████████ | 266kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████████▊ | 276kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████████████▌ | 286kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████████████████▎ | 296kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████████████ | 307kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████████████▊ | 317kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████████████▍ | 327kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████████████████▏ | 337kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████████████████████ | 348kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████████████████████▋ | 358kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████████████████▍ | 368kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████████████████ | 378kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████████████████▉ | 389kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████████████████████▋ | 399kB 8.2MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▎ | 409kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████████████████████ | 419kB 8.2MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▊ | 430kB 8.2MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▌| 440kB 8.2MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 450kB 8.2MB/s \n","\u001b[?25hRequirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.6/dist-packages (from transformers==2.3.0) (2019.12.20)\n","Requirement already satisfied: boto3 in /usr/local/lib/python3.6/dist-packages (from transformers==2.3.0) (1.10.47)\n","Collecting sacremoses\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/a6/b4/7a41d630547a4afd58143597d5a49e07bfd4c42914d8335b2a5657efc14b/sacremoses-0.0.38.tar.gz (860kB)\n","\r\u001b[K |▍ | 10kB 37.9MB/s eta 0:00:01\r\u001b[K |▊ | 20kB 43.7MB/s eta 0:00:01\r\u001b[K |█▏ | 30kB 50.6MB/s eta 0:00:01\r\u001b[K |█▌ | 40kB 49.5MB/s eta 0:00:01\r\u001b[K |██ | 51kB 30.0MB/s eta 0:00:01\r\u001b[K |██▎ | 61kB 33.3MB/s eta 0:00:01\r\u001b[K |██▋ | 71kB 19.6MB/s eta 0:00:01\r\u001b[K |███ | 81kB 16.4MB/s eta 0:00:01\r\u001b[K |███▍ | 92kB 18.0MB/s eta 0:00:01\r\u001b[K |███▉ | 102kB 18.7MB/s eta 0:00:01\r\u001b[K |████▏ | 112kB 18.7MB/s eta 0:00:01\r\u001b[K |████▋ | 122kB 18.7MB/s eta 0:00:01\r\u001b[K |█████ | 133kB 18.7MB/s eta 0:00:01\r\u001b[K |█████▎ | 143kB 18.7MB/s eta 0:00:01\r\u001b[K |█████▊ | 153kB 18.7MB/s eta 0:00:01\r\u001b[K |██████ | 163kB 18.7MB/s eta 0:00:01\r\u001b[K |██████▌ | 174kB 18.7MB/s eta 0:00:01\r\u001b[K |██████▉ | 184kB 18.7MB/s eta 0:00:01\r\u001b[K |███████▎ | 194kB 18.7MB/s eta 0:00:01\r\u001b[K |███████▋ | 204kB 18.7MB/s eta 0:00:01\r\u001b[K |████████ | 215kB 18.7MB/s eta 0:00:01\r\u001b[K |████████▍ | 225kB 18.7MB/s eta 0:00:01\r\u001b[K |████████▊ | 235kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████▏ | 245kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████▌ | 256kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████ | 266kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████▎ | 276kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████▋ | 286kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████ | 296kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████▍ | 307kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████▉ | 317kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████▏ | 327kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████▋ | 337kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████ | 348kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████▎ | 358kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████▊ | 368kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████ | 378kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████▌ | 389kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████▉ | 399kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████▎ | 409kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████▋ | 419kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████ | 430kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████▍ | 440kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████▊ | 450kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████▏ | 460kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████▌ | 471kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████ | 481kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████▎ | 491kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████▋ | 501kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████ | 512kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████▍ | 522kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████▉ | 532kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████▏ | 542kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████▋ | 552kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████ | 563kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████▎ | 573kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████▊ | 583kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████ | 593kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████▌ | 604kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████▉ | 614kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████▏ | 624kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████▋ | 634kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████ | 645kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████▍ | 655kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████▊ | 665kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████▏ | 675kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████▌ | 686kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████▉ | 696kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████▎ | 706kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████▋ | 716kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████ | 727kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████▍ | 737kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████▉ | 747kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████▏ | 757kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████▌ | 768kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████ | 778kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▎ | 788kB 18.7MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▊ | 798kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████████ | 808kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▌ | 819kB 18.7MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▉ | 829kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▏| 839kB 18.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▋| 849kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 860kB 18.7MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 870kB 18.7MB/s \n","\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from transformers==2.3.0) (2.21.0)\n","Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from transformers==2.3.0) (1.17.5)\n","Requirement already satisfied: tqdm in /usr/local/lib/python3.6/dist-packages (from transformers==2.3.0) (4.28.1)\n","Collecting sentencepiece\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/74/f4/2d5214cbf13d06e7cb2c20d84115ca25b53ea76fa1f0ade0e3c9749de214/sentencepiece-0.1.85-cp36-cp36m-manylinux1_x86_64.whl (1.0MB)\n","\u001b[K |████████████████████████████████| 1.0MB 20.9MB/s \n","\u001b[?25hRequirement already satisfied: s3transfer<0.3.0,>=0.2.0 in /usr/local/lib/python3.6/dist-packages (from boto3->transformers==2.3.0) (0.2.1)\n","Requirement already satisfied: botocore<1.14.0,>=1.13.47 in /usr/local/lib/python3.6/dist-packages (from boto3->transformers==2.3.0) (1.13.47)\n","Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/lib/python3.6/dist-packages (from boto3->transformers==2.3.0) (0.9.4)\n","Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from sacremoses->transformers==2.3.0) (1.12.0)\n","Requirement already satisfied: click in /usr/local/lib/python3.6/dist-packages (from sacremoses->transformers==2.3.0) (7.0)\n","Requirement already satisfied: joblib in /usr/local/lib/python3.6/dist-packages (from sacremoses->transformers==2.3.0) (0.14.1)\n","Requirement already satisfied: urllib3<1.25,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->transformers==2.3.0) (1.24.3)\n","Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->transformers==2.3.0) (3.0.4)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->transformers==2.3.0) (2019.11.28)\n","Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->transformers==2.3.0) (2.8)\n","Requirement already satisfied: docutils<0.16,>=0.10 in /usr/local/lib/python3.6/dist-packages (from botocore<1.14.0,>=1.13.47->boto3->transformers==2.3.0) (0.15.2)\n","Requirement already satisfied: python-dateutil<3.0.0,>=2.1; python_version >= \"2.7\" in /usr/local/lib/python3.6/dist-packages (from botocore<1.14.0,>=1.13.47->boto3->transformers==2.3.0) (2.6.1)\n","Building wheels for collected packages: sacremoses\n"," Building wheel for sacremoses (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for sacremoses: filename=sacremoses-0.0.38-cp36-none-any.whl size=884629 sha256=e56b28f7193f8287ab1d6084c7b931035db77113f4068a645668b1f12034bc17\n"," Stored in directory: /root/.cache/pip/wheels/6d/ec/1a/21b8912e35e02741306f35f66c785f3afe94de754a0eaf1422\n","Successfully built sacremoses\n","Installing collected packages: sacremoses, sentencepiece, transformers\n","Successfully installed sacremoses-0.0.38 sentencepiece-0.1.85 transformers-2.3.0\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"AdfxKpnra5Cs","colab_type":"code","outputId":"08cff934-f708-4c11-f33e-c35530789e2b","executionInfo":{"status":"ok","timestamp":1579191371950,"user_tz":-60,"elapsed":16241,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":631}},"source":["!pip install python-telegram-bot --upgrade"],"execution_count":3,"outputs":[{"output_type":"stream","text":["Collecting python-telegram-bot\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/11/8f/e1ae8acee0398c041464ceb97be4f76819876df8585660ee402e92015d44/python_telegram_bot-12.3.0-py2.py3-none-any.whl (351kB)\n","\r\u001b[K |█ | 10kB 34.6MB/s eta 0:00:01\r\u001b[K |█▉ | 20kB 6.8MB/s eta 0:00:01\r\u001b[K |██▉ | 30kB 9.7MB/s eta 0:00:01\r\u001b[K |███▊ | 40kB 6.4MB/s eta 0:00:01\r\u001b[K |████▋ | 51kB 7.8MB/s eta 0:00:01\r\u001b[K |█████▋ | 61kB 9.2MB/s eta 0:00:01\r\u001b[K |██████▌ | 71kB 10.5MB/s eta 0:00:01\r\u001b[K |███████▌ | 81kB 11.8MB/s eta 0:00:01\r\u001b[K |████████▍ | 92kB 13.1MB/s eta 0:00:01\r\u001b[K |█████████▎ | 102kB 10.2MB/s eta 0:00:01\r\u001b[K |██████████▎ | 112kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████▏ | 122kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████ | 133kB 10.2MB/s eta 0:00:01\r\u001b[K |█████████████ | 143kB 10.2MB/s eta 0:00:01\r\u001b[K |██████████████ | 153kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████████ | 163kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████████▉ | 174kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████████▊ | 184kB 10.2MB/s eta 0:00:01\r\u001b[K |█████████████████▊ | 194kB 10.2MB/s eta 0:00:01\r\u001b[K |██████████████████▋ | 204kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████████████▌ | 215kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████████████▌ | 225kB 10.2MB/s eta 0:00:01\r\u001b[K |█████████████████████▍ | 235kB 10.2MB/s eta 0:00:01\r\u001b[K |██████████████████████▍ | 245kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████████████████▎ | 256kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████████████████▏ | 266kB 10.2MB/s eta 0:00:01\r\u001b[K |█████████████████████████▏ | 276kB 10.2MB/s eta 0:00:01\r\u001b[K |██████████████████████████ | 286kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████████████████████ | 296kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████████████████████ | 307kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████████████████████▉ | 317kB 10.2MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▉ | 327kB 10.2MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▊ | 337kB 10.2MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▋| 348kB 10.2MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 358kB 10.2MB/s \n","\u001b[?25hRequirement already satisfied, skipping upgrade: certifi in /usr/local/lib/python3.6/dist-packages (from python-telegram-bot) (2019.11.28)\n","Requirement already satisfied, skipping upgrade: future>=0.16.0 in /usr/local/lib/python3.6/dist-packages (from python-telegram-bot) (0.16.0)\n","Collecting cryptography\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/ca/9a/7cece52c46546e214e10811b36b2da52ce1ea7fa203203a629b8dfadad53/cryptography-2.8-cp34-abi3-manylinux2010_x86_64.whl (2.3MB)\n","\u001b[K |████████████████████████████████| 2.3MB 58.5MB/s \n","\u001b[?25hCollecting tornado>=5.1\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/30/78/2d2823598496127b21423baffaa186b668f73cd91887fcef78b6eade136b/tornado-6.0.3.tar.gz (482kB)\n","\u001b[K |████████████████████████████████| 491kB 60.5MB/s \n","\u001b[?25hRequirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.8 in /usr/local/lib/python3.6/dist-packages (from cryptography->python-telegram-bot) (1.13.2)\n","Requirement already satisfied, skipping upgrade: six>=1.4.1 in /usr/local/lib/python3.6/dist-packages (from cryptography->python-telegram-bot) (1.12.0)\n","Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.6/dist-packages (from cffi!=1.11.3,>=1.8->cryptography->python-telegram-bot) (2.19)\n","Building wheels for collected packages: tornado\n"," Building wheel for tornado (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for tornado: filename=tornado-6.0.3-cp36-cp36m-linux_x86_64.whl size=423197 sha256=688f57c1c1d4c78d25e8024e194e8bca5b95c17d8caba9911e44337402f4acb4\n"," Stored in directory: /root/.cache/pip/wheels/84/bf/40/2f6ef700f48401ca40e5e3dd7d0e3c0a90e064897b7fe5fc08\n","Successfully built tornado\n","\u001b[31mERROR: google-colab 1.0.0 has requirement tornado~=4.5.0, but you'll have tornado 6.0.3 which is incompatible.\u001b[0m\n","Installing collected packages: cryptography, tornado, python-telegram-bot\n"," Found existing installation: tornado 4.5.3\n"," Uninstalling tornado-4.5.3:\n"," Successfully uninstalled tornado-4.5.3\n","Successfully installed cryptography-2.8 python-telegram-bot-12.3.0 tornado-6.0.3\n"],"name":"stdout"},{"output_type":"display_data","data":{"application/vnd.colab-display-data+json":{"pip_warning":{"packages":["tornado"]}}},"metadata":{"tags":[]}}]},{"cell_type":"markdown","metadata":{"id":"zY1PPfYRbG0j","colab_type":"text"},"source":["Run the following cell and restart the runtime if you get any warnings above."]},{"cell_type":"code","metadata":{"id":"u7_FYEt-a_GB","colab_type":"code","outputId":"b0424867-3d81-4d3e-a675-ed4cd5396bbd","executionInfo":{"status":"ok","timestamp":1579191384899,"user_tz":-60,"elapsed":28597,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":704}},"source":["!pip install -U ipykernel"],"execution_count":4,"outputs":[{"output_type":"stream","text":["Collecting ipykernel\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/e1/92/8fec943b5b81078399f969f00557804d884c96fcd0bc296e81a2ed4fd270/ipykernel-5.1.3-py3-none-any.whl (116kB)\n","\r\u001b[K |██▉ | 10kB 28.7MB/s eta 0:00:01\r\u001b[K |█████▋ | 20kB 6.2MB/s eta 0:00:01\r\u001b[K |████████▍ | 30kB 7.4MB/s eta 0:00:01\r\u001b[K |███████████▎ | 40kB 5.5MB/s eta 0:00:01\r\u001b[K |██████████████ | 51kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████▉ | 61kB 7.0MB/s eta 0:00:01\r\u001b[K |███████████████████▊ | 71kB 7.8MB/s eta 0:00:01\r\u001b[K |██████████████████████▌ | 81kB 7.2MB/s eta 0:00:01\r\u001b[K |█████████████████████████▎ | 92kB 7.9MB/s eta 0:00:01\r\u001b[K |████████████████████████████ | 102kB 8.4MB/s eta 0:00:01\r\u001b[K |███████████████████████████████ | 112kB 8.4MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 122kB 8.4MB/s \n","\u001b[?25hRequirement already satisfied, skipping upgrade: traitlets>=4.1.0 in /usr/local/lib/python3.6/dist-packages (from ipykernel) (4.3.3)\n","Requirement already satisfied, skipping upgrade: tornado>=4.2 in /usr/local/lib/python3.6/dist-packages (from ipykernel) (6.0.3)\n","Requirement already satisfied, skipping upgrade: jupyter-client in /usr/local/lib/python3.6/dist-packages (from ipykernel) (5.3.4)\n","Requirement already satisfied, skipping upgrade: ipython>=5.0.0 in /usr/local/lib/python3.6/dist-packages (from ipykernel) (5.5.0)\n","Requirement already satisfied, skipping upgrade: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.1.0->ipykernel) (0.2.0)\n","Requirement already satisfied, skipping upgrade: six in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.1.0->ipykernel) (1.12.0)\n","Requirement already satisfied, skipping upgrade: decorator in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.1.0->ipykernel) (4.4.1)\n","Requirement already satisfied, skipping upgrade: jupyter-core>=4.6.0 in /usr/local/lib/python3.6/dist-packages (from jupyter-client->ipykernel) (4.6.1)\n","Requirement already satisfied, skipping upgrade: pyzmq>=13 in /usr/local/lib/python3.6/dist-packages (from jupyter-client->ipykernel) (17.0.0)\n","Requirement already satisfied, skipping upgrade: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from jupyter-client->ipykernel) (2.6.1)\n","Requirement already satisfied, skipping upgrade: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.6/dist-packages (from ipython>=5.0.0->ipykernel) (1.0.18)\n","Requirement already satisfied, skipping upgrade: simplegeneric>0.8 in /usr/local/lib/python3.6/dist-packages (from ipython>=5.0.0->ipykernel) (0.8.1)\n","Requirement already satisfied, skipping upgrade: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from ipython>=5.0.0->ipykernel) (4.7.0)\n","Requirement already satisfied, skipping upgrade: pickleshare in /usr/local/lib/python3.6/dist-packages (from ipython>=5.0.0->ipykernel) (0.7.5)\n","Requirement already satisfied, skipping upgrade: setuptools>=18.5 in /usr/local/lib/python3.6/dist-packages (from ipython>=5.0.0->ipykernel) (42.0.2)\n","Requirement already satisfied, skipping upgrade: pygments in /usr/local/lib/python3.6/dist-packages (from ipython>=5.0.0->ipykernel) (2.1.3)\n","Requirement already satisfied, skipping upgrade: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython>=5.0.0->ipykernel) (0.1.8)\n","Requirement already satisfied, skipping upgrade: ptyprocess>=0.5 in /usr/local/lib/python3.6/dist-packages (from pexpect; sys_platform != \"win32\"->ipython>=5.0.0->ipykernel) (0.6.0)\n","\u001b[31mERROR: google-colab 1.0.0 has requirement ipykernel~=4.6.0, but you'll have ipykernel 5.1.3 which is incompatible.\u001b[0m\n","\u001b[31mERROR: google-colab 1.0.0 has requirement tornado~=4.5.0, but you'll have tornado 6.0.3 which is incompatible.\u001b[0m\n","Installing collected packages: ipykernel\n"," Found existing installation: ipykernel 4.6.1\n"," Uninstalling ipykernel-4.6.1:\n"," Successfully uninstalled ipykernel-4.6.1\n","Successfully installed ipykernel-5.1.3\n"],"name":"stdout"},{"output_type":"display_data","data":{"application/vnd.colab-display-data+json":{"pip_warning":{"packages":["ipykernel"]}}},"metadata":{"tags":[]}}]},{"cell_type":"code","metadata":{"id":"mjvt2nJfZntK","colab_type":"code","outputId":"843127d6-1d45-4cbf-d8ab-6fbb84081afc","executionInfo":{"status":"ok","timestamp":1579192249178,"user_tz":-60,"elapsed":6216,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":143}},"source":["!git clone https://github.com/polakowo/gpt2bot.git\n","!cp -r gpt2bot/gpt2bot/. . & rm -rf gpt2bot"],"execution_count":15,"outputs":[{"output_type":"stream","text":["Cloning into 'gpt2bot'...\n","remote: Enumerating objects: 80, done.\u001b[K\n","remote: Counting objects: 1% (1/80)\u001b[K\rremote: Counting objects: 2% (2/80)\u001b[K\rremote: Counting objects: 3% (3/80)\u001b[K\rremote: Counting objects: 5% (4/80)\u001b[K\rremote: Counting objects: 6% (5/80)\u001b[K\rremote: Counting objects: 7% (6/80)\u001b[K\rremote: Counting objects: 8% (7/80)\u001b[K\rremote: Counting objects: 10% (8/80)\u001b[K\rremote: Counting objects: 11% (9/80)\u001b[K\rremote: Counting objects: 12% (10/80)\u001b[K\rremote: Counting objects: 13% (11/80)\u001b[K\rremote: Counting objects: 15% (12/80)\u001b[K\rremote: Counting objects: 16% (13/80)\u001b[K\rremote: Counting objects: 17% (14/80)\u001b[K\rremote: Counting objects: 18% (15/80)\u001b[K\rremote: Counting objects: 20% (16/80)\u001b[K\rremote: Counting objects: 21% (17/80)\u001b[K\rremote: Counting objects: 22% (18/80)\u001b[K\rremote: Counting objects: 23% (19/80)\u001b[K\rremote: Counting objects: 25% (20/80)\u001b[K\rremote: Counting objects: 26% (21/80)\u001b[K\rremote: Counting objects: 27% (22/80)\u001b[K\rremote: Counting objects: 28% (23/80)\u001b[K\rremote: Counting objects: 30% (24/80)\u001b[K\rremote: Counting objects: 31% (25/80)\u001b[K\rremote: Counting objects: 32% (26/80)\u001b[K\rremote: Counting objects: 33% (27/80)\u001b[K\rremote: Counting objects: 35% (28/80)\u001b[K\rremote: Counting objects: 36% (29/80)\u001b[K\rremote: Counting objects: 37% (30/80)\u001b[K\rremote: Counting objects: 38% (31/80)\u001b[K\rremote: Counting objects: 40% (32/80)\u001b[K\rremote: Counting objects: 41% (33/80)\u001b[K\rremote: Counting objects: 42% (34/80)\u001b[K\rremote: Counting objects: 43% (35/80)\u001b[K\rremote: Counting objects: 45% (36/80)\u001b[K\rremote: Counting objects: 46% (37/80)\u001b[K\rremote: Counting objects: 47% (38/80)\u001b[K\rremote: Counting objects: 48% (39/80)\u001b[K\rremote: Counting objects: 50% (40/80)\u001b[K\rremote: Counting objects: 51% (41/80)\u001b[K\rremote: Counting objects: 52% (42/80)\u001b[K\rremote: Counting objects: 53% (43/80)\u001b[K\rremote: Counting objects: 55% (44/80)\u001b[K\rremote: Counting objects: 56% (45/80)\u001b[K\rremote: Counting objects: 57% (46/80)\u001b[K\rremote: Counting objects: 58% (47/80)\u001b[K\rremote: Counting objects: 60% (48/80)\u001b[K\rremote: Counting objects: 61% (49/80)\u001b[K\rremote: Counting objects: 62% (50/80)\u001b[K\rremote: Counting objects: 63% (51/80)\u001b[K\rremote: Counting objects: 65% (52/80)\u001b[K\rremote: Counting objects: 66% (53/80)\u001b[K\rremote: Counting objects: 67% (54/80)\u001b[K\rremote: Counting objects: 68% (55/80)\u001b[K\rremote: Counting objects: 70% (56/80)\u001b[K\rremote: Counting objects: 71% (57/80)\u001b[K\rremote: Counting objects: 72% (58/80)\u001b[K\rremote: Counting objects: 73% (59/80)\u001b[K\rremote: Counting objects: 75% (60/80)\u001b[K\rremote: Counting objects: 76% (61/80)\u001b[K\rremote: Counting objects: 77% (62/80)\u001b[K\rremote: Counting objects: 78% (63/80)\u001b[K\rremote: Counting objects: 80% (64/80)\u001b[K\rremote: Counting objects: 81% (65/80)\u001b[K\rremote: Counting objects: 82% (66/80)\u001b[K\rremote: Counting objects: 83% (67/80)\u001b[K\rremote: Counting objects: 85% (68/80)\u001b[K\rremote: Counting objects: 86% (69/80)\u001b[K\rremote: Counting objects: 87% (70/80)\u001b[K\rremote: Counting objects: 88% (71/80)\u001b[K\rremote: Counting objects: 90% (72/80)\u001b[K\rremote: Counting objects: 91% (73/80)\u001b[K\rremote: Counting objects: 92% (74/80)\u001b[K\rremote: Counting objects: 93% (75/80)\u001b[K\rremote: Counting objects: 95% (76/80)\u001b[K\rremote: Counting objects: 96% (77/80)\u001b[K\rremote: Counting objects: 97% (78/80)\u001b[K\rremote: Counting objects: 98% (79/80)\u001b[K\rremote: Counting objects: 100% (80/80)\u001b[K\rremote: Counting objects: 100% (80/80), done.\u001b[K\n","remote: Compressing objects: 100% (65/65), done.\u001b[K\n","remote: Total 246 (delta 43), reused 32 (delta 14), pack-reused 166\u001b[K\n","Receiving objects: 100% (246/246), 5.54 MiB | 8.77 MiB/s, done.\n","Resolving deltas: 100% (139/139), done.\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"iM774HIQbejL","colab_type":"code","outputId":"285e1cb6-c197-417c-fd00-f966bbd19041","executionInfo":{"status":"ok","timestamp":1579191421100,"user_tz":-60,"elapsed":2520,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":899}},"source":["!cat chatbot.cfg"],"execution_count":2,"outputs":[{"output_type":"stream","text":["[model]\n","# Path to folder where the model files will be stored.\n","# If path is relative, then the model.py must be called from the same directory.\n","data_folder = models\n","# Size of the GPT-2 model. Could be one of 'small' (117M) or 'medium' (345M)\n","# Select small for CPU or experimentation, and medium for GPU\n","model_size = medium\n","# Dataset name the model was trained on. One of 'multiref' (147M multi-turn dialogue \n","# from Reddit discussion thread) or 'dstc' (DSTC-7 grounded dialogue generation challenge).\n","dataset = multiref\n","# True: load model trained from scratch or False: load model trained from fine-tuning the GPT-2.\n","from_scratch = False\n","# Avoid using CUDA when available.\n","no_cuda = False\n","\n","[decoder]\n","# Seed for random number generators, fix seed to reproduce results.\n","# By default there is no seed and each turn should be unique.\n","seed\n","# Float value controlling randomness in boltzmann\n","# distribution. Lower temperature results in less random completions. As the\n","# temperature approaches zero, the model will become deterministic and\n","# repetitive. Higher temperature results in more random completions.\n","temperature = 0.7\n","# Integer value controlling diversity. 1 means only 1 word is\n","# considered for each step (token), resulting in deterministic completions,\n","# while 40 means 40 words are considered at each step. 0 (default) is a\n","# special setting meaning no restrictions. 40 generally is a good value.\n","top_k = 40\n","# Like top_k, top_p is a constraint on the craziness of the output\n","top_p = 0\n","# Length of text to be returned, inclusive of punctuations etc.\n","length = 32\n","# Number of samples to generate.\n","# You will have to implement a strategy to choose one message from generated list.\n","# For example, you can choose the most dissimilar message, or the lengthiest one.\n","# But keep in mind: the higher, the slower the generation.\n","num_samples = 1\n","\n","[chatbot]\n","# The number of turns the model should consider. \n","# Set to 0 to focus on the last message. Set to -1 for unlimited context length.\n","max_turns_history = 2\n","# Your Telegram token. See https://core.telegram.org/bots\n","telegram_token = *YOUR_TOKEN_HERE*\n","# Your GIPHY API token. See \n","giphy_token = *YOUR_TOKEN_HERE*\n","# Value from 0-10 which makes results weirder as you go up the scale.\n","giphy_weirdness = 5\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"CXsTgp27q0Rx","colab_type":"text"},"source":["Change the config file how you like."]},{"cell_type":"code","metadata":{"id":"_4_7cTmaavIg","colab_type":"code","colab":{}},"source":["import configparser\n","\n","config = configparser.ConfigParser(allow_no_value=True)\n","config.read('chatbot.cfg')\n","# config.set('decoder', 'seed', '42')\n","\n","with open('my_chatbot.cfg', 'w') as f:\n"," config.write(f)"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"U1706pocb5eZ","colab_type":"code","outputId":"21e6069b-f556-4722-f81f-3d16873dbfcc","executionInfo":{"status":"ok","timestamp":1579191562253,"user_tz":-60,"elapsed":3053,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":395}},"source":["!cat my_chatbot.cfg"],"execution_count":4,"outputs":[{"output_type":"stream","text":["[model]\n","data_folder = models\n","model_size = medium\n","dataset = multiref\n","from_scratch = False\n","no_cuda = False\n","\n","[decoder]\n","seed\n","temperature = 0.7\n","top_k = 40\n","top_p = 0\n","length = 32\n","num_samples = 1\n","\n","[chatbot]\n","max_turns_history = 2\n","telegram_token = *YOUR_TOKEN_HERE*\n","giphy_token = *YOUR_TOKEN_HERE*\n","giphy_weirdness = 5\n","\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"z5xTyqGdnh1d","colab_type":"code","outputId":"0579f220-5332-4f44-f833-f8afc8709173","executionInfo":{"status":"ok","timestamp":1579191568054,"user_tz":-60,"elapsed":3160,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":323}},"source":["!nvidia-smi"],"execution_count":5,"outputs":[{"output_type":"stream","text":["Thu Jan 16 16:19:26 2020 \n","+-----------------------------------------------------------------------------+\n","| NVIDIA-SMI 440.44 Driver Version: 418.67 CUDA Version: 10.1 |\n","|-------------------------------+----------------------+----------------------+\n","| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n","| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n","|===============================+======================+======================|\n","| 0 Tesla P100-PCIE... Off | 00000000:00:04.0 Off | 0 |\n","| N/A 36C P0 27W / 250W | 0MiB / 16280MiB | 0% Default |\n","+-------------------------------+----------------------+----------------------+\n"," \n","+-----------------------------------------------------------------------------+\n","| Processes: GPU Memory |\n","| GPU PID Type Process name Usage |\n","|=============================================================================|\n","| No running processes found |\n","+-----------------------------------------------------------------------------+\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"638dKOn7q8Bx","colab_type":"text"},"source":["Run the interactive chatbot."]},{"cell_type":"code","metadata":{"id":"lgwI4QdUcP6X","colab_type":"code","outputId":"75207acd-c713-4d34-be68-1150e40cee37","executionInfo":{"status":"ok","timestamp":1579191831983,"user_tz":-60,"elapsed":259737,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":431}},"source":["!python interactive_bot.py --config my_chatbot.cfg"],"execution_count":6,"outputs":[{"output_type":"stream","text":["2020-01-16 16:19:39,318 - model - INFO - Downloading model files...\n","100% 293/293 [00:00<00:00, 291769.01B/s]\n","100% 1042301/1042301 [00:01<00:00, 1001422.11B/s]\n","100% 456318/456318 [00:00<00:00, 521309.13B/s]\n","100% 862954531/862954531 [02:06<00:00, 6811374.11B/s]\n","2020-01-16 16:21:50,687 - model - INFO - Loading the model...\n","2020-01-16 16:22:09,854 - __main__ - INFO - Running the chatbot...\n","Bot >>> Just start texting me. If I'm getting annoying, type \"Bye\". To quit the chat type \"Quit\".\n","User >>> Hello\n","Bot >>> Hi, I'm on my way!\n","User >>> Where?\n","Bot >>> My gate is open!\n","User >>> What are you talking about?\n","Bot >>> I'm so sorry! I didn't realize until I got to your town! I'll close the gates and open my gates\n","User >>> What's the name of the town?\n","Bot >>> L'anime, in front of the train station\n","User >>> What are you going to do?\n","Bot >>> I just got home from class. I'm going to open my gates!\n","User >>> Why do you want to open them?\n","Bot >>> To get a few more people to come over and hangout!\n","User >>> You're the best\n","Bot >>> No, you!\n","User >>> Quit\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"yS4rSjXUq9m-","colab_type":"text"},"source":["Run the Telegram bot."]},{"cell_type":"code","metadata":{"id":"RmnarYPGTJQ2","colab_type":"code","colab":{}},"source":["config = configparser.ConfigParser(allow_no_value=True)\n","config.read(f'chatbot.cfg')\n","config.set('chatbot', 'telegram_token', '*YOUR_TOKEN_HERE*')\n","config.set('chatbot', 'giphy_token', '*YOUR_TOKEN_HERE*')\n","\n","with open(f'my_chatbot.cfg', 'w') as f:\n"," config.write(f)"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"de-g5_AUTQZ_","colab_type":"code","outputId":"b7945764-da67-49e9-ed44-424b6d98245d","executionInfo":{"status":"ok","timestamp":1579192798434,"user_tz":-60,"elapsed":2866,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":395}},"source":["!cat my_chatbot.cfg"],"execution_count":20,"outputs":[{"output_type":"stream","text":["[model]\n","data_folder = models\n","model_size = medium\n","dataset = multiref\n","from_scratch = False\n","no_cuda = False\n","\n","[decoder]\n","seed\n","temperature = 0.7\n","top_k = 40\n","top_p = 0\n","length = 32\n","num_samples = 1\n","\n","[chatbot]\n","max_turns_history = 2\n","telegram_token = *YOUR_TOKEN_HERE*\n","giphy_token = *YOUR_TOKEN_HERE*\n","giphy_weirdness = 5\n","\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"5AcaOYfkh3dz","colab_type":"code","outputId":"00ca9d6a-15d9-4f0c-e784-dc02dcb3c804","executionInfo":{"status":"ok","timestamp":1579192779102,"user_tz":-60,"elapsed":516145,"user":{"displayName":"Oleg Polakow","photoUrl":"https://lh4.googleusercontent.com/-OxrfQHAWmSQ/AAAAAAAAAAI/AAAAAAAABR4/cis0IgU-Avs/s64/photo.jpg","userId":"08729449616485726726"}},"colab":{"base_uri":"https://localhost:8080/","height":125}},"source":["!python telegram_bot.py --config my_chatbot.cfg"],"execution_count":18,"outputs":[{"output_type":"stream","text":["2020-01-16 16:31:06,463 - model - INFO - Downloading model files...\n","2020-01-16 16:31:06,463 - model - INFO - Loading the model...\n","2020-01-16 16:31:18,945 - __main__ - INFO - Initializing the bot...\n","2020-01-16 16:31:18,946 - __main__ - INFO - Running the chatbot...\n","2020-01-16 16:39:28,395 - telegram.ext.updater - INFO - Received signal 2 (SIGINT), stopping...\n","2020-01-16 16:39:36,926 - telegram.ext.updater - INFO - Received signal 2 (SIGINT), stopping...\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"fBSolNDhsqrX","colab_type":"text"},"source":["Go to your bot's Telegram channel, type /start and start conversation with the bot."]},{"cell_type":"code","metadata":{"id":"3ULFoe0ljNbk","colab_type":"code","colab":{}},"source":[""],"execution_count":0,"outputs":[]}]}