{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "k2exvBPRM5Fr" }, "source": [ "# Fake News Detection with Hugging Face" ] }, { "cell_type": "markdown", "metadata": { "id": "KyqMa46fM5GR" }, "source": [ "Hugging Face is an open-source and platform provider of machine learning technologies. You can use install their package to access some interesting pre-built models to use them directly or to fine-tune (retrain it on your dataset leveraging the prior knowledge coming with the first training), then host your trained models on the platform, so that you may use them later on other devices and apps.\n", "\n", "Please, [go to the website and sign-in](https://huggingface.co/) to access all the features of the platform.\n", "\n", "[Read more about Text classification with Hugging Face](https://huggingface.co/tasks/text-classification)\n", "\n", "The Hugging face models are Deep Learning based, so will need a lot of computational GPU power to train them. Please use [Colab](https://colab.research.google.com/) to do it, or your other GPU cloud provider, or a local machine having NVIDIA GPU." ] }, { "cell_type": "markdown", "metadata": { "id": "hOmGEPGfM5GV" }, "source": [ "Find below a simple example, with just 10 epochs of fine-tuning`.\n", "\n", "Read more about the fine-tuning concept : [here](https://deeplizard.com/learn/video/5T-iXNNiwIs#:~:text=Fine%2Dtuning%20is%20a%20way,perform%20a%20second%20similar%20task.)" ] }, { "cell_type": "markdown", "metadata": { "id": "15acY9BWW8sh" }, "source": [ "# Installation" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "IrxIHtodqxAQ", "outputId": "03072112-65d0-4261-df58-993ccd515994" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.30.2)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.2)\n", "Requirement already satisfied: huggingface-hub<1.0,>=0.14.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.16.2)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.22.4)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2022.10.31)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.27.1)\n", "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.13.3)\n", "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.3.1)\n", "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.65.0)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (2023.6.0)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.14.1->transformers) (4.6.3)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2023.5.7)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n", "Requirement already satisfied: datasets in /usr/local/lib/python3.10/dist-packages (2.13.1)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from datasets) (1.22.4)\n", "Requirement already satisfied: pyarrow>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (9.0.0)\n", "Requirement already satisfied: dill<0.3.7,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.3.6)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets) (1.5.3)\n", "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (2.27.1)\n", "Requirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (4.65.0)\n", "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from datasets) (3.2.0)\n", "Requirement already satisfied: multiprocess in /usr/local/lib/python3.10/dist-packages (from datasets) (0.70.14)\n", "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (2023.6.0)\n", "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets) (3.8.4)\n", "Requirement already satisfied: huggingface-hub<1.0.0,>=0.11.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (0.16.2)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from datasets) (23.1)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (6.0)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (23.1.0)\n", "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (2.0.12)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (6.0.4)\n", "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (4.0.2)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.9.2)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.3)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.1)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0.0,>=0.11.0->datasets) (3.12.2)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0.0,>=0.11.0->datasets) (4.6.3)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (2023.5.7)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (3.4)\n", "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2022.7.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->datasets) (1.16.0)\n", "Requirement already satisfied: accelerate in /usr/local/lib/python3.10/dist-packages (0.20.3)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from accelerate) (1.22.4)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from accelerate) (23.1)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from accelerate) (5.9.5)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from accelerate) (6.0)\n", "Requirement already satisfied: torch>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from accelerate) (2.0.1+cu118)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (3.12.2)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (4.6.3)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (1.11.1)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (3.1)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (3.1.2)\n", "Requirement already satisfied: triton==2.0.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.6.0->accelerate) (2.0.0)\n", "Requirement already satisfied: cmake in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.6.0->accelerate) (3.25.2)\n", "Requirement already satisfied: lit in /usr/local/lib/python3.10/dist-packages (from triton==2.0.0->torch>=1.6.0->accelerate) (16.0.6)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.6.0->accelerate) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.6.0->accelerate) (1.3.0)\n", "Requirement already satisfied: sentencepiece in /usr/local/lib/python3.10/dist-packages (0.1.99)\n" ] } ], "source": [ "# !pip install zipfile\n", "\n", "!pip install transformers\n", "!pip install datasets\n", "!pip install --upgrade accelerate\n", "!pip install sentencepiece" ] }, { "cell_type": "markdown", "metadata": { "id": "GzVa1HgauFp9" }, "source": [ "## Importing Libraries" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "id": "8Hkg-TfCM5GX" }, "outputs": [], "source": [ "import huggingface_hub # Importing the huggingface_hub library for model sharing and versioning\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "import transformers\n", "from datasets import load_dataset\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.utils import resample\n", "import os\n", "\n", "from datasets import DatasetDict, Dataset\n", "from sklearn.metrics import mean_squared_error, classification_report\n", "\n", "from transformers import AutoModelForSequenceClassification\n", "from transformers import AutoTokenizer, AutoConfig\n", "from transformers import TrainingArguments, Trainer\n", "from google.colab import drive\n", "# import zipfile\n", "import torch" ] }, { "cell_type": "markdown", "metadata": { "id": "O_hiA9f6Y8H8" }, "source": [ "## Load Dataset and Delete Null Values" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "id": "hs4TZrFMEbbZ" }, "outputs": [], "source": [ "real_url = \"https://raw.githubusercontent.com/KaiDMML/FakeNewsNet/master/dataset/gossipcop_real.csv\"\n", "fake_url = \"https://raw.githubusercontent.com/KaiDMML/FakeNewsNet/master/dataset/gossipcop_fake.csv\"\n", "# fake_url = \"https://raw.githubusercontent.com/KaiDMML/FakeNewsNet/master/dataset/politifact_fake.csv\"\n", "# real_url = \"https://raw.githubusercontent.com/KaiDMML/FakeNewsNet/master/dataset/politifact_real.csv\"\n", "\n", "# Read the csv file from the url\n", "fake = pd.read_csv(fake_url)\n", "real = pd.read_csv(real_url)\n", "\n", "# A way to delete rows with empty or null values\n", "fake = fake[~fake.isna().any(axis=1)]\n", "real = real[~real.isna().any(axis=1)]" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_YmHe_brTc23", "outputId": "2dfde384-ca56-472e-ea57-8483eb14406f" }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ ":1: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " fake[\"label\"] = 1\n" ] } ], "source": [ "fake[\"label\"] = 1\n", "real[\"label\"] = 0" ] }, { "cell_type": "code", "execution_count": 127, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "ZbOLR5zdTefJ", "outputId": "7b9f35eb-cfba-436b-a2ac-04f9c6a79c3e" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " id news_url \\\n", "0 gossipcop-2493749932 www.dailymail.co.uk/tvshowbiz/article-5874213/... \n", "1 gossipcop-4580247171 hollywoodlife.com/2018/05/05/paris-jackson-car... \n", "2 gossipcop-941805037 variety.com/2017/biz/news/tax-march-donald-tru... \n", "3 gossipcop-2547891536 www.dailymail.co.uk/femail/article-3499192/Do-... \n", "4 gossipcop-5476631226 variety.com/2018/film/news/list-2018-oscar-nom... \n", "5 gossipcop-5189580095 www.townandcountrymag.com/society/tradition/a1... \n", "6 gossipcop-9588339534 www.foxnews.com/entertainment/2016/12/16/bigge... \n", "7 gossipcop-8753274298 www.eonline.com/news/958257/caitlyn-jenner-add... \n", "8 gossipcop-8105333868 www.inquisitr.com/3871816/taylor-swift-reporte... \n", "9 gossipcop-2803748870 www.huffingtonpost.com/entry/kate-mckinnon-the... \n", "\n", " title \\\n", "0 Did Miley Cyrus and Liam Hemsworth secretly ge... \n", "1 Paris Jackson & Cara Delevingne Enjoy Night Ou... \n", "2 Celebrities Join Tax March in Protest of Donal... \n", "3 Cindy Crawford's daughter Kaia Gerber wears a ... \n", "4 Full List of 2018 Oscar Nominations – Variety \n", "5 Here's What Really Happened When JFK Jr. Met P... \n", "6 Biggest celebrity scandals of 2016 \n", "7 Caitlyn Jenner Addresses Rumored Romance With ... \n", "8 Taylor Swift Reportedly Reacts To Tom Hiddlest... \n", "9 For The Love Of God, Why Can't Anyone Write Ka... \n", "\n", " tweet_ids label \n", "0 284329075902926848\\t284332744559968256\\t284335... 1 \n", "1 992895508267130880\\t992897935418503169\\t992899... 1 \n", "2 853359353532829696\\t853359576543920128\\t853359... 1 \n", "3 988821905196158981\\t988824206556172288\\t988825... 1 \n", "4 955792793632432131\\t955795063925301249\\t955798... 1 \n", "5 890253005299351552\\t890401381814870016\\t890491... 1 \n", "6 683226380742557696\\t748604615503929345\\t748604... 1 \n", "7 1026891446081728512\\t1026891745219543043\\t1026... 1 \n", "8 818928533569437697\\t819100640878202880\\t819174... 1 \n", "9 816030248190046212\\t816030859484626947\\t816049... 1 " ], "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnews_urltitletweet_idslabel
0gossipcop-2493749932www.dailymail.co.uk/tvshowbiz/article-5874213/...Did Miley Cyrus and Liam Hemsworth secretly ge...284329075902926848\\t284332744559968256\\t284335...1
1gossipcop-4580247171hollywoodlife.com/2018/05/05/paris-jackson-car...Paris Jackson & Cara Delevingne Enjoy Night Ou...992895508267130880\\t992897935418503169\\t992899...1
2gossipcop-941805037variety.com/2017/biz/news/tax-march-donald-tru...Celebrities Join Tax March in Protest of Donal...853359353532829696\\t853359576543920128\\t853359...1
3gossipcop-2547891536www.dailymail.co.uk/femail/article-3499192/Do-...Cindy Crawford's daughter Kaia Gerber wears a ...988821905196158981\\t988824206556172288\\t988825...1
4gossipcop-5476631226variety.com/2018/film/news/list-2018-oscar-nom...Full List of 2018 Oscar Nominations – Variety955792793632432131\\t955795063925301249\\t955798...1
5gossipcop-5189580095www.townandcountrymag.com/society/tradition/a1...Here's What Really Happened When JFK Jr. Met P...890253005299351552\\t890401381814870016\\t890491...1
6gossipcop-9588339534www.foxnews.com/entertainment/2016/12/16/bigge...Biggest celebrity scandals of 2016683226380742557696\\t748604615503929345\\t748604...1
7gossipcop-8753274298www.eonline.com/news/958257/caitlyn-jenner-add...Caitlyn Jenner Addresses Rumored Romance With ...1026891446081728512\\t1026891745219543043\\t1026...1
8gossipcop-8105333868www.inquisitr.com/3871816/taylor-swift-reporte...Taylor Swift Reportedly Reacts To Tom Hiddlest...818928533569437697\\t819100640878202880\\t819174...1
9gossipcop-2803748870www.huffingtonpost.com/entry/kate-mckinnon-the...For The Love Of God, Why Can't Anyone Write Ka...816030248190046212\\t816030859484626947\\t816049...1
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 127 } ], "source": [ "df = pd.concat([fake, real], axis =0 )\n", "df.head(10)" ] }, { "cell_type": "markdown", "metadata": { "id": "ebVVDR2pM5Gc" }, "source": [ "## Splitting the dataset" ] }, { "cell_type": "code", "execution_count": 128, "metadata": { "id": "4F8L25--M5Ge" }, "outputs": [], "source": [ "# Split the train data => {train, eval} train 80%, test 20%\n", "train, eval = train_test_split(df, test_size=0.2, random_state=42, stratify=df['label'])" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 687 }, "id": "1m6lssvoM5Gh", "outputId": "2319fd32-3291-410b-c9a5-83e9d7512477" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " id news_url \\\n", "2211 gossipcop-901009 https://www.englishbaby.com/vocab/word/5457 \n", "16164 gossipcop-882599 https://people.com/country/jessie-james-decker... \n", "11087 gossipcop-854980 http://celebrityinsider.org/candace-cameron-bu... \n", "5830 gossipcop-842466 https://www.thesun.co.uk/tvandshowbiz/7955772/... \n", "10598 gossipcop-890551 https://www.vanityfair.com/hollywood/2017/10/s... \n", "\n", " title \\\n", "2211 What does \"cultural event\" mean? \n", "16164 Jessie James Decker Says NFL Star Husband Eric... \n", "11087 Candace Cameron Bure Discusses Her ‘Addiction’... \n", "5830 David and Victoria Beckham barely speak at fas... \n", "10598 Stranger Things: Noah Schnapp on the Character... \n", "\n", " tweet_ids label \n", "2211 947425653900660737\\t947425752525561857\\t947425... 0 \n", "16164 912398822659178497\\t912483537206616065 0 \n", "11087 865720564496859136\\t865720884484374528\\t865720... 0 \n", "5830 851464446614663168\\t851467744243585026\\t851468... 0 \n", "10598 925429690042523648\\t925429880153624578\\t925430... 0 " ], "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnews_urltitletweet_idslabel
2211gossipcop-901009https://www.englishbaby.com/vocab/word/5457What does \"cultural event\" mean?947425653900660737\\t947425752525561857\\t947425...0
16164gossipcop-882599https://people.com/country/jessie-james-decker...Jessie James Decker Says NFL Star Husband Eric...912398822659178497\\t9124835372066160650
11087gossipcop-854980http://celebrityinsider.org/candace-cameron-bu...Candace Cameron Bure Discusses Her ‘Addiction’...865720564496859136\\t865720884484374528\\t865720...0
5830gossipcop-842466https://www.thesun.co.uk/tvandshowbiz/7955772/...David and Victoria Beckham barely speak at fas...851464446614663168\\t851467744243585026\\t851468...0
10598gossipcop-890551https://www.vanityfair.com/hollywood/2017/10/s...Stranger Things: Noah Schnapp on the Character...925429690042523648\\t925429880153624578\\t925430...0
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 129 } ], "source": [ "# get the first 5 rows of the train set to make sure it looks right\n", "train.head()" ] }, { "cell_type": "code", "execution_count": 130, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "en8ZlNb_M5Gl", "outputId": "8f26dfb7-4eff-4ca7-dfc9-a204cdc1627e" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Int64Index: 16516 entries, 2211 to 2430\n", "Data columns (total 5 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 id 16516 non-null object\n", " 1 news_url 16516 non-null object\n", " 2 title 16516 non-null object\n", " 3 tweet_ids 16516 non-null object\n", " 4 label 16516 non-null int64 \n", "dtypes: int64(1), object(4)\n", "memory usage: 774.2+ KB\n" ] } ], "source": [ "# check datatypes of the train set, object can mean text or string\n", "train.info()" ] }, { "cell_type": "code", "execution_count": 131, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 545 }, "id": "zSSOm3-2M5Gn", "outputId": "8d3e2c3b-e525-4101-dff5-9fd07d42870c" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " id \\\n", "14713 gossipcop-910751 \n", "3531 gossipcop-9408067324 \n", "4070 gossipcop-900528 \n", "3665 gossipcop-899642 \n", "10362 gossipcop-907483 \n", "\n", " news_url \\\n", "14713 http://wstale.com/celebrities/5-unexpected-val... \n", "3531 www.inquisitr.com/4279012/katie-holmes-jamie-f... \n", "4070 http://time.com/money/5084724/golden-globes-20... \n", "3665 https://deadline.com/2018/09/the-marvelous-mrs... \n", "10362 https://www.instyle.com/news/chrissy-teigen-to... \n", "\n", " title \\\n", "14713 5 Unexpected Valentine’s Day Outfit Ideas—No L... \n", "3531 Katie Holmes, Jamie Foxx Spending Millions To ... \n", "4070 How to Watch the 2018 Golden Globes for Free \n", "3665 ‘The Marvelous Mrs. Maisel’ Season 2 To Defini... \n", "10362 Chrissy Teigen Poses Topless to Show Off the S... \n", "\n", " tweet_ids label \n", "14713 958827824584056837\\t958828582318391296\\t958828... 0 \n", "3531 869600536131227648\\t869600543882268672\\t869611... 1 \n", "4070 948650012367564800 0 \n", "3665 940611199519117312\\t940615533967396864\\t940615... 0 \n", "10362 954401657084895233\\t954402855338807296\\t954403... 0 " ], "text/html": [ "\n", "
\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnews_urltitletweet_idslabel
14713gossipcop-910751http://wstale.com/celebrities/5-unexpected-val...5 Unexpected Valentine’s Day Outfit Ideas—No L...958827824584056837\\t958828582318391296\\t958828...0
3531gossipcop-9408067324www.inquisitr.com/4279012/katie-holmes-jamie-f...Katie Holmes, Jamie Foxx Spending Millions To ...869600536131227648\\t869600543882268672\\t869611...1
4070gossipcop-900528http://time.com/money/5084724/golden-globes-20...How to Watch the 2018 Golden Globes for Free9486500123675648000
3665gossipcop-899642https://deadline.com/2018/09/the-marvelous-mrs...‘The Marvelous Mrs. Maisel’ Season 2 To Defini...940611199519117312\\t940615533967396864\\t940615...0
10362gossipcop-907483https://www.instyle.com/news/chrissy-teigen-to...Chrissy Teigen Poses Topless to Show Off the S...954401657084895233\\t954402855338807296\\t954403...0
\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ] }, "metadata": {}, "execution_count": 131 } ], "source": [ "# get the first 5 rows of the eval or test set\n", "eval.head()" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "USbmZj8rM5Go", "outputId": "8f244906-3c9a-42dc-9768-9dc652db91cb" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([0, 1])" ] }, "metadata": {}, "execution_count": 132 } ], "source": [ "eval.label.unique()" ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "XFuOwIrCM5Gp", "outputId": "b45e9f01-889c-4c1c-bd3a-eb90e93646b1" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "new dataframe shapes: train is (16516, 5), eval is (4129, 5)\n" ] } ], "source": [ "print(f\"new dataframe shapes: train is {train.shape}, eval is {eval.shape}\")" ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 510 }, "id": "2MMjiFe_rMEM", "outputId": "b3b6ff8d-9705-4941-85b7-0d4dbdfdf46d" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "([,\n", " ],\n", " [Text(-0.8138650525648107, 0.8818297319855336, 'Fake'),\n", " Text(0.8138650938462391, -0.8818296938857598, 'True')],\n", " [Text(-0.4747546139961395, 0.5144006769915612, '23.7%'),\n", " Text(0.4747546380769727, -0.5144006547666932, '76.3%')])" ] }, "metadata": {}, "execution_count": 134 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ], "source": [ "# 90 true, 10 fake, 70, 30\n", "# 40, 60 good, 55, 45 is good\n", "# Checking if our df is well balanced\n", "label_size = [df['label'].sum(),len(df['label'])-df['label'].sum()]\n", "plt.pie(label_size,explode=[0.1,0.1],colors=['firebrick','navy'],startangle=90,shadow=True,labels=['Fake','True'],autopct='%1.1f%%')" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "id": "zQ_fHRdcoKKw" }, "outputs": [], "source": [ "# # Get the minority class\n", "# minority_class = df[df[\"label\"] == 1]\n", "\n", "# # Upsample the minority class (1 which is fake)\n", "# minority_upsampled = resample(minority_class,\n", "# replace=True,\n", "# n_samples=df[\"label\"].value_counts()[0],\n", "# random_state=123)\n", "\n", "# # Combine the upsampled minority class with the majority class\n", "# df_upsampled = pd.concat([df[df[\"label\"] == 0], minority_upsampled])" ] }, { "cell_type": "code", "execution_count": 154, "metadata": { "id": "uZgGLchXrB_V" }, "outputs": [], "source": [ "# Get the majority class\n", "majority_class = df[df[\"label\"] == 0]\n", "\n", "# downsample the majority class (0 which is real)\n", "majority_downsampled = resample(majority_class,\n", " replace=True,\n", " n_samples=df[\"label\"].value_counts()[1],\n", " random_state=123)\n", "\n", "# Combine the downsampled majority class with the majority class\n", "df_downsampled = pd.concat([df[df[\"label\"] == 1], majority_downsampled])" ] }, { "cell_type": "code", "execution_count": 155, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 510 }, "id": "R3djbN_IoQrv", "outputId": "90915a96-fca5-40fa-a487-b098e7f3aebf" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "([,\n", " ],\n", " [Text(-1.2000000000000002, 1.469576158976824e-16, 'Fake'),\n", " Text(1.2000000000000002, -2.939152317953648e-16, 'True')],\n", " [Text(-0.7, 8.572527594031472e-17, '50.0%'),\n", " Text(0.7, -1.7145055188062944e-16, '50.0%')])" ] }, "metadata": {}, "execution_count": 155 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbMAAAGFCAYAAAB3zh03AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6CElEQVR4nO3dd3hc5YH2/+90SaPerGK5yrItjJuEC+BuMM2mhBIILWHJAlsSLggJmzdv2GQTh+wmL4QEQn67oQUSShKWmIRiwBCbmBDbBNu4N8mWbPUyGmlGU35/jCwkSzYu0pw5M/fnunQJnTkj3wNm7nme85xzLOFwOIyIiIiJWY0OICIicqZUZiIiYnoqMxERMT2VmYiImJ7KTERETE9lJiIipqcyExER01OZiYiI6anMRETE9FRmIiJieiozERExPZWZiIiYnspMRERMT2UmIiKmpzITERHTU5mJiIjpqcxERMT0VGYiImJ6KjMRETE9lZmIiJieykxERExPZSYiIqanMhMREdNTmYmIiOmpzERExPRUZiIiYnoqMxERMT2VmYiImJ7KTERETE9lJiIipqcyExER01OZiYiI6anMRETE9FRmIiJieiozERExPZWZiIiYnspMRERMT2UmIiKmpzITERHTU5mJiIjpqcxERMT0VGYiImJ6KjMRETE9lZmIiJieykxEREzPbnQAEaOEQyF8jY10HTmCr76erro6fHV1BDs7CQUChAMBwsHgp/8cCFD+zW/iys6Oas6NG2t5+OEPsNst2O1WHA4bdru19ysjw0VhYRpFRWkUFqZSVJRGTk5KVDOKGE1lJnGpq76ersOHewuqq77+09Lq+e5raCAcDJ7S7514990Q5TKrrm7l6af/fkrPcTptFBSk9iu4T79Him/kyHSys5OHKbVIdKnMxPS8hw7RumULLZs307plC61bt+JvajI6lqH8/iBVVa1UVbWecL+SknQqKoqoqCikoqKQysoi8vLcUUopMnRUZmIqiVBcra3ttLd3YLVasNlstLZ6hu3Pqq5uo7q6jZdf3t67rW/BVVZGvqvgJNapzCRm+ZubafzrX+O6uI7V2dnFD37wCw4dOoLFYsFisVBdbQOcUctwooKrrIwU3Lx5o0lJcUQtk8hnUZlJTPHs28eR1as5/NZbNG/ceMrHtMyuuztAQ0MzLpeT9PRUwuEwTU1BwNh/D8cWXHKynSVLxrFiRRmXXVZGYWGaoflEVGZiqHAwSNPGjb0F1rFvn9GRYkJysou0tMjUXkqKHxi+qcbT0dkZYNWqnaxatROLBSori1ixYiIrVkxk6tQRRseTBKQyk6gLdHRQ9957HFm9miPvvkt3c7PRkeQMhMPw4Yc1fPhhDd/61juMHp3B8uVlrFgxkYULx+Bw2IyOKAlAZSZR0Vlby5G33uLw6tU0fvABIb/f6EgyTA4caOWnP/2Qn/70Q9LTXVx0USnLl5dx6aUTyMrSqQAyPFRmMmzCwSBH3n6b/c8+S/3atZGP8JJQ2tp8vPDCVl54YStOp42rry7nrrsqOe+8UUZHkzijMpMh52to4MDzz1P1m9/QWVNjdByJEX5/kOee28xzz21m2rQR3HlnJV/4wlRSU6O3UlPil8pMhkzjhx+y/1e/4vAbb2gaUU7o738/wh13vMp9963mppumctdd51Benmd0LDExlZmckUBHBwdffpn9zz5L+44dRscRk2lr8/Gzn33Iz372IQsXjuGuuyq58srJ2O26BrqcGpWZnJb2nTvZ/+yzHHz5ZQKe2Fo2Lua0Zs1+1qzZT2FhKrffPpMvf7mC4uJ0o2OJSejjj5ySI2vWsO7661lz8cXs/9WvVGQy5GprPXznO+8xZszDXH31C2zaVGt0JDEBlZmclOZNm1h3/fX89bbbaPrrX42OIwkgEAjx299uo6LiF1x//W/Zsye+L2UmZ0ZlJifUvmsXf/3Hf2Tt1VerxMQQ4TD85jdbmDz5Z9x116scPqzZABlIZSaD8tbU8NF99/HupZdyZPVqo+OI0N0d4rHH/kZp6U/45jfforW1y+hIEkNUZtKPv7mZrd//Pu8sWUL1b3+bcBf6ldjX0dHN97+/lvHjf8KPfvQ+XV0BoyNJDFCZCQABr5edP/0pby1cyN7/+R+dJyYxr7Gxk3vvfZOyskf45S83EQyGjI4kBlKZJbhQdzf7nnmGtxcvZsf/+39anSimU13dxm23vcLUqT/n97/fZnQcMYjKLIHVr1vHOxdeyJYHHsBXX290HJEz8skn9Vx11Qucd94v2bZNf58TjcosAQU6Ovj4W99i/S234K2qMjqOyJB6//1qZsx4nAcfXKupxwSiMksw9evW8faFF3Lgued0FXuJWz5fkG984y2N0hKIyixBBDo62PD1r7P+llvwHT5sdByRqPjgg0MapSUIlVkCqF+3jjeXLKHmpZc0GpOEo1FaYlCZxbHe0djNNxPQAg9JcBqlxTeVWZyqf/993ly6NDIaExFAo7R4pjKLM72jsZtuIlBXZ3QckZikUVr8UZnFkZbNmzUaEzlJR0dp55//BIcOtRkdR86QyixO7HnhBf589dUajYmcovXrD3LOOf8fH3xw0OgocgZUZiYXCoVYe++9fHL//RDQBVdFTkdtrYcFC57k6af/bnQUOU0qMxNrqanh1csuo/n3vzc6iojp+XxBbrnlZe6553UdRzMhlZlJ7fvLX3h7+XLYscPoKCJx5cc/Xs9ll/2alhbdL81MVGYm9LennuLvX/wijpYWo6OIxKXXXtvN7Nn/zY4dDUZHkZOkMjORYDDI6q9/nZrvfhdbd7fRcUTi2s6djcye/d+89tpuo6PISVCZmYS3tZVV111H50svYdElqUSiorXVx6WXPsd//df7RkeRz6AyM4Habdt47ZJLsG7aZHQUkYQTCoX52tfe5Oabf4/PpxXDsUplFuO2v/EG66+9FoeudC9iqGee+ZgFC56kvr7D6CgyCJVZjAqHw6x/9lm2/eu/Yvd6jY4jIkQug7Vw4VMcPuwxOoocQ2UWg7r9ft546CFqv/Md7FroIRJTPvmknvnzn+DgQV0CK5aozGKMp7WVlx94AO+jj2LXFT1EYtKuXU3Mn/8E+/e3GB1FeqjMYkhTXR0v/du/4XjxRewhXYFAJJbt29fC/PlPsGtXo9FRBJVZzGioreXl//N/yHz9dWwqMhFTqK5uY8GCJ9m+XSdXG01lFgOOHDrEy9/+Ntlvv41N55CJmEptrYfFi59i9+4mo6MkNJWZwQ5XV/O///7v5L7zjopMxKSOFpqOoRlHZWagQ/v38/vvfpe8NWs0tShictXVbSxZ8rRWORpEZWaQQ/v28fL3v0/BmjXYg0Gj44jIENi7t5klS57WeWgGUJkZoLaqiv/94Q8pfPddFZlInNm5s5GlS5+moUEXO4gmlVmUHTl0iN8+/DD5a9bg0HlkInFp69Z6rrjiN/j9+rAaLSqzKKqvreXFRx8la/VqXH6/0XFEZBitW1fNnXeuMjpGwlCZRUnjkSO89PjjJK1eTbpH8+kiieCXv/yIhx9eb3SMhKAyi4KWxkZe+sUv8L37LiMadHKlSCK55543WL16r9Ex4p7KbJj5urpY9cwzNL7/PuOqq42OIyJRFgyGue66l3RS9TBTmQ2jUCjE6t/9jp3vvkv5/v26Q7RIgmpq6uTyy39DW5vP6ChxS2U2jD585x3Wr1rF1L17sWnBh0hC++STer7whd8RCulD7XBQmQ2TXZs388YLLzBpzx5cWvAhIsCqVTv55jffMjpGXFKZDYO6mhr+8Mwz5G/bRroWfIhIHz/4wTp+/evNRseIOyqzIdbR3s4rTz5JaNMmig4dMjqOiMSg2257hQ0baoyOEVdUZkMoEAjwx1//mkPvv8+EAweMjiMiMaqzM8AVVzyvazgOIZXZEAmHw7y3ahWbVq/m7P37seqaiyJyAgcPtvH5z79EWKuch4TKbIhs/uAD1rzyCpPq6nB0dhodR0RM4N13D/DTn/7V6BhxQWU2BKp27+aPzz1HRnMzWToxWkROwTe+8RZ79uiE6jOlMjtDLQ0NvPL007TX1TF+926j44iIyXi93dx22yuabjxDKrMzEAwGef3FF6nauZOzm5qweXX/IhE5dZpuPHMqszPw97/8hb//5S+Md7lw79ljdBwRMTFNN54ZldlpajxyhLd//3uSrFZGbNpkdBwRMTlNN54ZldlpCAaDrP7d76g7dIiyw4exdXQYHUlE4oCmG0+fyuw09E4vJiXh3rXL6DgiEkc03Xh6VGanqN/04saNRscRkTij6cbTozI7BZpeFJFo0HTjqVOZnQJNL4pItGi68dSozE7S0elFp81GvqYXRWSYeb3d3HXXH42OYRoqs5PQd3qx1OvFrulFEYmCN97Yw1tv7TU6himozE7C0enF4uJi0jbrpnoiEj333687U58MldlnODq96HA6ydu3D6vPZ3QkEUkgH35Yw0svfWJ0jJinMjuBcDjMe6++ypFDhyjOy8O9davRkUQkAX3zm28TCISMjhHTVGYnUL1nDx+vX09+cTHpH3+MNRAwOpKIJKCdOxt54gldNu9EVGbHEQ6HWffaa3g9HrJsNlJ27jQ6kogksAceeJfOzm6jY8Qsldlx7N6yhU82bGBESQnpGzdiCWmILyLGqalp5yc/+cDoGDFLZTaIYDDIutdeI9DdTWZ3N0n79hkdSUSEBx9cR3Nzp9ExYpLKbBDbN21i5+bNFIwaRdrf/obF6EAiIkBzcxcPPrjO6BgxSWV2jG6/n7V/+hMWi4WMtjaSDh0yOpKISK+f/OQDamrajY4Rc1Rmx9j8wQfs276dwp5RmYhILOnsDPDv/77G6BgxR2XWR2dHB+tefx1nUhLphw/jrK83OpKIyAC//OVH7NzZaHSMmKIy6+Ojdes4uGcPBSUluD/+2Og4IiKDCgRC/PCHOnbWl8qsR3tLC++/8QYp6ekkt7TgbGgwOpKIyHH9+tdbaGnpMjpGzFCZ9djw3nscOXSI/OJiUrZtMzqOiMgJeb3dPPnkR0bHiBkqM6Cpro71b71FenY29kCAZJ1XJiIm8NhjfyMcDhsdIyaozIDNf/0rjUeOkFtQQMrOnViCQaMjiYh8pp07G3nrLX34BpUZXZ2dbFq7ltSMDKwWCynbtxsdSUTkpD366IdGR4gJCV9muzZv5sjBg+QWFOA6dAh7u05GFBHzeOWVHRw61GZ0DMMldJmFw2E2rV2LxWrF4XRq4YeImE4wGObxxzcYHcNwCV1mNfv3s3fbNnIKCrB5PLgOHjQ6kojIKfvv/95Id3diH+tP6DLb8uGHeNvbSU1PJ2X7dixaFSQiJlRb6+H3v0/s4/0JW2aetjY+ev99MnJysIRCJOvmmyJiYom+ECRhy2z7pk001dWRnZ9P0v792Lp0Jr2ImNe77x7gk08S93qyCVlmwWCQjX/+M06XC5vdjlsLP0QkDiTy6Cwhy2z/jh1U7dlDbmEhttZWnHV1RkcSETljzzzzMX5/Yi4EScgy2/zBBwR8PpLdbpIOHDA6jojIkGhr8/HOO4l5RZCEK7Omujq2/u1vZOXnA5BUVWVwIhGRofPKKzuMjmCIhCuzTzZupLWpiYycHKydnTh0A04RiSN/+ENirsxOqDILBoN8tG4dKampWK1WXNXVOrdMROJKdXUbmzbVGh0j6hKqzA5XVVFXU0Nmbi6gKUYRiU+JONWYUGV2YOdOurxekt1uCAZx1tQYHUlEZMgl4lRjwpRZOBxm+0cf4UpKwmKx4KqpwRoIGB1LRGTIbdxYm3BX0k+YMmuqq+PQ/v1k5OQA4NIUo4jEqXA48UZnCVNmB3btwtPaSmpGBoTDJFVXGx1JRGTYJNpxs4Qpsz1bt2Kz2bBarTgaG7F5vUZHEhEZNm+/vY+ODr/RMaImIcqso72d3Vu3kpadDWiKUUTin88X5PXX9xgdI2oSosyqdu+mrbmZjKwsQEvyRSQxJNJUY0KU2b7t2wkHg9gdDqweD46mJqMjiYgMu1df3UUolBgXhoj7Muv2+9nx0Ue4MzIAcOncMhFJEA0NXj766LDRMaIi7svs0L59NNbVkdFzvMzR0GBwIhGR6NmwITE+wMd9mR3YtQt/VxdJKSkAOBobDU4kIhI9GzYkxnUa47rMQqEQ2zZuJMntPrpBx8tEJKGozOJAc3099TU1vasY7c3NWIKJeRdWEUlMH398JCHuPh3XZdZQW0uHx0NKWhqgKUYRSTx+f5AtW+qMjjHs4rvMDh8mHAphs9kALf4QkcSUCItA4rrMaquqsPYUGWhkJiKJKRGOm8VtmYVCIQ7u3UtKaurRDVr8ISIJSWVmYs319bS1tPQeL7O3tGjxh4gkpM2bj9DdHd/vf3FbZg21tXg9HlJ6luXreJmIJCqfL8jmzfG9CCR+y+zo4g+7HVCZiUhii/dFIHFbZlr8ISLyqXg/bhaXZRYKhajes0eLP0REeqjMTKi5vp721tZPF3+0tWnxh4gktM2bjxAOx+/tYOKyzI5d/GHt6DA4kYiIsXy+II2NnUbHGDbxWWbHLP6web0GJxIRMV5NTbvREYZNXJbZsYs/rJ3x+2lERORk1daqzEwjHA5zcN++Txd/oJGZiAhoZGYqvq4uOjs6cLpcvdusKjMREWprPUZHGDZxV2adHg/dfj92p7N3m03TjCIimmY0E6/HQ8Dvx9GnzDQyExGBmhqNzEyjo70dv9+Ps+/ITGUmIqKRmZl0dnQQDoV6VzNafD6dMC0ighaAmIq3vR2LxdL7s46XiYhEHD6saUbT6PB4+l2yRcfLREQiIlcBic/3xLgrs7bm5n4nTOt4mYjIp+J1eX7clVlrUxMOnWMmIjKoeD1uFldlFg6HI2XmcPRu06WsREQ+Fa8rGuOqzPw+H10dHf3PMevuNjCRiEhs8Xj8RkcYFlEpsyeffJLMzMxh/3OOXv2j7zQjcXz/HhGRUxUIhIyOMCzsp7LzrbfeylNPPTVg+65duygtLR2yUKer42iZ9RmZWUKx+x/uuaYmftPS0m9bscPBYyUlAPhDIX7Z1MSfPR66w2FmJCdzR24uWfbj/2cLh8M819zMG+3tdIRCTE5K4s7cXIp6pl67w2Eeqa/ng44Osux27sjJYXpKSu/zf9fSQn0gwD/m5g79CxYZMu8A7x6zLQf4l55/7gbeALYAAaAUuBRI5fjCPb93I9AFlACX9fxeen7PK8D2nt9zKTC+z/PXAa3AJafzgqKmu/v03xP7nvY0mG9/+9s88MADp/37z8QplRnARRddxBNPPNFvW15e3pAFOhPe9vYBZUYMlxnAKIeD7xYW9v5s6/OX5b8bG/mb18t9I0bgtlp5vKGBlUeO8MPi4uP+vt+1trKqrY2v5OUxwm7n2eZmvl1by89GjsRptfJ6Wxt7fD7+s7iYDV4vP6qr4+nRo7FYLBzu7uaN9nZ+fILfLxI78oCb+/zcd6LpdWAncA2QBPwReB647QS/bx3wAXAlkEmk2J4B/glwABuAGuAfgF3Ab4GvARaguefxL5/ZS4qCMxmZ1dbW9v7z888/z//9v/+XHTt29G5L7XO3knA4TDAYxH6CD99D6ZSnGV0uFwUFBf2+Hn74Yc4++2zcbjclJSXcddddeDzHX/5ZX19PZWUlV155JT6fj1AoxMqVKxk7dizJyclMmzaNl1566ZRfTHd3N6FQCFufpfmxPs1os1jIstt7v9J7sneEQqxub+e2nBymJSdT6nLxlbw8tvt8bO/qGvR3hcNhXmlt5drMTOa43Yx1ubg7P5+mYJD1Pas6q7u7mZWSwiink0vS02kNhWjrKfzHGhq4JTubFGtcHUqVuGUF0vp8uXu2dxEZXS0DxgFFwOVAdc/XYMLAemA+MAkoIFJq7URGYgD1wEQgH5gFeHu+AFYBFxApzth2JmXW930/IyMDi8XS+/P27dtJS0vjT3/6ExUVFbhcLtauXcutt97KFVdc0e/3fPWrX2XhwoW9Pw9FBwzJu5bVauUnP/kJW7du5amnnuLtt9/mvvvuG3Tf6upq5s2bx5QpU3jppZdwuVysXLmSp59+mp///Ods3bqVu+++mxtvvJF33z12GuHEwoOMwmJ5mhGgprubWw8c4PaqKn5UV0d9IADAbp+PADAtObl335FOJ3l2OzuOU2ZHAgGag8F+z3FbrZS5XL3PGet08klXF75QiE2dnWTbbKRbraxpb8dpsTDX7R70d4vEnibgv4CHiIySWnq21wAhIkV2VB6QARw8zu9qBjzHPCcJGNnnOQVAFZEpzN1EphpTgI+JTHJNPoPXEj3DfczsG9/4Bj/4wQ/Ytm0bU6dOPannDEUHnPL4b9WqVf2GkhdffDEvvvhi789jxozhP/7jP7jjjjt49NFH+z13x44dXHDBBVx55ZU89NBDWCwWfD4f3//+91m9ejVz584FYNy4caxdu5bHH3+cBQsWnHS20GDFFcMjs4lJSXzF6aTY4aA5GOQ3zc18o6aGR0aOpCUYxA6k9h1lApk2G83Hudbk0e2ZJ3jO0rQ09vv9/NPBg6TbbNw3YgSeUIjnmpv5XlERv2pq4j2Ph0KHg3/NyyMnSlMEIqdmJHAFkeNZHmAN8ARwV8/PNiD5mOe4ex4bzNHtxx5T6/ucGcAR4GdESuwaoJPIdOStwFtEjtFlExkJpp/ia4qO4S6z73znO1xwwQUnvf9QdcApv1MtWrSIxx57rPdnt9vN6tWrWblyJdu3b6etrY1AIEBXVxder5eUnsUFnZ2dzJs3jxtuuIGHHnqo9/m7d+/G6/UOePF+v58ZM2acUrbQYG/yMVxmFX0WXowFylwu/qGqirUeD65hmuqzWyzccczijofr6rgsI4O9Ph/rOzr4yciR/K6lhV80NHB/QcGw5BA5MxOO+bmYyAhtK6fxtnaSbEQWffT1MjAbqCUyHXknkWNvfwKuG6YcZyYUGt73xMrKylPaf6g64JT/q7vd7n4rF/fv389ll13GnXfeyfe+9z2ys7NZu3Ytt912G36/v7fMXC4XS5cuZdWqVXzta1+juGeRwdFja6+++mrvtqNcfZfYn4RQKATHrrb5jNU3sSTVZqPI6aQ2EGB6cjIBwBMM9hudtQSDZB0z8jrq6PaWYJDsPiOqlmCQcX0XxfTxcWcnVd3d/HNeHk82NVGRkkKS1cr5qam8WlMzdC9OZFglExmlNRGZKgwSGTX1HZ11cPzVjEe3e4gcf+v7nON9oNsH1AEriKycnAA4gbOAv57yK4gWu314j4m7jzlUYbVa+10vFyLrG44aqg4441e1YcMGQqEQP/rRj5gzZw5lZWXUDPImaLVaeeaZZ6ioqGDRokW9+5SXl+NyuaiqqqK0tLTfV0nPEvWTFQ6FGFBdJlrM0BkKcbi7m2ybjVKXCzuRsjnqoN9PfSDAxKTBDzKPsNvJstn4e5/neEMhdvp8gz7HHwrxeEMDd+XmYrNYCIXDBHv+0gXCYWL7aKNIXz4iRZZKZMGHlUjZHNVAZNn8yOM8P6vnuX2f00XkeNlgz+kGXgWW9/xZYej9PybY559jz3CX2bHy8vL6rYIE+Oijj3r/eag64IzH46WlpXR3d/PII4+wfPly1q1bx89//vNB97XZbDz77LNcf/31LF68mDVr1lBQUMC9997L3XffTSgU4vzzz6e1tZV169aRnp7OLbfcctJZBjtmFo7hMvtlYyOzUlLIs9tpCgZ5rrkZKzA/NRW31crStDT+p6mJVJuNFKuVXzQ0MMnlYlKfYrqzupqbs7OZ63ZjsVhYkZHBCy0tFDkcjHA4eLapiWybjTl9pjSPer6lhYqUFMb3fPqZnJTEE01NLPH5eLWtjcmnODIWiZ7XiawszCCy4nANkVI5m8jCjZk9+yQDLiJL80cSOXfsqEeApUQWbliAOcB7RI55ZQFvExmlTRrkz3+PyEjs6Gk1JcCbwHQio7JRQ/Aah4fDEd33xMWLF/Of//mfPP3008ydO5df/epXbNmypXcKMS0tbUg64IzLbNq0afz4xz/mwQcf5P7772f+/PmsXLmSm2++edD97XY7v/71r7nuuut6C+273/0ueXl5rFy5kr1795KZmcnMmTP5t3/7t1PKcuxQFojpacbGQID/qqujLRgkw2ajPCmJ/ywuJqNnuvAfcnKwNjXxgyNHek+avvOY412Hurvx9inxqzIy6AqF+FlDAx2hEOVJSTxQUIDzmFI/4Pez1uPh4ZGffuo81+1mc1cX99fUUOx0ck9+/jC+epEz0Qa8RGQqMYVIefwDny7PX0akoJ4nMlIaz8DjXY1ERl9HnQf4gT/0bB8F3EjkHLO+jhA5NndHn23lwH4ii1BygM+d7gsbdtEemS1btoxvfetb3HfffXR1dfGlL32Jm2++mc2bN/fuMxQdYAkP2gDmtOG993jx8ccZV17euy3jvfdI2b3bwFQST5a8+y4pI483VXXm2to83HPPD0hOdpGdnQnA9u1+nn8+Pm/bIdH34x9fyN13zzU6xpCL3Tm402AZbEoxhkdmIiLRFu2RWbTE1auyDlJm4eOs/BMRSUQuV3yeOxr3ZRY6zso/EZFElJ8fn1f5iasyswxyPkNwkFV8IiKJqqgo7bN3MqG4KrNBR2YqMxGRXoWFJ7oNjnnFV5n1HB/rOzrTyExEJMJigYIClVnMS0pOxu5wEOhzqRSNzEREInJzU3A44nNRXFyVWUpaGg6nk26/v3dbKCmJsJbni4jE7fEyiLMyc6emDigzrFataBQRAQoLVWamkDxYmaGpRhERiN/FHxBnZWaz2UjNyBhQZloEIiKiaUZTycjKInDsyCz52DvOiogkHo3MTCQjJwe/RmYiIgNoZGYiqRkZcMxVQHTMTEREC0BMJSU1dcCV8jUyExHRyMxU3GlpEA73uwqIjpmJSKKL56t/QByWWbLbjc1uJxgI9G4LpKcbmEhExHijR2fidMbn1T8gDsvM3XMVEL/P17st7HIRSIvf4bWIyGepqCg0OsKwirsyS+k5cbrv9RkBunNzDUokImI8lZnJHO8qIN05OQYlEhExXkVFkdERhlXclZndbicrN5cur7ffdo3MRCSRaWRmQiPHj6ers7PfNo3MRCRRjR6dQU5OfJ+iFJdlll9UNGB5vhaBiEiiqqyM7ylGiNMyyyssHLCiETTVKCKJKd6nGCFOyyy3sJCU1FS8Hk+/7ZpqFJFEFO+LPyBOy8ydlkbOiBF429v7bdfITEQSkUZmJlZSWqpFICKS8BJh8QfEcZlpEYiISGJMMUIcl9nRRSDdWgQiIgmssjL+pxghjsvs6CKQDi0CEZEEppGZyR1vEYh/xAiDEomIRJfdbmXWrGKjY0RF3JYZHGcRSF4ewaQkgxKJiETP+eePIjMzMd7v4rrMBlsEgtWKb+RI40KJiETJihVlRkeImrgus+MtAvGNGmVQIhGR6Ln88klGR4ia+C6zoiLc6el42tr6bfcVFxO2xe8dV0VEysvzGDcuy+gYURPXZZaSmsq4SZNobWrqtz3scOArKDAolYjI8EukKUaI8zIDKJ0yhVAwSCgU6rddU40iEs+WL59odISoivsyGz1hQmSqsbW13/YulZmIxKn8fDdz5iTWQre4L7OcggKKRo8eMNUYcrt1ArWIxKVLL52A1WoxOkZUxX2ZWSwWJs2Yga+zs/8SfaCrpMSgVCIiw2fFisSaYoQEKDOITDUmJSfT5fX2266pRhGJN0lJdi68cLzRMaIuIcqscPRocgoKaG1s7Lc9kJtL0O02KJWIyNBbsmQsKSkOo2NEXUKUmd1uZ/LMmXQcc51G0FSjiMSXRJxihAQpM4AxZWXYbDa6/f5+230qMxGJExYLXHZZYp1fdlTClNmo0lIycnMHrGr0FRcTTE42KJWIyNBZuHAMRUWJeQPihCmzpJQUys4+m/bm5v4PWK10TphgTCgRkSF0552VRkcwTMKUGcD48nJCoRChYLDf9o5JkwhbEuucDBGJL0VFaVx55WSjYxgmocps1IQJpGVm0tbS0m97KDVVx85ExNRuv30mdntCvaX3k1CvPDMnh7GTJtFcXz/gsY7JifuJRkTMzW638uUvVxgdw1AJVWYA0889FwD/Mfc48xcVEUhPNyKSiMgZufzyiQm78OOohCuzCWefTUFJCQ2HD/d/wGLBOylxbmQnIvHjrrvOMTqC4RKuzJwuFzPnzcPb3j7gtjDeCRN0004RMZVJk3JZvHis0TEMl3BlBlA+cybpWVkDLm8VdrnoHDfOoFQiIqcukZfj95WQZZYzYgTlFRU0aSGIiJiY2+3gllumGR0jJiRkmQFMnT0bh8NBZ0dHv+2B3Fz8ubkGpRIROXk33HA2GRlJRseICQlbZmMmTWLkuHEDF4IAXo3ORMQE/umftPDjqIQtM7vdzsx58/B1dhI85oognWPHEnK5DEomIvLZ5s4dybRpBUbHiBkJW2YAk2fMIDs/n+a6uv4P2O14JybmbRRExBy++tU5RkeIKQldZmmZmUybO5eWhgbC4XC/xzxnn03I6TQomYjI8c2YUcA115QbHSOmJHSZAUw55xySU1MH3Lgz7HLhmTrVoFQiIse3cuUSLLo4ej8JX2Yjx41j3OTJNNTWDniso7ycYEqKAalERAa3aNEYli0rNTpGzEn4MrNYLMw47zzC4TC+rq7+D9rttE+fbkguEZHBrFy5xOgIMSnhywxg8syZjJ04kcNVVQMe6ywr0wWIRSQmXHXVZGbPHml0jJikMgMcTifnXXQR4XB4wEnUWK20VyT2rRVExHg2m4XvfW+x0TFilsqsx6QZMyibOnXQ0VnXmDG6KoiIGOrWW6czaZLeh45HZdbDZrNx/kUX4XA68bS29n/QYqG9UhfzFBFjJCXZeeCBhUbHiGkqsz7Gn3UW5RUVHKmuHnDemb+oCF9RkUHJRCSR/fM/n8PIkTp2fyIqsz4sFgvnLltGSloabU1NAx5vq6wkPMjzRESGS0aGi/vvn2d0jJinMjtGyfjxTDv3XOpragaMzgK5uXSN1U3wRCR6vv7188jOTjY6RsxTmR3DYrEw94ILSM/OHvR+Z+0zZxLWmfciEgWFhal85Su6BuPJUJkNYkRxMZULFtB85AihUKjfY8GMDDrOOsugZCKSSH74wwtISXEYHcMUVGbHMXvxYrJHjBj0MlftM2cSyMgwIJWIJIoVK8q48UZdH/ZkqcyOIysvjzlLl9La3EwwEOj/oN1Oy7x5mm4UkWGRmeni8ceXGx3DVFRmJ1A5fz6FJSUcOXRowGPd+fmabhSRYfHII5dQUJBqdAxTUZmdQGpGBuctW0ZXRwddXu+AxzXdKCJD7aKLxmp68TSozD5Dxfz5lM+cycG9ewcs1dd0o4gMpfR0B088cZXRMUxJZfYZ7A4HF1xzDZm5udRpulFEhpGmF0+fyuwkFI4axaLly/G0tmq6UUSGxbJlY7j55ulGxzAtldlJOmfRIs6qqNB0o4gMufR0B08++TmjY5iayuwkabpRRIaLphfPnMrsFGi6UUSGmqYXh4bK7BR95nTj+edrulFEToqmF4eOyuwUHZ1uzDredOOIEXimT49+MBExFYsFnnjiCk0vDhGV2WkoHDWKhSeYbvRMn07n6NEGJBMRs7j33nO46qpyo2PEDZXZaTrhdKPFQuv8+XRnZRkTTkRi2oIFBTz44MVGx4grKrPT9FnTjWGHg+alSwkmJRmQTkRiVXGxkz/84RYsOrY+pFRmZ6Bw1CgWrliBt70dT2vrgMeDaWm0LFpE2Kp/zSICycnw8svXkZamD7lDTe+yZ2jW4sXMXrKE2qoq/F1dAx73FxbSNkd3ihVJdFZrmJ/9bBGVleOMjhKXVGZnyGazsezaaymvqKBq925CweCAfbyTJtExaZIB6UQkVvzLv0zii1+cb3SMuKUyGwLJbjfLb7qJojFjqNq1a+CCEKBtzhx8hYUGpBMRoy1enM2Pf3yt0THimspsiOQWFLDi5ptxp6dzuLp64A5WK82LFhFI1TklIomktNTFyy/fhlXHzoeV/u0OoXGTJ3PRddfR7fPR0tAw4PFwUhLNS5cSstsNSCci0ZaZaeGPf7yZtLQUo6PEPZXZEJs5bx7zLr2UxsOH6ezoGPB4IDublgULGDgRKSLxxOEI8+yzy5kwocjoKAlBZTbELBYLiy+/nOnnncfBvXsJdHcP2Mc3ejTtlZUGpBORaLBYwvzHf8zikktmGB0lYajMhoHD6eSyG29k3OTJHNi1i1AoNGCfjqlTaZ82zYB0IjKcLJYwX/3qBL72NV3hI5pUZsMkLTOTK774RXJHjODQvn2D7uOpqMAzZUqUk4nI8Alz000jePDBa3WFjyhTmQ2jwlGjuPTGG7HZbDTU1g66T/usWXRMnhzlZCIy9MIsX57KI4/chMPhMDpMwlGZDbPymTNZctVVtLe20trYOOg+bXPm4C0ri3IyERlKCxfaePTRG0lP1+k3RtAa8Sg498IL8ba3887//i8Wq5X0Y6+mb7HQet55EAySsmePMSFF5LTNnQuPPXYDI0cWGB0lYanMosBms7H0c58jGAzy3qpVWCwW0jIz++/Uc9sYrFZSdu0yJKeInLq5c8P84hc3MGnSeKOjJDSVWZTYbDYuvOYagt3drH3tNSxWK6np6f13slhoPf98wjYb7u3bjQkqIicpzPnnh/npT69nyhQdJjCajplFkd1u5+Lrr2fuBRdwuKqKjvb2gTtZLLSdey6es86KfkAROSkWS5j584M89NA1TJumi4jHApVZlNkdDi654YbIbWMOHMDr8Qy6X/vs2XimTo1yOhH5LJEiC/DDH15NRYVOrYkVKjMDOF0uLrvxRmYtXkzNgQN0tLUNul97ZSXtM2dGOZ2IHI/VGmbhwgArV36O2bN10YNYojIziCspiRU338ycJUs4XFVF+yB3qgbwTJ9Oy/z5hG22KCcUkb6SkkJcckmQBx+8lrlzdZmqWKMFIAZyulwsv+km7HY7615/nXAoNHDZPtBZWkogPZ2st97C1tlpQFKRxJaZGeSSSyzcc8/nmTlTx7NjkUZmBnM4nVxyww3Mv+wyGmpraW1qGnS/7vx8Gi6/HH9ubpQTiiS2khI/V19t5etfv15FFsNUZjHA7nCw7NprWbhiBU11dTTV1Q26XyglhcZLLqFzvM5nEYmGs87ysmKFi7vvvpGpU7VqMZZpmjFG2O12Lrj6apwuF2teeYXOjg6KxowZeLFSu52WBQvozsoibcMGLGHdGU1kqDmdMGNGC/PmFXD77ddSVjbW6EjyGTQyiyE2m41Fl1/O526/neSUFPbv2EEwEBh0346pUyN3rdYFTUWGVHo6zJvXyIoVE7n33ttUZCahMosxFouFaXPncsO//ivFY8awb9s2uo6z6MNXUkLD8uUEjr2SiIiclsLCEAsXtvD5z5/PV796CyNG6Bi1WajMYtSo0lJu/MpXmDJ7Ngf37KGtuXnQ/YKZmTQsX46vSLdmFzkTEyb4WbKki9tvX8EXv/g5UlKSjY4kp0DHzGJYZm4u195xB1m5ufzlzTfp8nrJKyoacBwt7HLRdOGFpH34IalbtxqUVsScrFaYNs3Dueemceutn6ey8myjI8lp0MgsxiUlJ3PpF77A8ptuIhQMUr17N6FQaOCOVivts2fTvHgxwaSk6AcVMaGcHAvz5jVx6aXF3Hvvl1RkJqaRmQlYrVbmXnABOfn5/OGZZ9j3ySeMKivD4XQO2LdrzBh8BQVk/OUvJO/bZ0BakdhnscCMGVBSUsfChZXccsuVZGVlGB1LzoDKzETKpk3jxpwc/vepp9i9eTNFY8eSkjrwrrbhpCRaFi2ia+xY0t9/H1tXlwFpRWJTXp6VWbM6SU/vYvnyi/jc5y7EOcgHQzEXTTOazIiRI7nhX/6FyoULqT1wgKa6OsLHOdesa8wY6q+6is6xWlosYrHAuee6mD+/kYICC1/+8nV8/vOXqsjihEZmJpSans5Vt91GzogRrP3TnziwYwfF48YNOu2oUZoI5OXZWLgwTHd3NePGjebWW6+ivLzU6FgyhFRmJmV3OFhy5ZWMmTiRN158kX3bt5Odn09WXt7Aq4agY2mSmCwWmDvXxciR9djtcNFFi7jqqgvJzNS5mfFGZWZy48vLufXee3nvj39k/ZtvapQm0iMvz8aiRWH8/mpGjx7NtddeTEXFlEE/7In5qcziQLLbzbJrrqH0rLM0SpOEd+xobNkyjcYSgcosjpzOKM07YQLpGzbgaGw0ILHI0CotdVBZGaSrS6OxRKMyizOnOkrzjxxJQ3ExSfv2kbZhA/b2dgNSi5yZkSNtLFqURCBQi8UCy5drNJZoVGZx6lRGaVgsdI0bR9eYMaTs2EHqRx/pjtZiCnl5NhYvTiY/v5Pq6n1MmKDRWKJSmcWxwUZpWfn5ZB9nlIbVinfyZDpLS3Fv3Yp782as3d3RDy7yGdLTrSxcmEx5uYUDB2pobNRoLNGpzBLA0VHan//0Jz546y32bN1KXlER6VlZg5Za2OHAM306HZMmkfrxx7i3bcMSDBqQXKS/5GQL8+YlMXOmg9raI+zc2UFp6WiuuWaZRmMJTmWWIJLdbi68+mqmzp7N+2+8wcfr19NQW0tBSQnu49wPLZyURPusWXSUl5O2aRPJu3frztZiCIcD5sxJYs4cF83NDezY0UxJSSHXX38p8+ZV6nYtojJLNAUlJVz5pS9RMX8+6157jW0bN1JXU0NBSQnJbvegzwmlptI6bx4dU6aQtmEDrqoq9PlXosFqhZkzXcyfn4TX28yuXVUUFORx881XsmjRbDIy0oyOKDFCZZaALBYLoydMoGT8eHZv2cK6119n18cfY7XZKCgpwXmcW8gEsrJoXroUW2sr7m3bSN69G6vfH+X0kgjS061UVLiYMcOJ39/Ovn3VZGdncs01F7F06bnk5+cYHVFijMosgVmtVsqmTmVceTnbNm6MXOdx506cSUkUlJRgdzgGfV4wI4O2OXNoq6wkec8e3Nu36zw1GRLjxtk555wkysoctLd7OHCgmtTUFC6+eD4XXTSfkpJCoyNKjFKZCXa7nbNnzWLitGls/uAD1r72Gvt37iQ1LY284mJsNtvxnkjnxIl0TpyIo66OlG3bSN6/X4tF5JQkJVmYPt1JZWUSOTk2Ojq8bNt2AJfLybx5lVxyyQJKS0drcYeckMpMejldLirmz6e8ooJNa9fy/ptvsveTT0jLzCS3oOC4IzWA7vx8WvPzaZs9m5SdO0nZvh27xxPF9GI2hYU2zjkniSlTnDgcFtraPGzbdgSLxUJFxVlceulCpkwpU4nJSVGZyQDJbjfnLlvGlFmz2PjnP7Phz3+matcubHY7uYWFpKSmHvcNJpyURMfUqXScfTaugwdJ2bYN16FDWgUpANjtcNZZkVHYyJF2gsEgdXUN1Nc34XYnM23aRJYuPY+KirOOPyMgMgiVmRxXelYWC1esYPaSJez4+9/ZtG4d+7Zvp/bAATJzc8nOy8N6vDcciwVfSQm+khJs7e0k79pFUlUVjqam6L4IMZzFAqNG2Zk0ycnUqU5SUqx0dnaxe/chOju7yM/P4YorljJnzjRKS0djteqewXLqVGbymZLdbqafey5T58yhes8etnz4IZvXr2fvtm0kpaSQW1BAUkrKcZ8fTEvDM3MmnpkzsXo8JFVVkVRdjbO2FksoFMVXItHidEJpqZOJEx1MmOAgOdlKOBymsbGFffsasNlsjB9fwsKFs6moOIvs7EyjI4vJqczkpFmtVkZPmMDoCROYd/HFbNu4kY1r13Jw716CgQDZ+flk5OSc8BhHKDUVb3k53vJyLN3duA4exFVVRdLBg1h9vii+GhlqGRlWysocTJzoZMwYOzZb5O+B3+/nwIEGWlrayM7OYNGiOZx33kzKy8fjOMFxWJFToTKT05KelcXsJUuoWLCAvZ98wsfr17Nt0yZ2b9lCakYGOSNG4HS5Tvg7wg4HXWPH0jV2LK2hEM66ukixVVVhb2uL0iuRM1FUZKOsLDICKyj49O0kHA7T0tLG4cP1BINhRo4cweWXL2HWrLMpKhphYGKJVyozOSN2u52yqVMpmzqVhtpatm7YwKa1a6nZt49gIIA7PZ2MnBySUlJOvCrNasVfUIC/oID2WbOwtbSQVFWFs7YWR2Oj7oodIzIyrBQV2Rg3LjICS0v79PhWKBSiubmNxsZmurr8pKW5mTnzLObNq2T69MkkJw9+Mr7IUFCZyZDJLSxkwWWXMXvJEqp27mTfzp1s37SJxsOH6ersxJWcTGZODu709M88yB/MzKQjM5OOqVMBsHo8OBoacDY0YG9sVMFFQUaGlcJCG4WFdoqKIt/d7v7/3fz+bhobW2hqaiEUCpOVlc7UqZOYMWMyEyeOZfToYi2tl6hQmcmQS0pOpmzaNMqmTWPJlVdSs38/B3btYvumTdRWVVF36BA2u530rCzSs7Ox2z/7r2EoNRVfaiq+MWN6tx0tOEdjY+93FdzpOZnigsj0odfbRWNjM62tHux2Kzk5WSxZMpcpUyYwceI4cnMHvxuDyHBSmcmwstvtjCotZVRpKedfdBGNhw9zYNcudm/Zwt5t26jatYtwKERaZiYZ2dm4kk/+6ucnLLjmZqxeLzavF2tnZ+/3RD3fzWaD1FQraWlW0tIspKZaSU+3UlBw/OI6KhQK0dbmoaGhGa+3i5SUJEaMyGXp0nOZPHk8ZWVjcLuPv5pVJBpUZhI1FouF3MJCcgsLqZg/H09rK1W7d7N3+3Z2fPQRRw4epNvvx2qzkex2k5KaSkpq6gmvPHKswQquVziMtavr05LzerF1dg742RIIQChEOBjEZrFAKAQxVII2W+Rq8larBasVXC5Lv5JKS7MOKK6UlJM7dyscDtPZ2YXH46W9vYPOzshINy0tlQkTRlNRMYWJE8cyZkyxViJKTLGEwzH0f6kkLL/Px8G9ezlSXc3hgwep2r2btuZmvB4PoWDwjArudO355BMWXHYZl1x/PeFgkFAggNXpHNYptLY2D/fc8wOSk129516Fw2FCoUiBDeWfPVhxhcOQlOQkLS2V4uJ8JkwYQ3HxCMaPL6GwMF/ThxKzNDKTmOB0uRg3eTLjJk8GIlNbrY2NNBw+TENtLYcPHqR6zx5am5poPHJkQMElu93YHY5he7O12GyGXV7JYrFwpn90KBSiq8s3oLiSk12kpropKxvTW1yFhXkUFuZp6lBMRWUmMclqtZKVl0dWXh4Tzj4bOHHBNdfXE+jujlw7KRzGYrFgdzhwOJ04XK7I956v4Sy9aAsGg/j93b1fPp+/93uwz90LLBYLLpdTxSVxS2UmpnGigmtpbKSzo4OO9na8Hg8d7e20NDTQ2tSEp7UVv89HR1sb3X4/gUAgcqfscJiwxYLVYgGLBcsxX50dHYa91kOH6mhoaCEcDh/zBeHwp5cAs1gsOJ0OXC4nTqeT9PRUsrIyyM3NJCcnk9RUN2lpka/09FRGjMhRcUlcUpmJqfUtuOMJBoN0dnTg9Xjwtrfj7eiIfPd48Ho8dPt8BINBgsEgoaPfAwGCwSATpkyJ4qsBtzuZhQtnU1tbh81mxW63Ybfbsdls2GxWbDYbbncyqakpPSWVSlqau/fnpCRX3Iw6RU6FFoCIiIjp6V4LIiJieiozERExPZWZiIiYnspMRERMT2UmIiKmpzITERHTU5mJiIjpqcxERMT0VGYiImJ6KjMRETE9lZmIiJieykxERExPZSYiIqanMhMREdNTmYmIiOmpzERExPRUZiIiYnoqMxERMT2VmYiImJ7KTERETE9lJiIipqcyExER01OZiYiI6anMRETE9FRmIiJieiozERExPZWZiIiYnspMRERMT2UmIiKmpzITERHTU5mJiIjpqcxERMT0VGYiImJ6KjMRETE9lZmIiJieykxERExPZSYiIqanMhMREdNTmYmIiOmpzERExPRUZiIiYnr/P6lrL+h1rfA7AAAAAElFTkSuQmCC\n" }, "metadata": {} } ], "source": [ "# Checking if our df_resampled is well balanced\n", "label_size = [df_resampled['label'].sum(),len(df_resampled['label'])-df_resampled['label'].sum()]\n", "plt.pie(label_size,explode=[0.1,0.1],colors=['firebrick','navy'],startangle=90,shadow=True,labels=['Fake','True'],autopct='%1.1f%%')" ] }, { "cell_type": "code", "execution_count": 156, "metadata": { "id": "WH2p-YTHpQ-t" }, "outputs": [], "source": [ "# Split the train data => {train, eval} train 80%, test 20%\n", "train, eval = train_test_split(df_resampled, test_size=0.2, random_state=42, stratify=df_resampled['label'])" ] }, { "cell_type": "markdown", "metadata": { "id": "PmjIiAoDuFqE" }, "source": [ "## Creating a pytorch dataset" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "J_FpiKwMM5Gr", "outputId": "b6951f60-ebff-4f04-ebe0-ae85daa608a5" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "DatasetDict({\n", " train: Dataset({\n", " features: ['tweet_ids', 'news_url', 'title', 'label'],\n", " num_rows: 25195\n", " })\n", " eval: Dataset({\n", " features: ['tweet_ids', 'news_url', 'title', 'label'],\n", " num_rows: 6299\n", " })\n", "})" ] }, "metadata": {}, "execution_count": 157 } ], "source": [ "# transformers library allows you to use pytorch or tensorflow to save your dataset\n", "# pytorch dataset looks like a dictoinary\n", "# using this rep works well with the transformers library\n", "\n", "# Create a pytorch dataset to ensure consistency in our data handling\n", "\n", "# Create a train and eval datasets using the specified columns from the DataFrame\n", "train_dataset = Dataset.from_pandas(train[['tweet_ids', 'news_url', 'title', 'label']])\n", "eval_dataset = Dataset.from_pandas(eval[['tweet_ids', 'news_url', 'title', 'label']])\n", "\n", "# Combine the train and eval datasets into a DatasetDict\n", "dataset = DatasetDict({'train': train_dataset, 'eval': eval_dataset})\n", "\n", "# Remove the '__index_level_0__' column from the dataset\n", "dataset = dataset.remove_columns('__index_level_0__')\n", "dataset" ] }, { "cell_type": "markdown", "metadata": { "id": "sIjfqHODuFqF" }, "source": [ "## Preprocessing and tokenization" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "id": "-6vIJTopM5Gs" }, "outputs": [], "source": [ "# define helper functions\n", "\n", "# funtion to replace usernames and links with placeholders.\n", "def preprocess(text):\n", " # \"@user my name is john\"\n", " # \"http my name is john\"\n", " new_text = []\n", " for t in text.split(\" \"):\n", " t = '@user' if t.startswith('@') and len(t) > 1 else t\n", " t = 'http' if t.startswith('http') else t\n", " new_text.append(t)\n", " return \" \".join(new_text)\n", "\n", "# no need for encoding: Fake=1, True=0 bcuz the target variable called label is already encoded" ] }, { "cell_type": "code", "execution_count": 159, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 17, "referenced_widgets": [ "3cf02903f9ee43e2b85ce7262d39bc55", "dd3f1e80901147329104568369a9eefb", "ac1b67b466b34e72b54abdc948fde66d", "f2d8069fa96d4b73940b7176d5c3e981", "622e079d49634a5b9c23fa2637bae08a", "98a263f1cb5144909e88bcec9ff4e361", "ae4f3ff90b0f47588c4d9cfa64d24f3a", "e9cab8e4de5c4d4aaa142fa884ba26a3", "13297e8a333c4c92931241286767346b", "83ba272769864155899b34d2529bce24", "06527415b0fd47d9af173c4be21eeb60", "bb7e0de39f844d2a9a35937313e409ea", "faa70d7e253b472e9f7671fb95d70323", "bf0a2db6cfba4a7cb1c93452171b440c", "22607732117945b09a70750ee27b564f", "42cf99309c2a48c5990d2212024828a5", "c39c8073a0f740288f3961d570b6e6e4", "01568e557bf64c03bbaddfa8e4be23ea", "6172739a648b456b9edcb2cc3ba0d731", "2dca3e83518f44ef9ae230dd265e52d7", "95521a3e2e8d4913a38a9ecfac529a8d", "c6354e64d6fb48d9af2f9c50bc2361d7" ] }, "id": "VamYk7VooFNF", "outputId": "704be249-34b1-490c-df8f-4a1687c7bfb3" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Map: 0%| | 0/25195 [00:00" ], "image/png": "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j0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMr5qnCwDMZnVERLnH9s/OdmMlAIASHCECAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACmx7PMYBrOPEMMAGAuHCECAACmRyACAACmRyACAACmRyACAACmRyACAACmRyACAACm59FAlJycrPvuu0+1a9dWw4YN9cgjj+jw4cMOYy5duqT4+HjVq1dPtWrV0qBBg3Tq1CmHMcePH1e/fv1Uo0YNNWzYUBMmTNCVK1ccxqSnp+uee+6R1WpVs2bNtHjxYne3BwAA7hAeDURbtmxRfHy8duzYodTUVNlsNsXGxqqgoMA+Zty4cVq9erXef/99bdmyRSdOnNDAgQPty69evap+/frp8uXL+vzzz7VkyRItXrxYU6dOtY85duyY+vXrpx49eigrK0tjx47V008/rfXr11dovwAAoHLy6Bczrlu3zmF68eLFatiwoTIzM9WtWzfl5ubq7bff1rJly9SzZ09J0qJFi9SqVSvt2LFDXbt21YYNG3Tw4EFt3LhRQUFB6tChg2bOnKlJkyYpKSlJvr6+WrhwocLDwzV37lxJUqtWrbRt2za98soriouLq/C+AQBA5VKpvqk6NzdXkhQYGChJyszMlM1mU69evexjWrZsqSZNmigjI0Ndu3ZVRkaG2rVrp6CgIPuYuLg4jRkzRgcOHFDHjh2VkZHhsI6SMWPHji2zjqKiIhUVFdmn8/LyJEk2m002m+2GPZQsv9m4quRO6dmwWl2+LleusyyV6Xd6p+xnVzFbvxI9m4WZenamx0oTiIqLizV27Fg98MADatu2rSQpJydHvr6+CggIcBgbFBSknJwc+5hrw1DJ8pJlNxqTl5enixcvqnr16g7LkpOTNX369FI1btiwQTVq1ChXP6mpqeUaV5VU+p6Tk12/zqQkGa5fq92nn37qxrXfmkq/n13MbP1K9GwWZui5sLCw3GMrTSCKj4/X/v37tW3bNk+XoilTpigxMdE+nZeXp8aNGys2Nlb+/v43fK/NZlNqaqp69+4tHx8fd5daKdwpPa+NjHTZugyrVUpKkpKSZLnmaKKr9f3qK7et21l3yn52FbP1K9EzPVc9JWd4yqNSBKKEhAStWbNGW7duVaNGjezzg4ODdfnyZZ0/f97hKNGpU6cUHBxsH7Nr1y6H9ZXchXbtmF/fmXbq1Cn5+/uXOjokSVarVdYyToX4+PiU+8PjzNiqorL37OrgYvzvOt0ZiCrj77Oy72dXM1u/Ej2bhRl6dqY/j95lZhiGEhIStHLlSm3evFnh4eEOyzt16iQfHx9t2rTJPu/w4cM6fvy4oqKiJElRUVHat2+fTp8+bR+Tmpoqf39/tW7d2j7m2nWUjClZBwAAMDePHiGKj4/XsmXL9NFHH6l27dr2a37q1Kmj6tWrq06dOho5cqQSExMVGBgof39//fGPf1RUVJS6du0qSYqNjVXr1q31+OOPKyUlRTk5OXrhhRcUHx9vP8rzzDPP6G9/+5smTpyop556Sps3b9Z7772nTz75xGO9AwCAysOjR4jefPNN5ebmKjo6WiEhIfbXihUr7GNeeeUV/eY3v9GgQYPUrVs3BQcH68MPP7Qv9/b21po1a+Tt7a2oqCj97ne/0/DhwzVjxgz7mPDwcH3yySdKTU1VZGSk5s6dq7feeotb7gEAgCQPHyEyjJvfn+Pn56cFCxZowYIF1x0TFhZ207txoqOjtWfPHqdrBAAAVR/PMgMAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZHIAIAAKZXzdMFALi+1RER5R7bPzvbjZUAQNXGESIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6BCIAAGB6TgeiJUuW6JNPPrFPT5w4UQEBAbr//vv1/fffu7Q4AACAiuB0IJo1a5aqV68uScrIyNCCBQuUkpKi+vXra9y4cS4vEAAAwN2qOfuGH374Qc2aNZMkrVq1SoMGDdLo0aP1wAMPKDo62tX1AQAAuJ3TR4hq1aqlM2fOSJI2bNig3r17S5L8/Px08eJF11YHAABQAZw+QtS7d289/fTT6tixo7755hs9/PDDkqQDBw7orrvucnV9AAAAbuf0EaIFCxYoKipKP/30kz744APVq1dPkpSZmanHHnvM5QUCAAC4m9NHiPLy8jR//nx5eTlmqaSkJP3www8uKwwAAKCiOH2EKDw8XD///HOp+WfPnlV4eLhLigIAAKhITgciwzDKnJ+fny8/P7/bLggAAKCilfuUWWJioiTJYrFo6tSpqlGjhn3Z1atXtXPnTnXo0MHlBQIAALhbuQPRnj17JP1yhGjfvn3y9fW1L/P19VVkZKSef/5511cIAADgZuUORGlpaZKkJ598Uq+99pr8/f3dVhQA91sdEVHusf2zs91YCQB4ntPXEKWkpFw3DO3bt++2CwIAAKhoTgeidu3aOTzctcTLL7+szp07u6QoAACAiuR0IEpMTNSgQYM0ZswYXbx4Uf/5z38UExOjlJQULVu2zB01AgAAuJXTgWjixInKyMjQZ599pvbt26t9+/ayWq3au3evHn30UXfUCAAA4FZOByJJatasmdq2bavvvvtOeXl5Gjx4sIKDg11dGwAAQIVwOhBt375d7du315EjR7R37169+eab+uMf/6jBgwfr3LlzTq1r69at6t+/v0JDQ2WxWLRq1SqH5U888YQsFovDq0+fPg5jzp49q2HDhsnf318BAQEaOXKk8vPzHcbs3btXDz30kPz8/NS4cWOlpKQ42zYAAKjCnA5EPXv21ODBg7Vjxw61atVKTz/9tPbs2aPjx4+rXbt2Tq2roKBAkZGRWrBgwXXH9OnTRydPnrS/li9f7rB82LBhOnDggFJTU7VmzRpt3bpVo0ePti/Py8tTbGyswsLClJmZqZdeeklJSUn6+9//7lzjAACgynL64a4bNmxQ9+7dHeZFRERo+/bt+utf/+rUuvr27au+ffvecIzVar3u6bhDhw5p3bp1+uKLL3TvvfdKkl5//XU9/PDDevnllxUaGqqlS5fq8uXLeuedd+Tr66s2bdooKytL8+bNcwhOAADAvJwORCVh6OjRo8rOzla3bt1UvXp1WSwWvfjiiy4vMD09XQ0bNlTdunXVs2dP/eUvf1G9evUkSRkZGQoICLCHIUnq1auXvLy8tHPnTj366KPKyMhQt27dHL5ZOy4uTnPmzNG5c+dUt27dUtssKipSUVGRfTovL0+SZLPZZLPZblhv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D0lSUVGRnn32WTVs2FB+fn568MEH9cUXXziMtVgsWrt2rTp16iSr1apt27apoKBAw4cPV61atRQSEqK5c+eWqumNN95Q8+bN5efnp6CgIP32t78ts3/A7AhEAK7L29tbs2bN0uuvv64ff/zxtta1efNmnThxQlu3btW8efM0bdo0/eY3v1HdunW1c+dOPfPMM/r9739fajsTJkzQ+PHjtWfPHkVFRal///46c+aMJOn8+fPq2bOnOnbsqN27d2vdunU6deqU/vu//9thHUuWLJGvr6+2b9+uhQsXllnfa6+9prlz5+rll1/W3r17FRcXp//6r//SkSNHJEknT55UmzZtNH78eJ08eVLPP/98mevp0aOH0tLS7NNpaWmKjo5W9+7d7fMvXryonTt32gPRxIkT9cEHH2jJkiX68ssv1axZM8XFxens2bMO6548ebJmz56tQ4cOqX379powYYK2bNmijz76SBs2bFB6erq+/PJL+/jdu3fr2Wef1YwZM3T48GGtW7dO3bp1u+m+AkzJww+XBVBJjRgxwhgwYIBhGIbRtWtX46mnnjIMwzBWrlxpXPtPx7Rp04zIyEiH977yyitGWFiYw7rCwsKMq1ev2ue1aNHCeOihh+zTV65cMWrWrGksX77cMAzDOHbsmCHJmD17tn2MzWYzGjVqZMyZM8cwDMOYOXOmERsb67DtH374wZBkHD582DAMw+jevbvRsWPHm/YbGhpq/PWvf3WYd9999xl/+MMf7NORkZHGtGnTbrief/zjH0bNmjUNm81m5OXlGdWqVTNOnz5tLFu2zOjWrZthGIaxadMmQ5Lx/fffG/n5+YaPj4+xdOlS+zouX75shIaGGikpKYZhGEZaWpohyVi1apV9zIULFwxfX1/jvffes887c+aMUb16deO5554zDMMwPvjgA8Pf39/Iy8u7af+A2XGECMBNzZkzR0uWLNGhQ4dueR1t2rSRl9f//ZMTFBSkdu3a2ae9vb1Vr149nT592uF9UVFR9p+rVaume++9117HV199pbS0NNWqVcv+atmypSQ5XKzcqVOnG9aWl5enEydO6IEHHnCY/8ADDzjdc3R0tAoKCvTFF1/os88+0913360GDRqoe/fu9uuI0tPT1bRpUzVp0kTZ2dmy2WwO2/bx8VHnzp1Lbfvee++1/5ydna3Lly+rS5cu9nmBgYFq0aKFfbp3794KCwtT06ZN9fjjj2vp0qUqLCx0qh/ALAhEAG6qW7duiouL05QpU0ot8/LykmEYDvNsNlupcT4+Pg7TFoulzHnFxcXlris/P1/9+/dXVlaWw+vIkSMOp4Zq1qxZ7nXermbNmqlRo0ZKS0tTWlqaunfvLkkKDQ1V48aN9fnnnystLU09e/Z0et3O9lG7dm19+eWXWr58uUJCQjR16lRFRkbq/PnzTm8bqOoIRADKZfbs2Vq9erUyMjIc5jdo0EA5OTkOociV3x107YXIV65cUWZmplq1aiVJuueee3TgwAHdddddatasmcPLmfDg7++v0NBQbd++3WH+9u3b1bp1a6dr7tGjh9LT05Wenu5wu323bt20du1a7dq1y379UEREhP36phI2m01ffPHFDbcdEREhHx8f7dy50z7v3Llz+uabbxzGVatWTb169VJKSor27t2r7777Tps3b3a6J6Cqq+bpAgDcGdq1a6dhw4Zp/vz5DvOjo6P1008/KSUlRb/97W+1bt06rV27Vv7+/i7Z7oIFC9S8eXO1atVKr7zyis6dO6ennnpKkhQfH69//OMfeuyxxzRx4kQFBgbq6NGjevfdd/XWW2/J29u73NuZMGGCpk2bpoiICHXo0EGLFi1SVlaWli5d6nTNPXr0UHx8vGw2m/0IkSR1795dCQkJunz5sj0Q1axZU2PGjLHfbdekSROlpKSosLBQI0eOvO42atWqpZEjR2rChAmqV6+eGjZsqD//+c8OpyXXrFmjb7/9Vt26dVPdunX16aefqri42OG0GoBfEIgAlNuMGTO0YsUKh3mtWrXSG2+8oVmzZmnmzJkaNGiQnn/+ef397393yTZnz56t2bNnKysrS82aNdPHH3+s+vXrS5L9qM6kSZMUGxuroqIihYWFqU+fPg7BoDyeffZZ5ebmavz48Tp9+rRat26tjz/+WM2bN3e65h49eujixYtq2bKlgoKC7PO7d++uCxcu2G/Pv7bH4uJiPf7447pw4YLuvfderV+/XnXr1r3hdl566SX7acPatWtr/Pjxys3NtS8PCAjQhx9+qKSkJF26dEnNmzfX8uXL1aZNG6d7Aqo6i/Hrk/8AAAAmwzVEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9AhEAADA9P4/bmigpAx1BLkAAAAASUVORK5CYII=\n" }, "metadata": {} } ], "source": [ "# Plot histogram of the number of words in train data 'text'\n", "seq_len = [len(text.split()) for text in df['title']]\n", "\n", "pd.Series(seq_len).hist(bins = 40,color='firebrick')\n", "plt.xlabel('Number of Words')\n", "plt.ylabel('Number of texts')" ] }, { "cell_type": "code", "execution_count": 161, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 191, "referenced_widgets": [ "fd67e92e7f7b44c1aeb46b53522ac97c", "1f3b1f7f4c444b36af439c9c2fe1a45d", "dc512e2dc1744f68aa2761f5b568970c", "4b9acb03d9fc48649ada871360ddb2d4", "78a9d0a8bcf346e49ad3ddf74531b79a", "568f2c4a11ee4749a34b67aa51f4c319", "acb1575bd13a49e09625a8cea6a5a575", "014539c25b5f4b479dd36907581b77f7", "2cc9a55a8af645b889d259b96e8133a1", "ff8120cfc89c4484ad530d563ccfa00a", "30aef85d7be0426fabf6af6c6979f8a5", "ccd0fe2d7c4046cbbf7568593c62b386", "9f9226ec290d4674baf5ecb11b09f193", "5fdbfca5f8174c798293a812c2583cd8", "2ed89a1f1ade4ad5b187b0bde60b653a", "8091923cd5214688a6885449756fac60", "0d95234cb9464a9f81924790e2d78d7d", "6fd2e720c20241fdbd904ae0fe43c4a6", "84e72d7663304a7cbd4b755873659503", "bdced13ed97a41daa06b00675d9b7788", "dacb1189e7d74644b3ed289dbbe0c737", "865b0d0cc704425dad5bfa4d5991f8fc", "0739f6e3fd3e4e219be137c39526bdd8", "114035e72625438fb659cdae3ec67844", "d2c5d23851144d99a054ee63aa00019f", "aa35bf67a5b6414dac616294b6e81cd9", "f75e29077f904257916ba87ce7ef1fcc", "cf3493b190904b5d995d536a53376347", "9cd1ea2ec86040af9c6f7f892ff630ac", "edec0ea3547c44d1bdd3a1a86ed7a934", "1a3a6283d5464528876428c6ccfebdbf", "070d90cd691049f8877181c7417b7539", "e5e5724fa8694ae1a729b4993d91a15f", "d93d1b6c61f14958becb261104980638", "d627b0b267594ac286e5beb7602bc86f", "6c8ecb6163674ccb96a61fd711011d06", "08e2b7ccf0fd4b52aefd906ce49161b2", "5a2c36210eb4485b98d3aefc18118972", "4112895b3a6140b691ac4d9d17df764d", "c2aabd3b52e5461398d52168371f0267", "502cc5ec41a94f8cabff7c13e94f3352", "c3dcad5d6ae64f18902a365914926f72", "dab0398c2adc403d8f79e44c476378e9", "24b631d60a3b4ee08ad572a1945f3408" ] }, "id": "a2kaE8v_M5Gt", "outputId": "6491fc3c-75c4-4557-910a-6df39d962f06" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "Map: 0%| | 0/25195 [00:00" ], "text/html": [ "\n", "
\n", " \n", " \n", " [7880/7880 35:39, Epoch 10/10]\n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
EpochTraining LossValidation LossRmseClassification Report
10.4399000.3666310.393631 precision recall f1-score support\n", "\n", " 0 0.93 0.75 0.83 3150\n", " 1 0.79 0.94 0.86 3149\n", "\n", " accuracy 0.85 6299\n", " macro avg 0.86 0.85 0.84 6299\n", "weighted avg 0.86 0.85 0.84 6299\n", "
20.2616000.2891430.326625 precision recall f1-score support\n", "\n", " 0 0.96 0.83 0.89 3150\n", " 1 0.85 0.96 0.90 3149\n", "\n", " accuracy 0.89 6299\n", " macro avg 0.90 0.89 0.89 6299\n", "weighted avg 0.90 0.89 0.89 6299\n", "
30.1767000.2038250.257604 precision recall f1-score support\n", "\n", " 0 0.94 0.93 0.93 3150\n", " 1 0.93 0.94 0.93 3149\n", "\n", " accuracy 0.93 6299\n", " macro avg 0.93 0.93 0.93 6299\n", "weighted avg 0.93 0.93 0.93 6299\n", "
40.1344000.2022960.249782 precision recall f1-score support\n", "\n", " 0 0.94 0.93 0.94 3150\n", " 1 0.93 0.95 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "
50.1000000.2956550.281459 precision recall f1-score support\n", "\n", " 0 0.97 0.86 0.92 3150\n", " 1 0.88 0.98 0.93 3149\n", "\n", " accuracy 0.92 6299\n", " macro avg 0.93 0.92 0.92 6299\n", "weighted avg 0.93 0.92 0.92 6299\n", "
60.0846000.2417490.250416 precision recall f1-score support\n", "\n", " 0 0.97 0.91 0.94 3150\n", " 1 0.91 0.97 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "
70.0622000.2624960.240059 precision recall f1-score support\n", "\n", " 0 0.97 0.91 0.94 3150\n", " 1 0.92 0.97 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "
80.0524000.3186610.251050 precision recall f1-score support\n", "\n", " 0 0.97 0.90 0.93 3150\n", " 1 0.91 0.98 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "
90.0398000.3355410.254192 precision recall f1-score support\n", "\n", " 0 0.98 0.89 0.93 3150\n", " 1 0.90 0.98 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "
100.0305000.3085590.240389 precision recall f1-score support\n", "\n", " 0 0.97 0.91 0.94 3150\n", " 1 0.91 0.98 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "

