diff --git "a/how_to_train_model.ipynb" "b/how_to_train_model.ipynb" new file mode 100644--- /dev/null +++ "b/how_to_train_model.ipynb" @@ -0,0 +1,3269 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "🧠 NeuroFeel – (Where AI Meets Emotion) | Offline & Fast\n", + "NeuroFeel is a tiny emotion detection model built on NeuroBERT.\n", + "It’s lightweight (~25MB), works offline, and is perfect for edge and mobile devices.\n", + "\n", + "🔍 Trained on:\n", + "📊 Boltuix Emotions Dataset – crafted for real, short-text emotional expressions.\n", + "🔗 Dataset: [Emotions Dataset](https://huggingface.co/datasets/boltuix/emotions-dataset)\n", + "\n", + "💡 Use NeuroFeel in:\n", + "📱 Mobile apps\n", + "🏠 Smart homes\n", + "⌚ Wearables\n", + "💬 Chatbots\n", + "🧘 Mental health tools\n", + "\n", + "❤️ Understands 13 emotions like:\n", + "\n", + "Happy, Sad, Angry, Loved, Scared, Excited, and more.\n", + "\n", + "⚡ Why NeuroFeel?\n", + "Ultra-fast and low memory\n", + "\n", + "Edge-ready\n", + "Great for emotional intelligence in devices\n", + "\n", + "🔗 Model: [NeuroFeel Model](https://huggingface.co/boltuix/NeuroFeel)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 672, + "referenced_widgets": [ + "83ee878c039f47edb96fde00e6983a4b", + "6431434040ca4b0d8738746930297070", + "87d22a71e458437faf0ce8bb8defedeb", + "5a95456db43d4267a8c7ae1d3adb9110", + "bcf8516da0904b0abc5ef3f0278e00b5", + "587a98275dd34c08a618fb9111d73fe4", + "24fe1819e2d4414f8bfd8d30633c6fe2", + "f5110aa7303d4828877d7582ef636c7d", + "7cec1b1c66dc48bc93ffc6825e289330", + "21e071df139249d682835f68117b4eda", + "0bc9dd340c624a5fac7683ed00498c2c", + "e76d997ea69c48d7b11f55a4d0b9d9a3", + "02b7ea08c62a464aa0ec1126cc7aecb2", + "0574728db5104852abfb4b7078929cad", + "6c9b4fff204e4b19adf82309fa1a4556", + "0571849b1c1347a6ad44581aa6d3014c", + "4214e904c01d4c0ca1a3856a2c913786", + "6f3597c9cdeb45d995dbcb9b494b9032", + "5c3c994f7c3a4b41a1613c8deb74ae4a", + "14d9f5d18d37430b8f4b1f5002976c14", + "7e329e78d0d648c8b793a80b732a6b8e", + "94ee1ab7847d4a3784f026bdb6c1645f", + "2fdb97fea1274feab421442b35e98a5c", + "295eb20afb8a4b88a35ebda114369fe2", + "5fbaff21141b41e78964fa0dc8730292", + "15194a408fb5415fa1f28d465700521e", + "322deeed887c4499b96026564e6d1d22", + "94c23de385894e1faa02664d8970b5bc", + "5db9ecd4769e49f6bfef8bc5013611ed", + "b1e321c905a648d2bc90bd7c5eb50367", + "b0f55fb60973416dba9eef54b929793a", + "95fe2503295144bb8468123ec3b40d1c", + "a9c2da3c42f9486e9caabc123c4350f4", + "7ff76b22476143dda0a60ee3c45a2573", + "6ed9a1236be7488489bda90570bcf491", + "644c507725544b9784503eac031ae937", + "b477c3f151714d918af683b0743f5068", + "26ccd138f2594379a54bcf28ea426f08", + "ad36b1ffe2bb4e3ca6838b4b612949fe", + "c2fda8ced9544c30a74861243e13cec8", + "1b1bf9ce6edc44d6946e0e3a3004cae6", + "2bae8ec848554c1bac9f95e73200ebc2", + "c4d7d20019e14d8c8fc8a7ab9cc2d9f1", + "b00a8aa97c1d40b28567cb25233182e4", + "92fb1012832d4648b8afe6ce9e679fc4", + "05b597fa33d94d8489f0a906b6601ac6", + "51408a68fa75477eb73b28bd08478a27", + "87df8146909842a7abc9ecfa73e1b308", + "51cb98c739e94588a74df263daf62c4f", + "d218377a68a64eb5a4f5457020a62725", + "13310f97091f466bbe9c14cca6797a27", + "5d5a5d3b0bfb4984b52a2282d4be3405", + "bb071aeb68d54afe9de4f96770c16b8d", + "6412c72c5f874277bd04ef23222713d5", + "a93f582392ee462793e968d26b32f33e", + "128a5ed0c23146febe335db237e2710f", + "78fe8ef2b501428f95ec0c792b164403", + "4c1ef193029f403da623358d6eea2e19", + "28062357e02f48a6936389feded24575", + "fc6c756a30cc4963aa20f9b448acab10", + "de782ab08ffd4c4f9cddc9ea5d278762", + "eb02f42f31544cd692933fce1280374d", + "3ef0ad6cffc04384a7734c17ca71066e", + "38eace2350d24617a7054a3f23fd083b", + "3cbf6205e1dc412e9c8245bf086e3e7c", + "8285dd8bd8c94898bce1cbe3ffb64736" + ] + }, + "id": "wHooIdoXPICj", + "outputId": "5648d7d8-4260-47fa-9ff1-e01ca836a7db" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.11/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n", + "The secret `HF_TOKEN` does not exist in your Colab secrets.\n", + "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n", + "You will be able to reuse this secret in all of your notebooks.\n", + "Please note that authentication is recommended but still optional to access public models or datasets.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "83ee878c039f47edb96fde00e6983a4b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "tokenizer_config.json: 0%| | 0.00/1.36k [00:00\n", + " \n", + " \n", + " [32830/32830 30:41, Epoch 5/5]\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 Loss
10.8597000.986835
20.9175000.912361
30.8556000.881038
40.7531000.896444
50.6632000.905136

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Training: 100%|██████████| 32830/32830 [30:43<00:00, 17.81step/s, epoch=5.00, step=32830]\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "

