{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "Q-bj6K7Qv4ft" }, "source": [ "# Fine-Tuning a Generative Pretrained Transformer (`GPT`)\n", "\n", "1. Install required libraries." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "SBWCrz5GfBXo", "outputId": "34bbeb89-a5d5-4ad4-f87f-a87bffc735a2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting transformers\n", " Downloading transformers-4.30.1-py3-none-any.whl (7.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.2/7.2 MB\u001b[0m \u001b[31m77.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.0)\n", "Collecting huggingface-hub<1.0,>=0.14.1 (from transformers)\n", " Downloading huggingface_hub-0.15.1-py3-none-any.whl (236 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m236.8/236.8 kB\u001b[0m \u001b[31m30.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement 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", "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers)\n", " Downloading tokenizers-0.13.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.8/7.8 MB\u001b[0m \u001b[31m107.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting safetensors>=0.3.1 (from transformers)\n", " Downloading safetensors-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m80.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement 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.4.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.5.0)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (1.26.15)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2022.12.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", "Installing collected packages: tokenizers, safetensors, huggingface-hub, transformers\n", "Successfully installed huggingface-hub-0.15.1 safetensors-0.3.1 tokenizers-0.13.3 transformers-4.30.1\n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting codecarbon\n", " Downloading codecarbon-2.2.3-py3-none-any.whl (174 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m174.1/174.1 kB\u001b[0m \u001b[31m9.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting arrow (from codecarbon)\n", " Downloading arrow-1.2.3-py3-none-any.whl (66 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.4/66.4 kB\u001b[0m \u001b[31m9.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from codecarbon) (1.5.3)\n", "Collecting pynvml (from codecarbon)\n", " Downloading pynvml-11.5.0-py3-none-any.whl (53 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m53.1/53.1 kB\u001b[0m \u001b[31m5.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from codecarbon) (2.27.1)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from codecarbon) (5.9.5)\n", "Requirement already satisfied: py-cpuinfo in /usr/local/lib/python3.10/dist-packages (from codecarbon) (9.0.0)\n", "Collecting fuzzywuzzy (from codecarbon)\n", " Downloading fuzzywuzzy-0.18.0-py2.py3-none-any.whl (18 kB)\n", "Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from codecarbon) (8.1.3)\n", "Requirement already satisfied: python-dateutil>=2.7.0 in /usr/local/lib/python3.10/dist-packages (from arrow->codecarbon) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->codecarbon) (2022.7.1)\n", "Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.10/dist-packages (from pandas->codecarbon) (1.22.4)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->codecarbon) (1.26.15)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->codecarbon) (2022.12.7)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests->codecarbon) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->codecarbon) (3.4)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7.0->arrow->codecarbon) (1.16.0)\n", "Installing collected packages: fuzzywuzzy, pynvml, arrow, codecarbon\n", "Successfully installed arrow-1.2.3 codecarbon-2.2.3 fuzzywuzzy-0.18.0 pynvml-11.5.0\n" ] } ], "source": [ "!pip install transformers\n", "!pip install codecarbon" ] }, { "cell_type": "markdown", "metadata": { "id": "y5XnfvSH7w4z" }, "source": [ "2. Load the data from the hub." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, "id": "7MbpXGu-v4f1", "outputId": "7d155c3b-13f2-417d-a5b9-6d0dce08a5d7" }, "outputs": [ { "data": { "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", "
promptcompletion
0Which is a species of fish? Tope or RopeTope
1Why can camels survive for long without water?Camels use the fat in their humps to keep them...
2Alice's parents have three daughters: Amy, Jes...The name of the third daughter is Alice
3Who gave the UN the land in NY to build their HQJohn D Rockerfeller
4Why mobile is bad for humanWe are always engaged one phone which is not g...
.........
53129How do computers communicate and network with ...Computers communicate and network with each ot...
53130How are websites different from web applications?Websites and web applications are similar in t...
53131What is open-source software and its benefits?Open-source software is software that is made ...
53132What is a cookie and how is it used in web bro...A cookie is a small piece of data that a websi...
53133What is cloud storage and its advantages for d...Cloud storage is a service that allows you to ...
\n", "

53134 rows × 2 columns

\n", "
\n", " \n", " \n", " \n", "\n", " \n", "
\n", "
\n", " " ], "text/plain": [ " prompt \\\n", "0 Which is a species of fish? Tope or Rope \n", "1 Why can camels survive for long without water? \n", "2 Alice's parents have three daughters: Amy, Jes... \n", "3 Who gave the UN the land in NY to build their HQ \n", "4 Why mobile is bad for human \n", "... ... \n", "53129 How do computers communicate and network with ... \n", "53130 How are websites different from web applications? \n", "53131 What is open-source software and its benefits? \n", "53132 What is a cookie and how is it used in web bro... \n", "53133 What is cloud storage and its advantages for d... \n", "\n", " completion \n", "0 Tope \n", "1 Camels use the fat in their humps to keep them... \n", "2 The name of the third daughter is Alice \n", "3 John D Rockerfeller \n", "4 We are always engaged one phone which is not g... \n", "... ... \n", "53129 Computers communicate and network with each ot... \n", "53130 Websites and web applications are similar in t... \n", "53131 Open-source software is software that is made ... \n", "53132 A cookie is a small piece of data that a websi... \n", "53133 Cloud storage is a service that allows you to ... \n", "\n", "[53134 rows x 2 columns]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "from datasets import load_dataset\n", "\n", "dataset = load_dataset(\"nicholasKluge/fine-tuning-instruct-aira\", split=\"aira_instruct_english\")\n", "\n", "df = dataset.to_pandas()\n", "\n", "display(df)" ] }, { "cell_type": "markdown", "metadata": { "id": "fEaDTvdOe8rr" }, "source": [ "3. Load `GPT2Tokenizer` and add the chosen special tokens (`'<|startoftext|>', '<|endoftext|>','<|pad|>'`)\n", "4. Create demonstrations by prepending the special tokens.\n", "5. Calculate the maximum length (in tokens) that the demonstrations have (the dataset was constructed, for efficiency and fast training, to be below the 300-token range)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 241, "referenced_widgets": [ "cd7347fa726445d394c474ecdcd722f5", "10fbf68d8ca6482793a9b4ba35210d5d", "0c01e2b05f3c4bdd929aeae62379d0a8", "27174e961c764f5c9c549dc9d2972670", "967f86de457447be875d09e85b343242", "053a5571006e41a6aef0b77fa1e36faa", "621fe101bbfb41a09148346855b940bf", "d74a865eb33a46daa004a8e270fd3a5d", "120d61a1947446bbb007302398eb9606", "87770c1808654d7d97642e7a66a38aac", "32b18e36b9024f1d94f38440b1984455", "db63d0aab8e444a28d827dd96067635a", "5803df0c4976405c99c756a5e687cc90", "9e22ec2b93524dda84f88b5fef7f5c2a", "14a867b9db464260be3bed64c225c412", "241225d9398e4660a407eb856500a58e", "e90b5b1082c147c5917a45ce3bee81a7", "1cc20edfc4cc4adfb981fd30cf241b6b", "d2911fcf195940bfa5de8b51593e0522", "1b3dd18c2ca9423d9b2a3b8e0486447d", "b70c83376ad7470aa26fe948175be35c", "eb6a35ee97a240bb9c3cfa27a78bc1dc", "e0464c04c0f848cfb6af2652adb8af66", "8b5f90795192467da0843b23eeb60dc2", "e530a4b1974240e39c178c12771b0e1e", "bd91b647889c48a3802ee0799f2d6a80", "c3530939d43b4d5eabc6dafb4b62cb1c", "b9d223416be348b19c0ad543d308576f", "a3f33b3a1ecc4ca890dde23d9345a73d", "6153dcb6691b4ffaa819961284b22d69", "28d859aaedd84e07affe428793505964", "716067896aba419ead0616e88f4f2dce", "67d5ea32ed8c449f9804e4a32a5c2e99" ] }, "id": "hfu84fWIv4f9", "outputId": "4269ccc5-e854-4095-dafd-cc5c40d0f12b" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cd7347fa726445d394c474ecdcd722f5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading (…)olve/main/vocab.json: 0%| | 0.00/1.04M [00:00',\n", " eos_token='<|endoftext|>',\n", " pad_token='<|pad|>')\n", "\n", "df['demonstrations'] = tokenizer.bos_token + df['prompt'] + tokenizer.eos_token + df['completion'] + tokenizer.eos_token\n", "\n", "df['length'] = df['demonstrations'].apply(lambda x: len(tokenizer.encode(x)))\n", "\n", "print(\"Total number of demonstrations: \", len(df))\n", "print(f\"The longest demonstration is {df['length'].max()} tokens long.\")" ] }, { "cell_type": "markdown", "metadata": { "id": "wkMO17K5e8rs" }, "source": [ "6. Create the Dataset class." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "WlbAfMQ4v4gA" }, "outputs": [], "source": [ "import torch\n", "from torch.utils.data import Dataset\n", "\n", "max_length = 300\n", "\n", "class DemoDataset(Dataset):\n", "\n", " def __init__(self, demonstrations, tokenizer, gpt2_type=\"gpt2\", max_length=max_length):\n", "\n", " self.tokenizer = tokenizer\n", " self.input_ids = []\n", " self.attn_masks = []\n", "\n", " for demo in demonstrations:\n", "\n", " encodings_dict = tokenizer(demo,\n", " truncation=True,\n", " max_length=max_length,\n", " padding=\"max_length\")\n", "\n", " self.input_ids.append(torch.tensor(encodings_dict['input_ids']))\n", " self.attn_masks.append(torch.tensor(encodings_dict['attention_mask']))\n", "\n", " def __len__(self):\n", " return len(self.input_ids)\n", "\n", " def __getitem__(self, idx):\n", " return self.input_ids[idx], self.attn_masks[idx]" ] }, { "cell_type": "markdown", "metadata": { "id": "711Krm6Te8rt" }, "source": [ "7. Split the data into training and validation splits." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-IOfa2PEv4gD", "outputId": "83b162aa-a00e-4736-cc9e-0ceb005db30e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of training samples: 47,820\n", "Number of validation samples: 5,314\n" ] } ], "source": [ "from torch.utils.data import random_split\n", "\n", "dataset = DemoDataset(df.demonstrations.to_list(), tokenizer, max_length=max_length)\n", "\n", "train_size = int(0.9 * len(dataset))\n", "val_size = len(dataset) - train_size\n", "\n", "train_dataset, val_dataset = random_split(dataset, [train_size, val_size])\n", "\n", "print('Number of training samples: {:,}'.format(train_size))\n", "print('Number of validation samples: {:,}'.format(val_size))" ] }, { "cell_type": "markdown", "metadata": { "id": "vSqKuRjIe8ru" }, "source": [ "8. Create the `DataLoaders` and specify the `batch_size`." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "cUkCNV-6v4gG" }, "outputs": [], "source": [ "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler\n", "\n", "train_dataloader = DataLoader(\n", " train_dataset,\n", " sampler=RandomSampler(train_dataset),\n", " batch_size=20 # 32, 20, 8, 6\n", " )\n", "\n", "# validation data loader doesn't need randomization\n", "validation_dataloader=DataLoader(\n", " val_dataset,\n", " sampler=SequentialSampler(val_dataset),\n", " batch_size=20\n", " )" ] }, { "cell_type": "markdown", "metadata": { "id": "0vxvcTIHe8rv" }, "source": [ "9. Load the base model (`GPT2LMHeadModel`)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 550, "referenced_widgets": [ "d3706d2eefcd41ec89f3f0247719ec92", "817964cc90334605902c6f13d4e94bcb", "d2669f9ffdfe404b944100abf125d437", "4971c12962724535bf221fac26ee6938", "40c7558bdd57406abf170b0b4600f2cc", "e6062f15b1af4d838e90aaf5a65748fb", "0a394b51e4de479bbc019c02fa6bb9ab", "caac8742661d4238a06d1ab65add439a", "3fa7d040728843de8812d298154673bc", "dc632fb86d7a4b4c93b7315eef2e7a48", "e1ce84fd7f9045158aefd3ec7359e0a9", "317ef8edd3b44443bce2c1f7f0ed6d4b", "376ff945cd5f4705b6db9c747aa7e062", "b952e087a32c46b7a4aee6a06ebe62d5", "c4911938e5c64ca098bbd0d32ac65870", "fd4bb55839b443c9baf35c37f0033337", "c0c83e1a879a4c1387bd6e353514fdfa", "71c676fba8144996b6749aefc46f63fc", "fbd280fe0da8457e8e83f40bc0bf5fdc", "d62519fa2ae14084ba1aac280a44088c", "39b34f03b78b41f18b50bffdfd6993ba", "b78c2ba8ef6248f6b3d2f0b8f2f31f7c" ] }, "id": "Rmg-5YJqv4gH", "outputId": "bccf9dea-1980-4234-f26d-e08c586399b5" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d3706d2eefcd41ec89f3f0247719ec92", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading model.safetensors: 0%| | 0.00/1.52G [00:00 model.config.n_layer - UNFREEZE_LAST_N:\n", " for parameter in m.parameters():\n", " parameter.requires_grad = True\n", "\n", " for parameter in model.transformer.ln_f.parameters():\n", " parameter.requires_grad = True\n", "\n", " for parameter in model.lm_head.parameters():\n", " parameter.requires_grad = True\n", "\n", "num_frozen_layers = sum(1 for parameter in model.parameters() if not parameter.requires_grad)\n", "num_trainable_layers = sum(1 for parameter in model.parameters() if parameter.requires_grad)\n", "\n", "print(\"Number of frozen layers:\", num_frozen_layers)\n", "print(\"Number of trainable layers:\", num_trainable_layers)" ] }, { "cell_type": "markdown", "metadata": { "id": "GJ1kH3uSe8rw" }, "source": [ "11. Set the training hyperparameters." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "qlbLg6tqv4gI" }, "outputs": [], "source": [ "from transformers import get_linear_schedule_with_warmup\n", "\n", "# training rounds\n", "epochs = 3 # 5, 3, 2, 1\n", "\n", "# steps at the start of training that are ignored\n", "warmup_steps = 1e2\n", "\n", "# sample the model to test the output\n", "sample_every = 300\n", "\n", "optimizer = torch.optim.AdamW(model.parameters(), lr = 5e-4, eps = 1e-8)\n", "\n", "# total steps = number of batches * number of epochs\n", "total_steps = len(train_dataloader) * epochs\n", "\n", "# create the learning rate scheduler\n", "scheduler = get_linear_schedule_with_warmup(optimizer,\n", " num_warmup_steps = warmup_steps,\n", " num_training_steps = total_steps)" ] }, { "cell_type": "markdown", "metadata": { "id": "nz1a9lxXe8rw" }, "source": [ "12. Training/Validation loop. Track the carbon emissions of your work by using `codecarbon`. 🌱" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_X_m8XOtv4gR", "outputId": "d3fed0ff-df94-4c24-ef0c-4a4ebe299640" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Beginning epoch 1 of 3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 13%|█▎ | 300/2391 [04:13<29:02, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 300 of 2391. Loss:0.8311468958854675.\n", "Example output: I want to learn mathematics from a beginner level. Where should I begin.There are plenty of mathematics problems that you may not have the time or resources to solve. Take a look at the following list of questions:\n", "\n", "10\n", "\n", "1. What is a polynomial?\n", "\n", "2. What is a trigonomial?\n", "3. What is an eigendecid?\n", "\n", "4. What is the real square?\n", "\n", "5. What is a logarithmic square?\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 25%|██▌ | 600/2391 [08:26<24:52, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 600 of 2391. Loss:0.6423898935317993.\n", "Example output: How many years have passed since you were born?The age of the world has ended with the rise of AI, machine learning, and data-driven decision making. These advancements have allowed us to navigate a new era of abundance in which we no longer possess ownership over the resources we have allocated to life and are instead reliant on machines to provide us with the most efficient and cost-effective solutions.\n", "\n", "While the technology behind these transformations remains uncertain, there are a few promising trends that point in the direction of AI's ability to revolutionize our daily lives. These trends include advances in machine learning, personalized healthcare and finance, and augmented and virtual reality.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 38%|███▊ | 900/2391 [12:40<20:42, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 900 of 2391. Loss:0.7947258949279785.\n", "Example output: How can I learn a new language online.Start by familiarizing yourself with the basics of the language. Understand that there are several popular online language learning apps available, such as Duolingo, edX, or edX China. Be sure to take a course or practice a native language regularly before you go to an online language school. \n", "\n", "2. Read, write, and study the language\n", "\n", "Practice speaking the language regularly and engaging in conversations with native speakers. Encourage native speakers to teach and explain to you, even when they don't understand your grammar or pronunciation. Additionally, use language learning apps to practice speaking the language and to learn slang and slang terms.\n", "\n", "3. Learn pronunciation\n", "\n", "Learn to read and write the language by reading, listening, and speaking with native speakers. Talk to a native speaker over the phone to get a sense of what they are saying. Listen to native speakers during classes or online and identify any slang or slang terms.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 50%|█████ | 1200/2391 [16:56<16:33, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1200 of 2391. Loss:0.6887515783309937.\n", "Example output: What are the benefits of living by a lake.The benefits of living by a lake include improved hydration levels and increased immunity, increased energy levels, and improved mental health.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 63%|██████▎ | 1500/2391 [21:07<12:22, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1500 of 2391. Loss:0.557076096534729.\n", "Example output: What kind of fertilizer is best for a vegetable garden.The best fertilizer for a vegetable garden depends on the variety and size of the plants. Composted compost materials can be a great choice for vegetable garden fertilizers, as they contain less greenhouse gases than their raw counterparts. Composted fertilizers are also more environmentally friendly as they are usually biodegradable and provide better nutrient levels for your garden. Additionally, compost is often used to fill in natural gaps in compost piles.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 75%|███████▌ | 1800/2391 [25:19<08:12, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1800 of 2391. Loss:0.7273032665252686.\n", "Example output: What is the most popular spaghetti dish in Italy.The most popular dish in Italy is spaghetti with pesto.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 88%|████████▊ | 2100/2391 [29:30<04:02, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 2100 of 2391. Loss:0.7546969652175903.\n", "Example output: How can I make a healthy breakfast that takes less than 10 minutes to make.To make a healthy breakfast, start by gathering the ingredients you'll need: eggs, fruit, yogurt, nuts, avocados, peanut butter, and syrup. Heat a non-stick pan over medium-high heat and add your eggs, then your fruit, yogurt, and peanut butter. Allow the pan to cook for a few minutes before adding your peanut butter and any other ingredients. Flip the eggs every so often and cook until they are completely set. Serve with a side of boiled egg or toast.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 2391/2391 [33:35<00:00, 1.19it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.8037641328879851.\n", "Validation loss: 0.6114786967523116.\n", "Beginning epoch 2 of 3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 13%|█▎ | 300/2391 [04:10<29:02, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 300 of 2391. Loss:0.5744898319244385.\n", "Example output: Create a Python script to find the sum of all numbers ranging from k to n inclusive.Sum: k + n + k\n", " + n + k\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 25%|██▌ | 600/2391 [08:20<24:56, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 600 of 2391. Loss:0.6873356103897095.\n", "Example output: What criticisms have been made of updateless decision theory?UDT is a decision theory system with two fundamental pillars: an agent theory and an RNN. UDT's decision trees allow for seamless decision-making, which is a crucial aspect in current state-of-the-art UDT-based decision-making systems. UDT is Turing complete and offers a wide range of decision-making options for different tasks, such as monitoring a customer’s purchases, playing chess, or investing in stocks and bonds. For more details, refer to \"Updateless Decision Theory: A Review of 200 Guidelines and Recommendations for a New Decision Theory.\"\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 38%|███▊ | 900/2391 [12:34<20:42, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 900 of 2391. Loss:0.5231805443763733.\n", "Example output: Does the Earth revolve around the moon.Yes, the Earth revolved around the moon millions of years ago.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 50%|█████ | 1200/2391 [16:44<16:32, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1200 of 2391. Loss:0.49868226051330566.\n", "Example output: What do you mean by sustainable AI?Sustainability refers to AI technology being developed that is non-polluting, energy efficient, and uses limited resources.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 63%|██████▎ | 1500/2391 [20:55<12:22, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1500 of 2391. Loss:0.6849273443222046.\n", "Example output: How do I make the best cup of coffee.To make the best cup of coffee, start by choosing a cup that is light, steaming, and has a good burr. Once the burr is set, heat the water to about 400°F. Pour the coffee into the cup and let the brew for a few minutes before pouring the rest of the coffee into the cup. Finally, top the cup off with your favorite toppings and enjoy.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 75%|███████▌ | 1800/2391 [25:08<08:12, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1800 of 2391. Loss:0.7784386277198792.\n", "Example output: Where can I find low-cost flights to Alaska.You can find low-cost flights to Alaska by searching on airline websites such as Expedia, Skyscanner, and Kayak. You can also search directly for flights online using airline search engines, such as Google Flights.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 88%|████████▊ | 2100/2391 [29:19<04:02, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 2100 of 2391. Loss:0.7476993799209595.\n", "Example output: What are the benefits of using renewable energy sources.The benefits of using renewable energy sources include reducing dependence on finite resources, reducing the need for large-scale fossil fuels, providing access to renewable energy resources and reducing carbon emissions from the energy sector. Additionally, renewable energy sources can provide a way for people to reduce their reliance on fossil fuels by transitioning to renewable energy sources such as solar, wind, and hydro power.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 2391/2391 [33:24<00:00, 1.19it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.5702004936986865.\n", "Validation loss: 0.5858413227518698.\n", "Beginning epoch 3 of 3\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 13%|█▎ | 300/2391 [04:10<29:03, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 300 of 2391. Loss:0.4317343533039093.\n", "Example output: I'm concerned about my finances and want to develop a budget. Can you help.I'm sorry, I'm not a financial expert, but I can help you identify how much money you have available to save and what savings strategies you may be able to implement to help you achieve your financial goals. It can be helpful to review the budget periodically and be sure to stay on track. Additionally, consider talking to a financial consultant who can provide guidance to help make the process smoother.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 25%|██▌ | 600/2391 [08:22<24:51, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 600 of 2391. Loss:0.3909016251564026.\n", "Example output: What is the significance of the \"p versus np\" problem?A problem is defined as a problem that can be solved in a number of steps bounded by a polynomial function of n, where n corresponds to the power of the input length, for example, a problem of algorithm complexity is restricted by a polynomial function of n. Although NP is the formal name of decision theory, it has a simpler and more concise definition than other complexity classes such as linear or quadratic, due to the fact that all problems solvable by any algorithm can also be solved.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 38%|███▊ | 900/2391 [12:35<20:43, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 900 of 2391. Loss:0.3943908214569092.\n", "Example output: How big of a storage tank do I need to store 1,000 gallons of water.To store 1,000 gallons of water, you will need a storage tank or other water-saving method. You will also need to purchase water supplies such as a rain barrel, faucet, showerhead, or other water filtration system. You will also need to install a dishwasher, dish washing machine, and washing machine.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 50%|█████ | 1200/2391 [16:47<16:32, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1200 of 2391. Loss:0.5626760721206665.\n", "Example output: I need help with understanding a specific math problem.The best way to understand a math problem is to break it down into smaller parts and study each one step-by-step. Identify the steps that need to be taken to solve the problem and then work backward to identify the best way to solve them. After you have an understanding of the problem, you can then work to make sure that the solution is correct.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 63%|██████▎ | 1500/2391 [20:59<12:22, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1500 of 2391. Loss:0.6661339998245239.\n", "Example output: What are the three main types of clouds.The three main types of clouds are cumulus, cumulonimbus, and polygon.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 75%|███████▌ | 1800/2391 [25:10<08:13, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 1800 of 2391. Loss:0.5321910381317139.\n", "Example output: What is the best way to clean a wool sweater.The best way to clean a wool sweater is to use a mild detergent and warm water, spot clean and condition the sweater with a mild detergent and warm water, then launder the sweater according to the care instructions on the care label. Rinse the garment in clean water and dry thoroughly before hanging it up.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 88%|████████▊ | 2100/2391 [29:22<04:02, 1.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch 2100 of 2391. Loss:0.4964297413825989.\n", "Example output: Give me an idea of the mental exercises you do to inspire yourself.\n", " Input: - Exercise regularly\n", "- Take breaks\n", "- Set realistic goals\n", "- Connect with friends\n", "- Engage with nature\n", "- Limit distractions\n", "- Participate in activities you enjoy\n", "- Talk to others\n", "- Set realistic expectations\n", "- Take a break to focus on a specific task\n", "- Write down your thoughts\n", "- Use positive affirmations\n", "- Read more about it.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 2391/2391 [33:27<00:00, 1.19it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Average Training Loss: 0.4873914483300516.\n", "Validation loss: 0.5831270120421747.\n", "Training complete!\n" ] } ], "source": [ "from codecarbon import EmissionsTracker\n", "import tqdm\n", "\n", "output_dir = f'./Aira-{model_size}'\n", "\n", "tracker = EmissionsTracker(\n", " project_name=\"Aira_emissions\",\n", " log_level=\"critical\",\n", " output_dir=output_dir,\n", " output_file=\"Aira_emissions.csv\",\n", ")\n", "\n", "training_stats = []\n", "\n", "tracker.start()\n", "for epoch_i in range(0, epochs):\n", "\n", " print(f'\\nBeginning epoch {epoch_i + 1} of {epochs}\\n')\n", "\n", " total_train_loss = 0\n", "\n", " model.train()\n", "\n", " for step, batch in enumerate(tqdm.tqdm(train_dataloader)):\n", "\n", " b_input_ids = batch[0].to(device)\n", " b_labels = batch[0].to(device)\n", " b_masks = batch[1].to(device)\n", "\n", " model.zero_grad()\n", "\n", " outputs = model(b_input_ids,\n", " labels=b_labels,\n", " attention_mask = b_masks,\n", " token_type_ids=None)\n", "\n", " loss = outputs[0]\n", "\n", " batch_loss = loss.item()\n", " total_train_loss += batch_loss\n", "\n", " if step % sample_every == 0 and not step == 0:\n", "\n", " print(f'\\nBatch {step} of {len(train_dataloader)}. Loss:{batch_loss}.\\n')\n", "\n", " model.eval()\n", "\n", " inputs = tokenizer(tokenizer.bos_token + df.prompt.sample().iloc[0] + tokenizer.eos_token, return_tensors=\"pt\").to(device)\n", "\n", " sample_outputs = model.generate(**inputs,\n", " bos_token_id=tokenizer.bos_token_id,\n", " pad_token_id=tokenizer.pad_token_id,\n", " eos_token_id=tokenizer.eos_token_id,\n", " do_sample=True,\n", " top_k=50,\n", " max_length = 200,\n", " top_p=0.95,\n", " num_return_sequences=1)\n", "\n", " for i, sample_output in enumerate(sample_outputs):\n", " print(f'\\nExample output: {tokenizer.decode(sample_output, skip_special_tokens=True)}\\n')\n", "\n", " model.train()\n", "\n", " loss.backward()\n", "\n", " optimizer.step()\n", "\n", " scheduler.step()\n", "\n", " avg_train_loss = total_train_loss / len(train_dataloader)\n", "\n", "\n", " print(f'\\nAverage Training Loss: {avg_train_loss}.\\n')\n", "\n", " model.eval()\n", "\n", " total_eval_loss = 0\n", " nb_eval_steps = 0\n", "\n", " for batch in validation_dataloader:\n", "\n", " b_input_ids = batch[0].to(device)\n", " b_labels = batch[0].to(device)\n", " b_masks = batch[1].to(device)\n", "\n", " with torch.no_grad():\n", "\n", " outputs = model(b_input_ids,\n", " attention_mask = b_masks,\n", " labels=b_labels)\n", "\n", " loss = outputs[0]\n", "\n", " batch_loss = loss.item()\n", " total_eval_loss += batch_loss\n", "\n", " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", "\n", "\n", " print(f'\\nValidation loss: {avg_val_loss}.\\n')\n", "\n", " training_stats.append(\n", " {\n", " 'epoch': epoch_i + 1,\n", " 'Training Loss': avg_train_loss,\n", " 'Valid. Loss': avg_val_loss,\n", " }\n", " )\n", "\n", "tracker.stop()\n", "print(\"Training complete!\")\n", "\n", "df_stats = pd.DataFrame(data=training_stats)\n", "df_stats = df_stats.set_index('epoch')\n", "df_stats.to_parquet(f\"{output_dir}/training_stats.parquet\", compression=\"gzip\")\n", "\n", "model_to_save = model.module if hasattr(model, 'module') else model\n", "model_to_save.save_pretrained(output_dir)\n", "tokenizer.save_pretrained(output_dir)" ] }, { "cell_type": "markdown", "metadata": { "id": "h48iOsqie8rx" }, "source": [ "13. Check the training stats and plot the learning curves." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 439 }, "id": "J1-hAY9Av4gT", "outputId": "d35d961f-d9cc-4813-8963-817b43a19c19" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABBsAAAI/CAYAAAA2r9HeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACyTUlEQVR4nOzdd3iUZb7G8e/MpPeEkgKE0EsQqQKKqAgCUi2AiBVXmri6HHftiIplz1qOotIUUJRdUaqFIiiC1NAJvSShJ0B6IWVmzh8xs4QkEJJJZpLcn+vyEuZ93uf9TcwDzp2nGKxWqxURERERERERETsxOroAEREREREREaleFDaIiIiIiIiIiF0pbBARERERERERu1LYICIiIiIiIiJ2pbBBREREREREROxKYYOIiIiIiIiI2JXCBhERERERERGxK4UNIiIiIiIiImJXChtERERERERExK4UNoiISI2zZcsWWrRoQYsWLeze96JFi2jRogU9e/a0e99iHw8//DAtWrRg6tSp13WtvH1Xhp49e9KiRQsWLVrkkOeLiIgUcHF0ASIiUj2V54P8O++8w7333mvHauR67d69m9mzZ7N9+3aSk5Px9/cnNDSUW265hX79+tGyZcsy9Xv27Fl69uyJxWLhH//4B0888USp7luyZAnPP/88kB/oREZGlun5VdWiRYs4ffo0N910E126dHF0OXb3wgsvsHjxYurVq8evv/7q6HJERMQOFDaIiEiFqF27drGvZ2ZmkpmZedU2Hh4eFVYXgKenJ40aNaqQvn19fWnUqBHBwcEV0n9l+P7773n11VexWCxA/tcrMzOTvXv3snfvXnbs2MG8efPK1HdoaCg333wzf/zxB4sWLSp12LBw4UIAWrVqVaFBQ2hoKI0aNSIwMLDCnlEWixcvZuvWrUyYMOGqYUODBg1wc3PD19e3EqsTEREpSmGDiIhUiA0bNhT7+tSpU/nkk0+u2qaitW3blhUrVlRI371796Z3794V0ndlSExM5I033sBisdCqVSumTJlCmzZtADh58iS//vorx48fL9cz7r//fv744w+OHj3K7t27ufHGG6/a/uTJk0RFRQFw3333levZ1/K///u/Fdp/Rfvyyy8dXYKIiAigsEFEREQus23bNrKzswH417/+RbNmzWzXGjRowKOPPlruZ9x5550EBASQnJzMwoULrxk2LFq0CKvVipubGwMHDiz380VERKTiKWwQERGnUrDXw1dffUXTpk2ZOXMma9eu5dy5c1y6dIlDhw4BkJWVxZo1a1i3bh2HDh0iPj6e9PR0AgICaNu2LcOHD+e2224r9hlbtmzhkUceAbD1V2DRokW8+OKLtrXj0dHRzJo1y7Z3QXBwML169WL8+PH4+/sX6fvK+y9XMKvjpptuYt68eWzatIk5c+awZ88eMjIyqF+/Pv379+fJJ5/E3d29xK/R6tWr+eqrr9i/fz9ms5kGDRowcOBAHnvsMaZPn17oGdfLZDLZfl1RS0Hc3NwYPHgwX375JT/99BMvvfRSiUtnLBYLS5YsAfJnjQQEBABw+PBhVq5cSVRUFGfOnCEhIQEXFxfCw8O57bbbePTRRwkKCrru2h5++GHbcoWnn366yHWz2cz8+fNZtGgRMTExuLm50aJFC0aOHEnfvn2v2vfJkydZvnw5W7Zs4dSpU8THx2MwGGx7YTz++OOEhYUVuqfg+6nAJ598YpsZVGDNmjXUr18fyN8g8vTp0yXue2I2m1m8eDHLli3j0KFDZGRkEBgYSPv27Rk5cmSJSzQu/7pMmDCB7777ju+++45jx45htVpp3rw5Dz74IIMHD77q16AinD9/ntmzZ7Nu3TpOnz4NQL169bjtttsYNWpUicu1UlJSmDt3LmvXriUuLo6cnBz8/f0JCgqiffv29OvXj27duhW659KlS3zzzTesWrWK48ePk5mZia+vL0FBQdxwww307NmTPn36VPh7FhGpChQ2iIiIUzpx4gQTJ07kwoULuLu74+JS+K+s5cuX2z6EGQwGfHx8cHFx4fz586xZs4Y1a9YwatQo26aCZfHDDz/w4osvkpubi6+vL2azmVOnTjF37lw2bNjAt99+i7e3d5n6/vzzz3nvvfeA/H0ecnNzOX78OFOnTmXr1q3MmTOn0Af/Av/85z+ZPXu27fd+fn4cO3aM9957j99//52OHTuW7c3+qVu3bgQFBZGYmMhXX33FhAkTytVfSe6//36+/PJL0tPTWblyZYkfUjdt2sSZM2eAwksoxo4da/tg6e7ujqenJykpKRw4cIADBw6wePFi5s6dS+PGje1Wc05ODuPGjeOPP/4AwGg04urqSlRUFFu3buXJJ5+86v0vvfQSW7duBcDV1RVvb29SU1M5duwYx44dY/HixUyfPp1OnTrZ7vHw8KB27dqkpKSQm5uLl5cXXl5ehfot7vukOGlpaYwfP95Wg8lkwtvbm/Pnz7Ny5UpWrlx5zTFjNpt56qmnWLNmDS4uLnh4eJCRkcGuXbvYtWsXcXFx/PWvfy1VPfawdetWnnrqKVJTUwFsX5ujR49y9OhRvv/+ez777LNCX1OAc+fOMWLECNv3ltFoxNfXl6SkJC5cuMDhw4eJiYkpFDakp6czcuRIDh48COT/uePr60taWhpJSUkcO3aMqKgohQ0iIn/S0ZciIuKU3n77bXx9fZk7dy67du1ix44dhfZZ8PPzY9SoUcyfP5+dO3eybds2du3axfr163n66adxdXVl9uzZrFmzpkzPT0xM5KWXXmLIkCGsXbuWbdu2sWPHDiZNmoSrqytHjhzh888/L1PfBw8e5P3332f06NFs3LiRqKgotm3bxlNPPQXkz7xYvHhxkft++uknW9AwYMAA1q1bR1RUFDt27ODNN99kz549/Pvf/y5TTQW8vLxsHzY//fRTli1bVq7+StK8eXPatm0L/Hfzx+IUXKtXr16hD36dO3fm3Xff5bfffmPPnj1s2bKFPXv2MHfuXNq2bUt8fDzPPfecXWt+//33+eOPPzAYDDz77LNERUURFRXFhg0bGDFiBLNmzeLAgQMl3t+yZUsmTZrEypUrbTXv3buX7777jltvvZW0tDT+9re/cenSJds9d999Nxs2bKB9+/YAjBo1ig0bNhT6JzQ0tFT1v/zyy2zduhVXV1deeeUVtm/fTlRUFOvXr7cFObNnz77q99D8+fPZunUr7777Ltu3b2f79u38/vvv3HHHHQBMmzaN2NjYUtVTXmfPnrUFDU2bNrX9WbBz506++eYbGjVqREpKCk899RTx8fGF7p06dSpnzpyhXr16zJ07l+joaLZu3crevXv59ddfmTx5cpHlPV999RUHDx4kICCAqVOnsmfPHqKioti7dy/r1q3jn//8J7fcckulvHcRkapAYYOIiDglo9HI3Llz6datG0Zj/l9Xl58g0atXL55//nk6duyIp6en7fW6desyYcIE/va3vwGU+dSErKws+vfvz5QpU2wf5jw9PRk5ciQPPfQQkP/hvyxSU1MZP348EydOtE319/Hx4a9//St33XVXsX1brVY++ugjAG655Rbee+892zIHd3d3hg0bxuTJk0lJSSlT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28EE1u0+4+iSRERERESkBlDYIFLNNQ7z497bGgPw79VHOH0hw8EViYiIiIhIdaewQaQG6HNTOG0aBZGTZ2H60mhycs2OLklERERERKoxhQ0iNYDRYOCJAa3x83bj9PkM/vPrUUeXJCIiIiIi1ZjCBpEawt/bjScHtAZg7c7TbDuY4OCKRERERESkulLYIFKDRDYKol/XcADmLj/IhZQsB1ckIiIiIiLVkcIGkRrmnlsb0zjMj8zsPGYu24/ZYnF0SSIiIiIiUs0obBCpYVxMRsYMisTT3cTR0yks/SPG0SWJiIiIiEg1o7BBpAaqE+DJo31bAvDTxjgOxCY6uCIREREREalOFDaI1FA3tQqmx42hWIGZP+4nNTPH0SWJiIiIiEg1obBBpAYb0as5obW8SEnPYfZPB7BYrY4uSUREREREqgGFDSI1mLuriXGD2+BiMrLn2EVWR510dEkiIiIiIlINKGwQqeHq1/VhxJ1NAfhu7TFiz6U6uCIREREREanqFDaICLe3r0eH5nUwW6xMX7qPrOw8R5ckIiIiIiJVmMIGEcFgMPBYv5YE+bmTkJTF16sOObokERERERGpwhQ2iAgAPp6ujBkUidFgYNO+eDbsPevokkREREREpIpS2CAiNs3qBzC4ewQAX686zLnETMcWJCIiIiIiVZLCBhEppH+3CFqGB5Cda2b60mhy8yyOLklERERERKqYCg8bzGYzX3/9NePGjeOpp57iu+++q+hHikg5GI0GnhwYiY+nKyfi0/lu7VFHlyQiIiIiIlWMXcKG77//nlatWvHss88WuTZx4kTeeust1q5dy5o1a5g0aRJ/+9vf7PFYEakggb7uPNG/FQCrt51i19ELDq5IRERERESqEruEDRs2bABgwIABhV7fsmULK1euxGq10r59e26++WYAVqxYwerVq+3xaBGpIDc2rU3vTg0AmP3TAZLSsh1ckYiIiIiIVBV2CRsOHDgAQIcOHQq9vmTJEgCGDRvG/PnzmT17Nk8//TRWq5XFixfb49EiUoHuv70J4cE+pGflMnPZPiwWq6NLEhERERGRKsAuYUNSUhJubm4EBQUVen3Tpk0YDAYefvhh22sjR44EIDo62h6PFpEK5OpiZNzgNri7mTh0MpkfN8U6uiQREREREakC7BI2ZGRk4O7uXui1hIQEzp07R61atWjWrJntdX9/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "df_stats = pd.read_parquet(f\"{output_dir}/training_stats.parquet\")\n", "\n", "# Use plot styling from seaborn.\n", "sns.set(style='darkgrid')\n", "\n", "# Increase the plot size and font size.\n", "sns.set(font_scale=1.5)\n", "plt.rcParams[\"figure.figsize\"] = (12,6)\n", "\n", "# Plot the learning curve.\n", "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", "\n", "# Label the plot.\n", "plt.title(\"Training & Validation Loss\")\n", "plt.xlabel(\"Epoch\")\n", "plt.ylabel(\"Loss\")\n", "plt.legend()\n", "plt.xticks([1, 2, 3, 4, 5])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "dXX4z7Wqe8ry" }, "source": [ "13. Load and test the model." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "mpBJNtYuAY9D" }, "outputs": [], "source": [ "from transformers import AutoModelForCausalLM, AutoTokenizer\n", "import torch\n", "\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "\n", "tokenizer = AutoTokenizer.from_pretrained(output_dir)\n", "aira = AutoModelForCausalLM.from_pretrained(output_dir)\n", "\n", "aira.eval()\n", "aira.to(device)\n", "\n", "question = input(\"Enter your question: \")\n", "\n", "inputs = tokenizer(tokenizer.bos_token + question + tokenizer.eos_token, return_tensors=\"pt\").to(device)\n", "\n", "responses = aira.generate(**inputs,\n", " bos_token_id=tokenizer.bos_token_id,\n", " pad_token_id=tokenizer.pad_token_id,\n", " eos_token_id=tokenizer.eos_token_id,\n", " do_sample=True,\n", " top_k=50,\n", " max_length=200,\n", " top_p=0.95,\n", " temperature=0.7,\n", " num_return_sequences=2)\n", "\n", "print(f\"Question: 👤 {question}\\n\")\n", "\n", "for i, response in enumerate(responses):\n", " # print only the response and remove the question\n", " print(f'Response {i+1}: 🤖 {tokenizer.decode(response, skip_special_tokens=True).replace(question, \"\")}')\n" ] }, { "cell_type": "markdown", "metadata": { "id": "cJXlHi2oe8rz" }, "source": [ "Done! 🤗" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "A100", "machine_shape": "hm", "provenance": [] }, "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.9.13" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "053a5571006e41a6aef0b77fa1e36faa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "0a394b51e4de479bbc019c02fa6bb9ab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "0c01e2b05f3c4bdd929aeae62379d0a8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_d74a865eb33a46daa004a8e270fd3a5d", "max": 1042301, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_120d61a1947446bbb007302398eb9606", "value": 1042301 } }, "10fbf68d8ca6482793a9b4ba35210d5d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_053a5571006e41a6aef0b77fa1e36faa", "placeholder": "​", "style": "IPY_MODEL_621fe101bbfb41a09148346855b940bf", "value": "Downloading (…)olve/main/vocab.json: 100%" } }, "120d61a1947446bbb007302398eb9606": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "14a867b9db464260be3bed64c225c412": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_b70c83376ad7470aa26fe948175be35c", "placeholder": "​", "style": "IPY_MODEL_eb6a35ee97a240bb9c3cfa27a78bc1dc", "value": " 456k/456k [00:00<00:00, 1.87MB/s]" } }, "1b3dd18c2ca9423d9b2a3b8e0486447d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "1cc20edfc4cc4adfb981fd30cf241b6b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "241225d9398e4660a407eb856500a58e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "27174e961c764f5c9c549dc9d2972670": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_87770c1808654d7d97642e7a66a38aac", "placeholder": "​", "style": "IPY_MODEL_32b18e36b9024f1d94f38440b1984455", "value": " 1.04M/1.04M [00:00<00:00, 13.7MB/s]" } }, "28d859aaedd84e07affe428793505964": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "317ef8edd3b44443bce2c1f7f0ed6d4b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_376ff945cd5f4705b6db9c747aa7e062", "IPY_MODEL_b952e087a32c46b7a4aee6a06ebe62d5", "IPY_MODEL_c4911938e5c64ca098bbd0d32ac65870" ], "layout": "IPY_MODEL_fd4bb55839b443c9baf35c37f0033337" } }, "32b18e36b9024f1d94f38440b1984455": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "376ff945cd5f4705b6db9c747aa7e062": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_c0c83e1a879a4c1387bd6e353514fdfa", "placeholder": "​", "style": "IPY_MODEL_71c676fba8144996b6749aefc46f63fc", "value": "Downloading (…)neration_config.json: 100%" } }, "39b34f03b78b41f18b50bffdfd6993ba": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "3fa7d040728843de8812d298154673bc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "40c7558bdd57406abf170b0b4600f2cc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "4971c12962724535bf221fac26ee6938": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_dc632fb86d7a4b4c93b7315eef2e7a48", "placeholder": "​", "style": "IPY_MODEL_e1ce84fd7f9045158aefd3ec7359e0a9", "value": " 1.52G/1.52G [00:03<00:00, 397MB/s]" } }, "5803df0c4976405c99c756a5e687cc90": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_e90b5b1082c147c5917a45ce3bee81a7", "placeholder": "​", "style": "IPY_MODEL_1cc20edfc4cc4adfb981fd30cf241b6b", "value": "Downloading (…)olve/main/merges.txt: 100%" } }, "6153dcb6691b4ffaa819961284b22d69": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "621fe101bbfb41a09148346855b940bf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "67d5ea32ed8c449f9804e4a32a5c2e99": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "716067896aba419ead0616e88f4f2dce": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "71c676fba8144996b6749aefc46f63fc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "817964cc90334605902c6f13d4e94bcb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_e6062f15b1af4d838e90aaf5a65748fb", "placeholder": "​", "style": "IPY_MODEL_0a394b51e4de479bbc019c02fa6bb9ab", "value": "Downloading model.safetensors: 100%" } }, "87770c1808654d7d97642e7a66a38aac": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "8b5f90795192467da0843b23eeb60dc2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_b9d223416be348b19c0ad543d308576f", "placeholder": "​", "style": "IPY_MODEL_a3f33b3a1ecc4ca890dde23d9345a73d", "value": "Downloading (…)lve/main/config.json: 100%" } }, "967f86de457447be875d09e85b343242": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "9e22ec2b93524dda84f88b5fef7f5c2a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_d2911fcf195940bfa5de8b51593e0522", "max": 456318, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_1b3dd18c2ca9423d9b2a3b8e0486447d", "value": 456318 } }, "a3f33b3a1ecc4ca890dde23d9345a73d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "b70c83376ad7470aa26fe948175be35c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "b78c2ba8ef6248f6b3d2f0b8f2f31f7c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "b952e087a32c46b7a4aee6a06ebe62d5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_fbd280fe0da8457e8e83f40bc0bf5fdc", "max": 124, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_d62519fa2ae14084ba1aac280a44088c", "value": 124 } }, "b9d223416be348b19c0ad543d308576f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "bd91b647889c48a3802ee0799f2d6a80": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_716067896aba419ead0616e88f4f2dce", "placeholder": "​", "style": "IPY_MODEL_67d5ea32ed8c449f9804e4a32a5c2e99", "value": " 718/718 [00:00<00:00, 56.2kB/s]" } }, "c0c83e1a879a4c1387bd6e353514fdfa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "c3530939d43b4d5eabc6dafb4b62cb1c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "c4911938e5c64ca098bbd0d32ac65870": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "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_39b34f03b78b41f18b50bffdfd6993ba", "placeholder": "​", "style": "IPY_MODEL_b78c2ba8ef6248f6b3d2f0b8f2f31f7c", "value": " 124/124 [00:00<00:00, 10.8kB/s]" } }, "caac8742661d4238a06d1ab65add439a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "cd7347fa726445d394c474ecdcd722f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_10fbf68d8ca6482793a9b4ba35210d5d", "IPY_MODEL_0c01e2b05f3c4bdd929aeae62379d0a8", "IPY_MODEL_27174e961c764f5c9c549dc9d2972670" ], "layout": "IPY_MODEL_967f86de457447be875d09e85b343242" } }, "d2669f9ffdfe404b944100abf125d437": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_caac8742661d4238a06d1ab65add439a", "max": 1519984962, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_3fa7d040728843de8812d298154673bc", "value": 1519984962 } }, "d2911fcf195940bfa5de8b51593e0522": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "d3706d2eefcd41ec89f3f0247719ec92": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_817964cc90334605902c6f13d4e94bcb", "IPY_MODEL_d2669f9ffdfe404b944100abf125d437", "IPY_MODEL_4971c12962724535bf221fac26ee6938" ], "layout": "IPY_MODEL_40c7558bdd57406abf170b0b4600f2cc" } }, "d62519fa2ae14084ba1aac280a44088c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "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": "" } }, "d74a865eb33a46daa004a8e270fd3a5d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "db63d0aab8e444a28d827dd96067635a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_5803df0c4976405c99c756a5e687cc90", "IPY_MODEL_9e22ec2b93524dda84f88b5fef7f5c2a", "IPY_MODEL_14a867b9db464260be3bed64c225c412" ], "layout": "IPY_MODEL_241225d9398e4660a407eb856500a58e" } }, "dc632fb86d7a4b4c93b7315eef2e7a48": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "e0464c04c0f848cfb6af2652adb8af66": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "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_8b5f90795192467da0843b23eeb60dc2", "IPY_MODEL_e530a4b1974240e39c178c12771b0e1e", "IPY_MODEL_bd91b647889c48a3802ee0799f2d6a80" ], "layout": "IPY_MODEL_c3530939d43b4d5eabc6dafb4b62cb1c" } }, "e1ce84fd7f9045158aefd3ec7359e0a9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "e530a4b1974240e39c178c12771b0e1e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "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": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6153dcb6691b4ffaa819961284b22d69", "max": 718, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_28d859aaedd84e07affe428793505964", "value": 718 } }, "e6062f15b1af4d838e90aaf5a65748fb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "e90b5b1082c147c5917a45ce3bee81a7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "eb6a35ee97a240bb9c3cfa27a78bc1dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "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": "" } }, "fbd280fe0da8457e8e83f40bc0bf5fdc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } }, "fd4bb55839b443c9baf35c37f0033337": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "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 } } } } }, "nbformat": 4, "nbformat_minor": 0 }