" ] }, "metadata": {} }, { "output_type": "stream", "name": "stderr", "text": [ "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.93 0.75 0.83 3150\n", " 1 0.79 0.94 0.86 3149\n", "\n", " accuracy 0.85 6299\n", " macro avg 0.86 0.85 0.84 6299\n", "weighted avg 0.86 0.85 0.84 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.96 0.83 0.89 3150\n", " 1 0.85 0.96 0.90 3149\n", "\n", " accuracy 0.89 6299\n", " macro avg 0.90 0.89 0.89 6299\n", "weighted avg 0.90 0.89 0.89 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.94 0.93 0.93 3150\n", " 1 0.93 0.94 0.93 3149\n", "\n", " accuracy 0.93 6299\n", " macro avg 0.93 0.93 0.93 6299\n", "weighted avg 0.93 0.93 0.93 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.94 0.93 0.94 3150\n", " 1 0.93 0.95 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.97 0.86 0.92 3150\n", " 1 0.88 0.98 0.93 3149\n", "\n", " accuracy 0.92 6299\n", " macro avg 0.93 0.92 0.92 6299\n", "weighted avg 0.93 0.92 0.92 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.97 0.91 0.94 3150\n", " 1 0.91 0.97 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.97 0.91 0.94 3150\n", " 1 0.92 0.97 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.97 0.90 0.93 3150\n", " 1 0.91 0.98 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.98 0.89 0.93 3150\n", " 1 0.90 0.98 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n", "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.97 0.91 0.94 3150\n", " 1 0.91 0.98 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "TrainOutput(global_step=7880, training_loss=0.13820908251147584, metrics={'train_runtime': 2139.7739, 'train_samples_per_second': 117.746, 'train_steps_per_second': 3.683, 'total_flos': 5178971124840000.0, 'train_loss': 0.13820908251147584, 'epoch': 10.0})" ] }, "metadata": {}, "execution_count": 168 } ], "source": [ "trainer.train() # rmse 0 to 1 closer to 0 means better performance." ] }, { "cell_type": "markdown", "metadata": { "id": "cjVR-ilCM5G8" }, "source": [ "Don't worry the above issue, it is a `KeyboardInterrupt` that means I stopped the training to avoid taking a long time to finish." ] }, { "cell_type": "code", "execution_count": 169, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 369 }, "id": "vZ8w2aNBM5G9", "outputId": "dd975ebe-9883-4519-a190-302277c221a8" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "text/html": [ "\n", "

\n", " \n", " \n", " [788/788 00:16]\n", "
\n", " " ] }, "metadata": {} }, { "output_type": "stream", "name": "stderr", "text": [ "Trainer is attempting to log a value of \" precision recall f1-score support\n", "\n", " 0 0.94 0.93 0.94 3150\n", " 1 0.93 0.95 0.94 3149\n", "\n", " accuracy 0.94 6299\n", " macro avg 0.94 0.94 0.94 6299\n", "weighted avg 0.94 0.94 0.94 6299\n", "\" of type for key \"eval/classification_report\" as a scalar. This invocation of Tensorboard's writer.add_scalar() is incorrect so we dropped this attribute.\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "{'eval_loss': 0.20229628682136536,\n", " 'eval_rmse': 0.2497816159996159,\n", " 'eval_classification_report': ' precision recall f1-score support\\n\\n 0 0.94 0.93 0.94 3150\\n 1 0.93 0.95 0.94 3149\\n\\n accuracy 0.94 6299\\n macro avg 0.94 0.94 0.94 6299\\nweighted avg 0.94 0.94 0.94 6299\\n',\n", " 'eval_runtime': 16.1801,\n", " 'eval_samples_per_second': 389.306,\n", " 'eval_steps_per_second': 48.702,\n", " 'epoch': 10.0}" ] }, "metadata": {}, "execution_count": 169 } ], "source": [ "# Launch the final evaluation\n", "trainer.evaluate() # eval loss is the performance cost of finetuning (0 to 1) 0.5 and above is not suitable." ] }, { "cell_type": "markdown", "metadata": { "id": "yHY9rVqfM5G-" }, "source": [ "## Pushing to HuggingFace\n", "Some checkpoints of the model are automatically saved locally in `test_trainer/` during the training." ] }, { "cell_type": "markdown", "metadata": { "id": "YnGHAwdLM5HA" }, "source": [ "You may also upload the model on the Hugging Face Platform... [Read more](https://huggingface.co/docs/hub/models-uploading)" ] }, { "cell_type": "code", "execution_count": 170, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 359, "referenced_widgets": [ "46bfaf0c2dd04d50a0dcf8ad0a4d2689", "3959cb0cfedd43f880b586d9a61219a0", "2f0b89ce581e409388a5f3fc17fc2763", "f787d1469f514f9289b29dceff2dbdb2", "95b11805eace4774a4d6a7fc8c4eae2a", "2bfaa5a1733c42ca9856bb84dc0b6559", "3dc15408c4ea4c3487f12a4397abe3af", "bae50a903c0b427ead6ad600bd470530", "5f65fc1dc7af44e09b42f2a4ca43fb75", "2c5a26fc136f4872a2802cdf97876206", "20116da82fe64bd68b192ddb1b21c085", "e91660a945e249dba30e86ad71ddec9b", "4123af0f3bba4243a705aa864327edfe", "0a8e815904f442dc9103723d2b027cb6", "cd171d079e8f4d00a31a80697741dfe3", "fb43f0b1a80443a1b4f1654e78d94c37", "516865c8687d47eb85ea50c4870fefab" ] }, "id": "axPYP2VAK8kG", "outputId": "7938d807-85c5-4483-8db2-47f6a8189fd8" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "VBox(children=(HTML(value='
\u001b[0m:\u001b[94m2\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/transformers/utils/\u001b[0m\u001b[1;33mhub.py\u001b[0m:\u001b[94m803\u001b[0m in \u001b[92mpush_to_hub\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 800 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94melse\u001b[0m: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 801 \u001b[0m\u001b[2m│ │ │ \u001b[0mworking_dir = repo_id.split(\u001b[33m\"\u001b[0m\u001b[33m/\u001b[0m\u001b[33m\"\u001b[0m)[-\u001b[94m1\u001b[0m] \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 802 \u001b[0m\u001b[2m│ │ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m 803 \u001b[2m│ │ \u001b[0mrepo_id = \u001b[96mself\u001b[0m._create_repo( \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 804 \u001b[0m\u001b[2m│ │ │ \u001b[0mrepo_id, private=private, use_auth_token=use_auth_token, repo_url=repo_url, \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 805 \u001b[0m\u001b[2m│ │ \u001b[0m) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 806 \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/transformers/utils/\u001b[0m\u001b[1;33mhub.py\u001b[0m:\u001b[94m661\u001b[0m in \u001b[92m_create_repo\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 658 \u001b[0m\u001b[2m│ │ │ │ │ \u001b[0mrepo_id = repo_id.split(\u001b[33m\"\u001b[0m\u001b[33m/\u001b[0m\u001b[33m\"\u001b[0m)[-\u001b[94m1\u001b[0m] \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 659 \u001b[0m\u001b[2m│ │ │ │ \u001b[0mrepo_id = \u001b[33mf\u001b[0m\u001b[33m\"\u001b[0m\u001b[33m{\u001b[0morganization\u001b[33m}\u001b[0m\u001b[33m/\u001b[0m\u001b[33m{\u001b[0mrepo_id\u001b[33m}\u001b[0m\u001b[33m\"\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 660 \u001b[0m\u001b[2m│ │ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m 661 \u001b[2m│ │ \u001b[0murl = create_repo(repo_id=repo_id, token=use_auth_token, private=private, exist_ \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 662 \u001b[0m\u001b[2m│ │ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 663 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[2m# If the namespace is not there, add it or `upload_file` will complain\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m 664 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94mif\u001b[0m \u001b[33m\"\u001b[0m\u001b[33m/\u001b[0m\u001b[33m\"\u001b[0m \u001b[95mnot\u001b[0m \u001b[95min\u001b[0m repo_id \u001b[95mand\u001b[0m url != \u001b[33mf\u001b[0m\u001b[33m\"\u001b[0m\u001b[33m{\u001b[0mHUGGINGFACE_CO_RESOLVE_ENDPOINT\u001b[33m}\u001b[0m\u001b[33m/\u001b[0m\u001b[33m{\u001b[0mrepo_id\u001b[33m}\u001b[0m\u001b[33m\"\u001b[0m: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/\u001b[0m\u001b[1;33m_validators.py\u001b[0m:\u001b[94m118\u001b[0m in \u001b[92m_inner_fn\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m115 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94mif\u001b[0m check_use_auth_token: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m116 \u001b[0m\u001b[2m│ │ │ \u001b[0mkwargs = smoothly_deprecate_use_auth_token(fn_name=fn.\u001b[91m__name__\u001b[0m, has_token=ha \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m117 \u001b[0m\u001b[2m│ │ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m118 \u001b[2m│ │ \u001b[0m\u001b[94mreturn\u001b[0m fn(*args, **kwargs) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m119 \u001b[0m\u001b[2m│ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m120 \u001b[0m\u001b[2m│ \u001b[0m\u001b[94mreturn\u001b[0m _inner_fn \u001b[2m# type: ignore\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m121 \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/huggingface_hub/\u001b[0m\u001b[1;33mhf_api.py\u001b[0m:\u001b[94m2304\u001b[0m in \u001b[92mcreate_repo\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m2301 \u001b[0m\u001b[2m│ │ │ \u001b[0m\u001b[2m# Testing purposes only.\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m2302 \u001b[0m\u001b[2m│ │ │ \u001b[0m\u001b[2m# See https://github.com/huggingface/huggingface_hub/pull/733/files#r8206044\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m2303 \u001b[0m\u001b[2m│ │ │ \u001b[0mjson[\u001b[33m\"\u001b[0m\u001b[33mlfsmultipartthresh\u001b[0m\u001b[33m\"\u001b[0m] = \u001b[96mself\u001b[0m._lfsmultipartthresh \u001b[2m# type: ignore\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m2304 \u001b[2m│ │ \u001b[0mheaders = \u001b[96mself\u001b[0m._build_hf_headers(token=token, is_write_action=\u001b[94mTrue\u001b[0m) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m2305 \u001b[0m\u001b[2m│ │ \u001b[0mr = get_session().post(path, headers=headers, json=json) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m2306 \u001b[0m\u001b[2m│ │ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m2307 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94mtry\u001b[0m: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/huggingface_hub/\u001b[0m\u001b[1;33mhf_api.py\u001b[0m:\u001b[94m5008\u001b[0m in \u001b[92m_build_hf_headers\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m5005 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94mif\u001b[0m token \u001b[95mis\u001b[0m \u001b[94mNone\u001b[0m: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m5006 \u001b[0m\u001b[2m│ │ │ \u001b[0m\u001b[2m# Cannot do `token = token or self.token` as token can be `False`.\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m5007 \u001b[0m\u001b[2m│ │ │ \u001b[0mtoken = \u001b[96mself\u001b[0m.token \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m5008 \u001b[2m│ │ \u001b[0m\u001b[94mreturn\u001b[0m build_hf_headers( \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m5009 \u001b[0m\u001b[2m│ │ │ \u001b[0mtoken=token, \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m5010 \u001b[0m\u001b[2m│ │ │ \u001b[0mis_write_action=is_write_action, \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m5011 \u001b[0m\u001b[2m│ │ │ \u001b[0mlibrary_name=library_name \u001b[95mor\u001b[0m \u001b[96mself\u001b[0m.library_name, \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/\u001b[0m\u001b[1;33m_validators.py\u001b[0m:\u001b[94m118\u001b[0m in \u001b[92m_inner_fn\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m115 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94mif\u001b[0m check_use_auth_token: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m116 \u001b[0m\u001b[2m│ │ │ \u001b[0mkwargs = smoothly_deprecate_use_auth_token(fn_name=fn.\u001b[91m__name__\u001b[0m, has_token=ha \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m117 \u001b[0m\u001b[2m│ │ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m118 \u001b[2m│ │ \u001b[0m\u001b[94mreturn\u001b[0m fn(*args, **kwargs) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m119 \u001b[0m\u001b[2m│ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m120 \u001b[0m\u001b[2m│ \u001b[0m\u001b[94mreturn\u001b[0m _inner_fn \u001b[2m# type: ignore\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m121 \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/\u001b[0m\u001b[1;33m_headers.py\u001b[0m:\u001b[94m122\u001b[0m in \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[92mbuild_hf_headers\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m119 \u001b[0m\u001b[2;33m│ \u001b[0m\u001b[33m\"\"\"\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m120 \u001b[0m\u001b[2m│ \u001b[0m\u001b[2m# Get auth token to send\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m121 \u001b[0m\u001b[2m│ \u001b[0mtoken_to_send = get_token_to_send(token) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m122 \u001b[2m│ \u001b[0m_validate_token_to_send(token_to_send, is_write_action=is_write_action) \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m123 \u001b[0m\u001b[2m│ \u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m124 \u001b[0m\u001b[2m│ \u001b[0m\u001b[2m# Combine headers\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m125 \u001b[0m\u001b[2m│ \u001b[0mheaders = { \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2;33m/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/\u001b[0m\u001b[1;33m_headers.py\u001b[0m:\u001b[94m172\u001b[0m in \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[92m_validate_token_to_send\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m169 \u001b[0m\u001b[94mdef\u001b[0m \u001b[92m_validate_token_to_send\u001b[0m(token: Optional[\u001b[96mstr\u001b[0m], is_write_action: \u001b[96mbool\u001b[0m) -> \u001b[94mNone\u001b[0m: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m170 \u001b[0m\u001b[2m│ \u001b[0m\u001b[94mif\u001b[0m is_write_action: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m171 \u001b[0m\u001b[2m│ │ \u001b[0m\u001b[94mif\u001b[0m token \u001b[95mis\u001b[0m \u001b[94mNone\u001b[0m: \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[31m❱ \u001b[0m172 \u001b[2m│ │ │ \u001b[0m\u001b[94mraise\u001b[0m \u001b[96mValueError\u001b[0m( \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m173 \u001b[0m\u001b[2m│ │ │ │ \u001b[0m\u001b[33m\"\u001b[0m\u001b[33mToken is required (write-access action) but no token found. You need\u001b[0m\u001b[33m\"\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m174 \u001b[0m\u001b[2m│ │ │ │ \u001b[0m\u001b[33m\"\u001b[0m\u001b[33m to provide a token or be logged in to Hugging Face with\u001b[0m\u001b[33m\"\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m│\u001b[0m \u001b[2m175 \u001b[0m\u001b[2m│ │ │ │ \u001b[0m\u001b[33m\"\u001b[0m\u001b[33m `huggingface-cli login` or `huggingface_hub.login`. See\u001b[0m\u001b[33m\"\u001b[0m \u001b[31m│\u001b[0m\n", "\u001b[31m╰──────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n", "\u001b[1;91mValueError: \u001b[0mToken is required \u001b[1m(\u001b[0mwrite-access action\u001b[1m)\u001b[0m but no token found. You need to provide a token or be logged in\n", "to Hugging Face with `huggingface-cli login` or `huggingface_hub.login`. See \n", "\u001b[4;94mhttps://huggingface.co/settings/tokens.\u001b[0m\n" ], "text/html": [ "
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮\n",
              " in <cell line: 2>:2                                                                              \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/transformers/utils/hub.py:803 in push_to_hub             \n",
              "                                                                                                  \n",
              "    800 │   │   else:                                                                             \n",
              "    801 │   │   │   working_dir = repo_id.split(\"/\")[-1]                                          \n",
              "    802 │   │                                                                                     \n",
              "  803 │   │   repo_id = self._create_repo(                                                      \n",
              "    804 │   │   │   repo_id, private=private, use_auth_token=use_auth_token, repo_url=repo_url,   \n",
              "    805 │   │   )                                                                                 \n",
              "    806                                                                                           \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/transformers/utils/hub.py:661 in _create_repo            \n",
              "                                                                                                  \n",
              "    658 │   │   │   │   │   repo_id = repo_id.split(\"/\")[-1]                                      \n",
              "    659 │   │   │   │   repo_id = f\"{organization}/{repo_id}\"                                     \n",
              "    660 │   │                                                                                     \n",
              "  661 │   │   url = create_repo(repo_id=repo_id, token=use_auth_token, private=private, exist_  \n",
              "    662 │   │                                                                                     \n",
              "    663 │   │   # If the namespace is not there, add it or `upload_file` will complain            \n",
              "    664 │   │   if \"/\" not in repo_id and url != f\"{HUGGINGFACE_CO_RESOLVE_ENDPOINT}/{repo_id}\":  \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_validators.py:118 in _inner_fn    \n",
              "                                                                                                  \n",
              "   115 │   │   if check_use_auth_token:                                                           \n",
              "   116 │   │   │   kwargs = smoothly_deprecate_use_auth_token(fn_name=fn.__name__, has_token=ha   \n",
              "   117 │   │                                                                                      \n",
              " 118 │   │   return fn(*args, **kwargs)                                                         \n",
              "   119                                                                                        \n",
              "   120 return _inner_fn  # type: ignore                                                       \n",
              "   121                                                                                            \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/huggingface_hub/hf_api.py:2304 in create_repo            \n",
              "                                                                                                  \n",
              "   2301 │   │   │   # Testing purposes only.                                                      \n",
              "   2302 │   │   │   # See https://github.com/huggingface/huggingface_hub/pull/733/files#r8206044  \n",
              "   2303 │   │   │   json[\"lfsmultipartthresh\"] = self._lfsmultipartthresh  # type: ignore         \n",
              " 2304 │   │   headers = self._build_hf_headers(token=token, is_write_action=True)               \n",
              "   2305 │   │   r = get_session().post(path, headers=headers, json=json)                          \n",
              "   2306 │   │                                                                                     \n",
              "   2307 │   │   try:                                                                              \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/huggingface_hub/hf_api.py:5008 in _build_hf_headers      \n",
              "                                                                                                  \n",
              "   5005 │   │   if token is None:                                                                 \n",
              "   5006 │   │   │   # Cannot do `token = token or self.token` as token can be `False`.            \n",
              "   5007 │   │   │   token = self.token                                                            \n",
              " 5008 │   │   return build_hf_headers(                                                          \n",
              "   5009 │   │   │   token=token,                                                                  \n",
              "   5010 │   │   │   is_write_action=is_write_action,                                              \n",
              "   5011 │   │   │   library_name=library_name or self.library_name,                               \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_validators.py:118 in _inner_fn    \n",
              "                                                                                                  \n",
              "   115 │   │   if check_use_auth_token:                                                           \n",
              "   116 │   │   │   kwargs = smoothly_deprecate_use_auth_token(fn_name=fn.__name__, has_token=ha   \n",
              "   117 │   │                                                                                      \n",
              " 118 │   │   return fn(*args, **kwargs)                                                         \n",
              "   119                                                                                        \n",
              "   120 return _inner_fn  # type: ignore                                                       \n",
              "   121                                                                                            \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_headers.py:122 in                 \n",
              " build_hf_headers                                                                                 \n",
              "                                                                                                  \n",
              "   119 \"\"\"                                                                                    \n",
              "   120 # Get auth token to send                                                               \n",
              "   121 token_to_send = get_token_to_send(token)                                               \n",
              " 122 _validate_token_to_send(token_to_send, is_write_action=is_write_action)                \n",
              "   123                                                                                        \n",
              "   124 # Combine headers                                                                      \n",
              "   125 headers = {                                                                            \n",
              "                                                                                                  \n",
              " /usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_headers.py:172 in                 \n",
              " _validate_token_to_send                                                                          \n",
              "                                                                                                  \n",
              "   169 def _validate_token_to_send(token: Optional[str], is_write_action: bool) -> None:          \n",
              "   170 if is_write_action:                                                                    \n",
              "   171 │   │   if token is None:                                                                  \n",
              " 172 │   │   │   raise ValueError(                                                              \n",
              "   173 │   │   │   │   \"Token is required (write-access action) but no token found. You need\"     \n",
              "   174 │   │   │   │   \" to provide a token or be logged in to Hugging Face with\"                 \n",
              "   175 │   │   │   │   \" `huggingface-cli login` or `huggingface_hub.login`. See\"                 \n",
              "╰──────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
              "ValueError: Token is required (write-access action) but no token found. You need to provide a token or be logged in\n",
              "to Hugging Face with `huggingface-cli login` or `huggingface_hub.login`. See \n",
              "https://huggingface.co/settings/tokens.\n",
              "
\n" ] }, "metadata": {} } ], "source": [ "# # Push model and tokenizer to HugginFace\n", "model.push_to_hub(\"ikoghoemmanuell/finetuned_fake_news_bert\") # (username/model_name)\n", "tokenizer.push_to_hub(\"ikoghoemmanuell/finetuned_fake_news_bert\")" ] } ], "metadata": { "accelerator": "GPU", "colab": { "provenance": [], "toc_visible": true, "include_colab_link": true }, "kernelspec": { "display_name": "Python 3", "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.10.10" }, "vscode": { "interpreter": { "hash": "1ab24538aa0da4b2d8c48eaca591ff7ffc54671225fb0511b432fd9e26a098ba" } }, "widgets": { "application/vnd.jupyter.widget-state+json": { "3cf02903f9ee43e2b85ce7262d39bc55": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_dd3f1e80901147329104568369a9eefb", "IPY_MODEL_ac1b67b466b34e72b54abdc948fde66d", "IPY_MODEL_f2d8069fa96d4b73940b7176d5c3e981" ], "layout": "IPY_MODEL_622e079d49634a5b9c23fa2637bae08a" } }, "dd3f1e80901147329104568369a9eefb": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_98a263f1cb5144909e88bcec9ff4e361", "placeholder": "​", "style": "IPY_MODEL_ae4f3ff90b0f47588c4d9cfa64d24f3a", "value": "Map: 99%" } }, "ac1b67b466b34e72b54abdc948fde66d": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_e9cab8e4de5c4d4aaa142fa884ba26a3", "max": 25195, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_13297e8a333c4c92931241286767346b", "value": 25195 } }, "f2d8069fa96d4b73940b7176d5c3e981": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_83ba272769864155899b34d2529bce24", "placeholder": "​", "style": "IPY_MODEL_06527415b0fd47d9af173c4be21eeb60", "value": " 25000/25195 [00:01<00:00, 15638.83 examples/s]" } }, "622e079d49634a5b9c23fa2637bae08a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "98a263f1cb5144909e88bcec9ff4e361": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ae4f3ff90b0f47588c4d9cfa64d24f3a": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "e9cab8e4de5c4d4aaa142fa884ba26a3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "13297e8a333c4c92931241286767346b": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "83ba272769864155899b34d2529bce24": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "06527415b0fd47d9af173c4be21eeb60": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "bb7e0de39f844d2a9a35937313e409ea": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_faa70d7e253b472e9f7671fb95d70323", "IPY_MODEL_bf0a2db6cfba4a7cb1c93452171b440c", "IPY_MODEL_22607732117945b09a70750ee27b564f" ], "layout": "IPY_MODEL_42cf99309c2a48c5990d2212024828a5" } }, "faa70d7e253b472e9f7671fb95d70323": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_c39c8073a0f740288f3961d570b6e6e4", "placeholder": "​", "style": "IPY_MODEL_01568e557bf64c03bbaddfa8e4be23ea", "value": "Map: 79%" } }, "bf0a2db6cfba4a7cb1c93452171b440c": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6172739a648b456b9edcb2cc3ba0d731", "max": 6299, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_2dca3e83518f44ef9ae230dd265e52d7", "value": 6299 } }, "22607732117945b09a70750ee27b564f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_95521a3e2e8d4913a38a9ecfac529a8d", "placeholder": "​", "style": "IPY_MODEL_c6354e64d6fb48d9af2f9c50bc2361d7", "value": " 5000/6299 [00:00<00:00, 14954.37 examples/s]" } }, "42cf99309c2a48c5990d2212024828a5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "c39c8073a0f740288f3961d570b6e6e4": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "01568e557bf64c03bbaddfa8e4be23ea": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "6172739a648b456b9edcb2cc3ba0d731": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2dca3e83518f44ef9ae230dd265e52d7": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "95521a3e2e8d4913a38a9ecfac529a8d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c6354e64d6fb48d9af2f9c50bc2361d7": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "fd67e92e7f7b44c1aeb46b53522ac97c": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_1f3b1f7f4c444b36af439c9c2fe1a45d", "IPY_MODEL_dc512e2dc1744f68aa2761f5b568970c", "IPY_MODEL_4b9acb03d9fc48649ada871360ddb2d4" ], "layout": "IPY_MODEL_78a9d0a8bcf346e49ad3ddf74531b79a" } }, "1f3b1f7f4c444b36af439c9c2fe1a45d": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_568f2c4a11ee4749a34b67aa51f4c319", "placeholder": "​", "style": "IPY_MODEL_acb1575bd13a49e09625a8cea6a5a575", "value": "Map: 99%" } }, "dc512e2dc1744f68aa2761f5b568970c": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_014539c25b5f4b479dd36907581b77f7", "max": 25195, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_2cc9a55a8af645b889d259b96e8133a1", "value": 25195 } }, "4b9acb03d9fc48649ada871360ddb2d4": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_ff8120cfc89c4484ad530d563ccfa00a", "placeholder": "​", "style": "IPY_MODEL_30aef85d7be0426fabf6af6c6979f8a5", "value": " 25000/25195 [00:02<00:00, 13737.46 examples/s]" } }, "78a9d0a8bcf346e49ad3ddf74531b79a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "568f2c4a11ee4749a34b67aa51f4c319": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "acb1575bd13a49e09625a8cea6a5a575": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "014539c25b5f4b479dd36907581b77f7": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2cc9a55a8af645b889d259b96e8133a1": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "ff8120cfc89c4484ad530d563ccfa00a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "30aef85d7be0426fabf6af6c6979f8a5": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ccd0fe2d7c4046cbbf7568593c62b386": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_9f9226ec290d4674baf5ecb11b09f193", "IPY_MODEL_5fdbfca5f8174c798293a812c2583cd8", "IPY_MODEL_2ed89a1f1ade4ad5b187b0bde60b653a" ], "layout": "IPY_MODEL_8091923cd5214688a6885449756fac60" } }, "9f9226ec290d4674baf5ecb11b09f193": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_0d95234cb9464a9f81924790e2d78d7d", "placeholder": "​", "style": "IPY_MODEL_6fd2e720c20241fdbd904ae0fe43c4a6", "value": "Map: 79%" } }, "5fdbfca5f8174c798293a812c2583cd8": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_84e72d7663304a7cbd4b755873659503", "max": 6299, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_bdced13ed97a41daa06b00675d9b7788", "value": 6299 } }, "2ed89a1f1ade4ad5b187b0bde60b653a": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_dacb1189e7d74644b3ed289dbbe0c737", "placeholder": "​", "style": "IPY_MODEL_865b0d0cc704425dad5bfa4d5991f8fc", "value": " 5000/6299 [00:00<00:00, 13628.06 examples/s]" } }, "8091923cd5214688a6885449756fac60": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "0d95234cb9464a9f81924790e2d78d7d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6fd2e720c20241fdbd904ae0fe43c4a6": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "84e72d7663304a7cbd4b755873659503": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "bdced13ed97a41daa06b00675d9b7788": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "dacb1189e7d74644b3ed289dbbe0c737": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "865b0d0cc704425dad5bfa4d5991f8fc": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "0739f6e3fd3e4e219be137c39526bdd8": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_114035e72625438fb659cdae3ec67844", "IPY_MODEL_d2c5d23851144d99a054ee63aa00019f", "IPY_MODEL_aa35bf67a5b6414dac616294b6e81cd9" ], "layout": "IPY_MODEL_f75e29077f904257916ba87ce7ef1fcc" } }, "114035e72625438fb659cdae3ec67844": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_cf3493b190904b5d995d536a53376347", "placeholder": "​", "style": "IPY_MODEL_9cd1ea2ec86040af9c6f7f892ff630ac", "value": "Map: 97%" } }, "d2c5d23851144d99a054ee63aa00019f": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_edec0ea3547c44d1bdd3a1a86ed7a934", "max": 25195, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_1a3a6283d5464528876428c6ccfebdbf", "value": 25195 } }, "aa35bf67a5b6414dac616294b6e81cd9": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_070d90cd691049f8877181c7417b7539", "placeholder": "​", "style": "IPY_MODEL_e5e5724fa8694ae1a729b4993d91a15f", "value": " 24415/25195 [00:01<00:00, 20354.23 examples/s]" } }, "f75e29077f904257916ba87ce7ef1fcc": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "cf3493b190904b5d995d536a53376347": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9cd1ea2ec86040af9c6f7f892ff630ac": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "edec0ea3547c44d1bdd3a1a86ed7a934": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1a3a6283d5464528876428c6ccfebdbf": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "070d90cd691049f8877181c7417b7539": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e5e5724fa8694ae1a729b4993d91a15f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "d93d1b6c61f14958becb261104980638": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d627b0b267594ac286e5beb7602bc86f", "IPY_MODEL_6c8ecb6163674ccb96a61fd711011d06", "IPY_MODEL_08e2b7ccf0fd4b52aefd906ce49161b2" ], "layout": "IPY_MODEL_5a2c36210eb4485b98d3aefc18118972" } }, "d627b0b267594ac286e5beb7602bc86f": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_4112895b3a6140b691ac4d9d17df764d", "placeholder": "​", "style": "IPY_MODEL_c2aabd3b52e5461398d52168371f0267", "value": "Map: 98%" } }, "6c8ecb6163674ccb96a61fd711011d06": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_502cc5ec41a94f8cabff7c13e94f3352", "max": 6299, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_c3dcad5d6ae64f18902a365914926f72", "value": 6299 } }, "08e2b7ccf0fd4b52aefd906ce49161b2": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_dab0398c2adc403d8f79e44c476378e9", "placeholder": "​", "style": "IPY_MODEL_24b631d60a3b4ee08ad572a1945f3408", "value": " 6197/6299 [00:00<00:00, 18910.59 examples/s]" } }, "5a2c36210eb4485b98d3aefc18118972": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": "hidden", "width": null } }, "4112895b3a6140b691ac4d9d17df764d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c2aabd3b52e5461398d52168371f0267": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "502cc5ec41a94f8cabff7c13e94f3352": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c3dcad5d6ae64f18902a365914926f72": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "dab0398c2adc403d8f79e44c476378e9": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "24b631d60a3b4ee08ad572a1945f3408": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "46bfaf0c2dd04d50a0dcf8ad0a4d2689": { "model_module": "@jupyter-widgets/controls", "model_name": "VBoxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "VBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "VBoxView", "box_style": "", "children": [ "IPY_MODEL_3959cb0cfedd43f880b586d9a61219a0", "IPY_MODEL_2f0b89ce581e409388a5f3fc17fc2763", "IPY_MODEL_f787d1469f514f9289b29dceff2dbdb2", "IPY_MODEL_95b11805eace4774a4d6a7fc8c4eae2a", "IPY_MODEL_2bfaa5a1733c42ca9856bb84dc0b6559" ], "layout": "IPY_MODEL_3dc15408c4ea4c3487f12a4397abe3af" } }, "3959cb0cfedd43f880b586d9a61219a0": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_bae50a903c0b427ead6ad600bd470530", "placeholder": "​", "style": "IPY_MODEL_5f65fc1dc7af44e09b42f2a4ca43fb75", "value": "

Copy a token from your Hugging Face\ntokens page and paste it below.
Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file.
" } }, "2f0b89ce581e409388a5f3fc17fc2763": { "model_module": "@jupyter-widgets/controls", "model_name": "PasswordModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "PasswordModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "PasswordView", "continuous_update": true, "description": "Token:", "description_tooltip": null, "disabled": false, "layout": "IPY_MODEL_2c5a26fc136f4872a2802cdf97876206", "placeholder": "​", "style": "IPY_MODEL_20116da82fe64bd68b192ddb1b21c085", "value": "" } }, "f787d1469f514f9289b29dceff2dbdb2": { "model_module": "@jupyter-widgets/controls", "model_name": "CheckboxModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "CheckboxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "CheckboxView", "description": "Add token as git credential?", "description_tooltip": null, "disabled": false, "indent": true, "layout": "IPY_MODEL_e91660a945e249dba30e86ad71ddec9b", "style": "IPY_MODEL_4123af0f3bba4243a705aa864327edfe", "value": true } }, "95b11805eace4774a4d6a7fc8c4eae2a": { "model_module": "@jupyter-widgets/controls", "model_name": "ButtonModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ButtonModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ButtonView", "button_style": "", "description": "Login", "disabled": false, "icon": "", "layout": "IPY_MODEL_0a8e815904f442dc9103723d2b027cb6", "style": "IPY_MODEL_cd171d079e8f4d00a31a80697741dfe3", "tooltip": "" } }, "2bfaa5a1733c42ca9856bb84dc0b6559": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_fb43f0b1a80443a1b4f1654e78d94c37", "placeholder": "​", "style": "IPY_MODEL_516865c8687d47eb85ea50c4870fefab", "value": "\nPro Tip: If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks.
" } }, "3dc15408c4ea4c3487f12a4397abe3af": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": "center", "align_self": null, "border": null, "bottom": null, "display": "flex", "flex": null, "flex_flow": "column", "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": "50%" } }, "bae50a903c0b427ead6ad600bd470530": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5f65fc1dc7af44e09b42f2a4ca43fb75": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "2c5a26fc136f4872a2802cdf97876206": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "20116da82fe64bd68b192ddb1b21c085": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "e91660a945e249dba30e86ad71ddec9b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "4123af0f3bba4243a705aa864327edfe": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "0a8e815904f442dc9103723d2b027cb6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "cd171d079e8f4d00a31a80697741dfe3": { "model_module": "@jupyter-widgets/controls", "model_name": "ButtonStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ButtonStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "button_color": null, "font_weight": "" } }, "fb43f0b1a80443a1b4f1654e78d94c37": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "516865c8687d47eb85ea50c4870fefab": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } } } } }, "nbformat": 4, "nbformat_minor": 0 }