\n", + " \n", + " \n", + " [1642/1642 00:29]\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "✅ Training complete. Model and tokenizer saved to ./neuro-feel\n", + "✅ Model directory zipped to neuro-feel.zip\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from transformers import BertTokenizer, BertForSequenceClassification, Trainer, TrainingArguments, TrainerCallback\n", + "from sklearn.model_selection import train_test_split\n", + "import torch\n", + "from torch.utils.data import Dataset\n", + "import shutil\n", + "from tqdm import tqdm # Added for progress bar\n", + "\n", + "# === 0. Define common model name ===\n", + "MODEL_NAME = \"boltuix/NeuroBERT\"\n", + "OUTPUT_DIR = \"./neuro-feel\"\n", + "\n", + "# === Custom Callback for Progress Bar ===\n", + "class TQDMProgressBarCallback(TrainerCallback):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.progress_bar = None\n", + "\n", + " def on_train_begin(self, args, state, control, **kwargs):\n", + " self.total_steps = state.max_steps\n", + " self.progress_bar = tqdm(total=self.total_steps, desc=\"Training\", unit=\"step\")\n", + "\n", + " def on_step_end(self, args, state, control, **kwargs):\n", + " self.progress_bar.update(1)\n", + " self.progress_bar.set_postfix({\n", + " \"epoch\": f\"{state.epoch:.2f}\",\n", + " \"step\": state.global_step\n", + " })\n", + "\n", + " def on_train_end(self, args, state, control, **kwargs):\n", + " if self.progress_bar is not None:\n", + " self.progress_bar.close()\n", + " self.progress_bar = None\n", + "\n", + "# === 1. Load and preprocess data ===\n", + "dataset_path = '/content/dataset.csv'\n", + "df = pd.read_csv(dataset_path)\n", + "df = df.dropna(subset=['Label'])\n", + "df.columns = ['text', 'label']\n", + "\n", + "# === 2. Encode labels ===\n", + "labels = sorted(df[\"label\"].unique())\n", + "label_to_id = {label: idx for idx, label in enumerate(labels)}\n", + "id_to_label = {idx: label for label, idx in label_to_id.items()}\n", + "df['label'] = df['label'].map(label_to_id)\n", + "\n", + "# === 3. Train/val split ===\n", + "train_texts, val_texts, train_labels, val_labels = train_test_split(\n", + " df['text'].tolist(), df['label'].tolist(), test_size=0.2, random_state=42\n", + ")\n", + "\n", + "# === 4. Tokenizer ===\n", + "tokenizer = BertTokenizer.from_pretrained(MODEL_NAME)\n", + "\n", + "# === 5. Dataset class ===\n", + "class SentimentDataset(Dataset):\n", + " def __init__(self, texts, labels, tokenizer, max_length=128):\n", + " self.texts = texts\n", + " self.labels = labels\n", + " self.tokenizer = tokenizer\n", + " self.max_length = max_length\n", + "\n", + " def __len__(self):\n", + " return len(self.texts)\n", + "\n", + " def __getitem__(self, idx):\n", + " encoding = self.tokenizer(\n", + " self.texts[idx],\n", + " padding='max_length',\n", + " truncation=True,\n", + " max_length=self.max_length,\n", + " return_tensors='pt'\n", + " )\n", + " return {\n", + " 'input_ids': encoding['input_ids'].squeeze(0),\n", + " 'attention_mask': encoding['attention_mask'].squeeze(0),\n", + " 'labels': torch.tensor(self.labels[idx], dtype=torch.long)\n", + " }\n", + "\n", + "# === 6. Load datasets ===\n", + "train_dataset = SentimentDataset(train_texts, train_labels, tokenizer)\n", + "val_dataset = SentimentDataset(val_texts, val_labels, tokenizer)\n", + "\n", + "# === 7. Load model ===\n", + "model = BertForSequenceClassification.from_pretrained(\n", + " MODEL_NAME,\n", + " num_labels=len(label_to_id)\n", + ")\n", + "\n", + "for param in model.parameters():\n", + " param.data = param.data.contiguous()\n", + "\n", + "# === 8. Training arguments ===\n", + "training_args = TrainingArguments(\n", + " output_dir='./results',\n", + " run_name=\"NeuroFeel\",\n", + " num_train_epochs=5,\n", + " per_device_train_batch_size=16,\n", + " per_device_eval_batch_size=16,\n", + " warmup_steps=500,\n", + " weight_decay=0.01,\n", + " logging_dir='./logs',\n", + " logging_steps=10,\n", + " eval_strategy=\"epoch\",\n", + " report_to=\"none\"\n", + ")\n", + "\n", + "# === 9. Trainer setup ===\n", + "trainer = Trainer(\n", + " model=model,\n", + " args=training_args,\n", + " train_dataset=train_dataset,\n", + " eval_dataset=val_dataset,\n", + " callbacks=[TQDMProgressBarCallback()] # Added progress bar callback\n", + ")\n", + "\n", + "# === 10. Train and evaluate ===\n", + "trainer.train()\n", + "trainer.evaluate()\n", + "\n", + "# === 11. Save model and label mappings ===\n", + "model.config.label2id = label_to_id\n", + "model.config.id2label = id_to_label\n", + "model.config.num_labels = len(label_to_id)\n", + "\n", + "model.save_pretrained(OUTPUT_DIR)\n", + "tokenizer.save_pretrained(OUTPUT_DIR)\n", + "\n", + "# === 12. Zip the trained model directory ===\n", + "shutil.make_archive(\"neuro-feel\", 'zip', OUTPUT_DIR)\n", + "\n", + "print(\"✅ Training complete. Model and tokenizer saved to ./neuro-feel\")\n", + "print(\"✅ Model directory zipped to neuro-feel.zip\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "-wQctWLFnNQ4", + "outputId": "55d4b628-cb55-400c-8c1d-e21bd5137995" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Prediction Results:\n", + "----------------------------------------\n", + "1. Sentence: I miss her so much it hurts.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "2. Sentence: Tears won’t stop falling.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "3. Sentence: Everything feels so empty.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "4. Sentence: I feel broken inside.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "5. Sentence: Waking up is the hardest part.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "6. Sentence: It’s been so hard to cope.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "7. Sentence: My chest feels heavy all the time.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "8. Sentence: Losing him shattered me.\n", + " Predicted Label: sadness\n", + " True Label: sadness\n", + " Correct: Yes\n", + "\n", + "9. Sentence: Why do you always ignore me?!\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "10. Sentence: This is absolutely ridiculous!\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "11. Sentence: You never listen to me!\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "12. Sentence: That’s the last straw!\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "13. Sentence: I’m furious with how they treated me.\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "14. Sentence: I’m done putting up with this nonsense!\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "15. Sentence: Everything you say just makes it worse!\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "16. Sentence: I hate how you always twist my words.\n", + " Predicted Label: anger\n", + " True Label: anger\n", + " Correct: Yes\n", + "\n", + "17. Sentence: You’re the reason I believe in love.\n", + " Predicted Label: love\n", + " True Label: love\n", + " Correct: Yes\n", + "\n", + "18. Sentence: You complete me.\n", + " Predicted Label: love\n", + " True Label: love\n", + " Correct: Yes\n", + "\n", + "19. Sentence: What? That’s unbelievable!\n", + " Predicted Label: surprise\n", + " True Label: surprise\n", + " Correct: Yes\n", + "\n", + "20. Sentence: I didn’t see that coming!\n", + " Predicted Label: surprise\n", + " True Label: surprise\n", + " Correct: Yes\n", + "\n", + "21. Sentence: You got me tickets? No way!\n", + " Predicted Label: surprise\n", + " True Label: surprise\n", + " Correct: Yes\n", + "\n", + "22. Sentence: That was totally unexpected.\n", + " Predicted Label: surprise\n", + " True Label: surprise\n", + " Correct: Yes\n", + "\n", + "23. Sentence: You're moving already? That’s so sudden!\n", + " Predicted Label: surprise\n", + " True Label: surprise\n", + " Correct: Yes\n", + "\n", + "24. Sentence: Whoa, that was fast!\n", + " Predicted Label: surprise\n", + " True Label: surprise\n", + " Correct: Yes\n", + "\n", + "25. Sentence: I’m so scared right now.\n", + " Predicted Label: fear\n", + " True Label: fear\n", + " Correct: Yes\n", + "\n", + "26. Sentence: I can’t do this, I’m terrified.\n", + " Predicted Label: fear\n", + " True Label: fear\n", + " Correct: Yes\n", + "\n", + "27. Sentence: I’m afraid to even look.\n", + " Predicted Label: fear\n", + " True Label: fear\n", + " Correct: Yes\n", + "\n", + "28. Sentence: My hands are shaking.\n", + " Predicted Label: fear\n", + " True Label: fear\n", + " Correct: Yes\n", + "\n", + "29. Sentence: I keep hearing noises in the dark.\n", + " Predicted Label: fear\n", + " True Label: fear\n", + " Correct: Yes\n", + "\n", + "30. Sentence: I’m panicking just thinking about it.\n", + " Predicted Label: fear\n", + " True Label: fear\n", + " Correct: Yes\n", + "\n", + "31. Sentence: Today was absolutely perfect!\n", + " Predicted Label: happiness\n", + " True Label: happiness\n", + " Correct: Yes\n", + "\n", + "32. Sentence: I can’t stop smiling!\n", + " Predicted Label: happiness\n", + " True Label: happiness\n", + " Correct: Yes\n", + "\n", + "33. Sentence: This made my whole week!\n", + " Predicted Label: happiness\n", + " True Label: happiness\n", + " Correct: Yes\n", + "\n", + "34. Sentence: I’m full of joy right now.\n", + " Predicted Label: happiness\n", + " True Label: happiness\n", + " Correct: Yes\n", + "\n", + "35. Sentence: That was so much fun!\n", + " Predicted Label: happiness\n", + " True Label: happiness\n", + " Correct: Yes\n", + "\n", + "36. Sentence: I’m just working through the day.\n", + " Predicted Label: neutral\n", + " True Label: neutral\n", + " Correct: Yes\n", + "\n", + "37. Sentence: It was an average lunch.\n", + " Predicted Label: neutral\n", + " True Label: neutral\n", + " Correct: Yes\n", + "\n", + "38. Sentence: Nothing much happened today.\n", + " Predicted Label: neutral\n", + " True Label: neutral\n", + " Correct: Yes\n", + "\n", + "39. Sentence: Just reading some news.\n", + " Predicted Label: neutral\n", + " True Label: neutral\n", + " Correct: Yes\n", + "\n", + "40. Sentence: That food made me gag.\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "41. Sentence: That’s absolutely revolting.\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "42. Sentence: Ugh, that’s disgusting!\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "43. Sentence: It smells horrible in here.\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "44. Sentence: That behavior is so gross.\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "45. Sentence: I’m repulsed by what I saw.\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "46. Sentence: That’s just nasty.\n", + " Predicted Label: disgust\n", + " True Label: disgust\n", + " Correct: Yes\n", + "\n", + "47. Sentence: I can’t even look them in the eye.\n", + " Predicted Label: shame\n", + " True Label: shame\n", + " Correct: Yes\n", + "\n", + "48. Sentence: Why did I say that? I’m so embarrassed.\n", + " Predicted Label: shame\n", + " True Label: shame\n", + " Correct: Yes\n", + "\n", + "49. Sentence: I can’t believe I acted that way.\n", + " Predicted Label: shame\n", + " True Label: shame\n", + " Correct: Yes\n", + "\n", + "50. Sentence: I shouldn’t have lied to her.\n", + " Predicted Label: guilt\n", + " True Label: guilt\n", + " Correct: Yes\n", + "\n", + "51. Sentence: I feel terrible about what I did.\n", + " Predicted Label: guilt\n", + " True Label: guilt\n", + " Correct: Yes\n", + "\n", + "52. Sentence: I feel sick with regret.\n", + " Predicted Label: guilt\n", + " True Label: guilt\n", + " Correct: Yes\n", + "\n", + "53. Sentence: The guilt is eating me alive.\n", + " Predicted Label: guilt\n", + " True Label: guilt\n", + " Correct: Yes\n", + "\n", + "54. Sentence: Wait, what just happened?\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "55. Sentence: I don’t get it at all.\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "56. Sentence: I’m not sure what I’m supposed to do.\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "57. Sentence: This is all so unclear.\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "58. Sentence: I’m lost in this situation.\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "59. Sentence: I don’t know how to respond.\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "60. Sentence: I’m struggling to understand.\n", + " Predicted Label: confusion\n", + " True Label: confusion\n", + " Correct: Yes\n", + "\n", + "61. Sentence: I want to be the best at this.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "62. Sentence: All I need is one more chance.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "63. Sentence: I wish I could be with you right now.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "64. Sentence: I need this more than anything.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "65. Sentence: I’ve been dreaming of this moment.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "66. Sentence: I crave your attention.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "67. Sentence: I just want to be loved.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "68. Sentence: I desire success more than comfort.\n", + " Predicted Label: desire\n", + " True Label: desire\n", + " Correct: Yes\n", + "\n", + "69. Sentence: Oh great, another meeting… just what I needed.\n", + " Predicted Label: sarcasm\n", + " True Label: sarcasm\n", + " Correct: Yes\n", + "\n", + "70. Sentence: Wow, you’re such a genius.\n", + " Predicted Label: sarcasm\n", + " True Label: sarcasm\n", + " Correct: Yes\n", + "\n", + "71. Sentence: Yeah, because that worked out so well last time.\n", + " Predicted Label: sarcasm\n", + " True Label: sarcasm\n", + " Correct: Yes\n", + "\n", + "72. Sentence: Lovely, now we’re lost again.\n", + " Predicted Label: sarcasm\n", + " True Label: sarcasm\n", + " Correct: Yes\n", + "\n", + "73. Sentence: Oh, I’m absolutely thrilled… not.\n", + " Predicted Label: sarcasm\n", + " True Label: sarcasm\n", + " Correct: Yes\n", + "\n", + "74. Sentence: Absolutely, let’s make another terrible decision.\n", + " Predicted Label: sarcasm\n", + " True Label: sarcasm\n", + " Correct: Yes\n", + "\n", + "----------------------------------------\n", + "Total predictions made: 74\n", + "Correct predictions: 74\n", + "Accuracy: 100.00%\n" + ] + } + ], + "source": [ + "import torch\n", + "from transformers import BertTokenizer, BertForSequenceClassification\n", + "\n", + "# Load the fine-tuned model and tokenizer from Hugging Face Hub\n", + "try:\n", + " model = BertForSequenceClassification.from_pretrained(\"./neuro-feel\")\n", + " tokenizer = BertTokenizer.from_pretrained(\"./neuro-feel\")\n", + "except Exception as e:\n", + " print(f\"Error loading model or tokenizer: {e}\")\n", + " exit(1)\n", + "\n", + "# Set model to evaluation mode to disable training-specific layers\n", + "model.eval()\n", + "\n", + "# Define a label map to decode numerical predictions to emotion labels\n", + "# label_map = {\n", + "# 0: \"sadness\",\n", + "# 1: \"anger\",\n", + "# 2: \"love\",\n", + "# 3: \"surprise\",\n", + "# 4: \"fear\",\n", + "# 5: \"happiness\",\n", + "# 6: \"neutral\",\n", + "# 7: \"disgust\",\n", + "# 8: \"shame\",\n", + "# 9: \"guilt\",\n", + "# 10: \"confusion\",\n", + "# 11: \"desire\",\n", + "# 12: \"sarcasm\"\n", + "# } # Adjust based on model’s training labels 🏷️\n", + "\n", + "\n", + "label_map = model.config.id2label\n", + "label_map = {int(k): v for k, v in label_map.items()}\n", + "\n", + "# Define test sentences with ground truth emotion labels\n", + "test_cases = [\n", + " (\"I miss her so much it hurts.\", \"sadness\"),\n", + " (\"Tears won’t stop falling.\", \"sadness\"),\n", + " (\"Everything feels so empty.\", \"sadness\"),\n", + " (\"I feel broken inside.\", \"sadness\"),\n", + " (\"Waking up is the hardest part.\", \"sadness\"),\n", + " (\"It’s been so hard to cope.\", \"sadness\"),\n", + " (\"My chest feels heavy all the time.\", \"sadness\"),\n", + " (\"Losing him shattered me.\", \"sadness\"),\n", + " (\"Why do you always ignore me?!\", \"anger\"),\n", + " (\"This is absolutely ridiculous!\", \"anger\"),\n", + " (\"You never listen to me!\", \"anger\"),\n", + " (\"That’s the last straw!\", \"anger\"),\n", + " (\"I’m furious with how they treated me.\", \"anger\"),\n", + " (\"I’m done putting up with this nonsense!\", \"anger\"),\n", + " (\"Everything you say just makes it worse!\", \"anger\"),\n", + " (\"I hate how you always twist my words.\", \"anger\"),\n", + " (\"You’re the reason I believe in love.\", \"love\"),\n", + " (\"You complete me.\", \"love\"),\n", + " (\"What? That’s unbelievable!\", \"surprise\"),\n", + " (\"I didn’t see that coming!\", \"surprise\"),\n", + " (\"You got me tickets? No way!\", \"surprise\"),\n", + " (\"That was totally unexpected.\", \"surprise\"),\n", + " (\"You're moving already? That’s so sudden!\", \"surprise\"),\n", + " (\"Whoa, that was fast!\", \"surprise\"),\n", + " (\"I’m so scared right now.\", \"fear\"),\n", + " (\"I can’t do this, I’m terrified.\", \"fear\"),\n", + " (\"I’m afraid to even look.\", \"fear\"),\n", + " (\"My hands are shaking.\", \"fear\"),\n", + " (\"I keep hearing noises in the dark.\", \"fear\"),\n", + " (\"I’m panicking just thinking about it.\", \"fear\"),\n", + " (\"Today was absolutely perfect!\", \"happiness\"),\n", + " (\"I can’t stop smiling!\", \"happiness\"),\n", + " (\"This made my whole week!\", \"happiness\"),\n", + " (\"I’m full of joy right now.\", \"happiness\"),\n", + " (\"That was so much fun!\", \"happiness\"),\n", + " (\"I’m just working through the day.\", \"neutral\"),\n", + " (\"It was an average lunch.\", \"neutral\"),\n", + " (\"Nothing much happened today.\", \"neutral\"),\n", + " (\"Just reading some news.\", \"neutral\"),\n", + " (\"That food made me gag.\", \"disgust\"),\n", + " (\"That’s absolutely revolting.\", \"disgust\"),\n", + " (\"Ugh, that’s disgusting!\", \"disgust\"),\n", + " (\"It smells horrible in here.\", \"disgust\"),\n", + " (\"That behavior is so gross.\", \"disgust\"),\n", + " (\"I’m repulsed by what I saw.\", \"disgust\"),\n", + " (\"That’s just nasty.\", \"disgust\"),\n", + " (\"I can’t even look them in the eye.\", \"shame\"),\n", + " (\"Why did I say that? I’m so embarrassed.\", \"shame\"),\n", + " (\"I can’t believe I acted that way.\", \"shame\"),\n", + " (\"I shouldn’t have lied to her.\", \"guilt\"),\n", + " (\"I feel terrible about what I did.\", \"guilt\"),\n", + " (\"I feel sick with regret.\", \"guilt\"),\n", + " (\"The guilt is eating me alive.\", \"guilt\"),\n", + " (\"Wait, what just happened?\", \"confusion\"),\n", + " (\"I don’t get it at all.\", \"confusion\"),\n", + " (\"I’m not sure what I’m supposed to do.\", \"confusion\"),\n", + " (\"This is all so unclear.\", \"confusion\"),\n", + " (\"I’m lost in this situation.\", \"confusion\"),\n", + " (\"I don’t know how to respond.\", \"confusion\"),\n", + " (\"I’m struggling to understand.\", \"confusion\"),\n", + " (\"I want to be the best at this.\", \"desire\"),\n", + " (\"All I need is one more chance.\", \"desire\"),\n", + " (\"I wish I could be with you right now.\", \"desire\"),\n", + " (\"I need this more than anything.\", \"desire\"),\n", + " (\"I’ve been dreaming of this moment.\", \"desire\"),\n", + " (\"I crave your attention.\", \"desire\"),\n", + " (\"I just want to be loved.\", \"desire\"),\n", + " (\"I desire success more than comfort.\", \"desire\"),\n", + " (\"Oh great, another meeting… just what I needed.\", \"sarcasm\"),\n", + " (\"Wow, you’re such a genius.\", \"sarcasm\"),\n", + " (\"Yeah, because that worked out so well last time.\", \"sarcasm\"),\n", + " (\"Lovely, now we’re lost again.\", \"sarcasm\"),\n", + " (\"Oh, I’m absolutely thrilled… not.\", \"sarcasm\"),\n", + " (\"Absolutely, let’s make another terrible decision.\", \"sarcasm\"),\n", + "]\n", + "\n", + "\n", + "\n", + "# Prediction function with error handling\n", + "def predict_label(text):\n", + " \"\"\"\n", + " Predict the emotion label for a given text using the fine-tuned BERT model.\n", + "\n", + " Args:\n", + " text (str): Input text to classify (e.g., \"I'm feeling really down today.\"). 💬\n", + "\n", + " Returns:\n", + " str: Predicted emotion label (e.g., \"sadness\") or \"error\" if prediction fails. 😊\n", + " \"\"\"\n", + " try:\n", + " inputs = tokenizer(text, return_tensors=\"pt\", padding=True, truncation=True, max_length=512)\n", + " with torch.no_grad():\n", + " outputs = model(**inputs)\n", + " logits = outputs.logits\n", + " predicted_label = torch.argmax(logits, dim=1).item()\n", + " return label_map.get(predicted_label, \"unknown\")\n", + " except Exception as e:\n", + " print(f\"Error predicting for text '{text}': {e}\")\n", + " return \"error\"\n", + "\n", + "# Run predictions and evaluate performance\n", + "correct = 0\n", + "print(\"Prediction Results:\\n\" + \"-\"*40)\n", + "for idx, (sentence, true_label) in enumerate(test_cases):\n", + " predicted = predict_label(sentence)\n", + " is_correct = predicted == true_label\n", + " if is_correct:\n", + " correct += 1\n", + " print(f\"{idx+1}. Sentence: {sentence}\")\n", + " print(f\" Predicted Label: {predicted}\")\n", + " print(f\" True Label: {true_label}\")\n", + " print(f\" Correct: {'Yes' if is_correct else 'No'}\\n\")\n", + "\n", + "# Calculate and display accuracy\n", + "total = len(test_cases)\n", + "accuracy = (correct / total) * 100 if total > 0 else 0\n", + "print(\"-\"*40)\n", + "print(f\"Total predictions made: {total}\")\n", + "print(f\"Correct predictions: {correct}\")\n", + "print(f\"Accuracy: {accuracy:.2f}%\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fM_F2nba9s9n", + "outputId": "2d3f2f1e-1612-4591-d8d6-58827e6c3fbe" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading models and evaluating...\n", + "\n", + "Model | Size (MB) | Total Params (M) | Trainable Params (M) | Avg. Inference Time (ms) | Accuracy (%)\n", + "---------------------------------------------------------------------------------------------------------------------------------------\n", + "boltuix/NeuroFeel | 109.83 | 14.33 | 14.33 | 10.86 | 100.00 \n", + "boltuix/bert-emotion | 85.77 | 11.17 | 11.17 | 6.85 | 68.42 \n", + "Varnikasiva/sentiment-classification-bert-mini | 85.77 | 11.17 | 11.17 | 5.18 | 73.68 \n", + "\n", + "Best model by accuracy: boltuix/NeuroFeel with 100.00% accuracy\n", + "\n", + "❌ FAILED CASES PER MODEL:\n", + "\n", + "Model: boltuix/NeuroFeel\n", + " ✅ All test cases passed.\n", + "\n", + "Model: boltuix/bert-emotion\n", + "Input | Expected | Predicted\n", + "----------------------------------------------------------------------------------------------------\n", + "Everything feels meaningless lately. | sadness | confusion\n", + "The driver just cut me off without even signaling! | anger | neutral\n", + "I didn’t expect to win the competition! | surprise | disgust\n", + "I shouldn’t have yelled at him. I feel guilty. | guilt | shame\n", + "I forgot Mom’s birthday. I feel terrible. | guilt | sadness\n", + "Oh, perfect, rides misplace, pickup puzzle! | sarcasm | happiness\n", + "\n", + "\n", + "Model: Varnikasiva/sentiment-classification-bert-mini\n", + "Input | Expected | Predicted\n", + "----------------------------------------------------------------------------------------------------\n", + "The driver just cut me off without even signaling! | anger | neutral\n", + "I didn’t expect to win the competition! | surprise | disgust\n", + "I shouldn’t have yelled at him. I feel guilty. | guilt | shame\n", + "I forgot Mom’s birthday. I feel terrible. | guilt | sadness\n", + "Oh, perfect, rides misplace, pickup puzzle! | sarcasm | happiness\n", + "\n", + "\n" + ] + } + ], + "source": [ + "import torch\n", + "from transformers import AutoModelForSequenceClassification, AutoTokenizer\n", + "import time\n", + "import os\n", + "\n", + "model_names = [\n", + " \"boltuix/NeuroFeel\", # base model : boltuix/NeuroBERT\n", + " \"boltuix/bert-emotion\",# base model :boltuix/bert-lite\n", + " \"Varnikasiva/sentiment-classification-bert-mini\", # base model : prajjwal1/bert-mini\n", + "]\n", + "\n", + "test_cases = [\n", + " # Sadness 😢\n", + " (\"I miss my family so much it hurts.\", \"sadness\"),\n", + " (\"Everything feels meaningless lately.\", \"sadness\"),\n", + "\n", + " # Anger 😠\n", + " (\"The driver just cut me off without even signaling!\", \"anger\"),\n", + "\n", + " # Love ❤️\n", + " (\"I love you.\", \"love\"),\n", + " (\"i love u very much.\", \"love\"),\n", + "\n", + " # Surprise 😲\n", + " (\"I didn’t expect to win the competition!\", \"surprise\"),\n", + "\n", + " # Fear 😱\n", + " (\"I’m terrified of losing my job.\", \"fear\"),\n", + " (\"That noise outside my window scared me to death.\", \"fear\"),\n", + "\n", + " # Happiness 😄\n", + " (\"Spending time with my friends today made me so happy.\", \"happiness\"),\n", + "\n", + " # Neutral 😐\n", + " (\"I had lunch and watched TV. Nothing special.\", \"neutral\"),\n", + " (\"Just another ordinary day at the office.\", \"neutral\"),\n", + "\n", + " # Disgust 🤢\n", + " (\"The kitchen smelled awful this morning.\", \"disgust\"),\n", + "\n", + " # Shame 🙈\n", + " (\"I felt so embarrassed after forgetting her name.\", \"shame\"),\n", + "\n", + " # Guilt 😔\n", + " (\"I shouldn’t have yelled at him. I feel guilty.\", \"guilt\"),\n", + " (\"I forgot Mom’s birthday. I feel terrible.\", \"guilt\"),\n", + "\n", + " # Confusion 😕\n", + " (\"I don’t understand why she’s upset with me.\", \"confusion\"),\n", + " (\"Why is the meeting scheduled twice? I’m confused.\", \"confusion\"),\n", + "\n", + " # Desire 🔥\n", + " (\"I really want to travel the world someday.\", \"desire\"),\n", + "\n", + " # Sarcasm 🙃\n", + " (\"Oh, perfect, rides misplace, pickup puzzle!\", \"sarcasm\"),\n", + "]\n", + "\n", + "\n", + "def get_folder_size_mb(folder):\n", + " total_size = 0\n", + " for dirpath, dirnames, filenames in os.walk(folder):\n", + " for f in filenames:\n", + " fp = os.path.join(dirpath, f)\n", + " total_size += os.path.getsize(fp)\n", + " return total_size / (1024 * 1024)\n", + "\n", + "def load_model_and_tokenizer(model_name):\n", + " local_dir = f\"./downloaded_models/{model_name.replace('/', '_')}\"\n", + " model = AutoModelForSequenceClassification.from_pretrained(model_name, cache_dir=local_dir)\n", + " tokenizer = AutoTokenizer.from_pretrained(model_name, cache_dir=local_dir)\n", + " model.eval()\n", + " label_map = {int(k): v for k, v in model.config.id2label.items()}\n", + " return model, tokenizer, label_map, local_dir\n", + "\n", + "def predict_label(model, tokenizer, label_map, text):\n", + " inputs = tokenizer(text, return_tensors=\"pt\", padding=True, truncation=True, max_length=512)\n", + " with torch.no_grad():\n", + " outputs = model(**inputs)\n", + " logits = outputs.logits\n", + " predicted_id = torch.argmax(logits, dim=1).item()\n", + " return label_map.get(predicted_id, \"unknown\")\n", + "\n", + "results = []\n", + "print(\"Loading models and evaluating...\\n\")\n", + "for name in model_names:\n", + " model, tokenizer, label_map, local_dir = load_model_and_tokenizer(name)\n", + " size_mb = get_folder_size_mb(local_dir)\n", + "\n", + " times = []\n", + " correct = 0\n", + " failed_cases = [] # NEW: collect failed cases\n", + "\n", + " for text, true_label in test_cases:\n", + " start = time.time()\n", + " pred = predict_label(model, tokenizer, label_map, text)\n", + " end = time.time()\n", + " times.append((end - start) * 1000) # ms\n", + "\n", + " if pred == true_label:\n", + " correct += 1\n", + " else:\n", + " failed_cases.append((text, true_label, pred)) # store mismatch\n", + "\n", + " avg_time = sum(times) / len(times)\n", + " accuracy = (correct / len(test_cases)) * 100\n", + "\n", + " total_params = sum(p.numel() for p in model.parameters())\n", + " trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)\n", + "\n", + " results.append({\n", + " \"model_name\": name,\n", + " \"size_mb\": size_mb,\n", + " \"total_params_million\": total_params / 1e6,\n", + " \"trainable_params_million\": trainable_params / 1e6,\n", + " \"avg_inference_time_ms\": avg_time,\n", + " \"accuracy_percent\": accuracy,\n", + " \"failed_cases\": failed_cases, # add failed info\n", + " })\n", + "\n", + "# Summary Table\n", + "print(f\"{'Model':<50} | {'Size (MB)':<10} | {'Total Params (M)':<17} | {'Trainable Params (M)':<20} | {'Avg. Inference Time (ms)':<24} | {'Accuracy (%)':<12}\")\n", + "print(\"-\" * 135)\n", + "for res in results:\n", + " print(f\"{res['model_name']:<50} | {res['size_mb']:<10.2f} | {res['total_params_million']:<17.2f} | {res['trainable_params_million']:<20.2f} | {res['avg_inference_time_ms']:<24.2f} | {res['accuracy_percent']:<12.2f}\")\n", + "\n", + "# Best model by accuracy\n", + "best_model = max(results, key=lambda x: x['accuracy_percent'])\n", + "print(f\"\\nBest model by accuracy: {best_model['model_name']} with {best_model['accuracy_percent']:.2f}% accuracy\")\n", + "\n", + "# Failed Cases Log\n", + "print(\"\\n❌ FAILED CASES PER MODEL:\\n\")\n", + "for res in results:\n", + " print(f\"Model: {res['model_name']}\")\n", + " if not res[\"failed_cases\"]:\n", + " print(\" ✅ All test cases passed.\\n\")\n", + " continue\n", + " print(f\"{'Input':<70} | {'Expected':<10} | {'Predicted'}\")\n", + " print(\"-\" * 100)\n", + " for sentence, expected, predicted in res[\"failed_cases\"]:\n", + " print(f\"{sentence[:70]:<70} | {expected:<10} | {predicted}\")\n", + " print(\"\\n\")\n" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "02b7ea08c62a464aa0ec1126cc7aecb2": { + "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_4214e904c01d4c0ca1a3856a2c913786", + "placeholder": "​", + "style": "IPY_MODEL_6f3597c9cdeb45d995dbcb9b494b9032", + "value": "vocab.txt: 100%" + } + }, + "0571849b1c1347a6ad44581aa6d3014c": { + "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 + } + }, + "0574728db5104852abfb4b7078929cad": { + "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_5c3c994f7c3a4b41a1613c8deb74ae4a", + "max": 231508, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_14d9f5d18d37430b8f4b1f5002976c14", + "value": 231508 + } + }, + "05b597fa33d94d8489f0a906b6601ac6": { + "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_d218377a68a64eb5a4f5457020a62725", + "placeholder": "​", + "style": "IPY_MODEL_13310f97091f466bbe9c14cca6797a27", + "value": "config.json: 100%" + } + }, + "0bc9dd340c624a5fac7683ed00498c2c": { + "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": "" + } + }, + "128a5ed0c23146febe335db237e2710f": { + "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_78fe8ef2b501428f95ec0c792b164403", + "IPY_MODEL_4c1ef193029f403da623358d6eea2e19", + "IPY_MODEL_28062357e02f48a6936389feded24575" + ], + "layout": "IPY_MODEL_fc6c756a30cc4963aa20f9b448acab10" + } + }, + "13310f97091f466bbe9c14cca6797a27": { + "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": "" + } + }, + "14d9f5d18d37430b8f4b1f5002976c14": { + "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": "" + } + }, + "15194a408fb5415fa1f28d465700521e": { + "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_95fe2503295144bb8468123ec3b40d1c", + "placeholder": "​", + "style": "IPY_MODEL_a9c2da3c42f9486e9caabc123c4350f4", + "value": " 132/132 [00:00<00:00, 13.9kB/s]" + } + }, + "1b1bf9ce6edc44d6946e0e3a3004cae6": { + "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 + } + }, + "21e071df139249d682835f68117b4eda": { + "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 + } + }, + "24fe1819e2d4414f8bfd8d30633c6fe2": { + "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": "" + } + }, + "26ccd138f2594379a54bcf28ea426f08": { + "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 + } + }, + "28062357e02f48a6936389feded24575": { + "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_3cbf6205e1dc412e9c8245bf086e3e7c", + "placeholder": "​", + "style": "IPY_MODEL_8285dd8bd8c94898bce1cbe3ffb64736", + "value": " 57.5M/57.5M [00:00<00:00, 168MB/s]" + } + }, + "295eb20afb8a4b88a35ebda114369fe2": { + "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_94c23de385894e1faa02664d8970b5bc", + "placeholder": "​", + "style": "IPY_MODEL_5db9ecd4769e49f6bfef8bc5013611ed", + "value": "special_tokens_map.json: 100%" + } + }, + "2bae8ec848554c1bac9f95e73200ebc2": { + "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": "" + } + }, + "2fdb97fea1274feab421442b35e98a5c": { + "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_295eb20afb8a4b88a35ebda114369fe2", + "IPY_MODEL_5fbaff21141b41e78964fa0dc8730292", + "IPY_MODEL_15194a408fb5415fa1f28d465700521e" + ], + "layout": "IPY_MODEL_322deeed887c4499b96026564e6d1d22" + } + }, + "322deeed887c4499b96026564e6d1d22": { + "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 + } + }, + "38eace2350d24617a7054a3f23fd083b": { + "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": "" + } + }, + "3cbf6205e1dc412e9c8245bf086e3e7c": { + "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 + } + }, + "3ef0ad6cffc04384a7734c17ca71066e": { + "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 + } + }, + "4214e904c01d4c0ca1a3856a2c913786": { + "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 + } + }, + "4c1ef193029f403da623358d6eea2e19": { + "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_3ef0ad6cffc04384a7734c17ca71066e", + "max": 57458416, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_38eace2350d24617a7054a3f23fd083b", + "value": 57458416 + } + }, + "51408a68fa75477eb73b28bd08478a27": { + "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_5d5a5d3b0bfb4984b52a2282d4be3405", + "max": 611, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_bb071aeb68d54afe9de4f96770c16b8d", + "value": 611 + } + }, + "51cb98c739e94588a74df263daf62c4f": { + "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 + } + }, + "587a98275dd34c08a618fb9111d73fe4": { + "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 + } + }, + "5a95456db43d4267a8c7ae1d3adb9110": { + "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_21e071df139249d682835f68117b4eda", + "placeholder": "​", + "style": "IPY_MODEL_0bc9dd340c624a5fac7683ed00498c2c", + "value": " 1.36k/1.36k [00:00<00:00, 111kB/s]" + } + }, + "5c3c994f7c3a4b41a1613c8deb74ae4a": { + "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 + } + }, + "5d5a5d3b0bfb4984b52a2282d4be3405": { + "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 + } + }, + "5db9ecd4769e49f6bfef8bc5013611ed": { + "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": "" + } + }, + "5fbaff21141b41e78964fa0dc8730292": { + "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_b1e321c905a648d2bc90bd7c5eb50367", + "max": 132, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b0f55fb60973416dba9eef54b929793a", + "value": 132 + } + }, + "6412c72c5f874277bd04ef23222713d5": { + "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 + } + }, + "6431434040ca4b0d8738746930297070": { + "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_587a98275dd34c08a618fb9111d73fe4", + "placeholder": "​", + "style": "IPY_MODEL_24fe1819e2d4414f8bfd8d30633c6fe2", + "value": "tokenizer_config.json: 100%" + } + }, + "644c507725544b9784503eac031ae937": { + "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_1b1bf9ce6edc44d6946e0e3a3004cae6", + "max": 711396, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2bae8ec848554c1bac9f95e73200ebc2", + "value": 711396 + } + }, + "6c9b4fff204e4b19adf82309fa1a4556": { + "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_7e329e78d0d648c8b793a80b732a6b8e", + "placeholder": "​", + "style": "IPY_MODEL_94ee1ab7847d4a3784f026bdb6c1645f", + "value": " 232k/232k [00:00<00:00, 4.17MB/s]" + } + }, + "6ed9a1236be7488489bda90570bcf491": { + "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_ad36b1ffe2bb4e3ca6838b4b612949fe", + "placeholder": "​", + "style": "IPY_MODEL_c2fda8ced9544c30a74861243e13cec8", + "value": "tokenizer.json: 100%" + } + }, + "6f3597c9cdeb45d995dbcb9b494b9032": { + "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": "" + } + }, + "78fe8ef2b501428f95ec0c792b164403": { + "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_de782ab08ffd4c4f9cddc9ea5d278762", + "placeholder": "​", + "style": "IPY_MODEL_eb02f42f31544cd692933fce1280374d", + "value": "model.safetensors: 100%" + } + }, + "7cec1b1c66dc48bc93ffc6825e289330": { + "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": "" + } + }, + "7e329e78d0d648c8b793a80b732a6b8e": { + "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 + } + }, + "7ff76b22476143dda0a60ee3c45a2573": { + "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_6ed9a1236be7488489bda90570bcf491", + "IPY_MODEL_644c507725544b9784503eac031ae937", + "IPY_MODEL_b477c3f151714d918af683b0743f5068" + ], + "layout": "IPY_MODEL_26ccd138f2594379a54bcf28ea426f08" + } + }, + "8285dd8bd8c94898bce1cbe3ffb64736": { + "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": "" + } + }, + "83ee878c039f47edb96fde00e6983a4b": { + "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_6431434040ca4b0d8738746930297070", + "IPY_MODEL_87d22a71e458437faf0ce8bb8defedeb", + "IPY_MODEL_5a95456db43d4267a8c7ae1d3adb9110" + ], + "layout": "IPY_MODEL_bcf8516da0904b0abc5ef3f0278e00b5" + } + }, + "87d22a71e458437faf0ce8bb8defedeb": { + "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_f5110aa7303d4828877d7582ef636c7d", + "max": 1358, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7cec1b1c66dc48bc93ffc6825e289330", + "value": 1358 + } + }, + "87df8146909842a7abc9ecfa73e1b308": { + "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_6412c72c5f874277bd04ef23222713d5", + "placeholder": "​", + "style": "IPY_MODEL_a93f582392ee462793e968d26b32f33e", + "value": " 611/611 [00:00<00:00, 62.9kB/s]" + } + }, + "92fb1012832d4648b8afe6ce9e679fc4": { + "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_05b597fa33d94d8489f0a906b6601ac6", + "IPY_MODEL_51408a68fa75477eb73b28bd08478a27", + "IPY_MODEL_87df8146909842a7abc9ecfa73e1b308" + ], + "layout": "IPY_MODEL_51cb98c739e94588a74df263daf62c4f" + } + }, + "94c23de385894e1faa02664d8970b5bc": { + "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 + } + }, + "94ee1ab7847d4a3784f026bdb6c1645f": { + "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": "" + } + }, + "95fe2503295144bb8468123ec3b40d1c": { + "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 + } + }, + "a93f582392ee462793e968d26b32f33e": { + "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": "" + } + }, + "a9c2da3c42f9486e9caabc123c4350f4": { + "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": "" + } + }, + "ad36b1ffe2bb4e3ca6838b4b612949fe": { + "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 + } + }, + "b00a8aa97c1d40b28567cb25233182e4": { + "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": "" + } + }, + "b0f55fb60973416dba9eef54b929793a": { + "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": "" + } + }, + "b1e321c905a648d2bc90bd7c5eb50367": { + "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 + } + }, + "b477c3f151714d918af683b0743f5068": { + "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_c4d7d20019e14d8c8fc8a7ab9cc2d9f1", + "placeholder": "​", + "style": "IPY_MODEL_b00a8aa97c1d40b28567cb25233182e4", + "value": " 711k/711k [00:00<00:00, 24.2MB/s]" + } + }, + "bb071aeb68d54afe9de4f96770c16b8d": { + "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": "" + } + }, + "bcf8516da0904b0abc5ef3f0278e00b5": { + "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 + } + }, + "c2fda8ced9544c30a74861243e13cec8": { + "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": "" + } + }, + "c4d7d20019e14d8c8fc8a7ab9cc2d9f1": { + "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 + } + }, + "d218377a68a64eb5a4f5457020a62725": { + "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 + } + }, + "de782ab08ffd4c4f9cddc9ea5d278762": { + "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 + } + }, + "e76d997ea69c48d7b11f55a4d0b9d9a3": { + "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_02b7ea08c62a464aa0ec1126cc7aecb2", + "IPY_MODEL_0574728db5104852abfb4b7078929cad", + "IPY_MODEL_6c9b4fff204e4b19adf82309fa1a4556" + ], + "layout": "IPY_MODEL_0571849b1c1347a6ad44581aa6d3014c" + } + }, + "eb02f42f31544cd692933fce1280374d": { + "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": "" + } + }, + "f5110aa7303d4828877d7582ef636c7d": { + "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 + } + }, + "fc6c756a30cc4963aa20f9b448acab10": { + "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 +}