Diff of /trash/Unsloth.ipynb [000000] .. [133ee8]

Switch to unified view

a b/trash/Unsloth.ipynb
1
{
2
  "cells": [
3
    {
4
      "cell_type": "markdown",
5
      "metadata": {
6
        "id": "view-in-github",
7
        "colab_type": "text"
8
      },
9
      "source": [
10
        "<a href=\"https://colab.research.google.com/github/sAndreotti/MedicalMeadow/blob/main/Llama_3_2_1B%2B3B_Conversational_%2B_2x_faster_finetuning.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
11
      ]
12
    },
13
    {
14
      "cell_type": "markdown",
15
      "metadata": {
16
        "id": "IqM-T1RTzY6C"
17
      },
18
      "source": [
19
        "To run this, press \"*Runtime*\" and press \"*Run all*\" on a **free** Tesla T4 Google Colab instance!\n",
20
        "<div class=\"align-center\">\n",
21
        "  <a href=\"https://github.com/unslothai/unsloth\"><img src=\"https://github.com/unslothai/unsloth/raw/main/images/unsloth%20new%20logo.png\" width=\"115\"></a>\n",
22
        "  <a href=\"https://discord.gg/u54VK8m8tk\"><img src=\"https://github.com/unslothai/unsloth/raw/main/images/Discord button.png\" width=\"145\"></a>\n",
23
        "  <a href=\"https://ko-fi.com/unsloth\"><img src=\"https://github.com/unslothai/unsloth/raw/main/images/Kofi button.png\" width=\"145\"></a></a> Join Discord if you need help + ⭐ <i>Star us on <a href=\"https://github.com/unslothai/unsloth\">Github</a> </i> ⭐\n",
24
        "</div>\n",
25
        "\n",
26
        "To install Unsloth on your own computer, follow the installation instructions on our Github page [here](https://github.com/unslothai/unsloth?tab=readme-ov-file#-installation-instructions).\n",
27
        "\n",
28
        "You will learn how to do [data prep](#Data), how to [train](#Train), how to [run the model](#Inference), & [how to save it](#Save) (eg for Llama.cpp).\n",
29
        "\n",
30
        "**[NEW] Try 2x faster inference in a free Colab for Llama-3.1 8b Instruct [here](https://colab.research.google.com/drive/1T-YBVfnphoVc8E2E854qF3jdia2Ll2W2?usp=sharing)**\n",
31
        "\n",
32
        "Features in the notebook:\n",
33
        "1. Uses Maxime Labonne's [FineTome 100K](https://huggingface.co/datasets/mlabonne/FineTome-100k) dataset.\n",
34
        "1. Convert ShareGPT to HuggingFace format via `standardize_sharegpt`\n",
35
        "2. Train on Completions / Assistant only via `train_on_responses_only`\n",
36
        "3. Unsloth now supports Torch 2.4, all TRL & Xformers versions & Python 3.12!"
37
      ]
38
    },
39
    {
40
      "cell_type": "code",
41
      "execution_count": 1,
42
      "metadata": {
43
        "id": "2eSvM9zX_2d3"
44
      },
45
      "outputs": [],
46
      "source": [
47
        "%%capture\n",
48
        "!pip install unsloth\n",
49
        "# Also get the latest nightly Unsloth!\n",
50
        "!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git"
51
      ]
52
    },
53
    {
54
      "cell_type": "markdown",
55
      "metadata": {
56
        "id": "r2v_X2fA0Df5"
57
      },
58
      "source": [
59
        "* We support Llama, Mistral, Phi-3, Gemma, Yi, DeepSeek, Qwen, TinyLlama, Vicuna, Open Hermes etc\n",
60
        "* We support 16bit LoRA or 4bit QLoRA. Both 2x faster.\n",
61
        "* `max_seq_length` can be set to anything, since we do automatic RoPE Scaling via [kaiokendev's](https://kaiokendev.github.io/til) method.\n",
62
        "* [**NEW**] We make Gemma-2 9b / 27b **2x faster**! See our [Gemma-2 9b notebook](https://colab.research.google.com/drive/1vIrqH5uYDQwsJ4-OO3DErvuv4pBgVwk4?usp=sharing)\n",
63
        "* [**NEW**] To finetune and auto export to Ollama, try our [Ollama notebook](https://colab.research.google.com/drive/1WZDi7APtQ9VsvOrQSSC5DDtxq159j8iZ?usp=sharing)"
64
      ]
65
    },
66
    {
67
      "cell_type": "code",
68
      "execution_count": 2,
69
      "metadata": {
70
        "colab": {
71
          "base_uri": "https://localhost:8080/",
72
          "height": 324,
73
          "referenced_widgets": [
74
            "470008e304ad4102a760e39b93dc7428",
75
            "13e72e122b75476eb9056c4a75089d71",
76
            "972895da680d49de8bc58957ce4fe341",
77
            "90346592f9244def90817ea11422648e",
78
            "cef09d4426c84eb09a8772ad22b02903",
79
            "e6c28d862df24f8ebfcd956921fa0c6d",
80
            "cf45cca2721842f5bc51d8e3db6b1fa6",
81
            "3af46468e29348adbf3c2749394767bc",
82
            "e7490d0da8854fc6abca6b9ecfb2fdaf",
83
            "0c356b068a6f498da7bcc5102d7a3f12",
84
            "1a5e5be75adb4466b90b29d4aecc9d7b",
85
            "f4c568c8e686433f8763c34879f46fd3",
86
            "d37ee73737d144479b19aa9c84bcbda5",
87
            "94b64d29515c49e788c9b0f02f97e131",
88
            "e0c4626438754fcab9ba26ec84691906",
89
            "ea9e76e320e0413083985d598cc62bd5",
90
            "4a1ea4cd642b437db3abb2ff39c19563",
91
            "a64e99e0c22c4bbf8e0bc70066475126",
92
            "e9812c0a8e814202a128fd11860b6b0e",
93
            "66179fda56844c47bb5a2207744370cb",
94
            "e9eada4508064f3bb063b0640dc04224",
95
            "1e1cad4d3d3c4612a158551589b5be1e",
96
            "1dfa05dc7e56420ab071392e802eb233",
97
            "bee09a78cbb24fd0b8d5edf7f48d2b1e",
98
            "0153b850366f4f798ef485268e62c775",
99
            "1a6a1710ac1e468685ec3ac850fbe225",
100
            "4e44198b265744ad954ad5c71238284a",
101
            "f5b0ed4646f84e9293198e8a78823f0d",
102
            "41196d3b7ebb4b3e81ab190be3efdc0f",
103
            "f9a52bdb2e6d4da49c4a79982aae354f",
104
            "1a3bd31d499741e398d964904a9e636d",
105
            "b47a9aebb5b447b282f0b29607bee5d3",
106
            "3d87f57ad8bf4d6b8da431d141f31218",
107
            "b84a3a5d44a9417aa3c2ad089edb962f",
108
            "1fbe9f9d35d64921b567119369591fa5",
109
            "a8126f821b164a99a0b5514ab8d8b513",
110
            "e33feef2505d45f7bbfd8f2a73b07b1a",
111
            "0a1843983b5c4744a7ef148a72dd06d5",
112
            "e2235493048f44bbb957c5680a2c48e7",
113
            "5959983c01fb4cbbb45a76d729beef52",
114
            "5fa9619b96274aa795dff3a5906992d2",
115
            "1a6c2123525f4ba9bb9967165c06a4a9",
116
            "8301a8f379af4ba8bfbe8e4b7a2eb812",
117
            "0ee49d6c54594cd7a5f4d9bdfe4c8a5c",
118
            "45d7468b23d14ea99d103689c891749f",
119
            "432ef064af77465b9da7d059179bd705",
120
            "ba5349ad5a8344709e8924f9ba3a306b",
121
            "5acddf8d428f4a3daff2b69a0ae45446",
122
            "e5d0ac47ca4042349ceb9a23f1399bf9",
123
            "ff04a0a610144d82aa271f72324a49ea",
124
            "1984ff4e3cc243e1a791ce094ffa87d3",
125
            "4726b87618454e858d3e7a2f982558df",
126
            "33647f79114144feae792e43cf17e4b7",
127
            "138d704d84ba403695d6d8c9538e29bc",
128
            "bacd0d7737244fd7905d4e40ebd54f6d"
129
          ]
130
        },
131
        "id": "QmUBVEnvCDJv",
132
        "outputId": "e96c2216-b3f6-4cc7-d555-afe838eda86e"
133
      },
134
      "outputs": [
135
        {
136
          "output_type": "stream",
137
          "name": "stdout",
138
          "text": [
139
            "🦥 Unsloth: Will patch your computer to enable 2x faster free finetuning.\n",
140
            "🦥 Unsloth Zoo will now patch everything to make training faster!\n",
141
            "==((====))==  Unsloth 2024.12.12: Fast Llama patching. Transformers: 4.47.1.\n",
142
            "   \\\\   /|    GPU: Tesla T4. Max memory: 14.748 GB. Platform: Linux.\n",
143
            "O^O/ \\_/ \\    Torch: 2.5.1+cu121. CUDA: 7.5. CUDA Toolkit: 12.1. Triton: 3.1.0\n",
144
            "\\        /    Bfloat16 = FALSE. FA [Xformers = 0.0.29. FA2 = False]\n",
145
            " \"-____-\"     Free Apache license: http://github.com/unslothai/unsloth\n",
146
            "Unsloth: Fast downloading is enabled - ignore downloading bars which are red colored!\n"
147
          ]
148
        },
149
        {
150
          "output_type": "display_data",
151
          "data": {
152
            "text/plain": [
153
              "model.safetensors:   0%|          | 0.00/2.24G [00:00<?, ?B/s]"
154
            ],
155
            "application/vnd.jupyter.widget-view+json": {
156
              "version_major": 2,
157
              "version_minor": 0,
158
              "model_id": "470008e304ad4102a760e39b93dc7428"
159
            }
160
          },
161
          "metadata": {}
162
        },
163
        {
164
          "output_type": "display_data",
165
          "data": {
166
            "text/plain": [
167
              "generation_config.json:   0%|          | 0.00/184 [00:00<?, ?B/s]"
168
            ],
169
            "application/vnd.jupyter.widget-view+json": {
170
              "version_major": 2,
171
              "version_minor": 0,
172
              "model_id": "f4c568c8e686433f8763c34879f46fd3"
173
            }
174
          },
175
          "metadata": {}
176
        },
177
        {
178
          "output_type": "display_data",
179
          "data": {
180
            "text/plain": [
181
              "tokenizer_config.json:   0%|          | 0.00/54.6k [00:00<?, ?B/s]"
182
            ],
183
            "application/vnd.jupyter.widget-view+json": {
184
              "version_major": 2,
185
              "version_minor": 0,
186
              "model_id": "1dfa05dc7e56420ab071392e802eb233"
187
            }
188
          },
189
          "metadata": {}
190
        },
191
        {
192
          "output_type": "display_data",
193
          "data": {
194
            "text/plain": [
195
              "tokenizer.json:   0%|          | 0.00/9.09M [00:00<?, ?B/s]"
196
            ],
197
            "application/vnd.jupyter.widget-view+json": {
198
              "version_major": 2,
199
              "version_minor": 0,
200
              "model_id": "b84a3a5d44a9417aa3c2ad089edb962f"
201
            }
202
          },
203
          "metadata": {}
204
        },
205
        {
206
          "output_type": "display_data",
207
          "data": {
208
            "text/plain": [
209
              "special_tokens_map.json:   0%|          | 0.00/454 [00:00<?, ?B/s]"
210
            ],
211
            "application/vnd.jupyter.widget-view+json": {
212
              "version_major": 2,
213
              "version_minor": 0,
214
              "model_id": "45d7468b23d14ea99d103689c891749f"
215
            }
216
          },
217
          "metadata": {}
218
        }
219
      ],
220
      "source": [
221
        "from unsloth import FastLanguageModel\n",
222
        "import torch\n",
223
        "max_seq_length = 2048 # Choose any! We auto support RoPE Scaling internally!\n",
224
        "dtype = None # None for auto detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+\n",
225
        "load_in_4bit = True # Use 4bit quantization to reduce memory usage. Can be False.\n",
226
        "\n",
227
        "# 4bit pre quantized models we support for 4x faster downloading + no OOMs.\n",
228
        "fourbit_models = [\n",
229
        "    \"unsloth/Meta-Llama-3.1-8B-bnb-4bit\",      # Llama-3.1 2x faster\n",
230
        "    \"unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit\",\n",
231
        "    \"unsloth/Meta-Llama-3.1-70B-bnb-4bit\",\n",
232
        "    \"unsloth/Meta-Llama-3.1-405B-bnb-4bit\",    # 4bit for 405b!\n",
233
        "    \"unsloth/Mistral-Small-Instruct-2409\",     # Mistral 22b 2x faster!\n",
234
        "    \"unsloth/mistral-7b-instruct-v0.3-bnb-4bit\",\n",
235
        "    \"unsloth/Phi-3.5-mini-instruct\",           # Phi-3.5 2x faster!\n",
236
        "    \"unsloth/Phi-3-medium-4k-instruct\",\n",
237
        "    \"unsloth/gemma-2-9b-bnb-4bit\",\n",
238
        "    \"unsloth/gemma-2-27b-bnb-4bit\",            # Gemma 2x faster!\n",
239
        "\n",
240
        "    \"unsloth/Llama-3.2-1B-bnb-4bit\",           # NEW! Llama 3.2 models\n",
241
        "    \"unsloth/Llama-3.2-1B-Instruct-bnb-4bit\",\n",
242
        "    \"unsloth/Llama-3.2-3B-bnb-4bit\",\n",
243
        "    \"unsloth/Llama-3.2-3B-Instruct-bnb-4bit\",\n",
244
        "\n",
245
        "    \"unsloth/Llama-3.3-70B-Instruct-bnb-4bit\" # NEW! Llama 3.3 70B!\n",
246
        "] # More models at https://huggingface.co/unsloth\n",
247
        "\n",
248
        "model, tokenizer = FastLanguageModel.from_pretrained(\n",
249
        "    model_name = \"unsloth/Llama-3.2-3B-Instruct\", # or choose \"unsloth/Llama-3.2-1B-Instruct\"\n",
250
        "    max_seq_length = max_seq_length,\n",
251
        "    dtype = dtype,\n",
252
        "    load_in_4bit = load_in_4bit,\n",
253
        "    # token = \"hf_...\", # use one if using gated models like meta-llama/Llama-2-7b-hf\n",
254
        ")"
255
      ]
256
    },
257
    {
258
      "cell_type": "markdown",
259
      "metadata": {
260
        "id": "SXd9bTZd1aaL"
261
      },
262
      "source": [
263
        "We now add LoRA adapters so we only need to update 1 to 10% of all parameters!"
264
      ]
265
    },
266
    {
267
      "cell_type": "code",
268
      "execution_count": 3,
269
      "metadata": {
270
        "id": "6bZsfBuZDeCL",
271
        "colab": {
272
          "base_uri": "https://localhost:8080/"
273
        },
274
        "outputId": "34f0a776-1747-4b3a-989b-aff287497f2e"
275
      },
276
      "outputs": [
277
        {
278
          "output_type": "stream",
279
          "name": "stderr",
280
          "text": [
281
            "Unsloth 2024.12.12 patched 28 layers with 28 QKV layers, 28 O layers and 28 MLP layers.\n"
282
          ]
283
        }
284
      ],
285
      "source": [
286
        "model = FastLanguageModel.get_peft_model(\n",
287
        "    model,\n",
288
        "    r = 16, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128\n",
289
        "    target_modules = [\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\",\n",
290
        "                      \"gate_proj\", \"up_proj\", \"down_proj\",],\n",
291
        "    lora_alpha = 16,\n",
292
        "    lora_dropout = 0, # Supports any, but = 0 is optimized\n",
293
        "    bias = \"none\",    # Supports any, but = \"none\" is optimized\n",
294
        "    # [NEW] \"unsloth\" uses 30% less VRAM, fits 2x larger batch sizes!\n",
295
        "    use_gradient_checkpointing = \"unsloth\", # True or \"unsloth\" for very long context\n",
296
        "    random_state = 3407,\n",
297
        "    use_rslora = False,  # We support rank stabilized LoRA\n",
298
        "    loftq_config = None, # And LoftQ\n",
299
        ")"
300
      ]
301
    },
302
    {
303
      "cell_type": "code",
304
      "source": [
305
        "from datasets import load_dataset\n",
306
        "from unsloth.chat_templates import get_chat_template\n",
307
        "\n",
308
        "# Load the dataset\n",
309
        "dataset = load_dataset(\"medalpaca/medical_meadow_medical_flashcards\", split=\"train\")\n",
310
        "\n",
311
        "def convert_to_conversations(examples):\n",
312
        "    \"\"\"Convert the dataset format to conversations\"\"\"\n",
313
        "    conversations = []\n",
314
        "    for instruction, input_text, output in zip(\n",
315
        "        examples['instruction'],\n",
316
        "        examples['input'],\n",
317
        "        examples['output']\n",
318
        "    ):\n",
319
        "        # Combine instruction and input\n",
320
        "        user_content = f\"{instruction}: {input_text}\"\n",
321
        "        conv = [\n",
322
        "            {\"role\": \"user\", \"content\": user_content},\n",
323
        "            {\"role\": \"assistant\", \"content\": output}\n",
324
        "        ]\n",
325
        "        conversations.append(conv)\n",
326
        "    return {\"conversations\": conversations}\n",
327
        "\n",
328
        "# Convert to conversation format\n",
329
        "formatted_dataset = dataset.map(\n",
330
        "    convert_to_conversations,\n",
331
        "    batched=True,\n",
332
        "    remove_columns=dataset.column_names\n",
333
        ")\n",
334
        "\n",
335
        "# Set up the tokenizer with Llama-3.1 chat template\n",
336
        "tokenizer = get_chat_template(\n",
337
        "    tokenizer,\n",
338
        "    chat_template=\"llama-3.1\",\n",
339
        ")\n",
340
        "\n",
341
        "def formatting_prompts_func(examples):\n",
342
        "    \"\"\"Apply the chat template to the conversations\"\"\"\n",
343
        "    convos = examples[\"conversations\"]\n",
344
        "    texts = [\n",
345
        "        tokenizer.apply_chat_template(\n",
346
        "            convo,\n",
347
        "            tokenize=False,\n",
348
        "            add_generation_prompt=False\n",
349
        "        ) for convo in convos\n",
350
        "    ]\n",
351
        "    return {\"text\": texts}\n",
352
        "\n",
353
        "# Apply the formatting\n",
354
        "formatted_dataset = formatted_dataset.map(\n",
355
        "    formatting_prompts_func,\n",
356
        "    batched=True\n",
357
        ")\n",
358
        "\n",
359
        "# Save the formatted dataset to make it available in next cells\n",
360
        "import pickle\n",
361
        "with open('formatted_dataset.pkl', 'wb') as f:\n",
362
        "    pickle.dump(formatted_dataset, f)"
363
      ],
364
      "metadata": {
365
        "colab": {
366
          "base_uri": "https://localhost:8080/",
367
          "height": 81,
368
          "referenced_widgets": [
369
            "a41034aac0fb4301ad12bbd8e2b0cc40",
370
            "b635e3775c164f94b6acec4dd20b192e",
371
            "356cc173337649588e8990e9b948e9cf",
372
            "17996150ba4946bc8b9531db9f5f31b5",
373
            "927a0a29edcd47e4a4d3d74df7a9ea2b",
374
            "5ce59b62adfb416b85bc0effcced25dd",
375
            "913b0f0ccc8848b0b2c3917950f70e93",
376
            "5b0cadad0628423ea3b308a648c3c56e",
377
            "5b0e393c08bc492aa4079297d6602aa7",
378
            "5c9790a723f54ec3aa26d61e1e6880b5",
379
            "48ca23b61bac4b9583993577ef4451c4",
380
            "2959bb04464046fd9c5b78e39e4d31aa",
381
            "5412eabb86f54fa6b39bda564fb08334",
382
            "362a07edc2ba457d9939bad3ead4f683",
383
            "d1937db6c00840ef895654c58c5cf844",
384
            "9324776524bd44ed83972090e1def47e",
385
            "b07669693dd840249f6d55d8ecc6f394",
386
            "7fd6c7363ade4591824599e64f62a8d8",
387
            "d06aac9749f14f74b1a9b4ea7fd4ab20",
388
            "badae3344d2448d69f5d33f419344c29",
389
            "afecd6f978f9451bace318a0ad92a593",
390
            "982831102f1f45959043b619108119b9"
391
          ]
392
        },
393
        "id": "cDgml9s70ymR",
394
        "outputId": "1e4276cc-1368-4792-bb37-f05e4c935954"
395
      },
396
      "execution_count": 10,
397
      "outputs": [
398
        {
399
          "output_type": "display_data",
400
          "data": {
401
            "text/plain": [
402
              "Map:   0%|          | 0/33955 [00:00<?, ? examples/s]"
403
            ],
404
            "application/vnd.jupyter.widget-view+json": {
405
              "version_major": 2,
406
              "version_minor": 0,
407
              "model_id": "a41034aac0fb4301ad12bbd8e2b0cc40"
408
            }
409
          },
410
          "metadata": {}
411
        },
412
        {
413
          "output_type": "display_data",
414
          "data": {
415
            "text/plain": [
416
              "Map:   0%|          | 0/33955 [00:00<?, ? examples/s]"
417
            ],
418
            "application/vnd.jupyter.widget-view+json": {
419
              "version_major": 2,
420
              "version_minor": 0,
421
              "model_id": "2959bb04464046fd9c5b78e39e4d31aa"
422
            }
423
          },
424
          "metadata": {}
425
        }
426
      ]
427
    },
428
    {
429
      "cell_type": "code",
430
      "source": [
431
        "# Print an example to verify the format\n",
432
        "print(\"Example of formatted conversation:\")\n",
433
        "print(formatted_dataset[0]['text'])\n",
434
        "\n",
435
        "# The dataset is now ready for training\n",
436
        "# You can access it as formatted_dataset['text']\n",
437
        "\n",
438
        "# If you need to split it into train/validation sets:\n",
439
        "train_val = formatted_dataset.train_test_split(test_size=0.1, seed=42)\n",
440
        "train_data = train_val['train']\n",
441
        "val_data = train_val['test']\n",
442
        "\n",
443
        "print(\"\\nDataset sizes:\")\n",
444
        "print(f\"Train: {len(train_data)}\")\n",
445
        "print(f\"Validation: {len(val_data)}\")"
446
      ],
447
      "metadata": {
448
        "colab": {
449
          "base_uri": "https://localhost:8080/"
450
        },
451
        "id": "YPZSwk6319Dw",
452
        "outputId": "f5deb7bb-1e8a-470e-ca58-49a05cb98ab8"
453
      },
454
      "execution_count": 11,
455
      "outputs": [
456
        {
457
          "output_type": "stream",
458
          "name": "stdout",
459
          "text": [
460
            "Example of formatted conversation:\n",
461
            "<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n",
462
            "\n",
463
            "Cutting Knowledge Date: December 2023\n",
464
            "Today Date: 26 July 2024\n",
465
            "\n",
466
            "<|eot_id|><|start_header_id|>user<|end_header_id|>\n",
467
            "\n",
468
            "Answer this question truthfully: What is the relationship between very low Mg2+ levels, PTH levels, and Ca2+ levels?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n",
469
            "\n",
470
            "Very low Mg2+ levels correspond to low PTH levels which in turn results in low Ca2+ levels.<|eot_id|>\n",
471
            "\n",
472
            "Dataset sizes:\n",
473
            "Train: 30559\n",
474
            "Validation: 3396\n"
475
          ]
476
        }
477
      ]
478
    },
479
    {
480
      "cell_type": "markdown",
481
      "metadata": {
482
        "id": "idAEIeSQ3xdS"
483
      },
484
      "source": [
485
        "<a name=\"Train\"></a>\n",
486
        "### Train the model\n",
487
        "Now let's use Huggingface TRL's `SFTTrainer`! More docs here: [TRL SFT docs](https://huggingface.co/docs/trl/sft_trainer). We do 60 steps to speed things up, but you can set `num_train_epochs=1` for a full run, and turn off `max_steps=None`. We also support TRL's `DPOTrainer`!"
488
      ]
489
    },
490
    {
491
      "cell_type": "code",
492
      "execution_count": 12,
493
      "metadata": {
494
        "id": "95_Nn-89DhsL",
495
        "colab": {
496
          "base_uri": "https://localhost:8080/",
497
          "height": 49,
498
          "referenced_widgets": [
499
            "11f1c457989b4211a66099e84f6beb73",
500
            "3aa2d2085fc64bfd89d2889621cfd2ae",
501
            "6d85c1fb9dc8478899b39a8f49ba6fde",
502
            "2794d95fbb924c58acd1d806c6f847ee",
503
            "2a1e24790e2e4df99c29fc9e0fc2da9d",
504
            "5b8c18ab8f934c33bab55beee17d7ac7",
505
            "34e7a0da7e4b494ba248654e124638b3",
506
            "e5c927adf18f44cdb054ae3123f8b526",
507
            "98d8d0fed266494abd1ec14a7e3c4d05",
508
            "ed3b09500a97415891a3c1cf1a681d6c",
509
            "5beefaa4ac9347bf8edf5d9e62e6baf0"
510
          ]
511
        },
512
        "outputId": "85db7ebb-50ef-4b1b-e2d2-314c58a84947"
513
      },
514
      "outputs": [
515
        {
516
          "output_type": "display_data",
517
          "data": {
518
            "text/plain": [
519
              "Map (num_proc=2):   0%|          | 0/33955 [00:00<?, ? examples/s]"
520
            ],
521
            "application/vnd.jupyter.widget-view+json": {
522
              "version_major": 2,
523
              "version_minor": 0,
524
              "model_id": "11f1c457989b4211a66099e84f6beb73"
525
            }
526
          },
527
          "metadata": {}
528
        }
529
      ],
530
      "source": [
531
        "from trl import SFTTrainer\n",
532
        "from transformers import TrainingArguments, DataCollatorForSeq2Seq\n",
533
        "from unsloth import is_bfloat16_supported\n",
534
        "\n",
535
        "trainer = SFTTrainer(\n",
536
        "    model = model,\n",
537
        "    tokenizer = tokenizer,\n",
538
        "    train_dataset = formatted_dataset,\n",
539
        "    dataset_text_field = \"text\",\n",
540
        "    max_seq_length = max_seq_length,\n",
541
        "    data_collator = DataCollatorForSeq2Seq(tokenizer = tokenizer),\n",
542
        "    dataset_num_proc = 2,\n",
543
        "    packing = False, # Can make training 5x faster for short sequences.\n",
544
        "    args = TrainingArguments(\n",
545
        "        per_device_train_batch_size = 2,\n",
546
        "        gradient_accumulation_steps = 4,\n",
547
        "        warmup_steps = 5,\n",
548
        "        # num_train_epochs = 1, # Set this for 1 full training run.\n",
549
        "        max_steps = 60,\n",
550
        "        learning_rate = 2e-4,\n",
551
        "        fp16 = not is_bfloat16_supported(),\n",
552
        "        bf16 = is_bfloat16_supported(),\n",
553
        "        logging_steps = 1,\n",
554
        "        optim = \"adamw_8bit\",\n",
555
        "        weight_decay = 0.01,\n",
556
        "        lr_scheduler_type = \"linear\",\n",
557
        "        seed = 3407,\n",
558
        "        output_dir = \"outputs\",\n",
559
        "        report_to = \"none\", # Use this for WandB etc\n",
560
        "    ),\n",
561
        ")"
562
      ]
563
    },
564
    {
565
      "cell_type": "markdown",
566
      "source": [
567
        "We also use Unsloth's `train_on_completions` method to only train on the assistant outputs and ignore the loss on the user's inputs."
568
      ],
569
      "metadata": {
570
        "id": "C_sGp5XlG6dq"
571
      }
572
    },
573
    {
574
      "cell_type": "code",
575
      "source": [
576
        "from unsloth.chat_templates import train_on_responses_only\n",
577
        "trainer = train_on_responses_only(\n",
578
        "    trainer,\n",
579
        "    instruction_part = \"<|start_header_id|>user<|end_header_id|>\\n\\n\",\n",
580
        "    response_part = \"<|start_header_id|>assistant<|end_header_id|>\\n\\n\",\n",
581
        ")"
582
      ],
583
      "metadata": {
584
        "id": "juQiExuBG5Bt",
585
        "colab": {
586
          "base_uri": "https://localhost:8080/",
587
          "height": 49,
588
          "referenced_widgets": [
589
            "3be9f1c4ca424b08b995986b31bc6f73",
590
            "cbaaf16637334b8c907be3c1eea8e36b",
591
            "ab35ff19da2b4ab49ea4f6ab3bc32981",
592
            "d9add78673484904995f4b3181c2d3d6",
593
            "d44d61caea1f4aa79d3fae256b5e351e",
594
            "4be9d0609a1d4a28b622ada5052fd653",
595
            "fbf5b0b982d5483bb160f1c745e5fa1d",
596
            "55be8a889c8a414f83c2af904513f96d",
597
            "567af20e2fab400aae2131ade113d39d",
598
            "a17fe71fa4f24581a5a5758d367888c3",
599
            "106ddc5392a747e88905c314032671fa"
600
          ]
601
        },
602
        "outputId": "69af3385-fc25-41d3-8207-5fa2e9091867"
603
      },
604
      "execution_count": 13,
605
      "outputs": [
606
        {
607
          "output_type": "display_data",
608
          "data": {
609
            "text/plain": [
610
              "Map:   0%|          | 0/33955 [00:00<?, ? examples/s]"
611
            ],
612
            "application/vnd.jupyter.widget-view+json": {
613
              "version_major": 2,
614
              "version_minor": 0,
615
              "model_id": "3be9f1c4ca424b08b995986b31bc6f73"
616
            }
617
          },
618
          "metadata": {}
619
        }
620
      ]
621
    },
622
    {
623
      "cell_type": "markdown",
624
      "source": [
625
        "We verify masking is actually done:"
626
      ],
627
      "metadata": {
628
        "id": "Dv1NBUozV78l"
629
      }
630
    },
631
    {
632
      "cell_type": "code",
633
      "source": [
634
        "tokenizer.decode(trainer.train_dataset[5][\"input_ids\"])"
635
      ],
636
      "metadata": {
637
        "id": "LtsMVtlkUhja",
638
        "colab": {
639
          "base_uri": "https://localhost:8080/",
640
          "height": 55
641
        },
642
        "outputId": "f1c670d5-ed1b-4b00-df24-4ad6fc0909b0"
643
      },
644
      "execution_count": 14,
645
      "outputs": [
646
        {
647
          "output_type": "execute_result",
648
          "data": {
649
            "text/plain": [
650
              "'<|begin_of_text|><|start_header_id|>system<|end_header_id|>\\n\\nCutting Knowledge Date: December 2023\\nToday Date: 26 July 2024\\n\\n<|eot_id|><|start_header_id|>user<|end_header_id|>\\n\\nAnswer this question truthfully: What does low Mobility and bulging of TM suggest?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\\n\\nLow Mobility and bulging of TM is suggestive of Acute otitis media.<|eot_id|>'"
651
            ],
652
            "application/vnd.google.colaboratory.intrinsic+json": {
653
              "type": "string"
654
            }
655
          },
656
          "metadata": {},
657
          "execution_count": 14
658
        }
659
      ]
660
    },
661
    {
662
      "cell_type": "code",
663
      "source": [
664
        "space = tokenizer(\" \", add_special_tokens = False).input_ids[0]\n",
665
        "tokenizer.decode([space if x == -100 else x for x in trainer.train_dataset[5][\"labels\"]])"
666
      ],
667
      "metadata": {
668
        "id": "_rD6fl8EUxnG",
669
        "colab": {
670
          "base_uri": "https://localhost:8080/",
671
          "height": 36
672
        },
673
        "outputId": "05599f09-3443-4fc1-82c1-4fc35958ed7f"
674
      },
675
      "execution_count": 15,
676
      "outputs": [
677
        {
678
          "output_type": "execute_result",
679
          "data": {
680
            "text/plain": [
681
              "'                                                   \\n\\nLow Mobility and bulging of TM is suggestive of Acute otitis media.<|eot_id|>'"
682
            ],
683
            "application/vnd.google.colaboratory.intrinsic+json": {
684
              "type": "string"
685
            }
686
          },
687
          "metadata": {},
688
          "execution_count": 15
689
        }
690
      ]
691
    },
692
    {
693
      "cell_type": "markdown",
694
      "source": [
695
        "[link text](https://)We can see the System and Instruction prompts are successfully masked!"
696
      ],
697
      "metadata": {
698
        "id": "3enWUM0jV-jV"
699
      }
700
    },
701
    {
702
      "cell_type": "code",
703
      "execution_count": 23,
704
      "metadata": {
705
        "id": "2ejIt2xSNKKp",
706
        "colab": {
707
          "base_uri": "https://localhost:8080/"
708
        },
709
        "outputId": "39fbd3c6-7979-484d-bf73-6bacf4dc8189"
710
      },
711
      "outputs": [
712
        {
713
          "output_type": "stream",
714
          "name": "stdout",
715
          "text": [
716
            "GPU = Tesla T4. Max memory = 14.748 GB.\n",
717
            "3.324 GB of memory reserved.\n"
718
          ]
719
        }
720
      ],
721
      "source": [
722
        "#@title Show current memory stats\n",
723
        "gpu_stats = torch.cuda.get_device_properties(0)\n",
724
        "start_gpu_memory = round(torch.cuda.max_memory_reserved() / 1024 / 1024 / 1024, 3)\n",
725
        "max_memory = round(gpu_stats.total_memory / 1024 / 1024 / 1024, 3)\n",
726
        "print(f\"GPU = {gpu_stats.name}. Max memory = {max_memory} GB.\")\n",
727
        "print(f\"{start_gpu_memory} GB of memory reserved.\")"
728
      ]
729
    },
730
    {
731
      "cell_type": "code",
732
      "execution_count": 17,
733
      "metadata": {
734
        "id": "yqxqAZ7KJ4oL",
735
        "colab": {
736
          "base_uri": "https://localhost:8080/",
737
          "height": 1000
738
        },
739
        "outputId": "3790f36d-d523-48c4-d930-718fb512a1a7"
740
      },
741
      "outputs": [
742
        {
743
          "output_type": "stream",
744
          "name": "stderr",
745
          "text": [
746
            "==((====))==  Unsloth - 2x faster free finetuning | Num GPUs = 1\n",
747
            "   \\\\   /|    Num examples = 33,955 | Num Epochs = 1\n",
748
            "O^O/ \\_/ \\    Batch size per device = 2 | Gradient Accumulation steps = 4\n",
749
            "\\        /    Total batch size = 8 | Total steps = 60\n",
750
            " \"-____-\"     Number of trainable parameters = 24,313,856\n"
751
          ]
752
        },
753
        {
754
          "output_type": "display_data",
755
          "data": {
756
            "text/plain": [
757
              "<IPython.core.display.HTML object>"
758
            ],
759
            "text/html": [
760
              "\n",
761
              "    <div>\n",
762
              "      \n",
763
              "      <progress value='60' max='60' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
764
              "      [60/60 02:49, Epoch 0/1]\n",
765
              "    </div>\n",
766
              "    <table border=\"1\" class=\"dataframe\">\n",
767
              "  <thead>\n",
768
              " <tr style=\"text-align: left;\">\n",
769
              "      <th>Step</th>\n",
770
              "      <th>Training Loss</th>\n",
771
              "    </tr>\n",
772
              "  </thead>\n",
773
              "  <tbody>\n",
774
              "    <tr>\n",
775
              "      <td>1</td>\n",
776
              "      <td>1.291800</td>\n",
777
              "    </tr>\n",
778
              "    <tr>\n",
779
              "      <td>2</td>\n",
780
              "      <td>1.210600</td>\n",
781
              "    </tr>\n",
782
              "    <tr>\n",
783
              "      <td>3</td>\n",
784
              "      <td>1.020600</td>\n",
785
              "    </tr>\n",
786
              "    <tr>\n",
787
              "      <td>4</td>\n",
788
              "      <td>0.976700</td>\n",
789
              "    </tr>\n",
790
              "    <tr>\n",
791
              "      <td>5</td>\n",
792
              "      <td>0.968400</td>\n",
793
              "    </tr>\n",
794
              "    <tr>\n",
795
              "      <td>6</td>\n",
796
              "      <td>1.065500</td>\n",
797
              "    </tr>\n",
798
              "    <tr>\n",
799
              "      <td>7</td>\n",
800
              "      <td>1.091000</td>\n",
801
              "    </tr>\n",
802
              "    <tr>\n",
803
              "      <td>8</td>\n",
804
              "      <td>0.828600</td>\n",
805
              "    </tr>\n",
806
              "    <tr>\n",
807
              "      <td>9</td>\n",
808
              "      <td>0.804600</td>\n",
809
              "    </tr>\n",
810
              "    <tr>\n",
811
              "      <td>10</td>\n",
812
              "      <td>0.832100</td>\n",
813
              "    </tr>\n",
814
              "    <tr>\n",
815
              "      <td>11</td>\n",
816
              "      <td>0.695600</td>\n",
817
              "    </tr>\n",
818
              "    <tr>\n",
819
              "      <td>12</td>\n",
820
              "      <td>0.702200</td>\n",
821
              "    </tr>\n",
822
              "    <tr>\n",
823
              "      <td>13</td>\n",
824
              "      <td>0.747300</td>\n",
825
              "    </tr>\n",
826
              "    <tr>\n",
827
              "      <td>14</td>\n",
828
              "      <td>0.753600</td>\n",
829
              "    </tr>\n",
830
              "    <tr>\n",
831
              "      <td>15</td>\n",
832
              "      <td>0.803100</td>\n",
833
              "    </tr>\n",
834
              "    <tr>\n",
835
              "      <td>16</td>\n",
836
              "      <td>0.856100</td>\n",
837
              "    </tr>\n",
838
              "    <tr>\n",
839
              "      <td>17</td>\n",
840
              "      <td>0.883200</td>\n",
841
              "    </tr>\n",
842
              "    <tr>\n",
843
              "      <td>18</td>\n",
844
              "      <td>0.863200</td>\n",
845
              "    </tr>\n",
846
              "    <tr>\n",
847
              "      <td>19</td>\n",
848
              "      <td>0.730900</td>\n",
849
              "    </tr>\n",
850
              "    <tr>\n",
851
              "      <td>20</td>\n",
852
              "      <td>0.716000</td>\n",
853
              "    </tr>\n",
854
              "    <tr>\n",
855
              "      <td>21</td>\n",
856
              "      <td>0.851000</td>\n",
857
              "    </tr>\n",
858
              "    <tr>\n",
859
              "      <td>22</td>\n",
860
              "      <td>0.849400</td>\n",
861
              "    </tr>\n",
862
              "    <tr>\n",
863
              "      <td>23</td>\n",
864
              "      <td>0.736900</td>\n",
865
              "    </tr>\n",
866
              "    <tr>\n",
867
              "      <td>24</td>\n",
868
              "      <td>0.807300</td>\n",
869
              "    </tr>\n",
870
              "    <tr>\n",
871
              "      <td>25</td>\n",
872
              "      <td>0.845800</td>\n",
873
              "    </tr>\n",
874
              "    <tr>\n",
875
              "      <td>26</td>\n",
876
              "      <td>0.920700</td>\n",
877
              "    </tr>\n",
878
              "    <tr>\n",
879
              "      <td>27</td>\n",
880
              "      <td>0.739800</td>\n",
881
              "    </tr>\n",
882
              "    <tr>\n",
883
              "      <td>28</td>\n",
884
              "      <td>0.816900</td>\n",
885
              "    </tr>\n",
886
              "    <tr>\n",
887
              "      <td>29</td>\n",
888
              "      <td>0.783700</td>\n",
889
              "    </tr>\n",
890
              "    <tr>\n",
891
              "      <td>30</td>\n",
892
              "      <td>0.701500</td>\n",
893
              "    </tr>\n",
894
              "    <tr>\n",
895
              "      <td>31</td>\n",
896
              "      <td>0.734100</td>\n",
897
              "    </tr>\n",
898
              "    <tr>\n",
899
              "      <td>32</td>\n",
900
              "      <td>0.804600</td>\n",
901
              "    </tr>\n",
902
              "    <tr>\n",
903
              "      <td>33</td>\n",
904
              "      <td>0.882300</td>\n",
905
              "    </tr>\n",
906
              "    <tr>\n",
907
              "      <td>34</td>\n",
908
              "      <td>0.776600</td>\n",
909
              "    </tr>\n",
910
              "    <tr>\n",
911
              "      <td>35</td>\n",
912
              "      <td>0.731700</td>\n",
913
              "    </tr>\n",
914
              "    <tr>\n",
915
              "      <td>36</td>\n",
916
              "      <td>1.109600</td>\n",
917
              "    </tr>\n",
918
              "    <tr>\n",
919
              "      <td>37</td>\n",
920
              "      <td>0.821800</td>\n",
921
              "    </tr>\n",
922
              "    <tr>\n",
923
              "      <td>38</td>\n",
924
              "      <td>0.616000</td>\n",
925
              "    </tr>\n",
926
              "    <tr>\n",
927
              "      <td>39</td>\n",
928
              "      <td>0.712900</td>\n",
929
              "    </tr>\n",
930
              "    <tr>\n",
931
              "      <td>40</td>\n",
932
              "      <td>0.735600</td>\n",
933
              "    </tr>\n",
934
              "    <tr>\n",
935
              "      <td>41</td>\n",
936
              "      <td>0.902300</td>\n",
937
              "    </tr>\n",
938
              "    <tr>\n",
939
              "      <td>42</td>\n",
940
              "      <td>0.832600</td>\n",
941
              "    </tr>\n",
942
              "    <tr>\n",
943
              "      <td>43</td>\n",
944
              "      <td>0.791600</td>\n",
945
              "    </tr>\n",
946
              "    <tr>\n",
947
              "      <td>44</td>\n",
948
              "      <td>0.813500</td>\n",
949
              "    </tr>\n",
950
              "    <tr>\n",
951
              "      <td>45</td>\n",
952
              "      <td>0.876400</td>\n",
953
              "    </tr>\n",
954
              "    <tr>\n",
955
              "      <td>46</td>\n",
956
              "      <td>0.814500</td>\n",
957
              "    </tr>\n",
958
              "    <tr>\n",
959
              "      <td>47</td>\n",
960
              "      <td>0.773300</td>\n",
961
              "    </tr>\n",
962
              "    <tr>\n",
963
              "      <td>48</td>\n",
964
              "      <td>0.739800</td>\n",
965
              "    </tr>\n",
966
              "    <tr>\n",
967
              "      <td>49</td>\n",
968
              "      <td>0.830400</td>\n",
969
              "    </tr>\n",
970
              "    <tr>\n",
971
              "      <td>50</td>\n",
972
              "      <td>0.934300</td>\n",
973
              "    </tr>\n",
974
              "    <tr>\n",
975
              "      <td>51</td>\n",
976
              "      <td>0.864700</td>\n",
977
              "    </tr>\n",
978
              "    <tr>\n",
979
              "      <td>52</td>\n",
980
              "      <td>1.015700</td>\n",
981
              "    </tr>\n",
982
              "    <tr>\n",
983
              "      <td>53</td>\n",
984
              "      <td>0.777400</td>\n",
985
              "    </tr>\n",
986
              "    <tr>\n",
987
              "      <td>54</td>\n",
988
              "      <td>0.705100</td>\n",
989
              "    </tr>\n",
990
              "    <tr>\n",
991
              "      <td>55</td>\n",
992
              "      <td>0.844800</td>\n",
993
              "    </tr>\n",
994
              "    <tr>\n",
995
              "      <td>56</td>\n",
996
              "      <td>0.861400</td>\n",
997
              "    </tr>\n",
998
              "    <tr>\n",
999
              "      <td>57</td>\n",
1000
              "      <td>0.848500</td>\n",
1001
              "    </tr>\n",
1002
              "    <tr>\n",
1003
              "      <td>58</td>\n",
1004
              "      <td>0.768700</td>\n",
1005
              "    </tr>\n",
1006
              "    <tr>\n",
1007
              "      <td>59</td>\n",
1008
              "      <td>0.684100</td>\n",
1009
              "    </tr>\n",
1010
              "    <tr>\n",
1011
              "      <td>60</td>\n",
1012
              "      <td>0.956200</td>\n",
1013
              "    </tr>\n",
1014
              "  </tbody>\n",
1015
              "</table><p>"
1016
            ]
1017
          },
1018
          "metadata": {}
1019
        }
1020
      ],
1021
      "source": [
1022
        "trainer_stats = trainer.train()"
1023
      ]
1024
    },
1025
    {
1026
      "cell_type": "code",
1027
      "execution_count": 24,
1028
      "metadata": {
1029
        "id": "pCqnaKmlO1U9",
1030
        "colab": {
1031
          "base_uri": "https://localhost:8080/"
1032
        },
1033
        "outputId": "df7922d2-20c8-4c99-99dd-10eff2caf2e6"
1034
      },
1035
      "outputs": [
1036
        {
1037
          "output_type": "stream",
1038
          "name": "stdout",
1039
          "text": [
1040
            "178.5531 seconds used for training.\n",
1041
            "2.98 minutes used for training.\n",
1042
            "Peak reserved memory = 3.324 GB.\n",
1043
            "Peak reserved memory for training = 0.0 GB.\n",
1044
            "Peak reserved memory % of max memory = 22.539 %.\n",
1045
            "Peak reserved memory for training % of max memory = 0.0 %.\n"
1046
          ]
1047
        }
1048
      ],
1049
      "source": [
1050
        "#@title Show final memory and time stats\n",
1051
        "used_memory = round(torch.cuda.max_memory_reserved() / 1024 / 1024 / 1024, 3)\n",
1052
        "used_memory_for_lora = round(used_memory - start_gpu_memory, 3)\n",
1053
        "used_percentage = round(used_memory         /max_memory*100, 3)\n",
1054
        "lora_percentage = round(used_memory_for_lora/max_memory*100, 3)\n",
1055
        "print(f\"{trainer_stats.metrics['train_runtime']} seconds used for training.\")\n",
1056
        "print(f\"{round(trainer_stats.metrics['train_runtime']/60, 2)} minutes used for training.\")\n",
1057
        "print(f\"Peak reserved memory = {used_memory} GB.\")\n",
1058
        "print(f\"Peak reserved memory for training = {used_memory_for_lora} GB.\")\n",
1059
        "print(f\"Peak reserved memory % of max memory = {used_percentage} %.\")\n",
1060
        "print(f\"Peak reserved memory for training % of max memory = {lora_percentage} %.\")"
1061
      ]
1062
    },
1063
    {
1064
      "cell_type": "markdown",
1065
      "metadata": {
1066
        "id": "ekOmTR1hSNcr"
1067
      },
1068
      "source": [
1069
        "<a name=\"Inference\"></a>\n",
1070
        "### Inference\n",
1071
        "Let's run the model! You can change the instruction and input - leave the output blank!\n",
1072
        "\n",
1073
        "**[NEW] Try 2x faster inference in a free Colab for Llama-3.1 8b Instruct [here](https://colab.research.google.com/drive/1T-YBVfnphoVc8E2E854qF3jdia2Ll2W2?usp=sharing)**\n",
1074
        "\n",
1075
        "We use `min_p = 0.1` and `temperature = 1.5`. Read this [Tweet](https://x.com/menhguin/status/1826132708508213629) for more information on why."
1076
      ]
1077
    },
1078
    {
1079
      "cell_type": "markdown",
1080
      "metadata": {
1081
        "id": "CrSvZObor0lY"
1082
      },
1083
      "source": [
1084
        " You can also use a `TextStreamer` for continuous inference - so you can see the generation token by token, instead of waiting the whole time!"
1085
      ]
1086
    },
1087
    {
1088
      "cell_type": "code",
1089
      "source": [
1090
        "from unsloth.chat_templates import get_chat_template\n",
1091
        "from transformers import TextStreamer\n",
1092
        "\n",
1093
        "# Setup tokenizer with Llama-3.1 template\n",
1094
        "tokenizer = get_chat_template(\n",
1095
        "    tokenizer,\n",
1096
        "    chat_template = \"llama-3.1\",\n",
1097
        ")\n",
1098
        "\n",
1099
        "# Enable faster inference\n",
1100
        "FastLanguageModel.for_inference(model)\n",
1101
        "\n",
1102
        "# Example medical question from our dataset\n",
1103
        "messages = [\n",
1104
        "    {\"role\": \"user\", \"content\": \"Answer this question truthfully: What is the relationship between very low Mg2+ levels, PTH levels, and Ca2+ levels?\"},\n",
1105
        "]\n",
1106
        "\n",
1107
        "# Standard generation\n",
1108
        "inputs = tokenizer.apply_chat_template(\n",
1109
        "    messages,\n",
1110
        "    tokenize = True,\n",
1111
        "    add_generation_prompt = True,\n",
1112
        "    return_tensors = \"pt\",\n",
1113
        ").to(\"cuda\")\n",
1114
        "\n",
1115
        "print(\"Standard Generation:\")\n",
1116
        "outputs = model.generate(\n",
1117
        "    input_ids = inputs,\n",
1118
        "    max_new_tokens = 128,\n",
1119
        "    use_cache = True,\n",
1120
        "    temperature = 0.7,  # Lower temperature for medical answers to be more precise\n",
1121
        "    min_p = 0.1\n",
1122
        ")\n",
1123
        "print(tokenizer.batch_decode(outputs))\n",
1124
        "\n",
1125
        "# Streaming generation\n",
1126
        "print(\"\\nStreaming Generation:\")\n",
1127
        "text_streamer = TextStreamer(tokenizer, skip_prompt = True)\n",
1128
        "inputs = tokenizer.apply_chat_template(\n",
1129
        "    messages,\n",
1130
        "    tokenize = True,\n",
1131
        "    add_generation_prompt = True,\n",
1132
        "    return_tensors = \"pt\",\n",
1133
        ").to(\"cuda\")\n",
1134
        "\n",
1135
        "_ = model.generate(\n",
1136
        "    input_ids = inputs,\n",
1137
        "    streamer = text_streamer,\n",
1138
        "    max_new_tokens = 128,\n",
1139
        "    use_cache = True,\n",
1140
        "    temperature = 0.7,\n",
1141
        "    min_p = 0.1\n",
1142
        ")"
1143
      ],
1144
      "metadata": {
1145
        "colab": {
1146
          "base_uri": "https://localhost:8080/"
1147
        },
1148
        "id": "qsrXkJwN3jvL",
1149
        "outputId": "4492cea0-4064-4be7-d623-b68bee1101ce"
1150
      },
1151
      "execution_count": 18,
1152
      "outputs": [
1153
        {
1154
          "output_type": "stream",
1155
          "name": "stderr",
1156
          "text": [
1157
            "The attention mask is not set and cannot be inferred from input because pad token is same as eos token. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.\n"
1158
          ]
1159
        },
1160
        {
1161
          "output_type": "stream",
1162
          "name": "stdout",
1163
          "text": [
1164
            "Standard Generation:\n",
1165
            "['<|begin_of_text|><|start_header_id|>system<|end_header_id|>\\n\\nCutting Knowledge Date: December 2023\\nToday Date: 26 July 2024\\n\\n<|eot_id|><|start_header_id|>user<|end_header_id|>\\n\\nAnswer this question truthfully: What is the relationship between very low Mg2+ levels, PTH levels, and Ca2+ levels?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\\n\\nVery low Mg2+ levels, PTH levels, and Ca2+ levels are related.<|eot_id|>']\n",
1166
            "\n",
1167
            "Streaming Generation:\n",
1168
            "Very low Mg2+ levels are associated with very high PTH levels and very low Ca2+ levels.<|eot_id|>\n"
1169
          ]
1170
        }
1171
      ]
1172
    },
1173
    {
1174
      "cell_type": "code",
1175
      "source": [
1176
        "# New medical question\n",
1177
        "messages = [\n",
1178
        "    {\"role\": \"user\", \"content\": \"Answer this question truthfully: Who is roberto baggio?\"},\n",
1179
        "]\n",
1180
        "\n",
1181
        "# Standard generation\n",
1182
        "inputs = tokenizer.apply_chat_template(\n",
1183
        "    messages,\n",
1184
        "    tokenize = True,\n",
1185
        "    add_generation_prompt = True,\n",
1186
        "    return_tensors = \"pt\",\n",
1187
        ").to(\"cuda\")\n",
1188
        "\n",
1189
        "print(\"Standard Generation:\")\n",
1190
        "outputs = model.generate(\n",
1191
        "    input_ids = inputs,\n",
1192
        "    max_new_tokens = 128,\n",
1193
        "    use_cache = True,\n",
1194
        "    temperature = 0.7,\n",
1195
        "    min_p = 0.1\n",
1196
        ")\n",
1197
        "print(tokenizer.batch_decode(outputs))\n",
1198
        "\n",
1199
        "# Streaming generation\n",
1200
        "print(\"\\nStreaming Generation:\")\n",
1201
        "text_streamer = TextStreamer(tokenizer, skip_prompt = True)\n",
1202
        "inputs = tokenizer.apply_chat_template(\n",
1203
        "    messages,\n",
1204
        "    tokenize = True,\n",
1205
        "    add_generation_prompt = True,\n",
1206
        "    return_tensors = \"pt\",\n",
1207
        ").to(\"cuda\")\n",
1208
        "\n",
1209
        "_ = model.generate(\n",
1210
        "    input_ids = inputs,\n",
1211
        "    streamer = text_streamer,\n",
1212
        "    max_new_tokens = 128,\n",
1213
        "    use_cache = True,\n",
1214
        "    temperature = 0.7,\n",
1215
        "    min_p = 0.1\n",
1216
        ")"
1217
      ],
1218
      "metadata": {
1219
        "colab": {
1220
          "base_uri": "https://localhost:8080/"
1221
        },
1222
        "id": "fcRMYYe74ovE",
1223
        "outputId": "aba9c862-5ab7-418e-f875-b781cf9e8b0c"
1224
      },
1225
      "execution_count": 21,
1226
      "outputs": [
1227
        {
1228
          "output_type": "stream",
1229
          "name": "stdout",
1230
          "text": [
1231
            "Standard Generation:\n",
1232
            "['<|begin_of_text|><|start_header_id|>system<|end_header_id|>\\n\\nCutting Knowledge Date: December 2023\\nToday Date: 26 July 2024\\n\\n<|eot_id|><|start_header_id|>user<|end_header_id|>\\n\\nAnswer this question truthfully: Who is roberto baggio?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\\n\\nRoberto Baggio is a former Italian professional footballer who played as a midfielder for the Italy national team. He is widely regarded as one of the greatest players of his generation and is known for his exceptional dribbling skills and vision on the pitch. Baggio played for several top-tier clubs, including Juventus, AC Milan, and Inter Milan, and won numerous honors, including the FIFA World Cup Golden Ball award. He is also a legendary figure in Italian football, known for his iconic goal against Brazil in the 1994 World Cup. Baggio is now a coach and a commentator for Italian television, and is still widely respected and admired']\n",
1233
            "\n",
1234
            "Streaming Generation:\n",
1235
            "Roberto Baggio is an Italian former professional footballer and coach. He is a former Italy international and is considered one of the greatest players of his generation. Baggio is best known for his time with Juventus and AC Milan, where he won numerous titles and individual awards. He is also known for his iconic goals, including the famous \"Di Stéfano\" goal in the 1996 World Cup.<|eot_id|>\n"
1236
          ]
1237
        }
1238
      ]
1239
    },
1240
    {
1241
      "cell_type": "code",
1242
      "source": [
1243
        "# Test with a novel medical question\n",
1244
        "messages = [\n",
1245
        "    {\"role\": \"user\", \"content\": \"Answer this question truthfully: What are the potential risks and benefits of using ACE inhibitors in a patient with diabetic nephropathy who also has bilateral renal artery stenosis?\"},\n",
1246
        "]\n",
1247
        "\n",
1248
        "# Standard generation\n",
1249
        "inputs = tokenizer.apply_chat_template(\n",
1250
        "    messages,\n",
1251
        "    tokenize = True,\n",
1252
        "    add_generation_prompt = True,\n",
1253
        "    return_tensors = \"pt\",\n",
1254
        ").to(\"cuda\")\n",
1255
        "\n",
1256
        "print(\"Standard Generation:\")\n",
1257
        "outputs = model.generate(\n",
1258
        "    input_ids = inputs,\n",
1259
        "    max_new_tokens = 2048,  # Increased for more detailed response\n",
1260
        "    use_cache = True,\n",
1261
        "    temperature = 0.7,\n",
1262
        "    min_p = 0.1\n",
1263
        ")\n",
1264
        "print(tokenizer.batch_decode(outputs))"
1265
      ],
1266
      "metadata": {
1267
        "colab": {
1268
          "base_uri": "https://localhost:8080/"
1269
        },
1270
        "id": "rfXL8wK4544g",
1271
        "outputId": "93cfcb0c-bf4a-4042-be88-bd1844f74092"
1272
      },
1273
      "execution_count": 26,
1274
      "outputs": [
1275
        {
1276
          "output_type": "stream",
1277
          "name": "stdout",
1278
          "text": [
1279
            "Standard Generation:\n",
1280
            "[\"<|begin_of_text|><|start_header_id|>system<|end_header_id|>\\n\\nCutting Knowledge Date: December 2023\\nToday Date: 26 July 2024\\n\\n<|eot_id|><|start_header_id|>user<|end_header_id|>\\n\\nAnswer this question truthfully: What are the potential risks and benefits of using ACE inhibitors in a patient with diabetic nephropathy who also has bilateral renal artery stenosis?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\\n\\nACE inhibitors are a type of medication that can be used to treat high blood pressure and other conditions. In a patient with diabetic nephropathy who also has bilateral renal artery stenosis, ACE inhibitors can have both potential risks and benefits. The benefits of ACE inhibitors in this patient include the potential to improve blood pressure control and slow the progression of diabetic nephropathy. However, the risks of ACE inhibitors in this patient include the potential for worsening renal function and increased risk of kidney failure. It is important to carefully monitor the patient's renal function and blood pressure while using ACE inhibitors in this patient.<|eot_id|>\"]\n"
1281
          ]
1282
        }
1283
      ]
1284
    },
1285
    {
1286
      "cell_type": "markdown",
1287
      "metadata": {
1288
        "id": "uMuVrWbjAzhc"
1289
      },
1290
      "source": [
1291
        "<a name=\"Save\"></a>\n",
1292
        "### Saving, loading finetuned models\n",
1293
        "To save the final model as LoRA adapters, either use Huggingface's `push_to_hub` for an online save or `save_pretrained` for a local save.\n",
1294
        "\n",
1295
        "**[NOTE]** This ONLY saves the LoRA adapters, and not the full model. To save to 16bit or GGUF, scroll down!"
1296
      ]
1297
    },
1298
    {
1299
      "cell_type": "code",
1300
      "execution_count": null,
1301
      "metadata": {
1302
        "id": "upcOlWe7A1vc",
1303
        "colab": {
1304
          "base_uri": "https://localhost:8080/"
1305
        },
1306
        "outputId": "c962e43a-2027-4a39-ea03-870b707a22d4"
1307
      },
1308
      "outputs": [
1309
        {
1310
          "output_type": "execute_result",
1311
          "data": {
1312
            "text/plain": [
1313
              "('lora_model/tokenizer_config.json',\n",
1314
              " 'lora_model/special_tokens_map.json',\n",
1315
              " 'lora_model/tokenizer.json')"
1316
            ]
1317
          },
1318
          "metadata": {},
1319
          "execution_count": 17
1320
        }
1321
      ],
1322
      "source": [
1323
        "model.save_pretrained(\"lora_model\") # Local saving\n",
1324
        "tokenizer.save_pretrained(\"lora_model\")\n",
1325
        "# model.push_to_hub(\"your_name/lora_model\", token = \"...\") # Online saving\n",
1326
        "# tokenizer.push_to_hub(\"your_name/lora_model\", token = \"...\") # Online saving"
1327
      ]
1328
    },
1329
    {
1330
      "cell_type": "markdown",
1331
      "metadata": {
1332
        "id": "AEEcJ4qfC7Lp"
1333
      },
1334
      "source": [
1335
        "Now if you want to load the LoRA adapters we just saved for inference, set `False` to `True`:"
1336
      ]
1337
    },
1338
    {
1339
      "cell_type": "code",
1340
      "execution_count": null,
1341
      "metadata": {
1342
        "id": "MKX_XKs_BNZR",
1343
        "colab": {
1344
          "base_uri": "https://localhost:8080/"
1345
        },
1346
        "outputId": "f22dbd75-ea37-48bb-9f75-4178aebe9353"
1347
      },
1348
      "outputs": [
1349
        {
1350
          "output_type": "stream",
1351
          "name": "stdout",
1352
          "text": [
1353
            "The Eiffel Tower, located in the heart of Paris, stands tall among the city's historic and cultural landmarks. This iron structure, standing at an impressive 324 meters high, offers breathtaking views of the City of Light's iconic landscape. The Eiffel Tower was built for the 1889 World's Fair and has since become a symbol of French engineering and culture.<|eot_id|>\n"
1354
          ]
1355
        }
1356
      ],
1357
      "source": [
1358
        "if False:\n",
1359
        "    from unsloth import FastLanguageModel\n",
1360
        "    model, tokenizer = FastLanguageModel.from_pretrained(\n",
1361
        "        model_name = \"lora_model\", # YOUR MODEL YOU USED FOR TRAINING\n",
1362
        "        max_seq_length = max_seq_length,\n",
1363
        "        dtype = dtype,\n",
1364
        "        load_in_4bit = load_in_4bit,\n",
1365
        "    )\n",
1366
        "    FastLanguageModel.for_inference(model) # Enable native 2x faster inference\n",
1367
        "\n",
1368
        "messages = [\n",
1369
        "    {\"role\": \"user\", \"content\": \"Describe a tall tower in the capital of France.\"},\n",
1370
        "]\n",
1371
        "inputs = tokenizer.apply_chat_template(\n",
1372
        "    messages,\n",
1373
        "    tokenize = True,\n",
1374
        "    add_generation_prompt = True, # Must add for generation\n",
1375
        "    return_tensors = \"pt\",\n",
1376
        ").to(\"cuda\")\n",
1377
        "\n",
1378
        "from transformers import TextStreamer\n",
1379
        "text_streamer = TextStreamer(tokenizer, skip_prompt = True)\n",
1380
        "_ = model.generate(input_ids = inputs, streamer = text_streamer, max_new_tokens = 128,\n",
1381
        "                   use_cache = True, temperature = 1.5, min_p = 0.1)"
1382
      ]
1383
    },
1384
    {
1385
      "cell_type": "markdown",
1386
      "metadata": {
1387
        "id": "QQMjaNrjsU5_"
1388
      },
1389
      "source": [
1390
        "You can also use Hugging Face's `AutoModelForPeftCausalLM`. Only use this if you do not have `unsloth` installed. It can be hopelessly slow, since `4bit` model downloading is not supported, and Unsloth's **inference is 2x faster**."
1391
      ]
1392
    },
1393
    {
1394
      "cell_type": "code",
1395
      "execution_count": null,
1396
      "metadata": {
1397
        "id": "yFfaXG0WsQuE"
1398
      },
1399
      "outputs": [],
1400
      "source": [
1401
        "if False:\n",
1402
        "    # I highly do NOT suggest - use Unsloth if possible\n",
1403
        "    from peft import AutoPeftModelForCausalLM\n",
1404
        "    from transformers import AutoTokenizer\n",
1405
        "    model = AutoPeftModelForCausalLM.from_pretrained(\n",
1406
        "        \"lora_model\", # YOUR MODEL YOU USED FOR TRAINING\n",
1407
        "        load_in_4bit = load_in_4bit,\n",
1408
        "    )\n",
1409
        "    tokenizer = AutoTokenizer.from_pretrained(\"lora_model\")"
1410
      ]
1411
    },
1412
    {
1413
      "cell_type": "markdown",
1414
      "metadata": {
1415
        "id": "f422JgM9sdVT"
1416
      },
1417
      "source": [
1418
        "### Saving to float16 for VLLM\n",
1419
        "\n",
1420
        "We also support saving to `float16` directly. Select `merged_16bit` for float16 or `merged_4bit` for int4. We also allow `lora` adapters as a fallback. Use `push_to_hub_merged` to upload to your Hugging Face account! You can go to https://huggingface.co/settings/tokens for your personal tokens."
1421
      ]
1422
    },
1423
    {
1424
      "cell_type": "code",
1425
      "execution_count": null,
1426
      "metadata": {
1427
        "id": "iHjt_SMYsd3P"
1428
      },
1429
      "outputs": [],
1430
      "source": [
1431
        "# Merge to 16bit\n",
1432
        "if False: model.save_pretrained_merged(\"model\", tokenizer, save_method = \"merged_16bit\",)\n",
1433
        "if False: model.push_to_hub_merged(\"hf/model\", tokenizer, save_method = \"merged_16bit\", token = \"\")\n",
1434
        "\n",
1435
        "# Merge to 4bit\n",
1436
        "if False: model.save_pretrained_merged(\"model\", tokenizer, save_method = \"merged_4bit\",)\n",
1437
        "if False: model.push_to_hub_merged(\"hf/model\", tokenizer, save_method = \"merged_4bit\", token = \"\")\n",
1438
        "\n",
1439
        "# Just LoRA adapters\n",
1440
        "if False: model.save_pretrained_merged(\"model\", tokenizer, save_method = \"lora\",)\n",
1441
        "if False: model.push_to_hub_merged(\"hf/model\", tokenizer, save_method = \"lora\", token = \"\")"
1442
      ]
1443
    },
1444
    {
1445
      "cell_type": "markdown",
1446
      "metadata": {
1447
        "id": "TCv4vXHd61i7"
1448
      },
1449
      "source": [
1450
        "### GGUF / llama.cpp Conversion\n",
1451
        "To save to `GGUF` / `llama.cpp`, we support it natively now! We clone `llama.cpp` and we default save it to `q8_0`. We allow all methods like `q4_k_m`. Use `save_pretrained_gguf` for local saving and `push_to_hub_gguf` for uploading to HF.\n",
1452
        "\n",
1453
        "Some supported quant methods (full list on our [Wiki page](https://github.com/unslothai/unsloth/wiki#gguf-quantization-options)):\n",
1454
        "* `q8_0` - Fast conversion. High resource use, but generally acceptable.\n",
1455
        "* `q4_k_m` - Recommended. Uses Q6_K for half of the attention.wv and feed_forward.w2 tensors, else Q4_K.\n",
1456
        "* `q5_k_m` - Recommended. Uses Q6_K for half of the attention.wv and feed_forward.w2 tensors, else Q5_K.\n",
1457
        "\n",
1458
        "[**NEW**] To finetune and auto export to Ollama, try our [Ollama notebook](https://colab.research.google.com/drive/1WZDi7APtQ9VsvOrQSSC5DDtxq159j8iZ?usp=sharing)"
1459
      ]
1460
    },
1461
    {
1462
      "cell_type": "code",
1463
      "execution_count": null,
1464
      "metadata": {
1465
        "id": "FqfebeAdT073"
1466
      },
1467
      "outputs": [],
1468
      "source": [
1469
        "# Save to 8bit Q8_0\n",
1470
        "if False: model.save_pretrained_gguf(\"model\", tokenizer,)\n",
1471
        "# Remember to go to https://huggingface.co/settings/tokens for a token!\n",
1472
        "# And change hf to your username!\n",
1473
        "if False: model.push_to_hub_gguf(\"hf/model\", tokenizer, token = \"\")\n",
1474
        "\n",
1475
        "# Save to 16bit GGUF\n",
1476
        "if False: model.save_pretrained_gguf(\"model\", tokenizer, quantization_method = \"f16\")\n",
1477
        "if False: model.push_to_hub_gguf(\"hf/model\", tokenizer, quantization_method = \"f16\", token = \"\")\n",
1478
        "\n",
1479
        "# Save to q4_k_m GGUF\n",
1480
        "if False: model.save_pretrained_gguf(\"model\", tokenizer, quantization_method = \"q4_k_m\")\n",
1481
        "if False: model.push_to_hub_gguf(\"hf/model\", tokenizer, quantization_method = \"q4_k_m\", token = \"\")\n",
1482
        "\n",
1483
        "# Save to multiple GGUF options - much faster if you want multiple!\n",
1484
        "if False:\n",
1485
        "    model.push_to_hub_gguf(\n",
1486
        "        \"hf/model\", # Change hf to your username!\n",
1487
        "        tokenizer,\n",
1488
        "        quantization_method = [\"q4_k_m\", \"q8_0\", \"q5_k_m\",],\n",
1489
        "        token = \"\", # Get a token at https://huggingface.co/settings/tokens\n",
1490
        "    )"
1491
      ]
1492
    },
1493
    {
1494
      "cell_type": "markdown",
1495
      "metadata": {
1496
        "id": "bDp0zNpwe6U_"
1497
      },
1498
      "source": [
1499
        "Now, use the `model-unsloth.gguf` file or `model-unsloth-Q4_K_M.gguf` file in `llama.cpp` or a UI based system like `GPT4All`. You can install GPT4All by going [here](https://gpt4all.io/index.html).\n",
1500
        "\n",
1501
        "**[NEW] Try 2x faster inference in a free Colab for Llama-3.1 8b Instruct [here](https://colab.research.google.com/drive/1T-YBVfnphoVc8E2E854qF3jdia2Ll2W2?usp=sharing)**"
1502
      ]
1503
    },
1504
    {
1505
      "cell_type": "markdown",
1506
      "metadata": {
1507
        "id": "Zt9CHJqO6p30"
1508
      },
1509
      "source": [
1510
        "And we're done! If you have any questions on Unsloth, we have a [Discord](https://discord.gg/u54VK8m8tk) channel! If you find any bugs or want to keep updated with the latest LLM stuff, or need help, join projects etc, feel free to join our Discord!\n",
1511
        "\n",
1512
        "Some other links:\n",
1513
        "1. Zephyr DPO 2x faster [free Colab](https://colab.research.google.com/drive/15vttTpzzVXv_tJwEk-hIcQ0S9FcEWvwP?usp=sharing)\n",
1514
        "2. Llama 7b 2x faster [free Colab](https://colab.research.google.com/drive/1lBzz5KeZJKXjvivbYvmGarix9Ao6Wxe5?usp=sharing)\n",
1515
        "3. TinyLlama 4x faster full Alpaca 52K in 1 hour [free Colab](https://colab.research.google.com/drive/1AZghoNBQaMDgWJpi4RbffGM1h6raLUj9?usp=sharing)\n",
1516
        "4. CodeLlama 34b 2x faster [A100 on Colab](https://colab.research.google.com/drive/1y7A0AxE3y8gdj4AVkl2aZX47Xu3P1wJT?usp=sharing)\n",
1517
        "5. Mistral 7b [free Kaggle version](https://www.kaggle.com/code/danielhanchen/kaggle-mistral-7b-unsloth-notebook)\n",
1518
        "6. We also did a [blog](https://huggingface.co/blog/unsloth-trl) with 🤗 HuggingFace, and we're in the TRL [docs](https://huggingface.co/docs/trl/main/en/sft_trainer#accelerate-fine-tuning-2x-using-unsloth)!\n",
1519
        "7. `ChatML` for ShareGPT datasets, [conversational notebook](https://colab.research.google.com/drive/1Aau3lgPzeZKQ-98h69CCu1UJcvIBLmy2?usp=sharing)\n",
1520
        "8. Text completions like novel writing [notebook](https://colab.research.google.com/drive/1ef-tab5bhkvWmBOObepl1WgJvfvSzn5Q?usp=sharing)\n",
1521
        "9. [**NEW**] We make Phi-3 Medium / Mini **2x faster**! See our [Phi-3 Medium notebook](https://colab.research.google.com/drive/1hhdhBa1j_hsymiW9m-WzxQtgqTH_NHqi?usp=sharing)\n",
1522
        "10. [**NEW**] We make Gemma-2 9b / 27b **2x faster**! See our [Gemma-2 9b notebook](https://colab.research.google.com/drive/1vIrqH5uYDQwsJ4-OO3DErvuv4pBgVwk4?usp=sharing)\n",
1523
        "11. [**NEW**] To finetune and auto export to Ollama, try our [Ollama notebook](https://colab.research.google.com/drive/1WZDi7APtQ9VsvOrQSSC5DDtxq159j8iZ?usp=sharing)\n",
1524
        "12. [**NEW**] We make Mistral NeMo 12B 2x faster and fit in under 12GB of VRAM! [Mistral NeMo notebook](https://colab.research.google.com/drive/17d3U-CAIwzmbDRqbZ9NnpHxCkmXB6LZ0?usp=sharing)\n",
1525
        "\n",
1526
        "<div class=\"align-center\">\n",
1527
        "  <a href=\"https://github.com/unslothai/unsloth\"><img src=\"https://github.com/unslothai/unsloth/raw/main/images/unsloth%20new%20logo.png\" width=\"115\"></a>\n",
1528
        "  <a href=\"https://discord.gg/u54VK8m8tk\"><img src=\"https://github.com/unslothai/unsloth/raw/main/images/Discord.png\" width=\"145\"></a>\n",
1529
        "  <a href=\"https://ko-fi.com/unsloth\"><img src=\"https://github.com/unslothai/unsloth/raw/main/images/Kofi button.png\" width=\"145\"></a></a> Support our work if you can! Thanks!\n",
1530
        "</div>"
1531
      ]
1532
    }
1533
  ],
1534
  "metadata": {
1535
    "accelerator": "GPU",
1536
    "colab": {
1537
      "gpuType": "T4",
1538
      "provenance": [],
1539
      "include_colab_link": true
1540
    },
1541
    "kernelspec": {
1542
      "display_name": "Python 3",
1543
      "name": "python3"
1544
    },
1545
    "language_info": {
1546
      "name": "python"
1547
    },
1548
    "widgets": {
1549
      "application/vnd.jupyter.widget-state+json": {
1550
        "470008e304ad4102a760e39b93dc7428": {
1551
          "model_module": "@jupyter-widgets/controls",
1552
          "model_name": "HBoxModel",
1553
          "model_module_version": "1.5.0",
1554
          "state": {
1555
            "_dom_classes": [],
1556
            "_model_module": "@jupyter-widgets/controls",
1557
            "_model_module_version": "1.5.0",
1558
            "_model_name": "HBoxModel",
1559
            "_view_count": null,
1560
            "_view_module": "@jupyter-widgets/controls",
1561
            "_view_module_version": "1.5.0",
1562
            "_view_name": "HBoxView",
1563
            "box_style": "",
1564
            "children": [
1565
              "IPY_MODEL_13e72e122b75476eb9056c4a75089d71",
1566
              "IPY_MODEL_972895da680d49de8bc58957ce4fe341",
1567
              "IPY_MODEL_90346592f9244def90817ea11422648e"
1568
            ],
1569
            "layout": "IPY_MODEL_cef09d4426c84eb09a8772ad22b02903"
1570
          }
1571
        },
1572
        "13e72e122b75476eb9056c4a75089d71": {
1573
          "model_module": "@jupyter-widgets/controls",
1574
          "model_name": "HTMLModel",
1575
          "model_module_version": "1.5.0",
1576
          "state": {
1577
            "_dom_classes": [],
1578
            "_model_module": "@jupyter-widgets/controls",
1579
            "_model_module_version": "1.5.0",
1580
            "_model_name": "HTMLModel",
1581
            "_view_count": null,
1582
            "_view_module": "@jupyter-widgets/controls",
1583
            "_view_module_version": "1.5.0",
1584
            "_view_name": "HTMLView",
1585
            "description": "",
1586
            "description_tooltip": null,
1587
            "layout": "IPY_MODEL_e6c28d862df24f8ebfcd956921fa0c6d",
1588
            "placeholder": "​",
1589
            "style": "IPY_MODEL_cf45cca2721842f5bc51d8e3db6b1fa6",
1590
            "value": "model.safetensors: 100%"
1591
          }
1592
        },
1593
        "972895da680d49de8bc58957ce4fe341": {
1594
          "model_module": "@jupyter-widgets/controls",
1595
          "model_name": "FloatProgressModel",
1596
          "model_module_version": "1.5.0",
1597
          "state": {
1598
            "_dom_classes": [],
1599
            "_model_module": "@jupyter-widgets/controls",
1600
            "_model_module_version": "1.5.0",
1601
            "_model_name": "FloatProgressModel",
1602
            "_view_count": null,
1603
            "_view_module": "@jupyter-widgets/controls",
1604
            "_view_module_version": "1.5.0",
1605
            "_view_name": "ProgressView",
1606
            "bar_style": "danger",
1607
            "description": "",
1608
            "description_tooltip": null,
1609
            "layout": "IPY_MODEL_3af46468e29348adbf3c2749394767bc",
1610
            "max": 2242762780,
1611
            "min": 0,
1612
            "orientation": "horizontal",
1613
            "style": "IPY_MODEL_e7490d0da8854fc6abca6b9ecfb2fdaf",
1614
            "value": 2242762567
1615
          }
1616
        },
1617
        "90346592f9244def90817ea11422648e": {
1618
          "model_module": "@jupyter-widgets/controls",
1619
          "model_name": "HTMLModel",
1620
          "model_module_version": "1.5.0",
1621
          "state": {
1622
            "_dom_classes": [],
1623
            "_model_module": "@jupyter-widgets/controls",
1624
            "_model_module_version": "1.5.0",
1625
            "_model_name": "HTMLModel",
1626
            "_view_count": null,
1627
            "_view_module": "@jupyter-widgets/controls",
1628
            "_view_module_version": "1.5.0",
1629
            "_view_name": "HTMLView",
1630
            "description": "",
1631
            "description_tooltip": null,
1632
            "layout": "IPY_MODEL_0c356b068a6f498da7bcc5102d7a3f12",
1633
            "placeholder": "​",
1634
            "style": "IPY_MODEL_1a5e5be75adb4466b90b29d4aecc9d7b",
1635
            "value": " 2.24G/2.24G [00:16&lt;00:00, 145MB/s]"
1636
          }
1637
        },
1638
        "cef09d4426c84eb09a8772ad22b02903": {
1639
          "model_module": "@jupyter-widgets/base",
1640
          "model_name": "LayoutModel",
1641
          "model_module_version": "1.2.0",
1642
          "state": {
1643
            "_model_module": "@jupyter-widgets/base",
1644
            "_model_module_version": "1.2.0",
1645
            "_model_name": "LayoutModel",
1646
            "_view_count": null,
1647
            "_view_module": "@jupyter-widgets/base",
1648
            "_view_module_version": "1.2.0",
1649
            "_view_name": "LayoutView",
1650
            "align_content": null,
1651
            "align_items": null,
1652
            "align_self": null,
1653
            "border": null,
1654
            "bottom": null,
1655
            "display": null,
1656
            "flex": null,
1657
            "flex_flow": null,
1658
            "grid_area": null,
1659
            "grid_auto_columns": null,
1660
            "grid_auto_flow": null,
1661
            "grid_auto_rows": null,
1662
            "grid_column": null,
1663
            "grid_gap": null,
1664
            "grid_row": null,
1665
            "grid_template_areas": null,
1666
            "grid_template_columns": null,
1667
            "grid_template_rows": null,
1668
            "height": null,
1669
            "justify_content": null,
1670
            "justify_items": null,
1671
            "left": null,
1672
            "margin": null,
1673
            "max_height": null,
1674
            "max_width": null,
1675
            "min_height": null,
1676
            "min_width": null,
1677
            "object_fit": null,
1678
            "object_position": null,
1679
            "order": null,
1680
            "overflow": null,
1681
            "overflow_x": null,
1682
            "overflow_y": null,
1683
            "padding": null,
1684
            "right": null,
1685
            "top": null,
1686
            "visibility": null,
1687
            "width": null
1688
          }
1689
        },
1690
        "e6c28d862df24f8ebfcd956921fa0c6d": {
1691
          "model_module": "@jupyter-widgets/base",
1692
          "model_name": "LayoutModel",
1693
          "model_module_version": "1.2.0",
1694
          "state": {
1695
            "_model_module": "@jupyter-widgets/base",
1696
            "_model_module_version": "1.2.0",
1697
            "_model_name": "LayoutModel",
1698
            "_view_count": null,
1699
            "_view_module": "@jupyter-widgets/base",
1700
            "_view_module_version": "1.2.0",
1701
            "_view_name": "LayoutView",
1702
            "align_content": null,
1703
            "align_items": null,
1704
            "align_self": null,
1705
            "border": null,
1706
            "bottom": null,
1707
            "display": null,
1708
            "flex": null,
1709
            "flex_flow": null,
1710
            "grid_area": null,
1711
            "grid_auto_columns": null,
1712
            "grid_auto_flow": null,
1713
            "grid_auto_rows": null,
1714
            "grid_column": null,
1715
            "grid_gap": null,
1716
            "grid_row": null,
1717
            "grid_template_areas": null,
1718
            "grid_template_columns": null,
1719
            "grid_template_rows": null,
1720
            "height": null,
1721
            "justify_content": null,
1722
            "justify_items": null,
1723
            "left": null,
1724
            "margin": null,
1725
            "max_height": null,
1726
            "max_width": null,
1727
            "min_height": null,
1728
            "min_width": null,
1729
            "object_fit": null,
1730
            "object_position": null,
1731
            "order": null,
1732
            "overflow": null,
1733
            "overflow_x": null,
1734
            "overflow_y": null,
1735
            "padding": null,
1736
            "right": null,
1737
            "top": null,
1738
            "visibility": null,
1739
            "width": null
1740
          }
1741
        },
1742
        "cf45cca2721842f5bc51d8e3db6b1fa6": {
1743
          "model_module": "@jupyter-widgets/controls",
1744
          "model_name": "DescriptionStyleModel",
1745
          "model_module_version": "1.5.0",
1746
          "state": {
1747
            "_model_module": "@jupyter-widgets/controls",
1748
            "_model_module_version": "1.5.0",
1749
            "_model_name": "DescriptionStyleModel",
1750
            "_view_count": null,
1751
            "_view_module": "@jupyter-widgets/base",
1752
            "_view_module_version": "1.2.0",
1753
            "_view_name": "StyleView",
1754
            "description_width": ""
1755
          }
1756
        },
1757
        "3af46468e29348adbf3c2749394767bc": {
1758
          "model_module": "@jupyter-widgets/base",
1759
          "model_name": "LayoutModel",
1760
          "model_module_version": "1.2.0",
1761
          "state": {
1762
            "_model_module": "@jupyter-widgets/base",
1763
            "_model_module_version": "1.2.0",
1764
            "_model_name": "LayoutModel",
1765
            "_view_count": null,
1766
            "_view_module": "@jupyter-widgets/base",
1767
            "_view_module_version": "1.2.0",
1768
            "_view_name": "LayoutView",
1769
            "align_content": null,
1770
            "align_items": null,
1771
            "align_self": null,
1772
            "border": null,
1773
            "bottom": null,
1774
            "display": null,
1775
            "flex": null,
1776
            "flex_flow": null,
1777
            "grid_area": null,
1778
            "grid_auto_columns": null,
1779
            "grid_auto_flow": null,
1780
            "grid_auto_rows": null,
1781
            "grid_column": null,
1782
            "grid_gap": null,
1783
            "grid_row": null,
1784
            "grid_template_areas": null,
1785
            "grid_template_columns": null,
1786
            "grid_template_rows": null,
1787
            "height": null,
1788
            "justify_content": null,
1789
            "justify_items": null,
1790
            "left": null,
1791
            "margin": null,
1792
            "max_height": null,
1793
            "max_width": null,
1794
            "min_height": null,
1795
            "min_width": null,
1796
            "object_fit": null,
1797
            "object_position": null,
1798
            "order": null,
1799
            "overflow": null,
1800
            "overflow_x": null,
1801
            "overflow_y": null,
1802
            "padding": null,
1803
            "right": null,
1804
            "top": null,
1805
            "visibility": null,
1806
            "width": null
1807
          }
1808
        },
1809
        "e7490d0da8854fc6abca6b9ecfb2fdaf": {
1810
          "model_module": "@jupyter-widgets/controls",
1811
          "model_name": "ProgressStyleModel",
1812
          "model_module_version": "1.5.0",
1813
          "state": {
1814
            "_model_module": "@jupyter-widgets/controls",
1815
            "_model_module_version": "1.5.0",
1816
            "_model_name": "ProgressStyleModel",
1817
            "_view_count": null,
1818
            "_view_module": "@jupyter-widgets/base",
1819
            "_view_module_version": "1.2.0",
1820
            "_view_name": "StyleView",
1821
            "bar_color": null,
1822
            "description_width": ""
1823
          }
1824
        },
1825
        "0c356b068a6f498da7bcc5102d7a3f12": {
1826
          "model_module": "@jupyter-widgets/base",
1827
          "model_name": "LayoutModel",
1828
          "model_module_version": "1.2.0",
1829
          "state": {
1830
            "_model_module": "@jupyter-widgets/base",
1831
            "_model_module_version": "1.2.0",
1832
            "_model_name": "LayoutModel",
1833
            "_view_count": null,
1834
            "_view_module": "@jupyter-widgets/base",
1835
            "_view_module_version": "1.2.0",
1836
            "_view_name": "LayoutView",
1837
            "align_content": null,
1838
            "align_items": null,
1839
            "align_self": null,
1840
            "border": null,
1841
            "bottom": null,
1842
            "display": null,
1843
            "flex": null,
1844
            "flex_flow": null,
1845
            "grid_area": null,
1846
            "grid_auto_columns": null,
1847
            "grid_auto_flow": null,
1848
            "grid_auto_rows": null,
1849
            "grid_column": null,
1850
            "grid_gap": null,
1851
            "grid_row": null,
1852
            "grid_template_areas": null,
1853
            "grid_template_columns": null,
1854
            "grid_template_rows": null,
1855
            "height": null,
1856
            "justify_content": null,
1857
            "justify_items": null,
1858
            "left": null,
1859
            "margin": null,
1860
            "max_height": null,
1861
            "max_width": null,
1862
            "min_height": null,
1863
            "min_width": null,
1864
            "object_fit": null,
1865
            "object_position": null,
1866
            "order": null,
1867
            "overflow": null,
1868
            "overflow_x": null,
1869
            "overflow_y": null,
1870
            "padding": null,
1871
            "right": null,
1872
            "top": null,
1873
            "visibility": null,
1874
            "width": null
1875
          }
1876
        },
1877
        "1a5e5be75adb4466b90b29d4aecc9d7b": {
1878
          "model_module": "@jupyter-widgets/controls",
1879
          "model_name": "DescriptionStyleModel",
1880
          "model_module_version": "1.5.0",
1881
          "state": {
1882
            "_model_module": "@jupyter-widgets/controls",
1883
            "_model_module_version": "1.5.0",
1884
            "_model_name": "DescriptionStyleModel",
1885
            "_view_count": null,
1886
            "_view_module": "@jupyter-widgets/base",
1887
            "_view_module_version": "1.2.0",
1888
            "_view_name": "StyleView",
1889
            "description_width": ""
1890
          }
1891
        },
1892
        "f4c568c8e686433f8763c34879f46fd3": {
1893
          "model_module": "@jupyter-widgets/controls",
1894
          "model_name": "HBoxModel",
1895
          "model_module_version": "1.5.0",
1896
          "state": {
1897
            "_dom_classes": [],
1898
            "_model_module": "@jupyter-widgets/controls",
1899
            "_model_module_version": "1.5.0",
1900
            "_model_name": "HBoxModel",
1901
            "_view_count": null,
1902
            "_view_module": "@jupyter-widgets/controls",
1903
            "_view_module_version": "1.5.0",
1904
            "_view_name": "HBoxView",
1905
            "box_style": "",
1906
            "children": [
1907
              "IPY_MODEL_d37ee73737d144479b19aa9c84bcbda5",
1908
              "IPY_MODEL_94b64d29515c49e788c9b0f02f97e131",
1909
              "IPY_MODEL_e0c4626438754fcab9ba26ec84691906"
1910
            ],
1911
            "layout": "IPY_MODEL_ea9e76e320e0413083985d598cc62bd5"
1912
          }
1913
        },
1914
        "d37ee73737d144479b19aa9c84bcbda5": {
1915
          "model_module": "@jupyter-widgets/controls",
1916
          "model_name": "HTMLModel",
1917
          "model_module_version": "1.5.0",
1918
          "state": {
1919
            "_dom_classes": [],
1920
            "_model_module": "@jupyter-widgets/controls",
1921
            "_model_module_version": "1.5.0",
1922
            "_model_name": "HTMLModel",
1923
            "_view_count": null,
1924
            "_view_module": "@jupyter-widgets/controls",
1925
            "_view_module_version": "1.5.0",
1926
            "_view_name": "HTMLView",
1927
            "description": "",
1928
            "description_tooltip": null,
1929
            "layout": "IPY_MODEL_4a1ea4cd642b437db3abb2ff39c19563",
1930
            "placeholder": "​",
1931
            "style": "IPY_MODEL_a64e99e0c22c4bbf8e0bc70066475126",
1932
            "value": "generation_config.json: 100%"
1933
          }
1934
        },
1935
        "94b64d29515c49e788c9b0f02f97e131": {
1936
          "model_module": "@jupyter-widgets/controls",
1937
          "model_name": "FloatProgressModel",
1938
          "model_module_version": "1.5.0",
1939
          "state": {
1940
            "_dom_classes": [],
1941
            "_model_module": "@jupyter-widgets/controls",
1942
            "_model_module_version": "1.5.0",
1943
            "_model_name": "FloatProgressModel",
1944
            "_view_count": null,
1945
            "_view_module": "@jupyter-widgets/controls",
1946
            "_view_module_version": "1.5.0",
1947
            "_view_name": "ProgressView",
1948
            "bar_style": "success",
1949
            "description": "",
1950
            "description_tooltip": null,
1951
            "layout": "IPY_MODEL_e9812c0a8e814202a128fd11860b6b0e",
1952
            "max": 184,
1953
            "min": 0,
1954
            "orientation": "horizontal",
1955
            "style": "IPY_MODEL_66179fda56844c47bb5a2207744370cb",
1956
            "value": 184
1957
          }
1958
        },
1959
        "e0c4626438754fcab9ba26ec84691906": {
1960
          "model_module": "@jupyter-widgets/controls",
1961
          "model_name": "HTMLModel",
1962
          "model_module_version": "1.5.0",
1963
          "state": {
1964
            "_dom_classes": [],
1965
            "_model_module": "@jupyter-widgets/controls",
1966
            "_model_module_version": "1.5.0",
1967
            "_model_name": "HTMLModel",
1968
            "_view_count": null,
1969
            "_view_module": "@jupyter-widgets/controls",
1970
            "_view_module_version": "1.5.0",
1971
            "_view_name": "HTMLView",
1972
            "description": "",
1973
            "description_tooltip": null,
1974
            "layout": "IPY_MODEL_e9eada4508064f3bb063b0640dc04224",
1975
            "placeholder": "​",
1976
            "style": "IPY_MODEL_1e1cad4d3d3c4612a158551589b5be1e",
1977
            "value": " 184/184 [00:00&lt;00:00, 7.81kB/s]"
1978
          }
1979
        },
1980
        "ea9e76e320e0413083985d598cc62bd5": {
1981
          "model_module": "@jupyter-widgets/base",
1982
          "model_name": "LayoutModel",
1983
          "model_module_version": "1.2.0",
1984
          "state": {
1985
            "_model_module": "@jupyter-widgets/base",
1986
            "_model_module_version": "1.2.0",
1987
            "_model_name": "LayoutModel",
1988
            "_view_count": null,
1989
            "_view_module": "@jupyter-widgets/base",
1990
            "_view_module_version": "1.2.0",
1991
            "_view_name": "LayoutView",
1992
            "align_content": null,
1993
            "align_items": null,
1994
            "align_self": null,
1995
            "border": null,
1996
            "bottom": null,
1997
            "display": null,
1998
            "flex": null,
1999
            "flex_flow": null,
2000
            "grid_area": null,
2001
            "grid_auto_columns": null,
2002
            "grid_auto_flow": null,
2003
            "grid_auto_rows": null,
2004
            "grid_column": null,
2005
            "grid_gap": null,
2006
            "grid_row": null,
2007
            "grid_template_areas": null,
2008
            "grid_template_columns": null,
2009
            "grid_template_rows": null,
2010
            "height": null,
2011
            "justify_content": null,
2012
            "justify_items": null,
2013
            "left": null,
2014
            "margin": null,
2015
            "max_height": null,
2016
            "max_width": null,
2017
            "min_height": null,
2018
            "min_width": null,
2019
            "object_fit": null,
2020
            "object_position": null,
2021
            "order": null,
2022
            "overflow": null,
2023
            "overflow_x": null,
2024
            "overflow_y": null,
2025
            "padding": null,
2026
            "right": null,
2027
            "top": null,
2028
            "visibility": null,
2029
            "width": null
2030
          }
2031
        },
2032
        "4a1ea4cd642b437db3abb2ff39c19563": {
2033
          "model_module": "@jupyter-widgets/base",
2034
          "model_name": "LayoutModel",
2035
          "model_module_version": "1.2.0",
2036
          "state": {
2037
            "_model_module": "@jupyter-widgets/base",
2038
            "_model_module_version": "1.2.0",
2039
            "_model_name": "LayoutModel",
2040
            "_view_count": null,
2041
            "_view_module": "@jupyter-widgets/base",
2042
            "_view_module_version": "1.2.0",
2043
            "_view_name": "LayoutView",
2044
            "align_content": null,
2045
            "align_items": null,
2046
            "align_self": null,
2047
            "border": null,
2048
            "bottom": null,
2049
            "display": null,
2050
            "flex": null,
2051
            "flex_flow": null,
2052
            "grid_area": null,
2053
            "grid_auto_columns": null,
2054
            "grid_auto_flow": null,
2055
            "grid_auto_rows": null,
2056
            "grid_column": null,
2057
            "grid_gap": null,
2058
            "grid_row": null,
2059
            "grid_template_areas": null,
2060
            "grid_template_columns": null,
2061
            "grid_template_rows": null,
2062
            "height": null,
2063
            "justify_content": null,
2064
            "justify_items": null,
2065
            "left": null,
2066
            "margin": null,
2067
            "max_height": null,
2068
            "max_width": null,
2069
            "min_height": null,
2070
            "min_width": null,
2071
            "object_fit": null,
2072
            "object_position": null,
2073
            "order": null,
2074
            "overflow": null,
2075
            "overflow_x": null,
2076
            "overflow_y": null,
2077
            "padding": null,
2078
            "right": null,
2079
            "top": null,
2080
            "visibility": null,
2081
            "width": null
2082
          }
2083
        },
2084
        "a64e99e0c22c4bbf8e0bc70066475126": {
2085
          "model_module": "@jupyter-widgets/controls",
2086
          "model_name": "DescriptionStyleModel",
2087
          "model_module_version": "1.5.0",
2088
          "state": {
2089
            "_model_module": "@jupyter-widgets/controls",
2090
            "_model_module_version": "1.5.0",
2091
            "_model_name": "DescriptionStyleModel",
2092
            "_view_count": null,
2093
            "_view_module": "@jupyter-widgets/base",
2094
            "_view_module_version": "1.2.0",
2095
            "_view_name": "StyleView",
2096
            "description_width": ""
2097
          }
2098
        },
2099
        "e9812c0a8e814202a128fd11860b6b0e": {
2100
          "model_module": "@jupyter-widgets/base",
2101
          "model_name": "LayoutModel",
2102
          "model_module_version": "1.2.0",
2103
          "state": {
2104
            "_model_module": "@jupyter-widgets/base",
2105
            "_model_module_version": "1.2.0",
2106
            "_model_name": "LayoutModel",
2107
            "_view_count": null,
2108
            "_view_module": "@jupyter-widgets/base",
2109
            "_view_module_version": "1.2.0",
2110
            "_view_name": "LayoutView",
2111
            "align_content": null,
2112
            "align_items": null,
2113
            "align_self": null,
2114
            "border": null,
2115
            "bottom": null,
2116
            "display": null,
2117
            "flex": null,
2118
            "flex_flow": null,
2119
            "grid_area": null,
2120
            "grid_auto_columns": null,
2121
            "grid_auto_flow": null,
2122
            "grid_auto_rows": null,
2123
            "grid_column": null,
2124
            "grid_gap": null,
2125
            "grid_row": null,
2126
            "grid_template_areas": null,
2127
            "grid_template_columns": null,
2128
            "grid_template_rows": null,
2129
            "height": null,
2130
            "justify_content": null,
2131
            "justify_items": null,
2132
            "left": null,
2133
            "margin": null,
2134
            "max_height": null,
2135
            "max_width": null,
2136
            "min_height": null,
2137
            "min_width": null,
2138
            "object_fit": null,
2139
            "object_position": null,
2140
            "order": null,
2141
            "overflow": null,
2142
            "overflow_x": null,
2143
            "overflow_y": null,
2144
            "padding": null,
2145
            "right": null,
2146
            "top": null,
2147
            "visibility": null,
2148
            "width": null
2149
          }
2150
        },
2151
        "66179fda56844c47bb5a2207744370cb": {
2152
          "model_module": "@jupyter-widgets/controls",
2153
          "model_name": "ProgressStyleModel",
2154
          "model_module_version": "1.5.0",
2155
          "state": {
2156
            "_model_module": "@jupyter-widgets/controls",
2157
            "_model_module_version": "1.5.0",
2158
            "_model_name": "ProgressStyleModel",
2159
            "_view_count": null,
2160
            "_view_module": "@jupyter-widgets/base",
2161
            "_view_module_version": "1.2.0",
2162
            "_view_name": "StyleView",
2163
            "bar_color": null,
2164
            "description_width": ""
2165
          }
2166
        },
2167
        "e9eada4508064f3bb063b0640dc04224": {
2168
          "model_module": "@jupyter-widgets/base",
2169
          "model_name": "LayoutModel",
2170
          "model_module_version": "1.2.0",
2171
          "state": {
2172
            "_model_module": "@jupyter-widgets/base",
2173
            "_model_module_version": "1.2.0",
2174
            "_model_name": "LayoutModel",
2175
            "_view_count": null,
2176
            "_view_module": "@jupyter-widgets/base",
2177
            "_view_module_version": "1.2.0",
2178
            "_view_name": "LayoutView",
2179
            "align_content": null,
2180
            "align_items": null,
2181
            "align_self": null,
2182
            "border": null,
2183
            "bottom": null,
2184
            "display": null,
2185
            "flex": null,
2186
            "flex_flow": null,
2187
            "grid_area": null,
2188
            "grid_auto_columns": null,
2189
            "grid_auto_flow": null,
2190
            "grid_auto_rows": null,
2191
            "grid_column": null,
2192
            "grid_gap": null,
2193
            "grid_row": null,
2194
            "grid_template_areas": null,
2195
            "grid_template_columns": null,
2196
            "grid_template_rows": null,
2197
            "height": null,
2198
            "justify_content": null,
2199
            "justify_items": null,
2200
            "left": null,
2201
            "margin": null,
2202
            "max_height": null,
2203
            "max_width": null,
2204
            "min_height": null,
2205
            "min_width": null,
2206
            "object_fit": null,
2207
            "object_position": null,
2208
            "order": null,
2209
            "overflow": null,
2210
            "overflow_x": null,
2211
            "overflow_y": null,
2212
            "padding": null,
2213
            "right": null,
2214
            "top": null,
2215
            "visibility": null,
2216
            "width": null
2217
          }
2218
        },
2219
        "1e1cad4d3d3c4612a158551589b5be1e": {
2220
          "model_module": "@jupyter-widgets/controls",
2221
          "model_name": "DescriptionStyleModel",
2222
          "model_module_version": "1.5.0",
2223
          "state": {
2224
            "_model_module": "@jupyter-widgets/controls",
2225
            "_model_module_version": "1.5.0",
2226
            "_model_name": "DescriptionStyleModel",
2227
            "_view_count": null,
2228
            "_view_module": "@jupyter-widgets/base",
2229
            "_view_module_version": "1.2.0",
2230
            "_view_name": "StyleView",
2231
            "description_width": ""
2232
          }
2233
        },
2234
        "1dfa05dc7e56420ab071392e802eb233": {
2235
          "model_module": "@jupyter-widgets/controls",
2236
          "model_name": "HBoxModel",
2237
          "model_module_version": "1.5.0",
2238
          "state": {
2239
            "_dom_classes": [],
2240
            "_model_module": "@jupyter-widgets/controls",
2241
            "_model_module_version": "1.5.0",
2242
            "_model_name": "HBoxModel",
2243
            "_view_count": null,
2244
            "_view_module": "@jupyter-widgets/controls",
2245
            "_view_module_version": "1.5.0",
2246
            "_view_name": "HBoxView",
2247
            "box_style": "",
2248
            "children": [
2249
              "IPY_MODEL_bee09a78cbb24fd0b8d5edf7f48d2b1e",
2250
              "IPY_MODEL_0153b850366f4f798ef485268e62c775",
2251
              "IPY_MODEL_1a6a1710ac1e468685ec3ac850fbe225"
2252
            ],
2253
            "layout": "IPY_MODEL_4e44198b265744ad954ad5c71238284a"
2254
          }
2255
        },
2256
        "bee09a78cbb24fd0b8d5edf7f48d2b1e": {
2257
          "model_module": "@jupyter-widgets/controls",
2258
          "model_name": "HTMLModel",
2259
          "model_module_version": "1.5.0",
2260
          "state": {
2261
            "_dom_classes": [],
2262
            "_model_module": "@jupyter-widgets/controls",
2263
            "_model_module_version": "1.5.0",
2264
            "_model_name": "HTMLModel",
2265
            "_view_count": null,
2266
            "_view_module": "@jupyter-widgets/controls",
2267
            "_view_module_version": "1.5.0",
2268
            "_view_name": "HTMLView",
2269
            "description": "",
2270
            "description_tooltip": null,
2271
            "layout": "IPY_MODEL_f5b0ed4646f84e9293198e8a78823f0d",
2272
            "placeholder": "​",
2273
            "style": "IPY_MODEL_41196d3b7ebb4b3e81ab190be3efdc0f",
2274
            "value": "tokenizer_config.json: 100%"
2275
          }
2276
        },
2277
        "0153b850366f4f798ef485268e62c775": {
2278
          "model_module": "@jupyter-widgets/controls",
2279
          "model_name": "FloatProgressModel",
2280
          "model_module_version": "1.5.0",
2281
          "state": {
2282
            "_dom_classes": [],
2283
            "_model_module": "@jupyter-widgets/controls",
2284
            "_model_module_version": "1.5.0",
2285
            "_model_name": "FloatProgressModel",
2286
            "_view_count": null,
2287
            "_view_module": "@jupyter-widgets/controls",
2288
            "_view_module_version": "1.5.0",
2289
            "_view_name": "ProgressView",
2290
            "bar_style": "success",
2291
            "description": "",
2292
            "description_tooltip": null,
2293
            "layout": "IPY_MODEL_f9a52bdb2e6d4da49c4a79982aae354f",
2294
            "max": 54598,
2295
            "min": 0,
2296
            "orientation": "horizontal",
2297
            "style": "IPY_MODEL_1a3bd31d499741e398d964904a9e636d",
2298
            "value": 54598
2299
          }
2300
        },
2301
        "1a6a1710ac1e468685ec3ac850fbe225": {
2302
          "model_module": "@jupyter-widgets/controls",
2303
          "model_name": "HTMLModel",
2304
          "model_module_version": "1.5.0",
2305
          "state": {
2306
            "_dom_classes": [],
2307
            "_model_module": "@jupyter-widgets/controls",
2308
            "_model_module_version": "1.5.0",
2309
            "_model_name": "HTMLModel",
2310
            "_view_count": null,
2311
            "_view_module": "@jupyter-widgets/controls",
2312
            "_view_module_version": "1.5.0",
2313
            "_view_name": "HTMLView",
2314
            "description": "",
2315
            "description_tooltip": null,
2316
            "layout": "IPY_MODEL_b47a9aebb5b447b282f0b29607bee5d3",
2317
            "placeholder": "​",
2318
            "style": "IPY_MODEL_3d87f57ad8bf4d6b8da431d141f31218",
2319
            "value": " 54.6k/54.6k [00:00&lt;00:00, 3.60MB/s]"
2320
          }
2321
        },
2322
        "4e44198b265744ad954ad5c71238284a": {
2323
          "model_module": "@jupyter-widgets/base",
2324
          "model_name": "LayoutModel",
2325
          "model_module_version": "1.2.0",
2326
          "state": {
2327
            "_model_module": "@jupyter-widgets/base",
2328
            "_model_module_version": "1.2.0",
2329
            "_model_name": "LayoutModel",
2330
            "_view_count": null,
2331
            "_view_module": "@jupyter-widgets/base",
2332
            "_view_module_version": "1.2.0",
2333
            "_view_name": "LayoutView",
2334
            "align_content": null,
2335
            "align_items": null,
2336
            "align_self": null,
2337
            "border": null,
2338
            "bottom": null,
2339
            "display": null,
2340
            "flex": null,
2341
            "flex_flow": null,
2342
            "grid_area": null,
2343
            "grid_auto_columns": null,
2344
            "grid_auto_flow": null,
2345
            "grid_auto_rows": null,
2346
            "grid_column": null,
2347
            "grid_gap": null,
2348
            "grid_row": null,
2349
            "grid_template_areas": null,
2350
            "grid_template_columns": null,
2351
            "grid_template_rows": null,
2352
            "height": null,
2353
            "justify_content": null,
2354
            "justify_items": null,
2355
            "left": null,
2356
            "margin": null,
2357
            "max_height": null,
2358
            "max_width": null,
2359
            "min_height": null,
2360
            "min_width": null,
2361
            "object_fit": null,
2362
            "object_position": null,
2363
            "order": null,
2364
            "overflow": null,
2365
            "overflow_x": null,
2366
            "overflow_y": null,
2367
            "padding": null,
2368
            "right": null,
2369
            "top": null,
2370
            "visibility": null,
2371
            "width": null
2372
          }
2373
        },
2374
        "f5b0ed4646f84e9293198e8a78823f0d": {
2375
          "model_module": "@jupyter-widgets/base",
2376
          "model_name": "LayoutModel",
2377
          "model_module_version": "1.2.0",
2378
          "state": {
2379
            "_model_module": "@jupyter-widgets/base",
2380
            "_model_module_version": "1.2.0",
2381
            "_model_name": "LayoutModel",
2382
            "_view_count": null,
2383
            "_view_module": "@jupyter-widgets/base",
2384
            "_view_module_version": "1.2.0",
2385
            "_view_name": "LayoutView",
2386
            "align_content": null,
2387
            "align_items": null,
2388
            "align_self": null,
2389
            "border": null,
2390
            "bottom": null,
2391
            "display": null,
2392
            "flex": null,
2393
            "flex_flow": null,
2394
            "grid_area": null,
2395
            "grid_auto_columns": null,
2396
            "grid_auto_flow": null,
2397
            "grid_auto_rows": null,
2398
            "grid_column": null,
2399
            "grid_gap": null,
2400
            "grid_row": null,
2401
            "grid_template_areas": null,
2402
            "grid_template_columns": null,
2403
            "grid_template_rows": null,
2404
            "height": null,
2405
            "justify_content": null,
2406
            "justify_items": null,
2407
            "left": null,
2408
            "margin": null,
2409
            "max_height": null,
2410
            "max_width": null,
2411
            "min_height": null,
2412
            "min_width": null,
2413
            "object_fit": null,
2414
            "object_position": null,
2415
            "order": null,
2416
            "overflow": null,
2417
            "overflow_x": null,
2418
            "overflow_y": null,
2419
            "padding": null,
2420
            "right": null,
2421
            "top": null,
2422
            "visibility": null,
2423
            "width": null
2424
          }
2425
        },
2426
        "41196d3b7ebb4b3e81ab190be3efdc0f": {
2427
          "model_module": "@jupyter-widgets/controls",
2428
          "model_name": "DescriptionStyleModel",
2429
          "model_module_version": "1.5.0",
2430
          "state": {
2431
            "_model_module": "@jupyter-widgets/controls",
2432
            "_model_module_version": "1.5.0",
2433
            "_model_name": "DescriptionStyleModel",
2434
            "_view_count": null,
2435
            "_view_module": "@jupyter-widgets/base",
2436
            "_view_module_version": "1.2.0",
2437
            "_view_name": "StyleView",
2438
            "description_width": ""
2439
          }
2440
        },
2441
        "f9a52bdb2e6d4da49c4a79982aae354f": {
2442
          "model_module": "@jupyter-widgets/base",
2443
          "model_name": "LayoutModel",
2444
          "model_module_version": "1.2.0",
2445
          "state": {
2446
            "_model_module": "@jupyter-widgets/base",
2447
            "_model_module_version": "1.2.0",
2448
            "_model_name": "LayoutModel",
2449
            "_view_count": null,
2450
            "_view_module": "@jupyter-widgets/base",
2451
            "_view_module_version": "1.2.0",
2452
            "_view_name": "LayoutView",
2453
            "align_content": null,
2454
            "align_items": null,
2455
            "align_self": null,
2456
            "border": null,
2457
            "bottom": null,
2458
            "display": null,
2459
            "flex": null,
2460
            "flex_flow": null,
2461
            "grid_area": null,
2462
            "grid_auto_columns": null,
2463
            "grid_auto_flow": null,
2464
            "grid_auto_rows": null,
2465
            "grid_column": null,
2466
            "grid_gap": null,
2467
            "grid_row": null,
2468
            "grid_template_areas": null,
2469
            "grid_template_columns": null,
2470
            "grid_template_rows": null,
2471
            "height": null,
2472
            "justify_content": null,
2473
            "justify_items": null,
2474
            "left": null,
2475
            "margin": null,
2476
            "max_height": null,
2477
            "max_width": null,
2478
            "min_height": null,
2479
            "min_width": null,
2480
            "object_fit": null,
2481
            "object_position": null,
2482
            "order": null,
2483
            "overflow": null,
2484
            "overflow_x": null,
2485
            "overflow_y": null,
2486
            "padding": null,
2487
            "right": null,
2488
            "top": null,
2489
            "visibility": null,
2490
            "width": null
2491
          }
2492
        },
2493
        "1a3bd31d499741e398d964904a9e636d": {
2494
          "model_module": "@jupyter-widgets/controls",
2495
          "model_name": "ProgressStyleModel",
2496
          "model_module_version": "1.5.0",
2497
          "state": {
2498
            "_model_module": "@jupyter-widgets/controls",
2499
            "_model_module_version": "1.5.0",
2500
            "_model_name": "ProgressStyleModel",
2501
            "_view_count": null,
2502
            "_view_module": "@jupyter-widgets/base",
2503
            "_view_module_version": "1.2.0",
2504
            "_view_name": "StyleView",
2505
            "bar_color": null,
2506
            "description_width": ""
2507
          }
2508
        },
2509
        "b47a9aebb5b447b282f0b29607bee5d3": {
2510
          "model_module": "@jupyter-widgets/base",
2511
          "model_name": "LayoutModel",
2512
          "model_module_version": "1.2.0",
2513
          "state": {
2514
            "_model_module": "@jupyter-widgets/base",
2515
            "_model_module_version": "1.2.0",
2516
            "_model_name": "LayoutModel",
2517
            "_view_count": null,
2518
            "_view_module": "@jupyter-widgets/base",
2519
            "_view_module_version": "1.2.0",
2520
            "_view_name": "LayoutView",
2521
            "align_content": null,
2522
            "align_items": null,
2523
            "align_self": null,
2524
            "border": null,
2525
            "bottom": null,
2526
            "display": null,
2527
            "flex": null,
2528
            "flex_flow": null,
2529
            "grid_area": null,
2530
            "grid_auto_columns": null,
2531
            "grid_auto_flow": null,
2532
            "grid_auto_rows": null,
2533
            "grid_column": null,
2534
            "grid_gap": null,
2535
            "grid_row": null,
2536
            "grid_template_areas": null,
2537
            "grid_template_columns": null,
2538
            "grid_template_rows": null,
2539
            "height": null,
2540
            "justify_content": null,
2541
            "justify_items": null,
2542
            "left": null,
2543
            "margin": null,
2544
            "max_height": null,
2545
            "max_width": null,
2546
            "min_height": null,
2547
            "min_width": null,
2548
            "object_fit": null,
2549
            "object_position": null,
2550
            "order": null,
2551
            "overflow": null,
2552
            "overflow_x": null,
2553
            "overflow_y": null,
2554
            "padding": null,
2555
            "right": null,
2556
            "top": null,
2557
            "visibility": null,
2558
            "width": null
2559
          }
2560
        },
2561
        "3d87f57ad8bf4d6b8da431d141f31218": {
2562
          "model_module": "@jupyter-widgets/controls",
2563
          "model_name": "DescriptionStyleModel",
2564
          "model_module_version": "1.5.0",
2565
          "state": {
2566
            "_model_module": "@jupyter-widgets/controls",
2567
            "_model_module_version": "1.5.0",
2568
            "_model_name": "DescriptionStyleModel",
2569
            "_view_count": null,
2570
            "_view_module": "@jupyter-widgets/base",
2571
            "_view_module_version": "1.2.0",
2572
            "_view_name": "StyleView",
2573
            "description_width": ""
2574
          }
2575
        },
2576
        "b84a3a5d44a9417aa3c2ad089edb962f": {
2577
          "model_module": "@jupyter-widgets/controls",
2578
          "model_name": "HBoxModel",
2579
          "model_module_version": "1.5.0",
2580
          "state": {
2581
            "_dom_classes": [],
2582
            "_model_module": "@jupyter-widgets/controls",
2583
            "_model_module_version": "1.5.0",
2584
            "_model_name": "HBoxModel",
2585
            "_view_count": null,
2586
            "_view_module": "@jupyter-widgets/controls",
2587
            "_view_module_version": "1.5.0",
2588
            "_view_name": "HBoxView",
2589
            "box_style": "",
2590
            "children": [
2591
              "IPY_MODEL_1fbe9f9d35d64921b567119369591fa5",
2592
              "IPY_MODEL_a8126f821b164a99a0b5514ab8d8b513",
2593
              "IPY_MODEL_e33feef2505d45f7bbfd8f2a73b07b1a"
2594
            ],
2595
            "layout": "IPY_MODEL_0a1843983b5c4744a7ef148a72dd06d5"
2596
          }
2597
        },
2598
        "1fbe9f9d35d64921b567119369591fa5": {
2599
          "model_module": "@jupyter-widgets/controls",
2600
          "model_name": "HTMLModel",
2601
          "model_module_version": "1.5.0",
2602
          "state": {
2603
            "_dom_classes": [],
2604
            "_model_module": "@jupyter-widgets/controls",
2605
            "_model_module_version": "1.5.0",
2606
            "_model_name": "HTMLModel",
2607
            "_view_count": null,
2608
            "_view_module": "@jupyter-widgets/controls",
2609
            "_view_module_version": "1.5.0",
2610
            "_view_name": "HTMLView",
2611
            "description": "",
2612
            "description_tooltip": null,
2613
            "layout": "IPY_MODEL_e2235493048f44bbb957c5680a2c48e7",
2614
            "placeholder": "​",
2615
            "style": "IPY_MODEL_5959983c01fb4cbbb45a76d729beef52",
2616
            "value": "tokenizer.json: 100%"
2617
          }
2618
        },
2619
        "a8126f821b164a99a0b5514ab8d8b513": {
2620
          "model_module": "@jupyter-widgets/controls",
2621
          "model_name": "FloatProgressModel",
2622
          "model_module_version": "1.5.0",
2623
          "state": {
2624
            "_dom_classes": [],
2625
            "_model_module": "@jupyter-widgets/controls",
2626
            "_model_module_version": "1.5.0",
2627
            "_model_name": "FloatProgressModel",
2628
            "_view_count": null,
2629
            "_view_module": "@jupyter-widgets/controls",
2630
            "_view_module_version": "1.5.0",
2631
            "_view_name": "ProgressView",
2632
            "bar_style": "success",
2633
            "description": "",
2634
            "description_tooltip": null,
2635
            "layout": "IPY_MODEL_5fa9619b96274aa795dff3a5906992d2",
2636
            "max": 9085657,
2637
            "min": 0,
2638
            "orientation": "horizontal",
2639
            "style": "IPY_MODEL_1a6c2123525f4ba9bb9967165c06a4a9",
2640
            "value": 9085657
2641
          }
2642
        },
2643
        "e33feef2505d45f7bbfd8f2a73b07b1a": {
2644
          "model_module": "@jupyter-widgets/controls",
2645
          "model_name": "HTMLModel",
2646
          "model_module_version": "1.5.0",
2647
          "state": {
2648
            "_dom_classes": [],
2649
            "_model_module": "@jupyter-widgets/controls",
2650
            "_model_module_version": "1.5.0",
2651
            "_model_name": "HTMLModel",
2652
            "_view_count": null,
2653
            "_view_module": "@jupyter-widgets/controls",
2654
            "_view_module_version": "1.5.0",
2655
            "_view_name": "HTMLView",
2656
            "description": "",
2657
            "description_tooltip": null,
2658
            "layout": "IPY_MODEL_8301a8f379af4ba8bfbe8e4b7a2eb812",
2659
            "placeholder": "​",
2660
            "style": "IPY_MODEL_0ee49d6c54594cd7a5f4d9bdfe4c8a5c",
2661
            "value": " 9.09M/9.09M [00:00&lt;00:00, 39.5MB/s]"
2662
          }
2663
        },
2664
        "0a1843983b5c4744a7ef148a72dd06d5": {
2665
          "model_module": "@jupyter-widgets/base",
2666
          "model_name": "LayoutModel",
2667
          "model_module_version": "1.2.0",
2668
          "state": {
2669
            "_model_module": "@jupyter-widgets/base",
2670
            "_model_module_version": "1.2.0",
2671
            "_model_name": "LayoutModel",
2672
            "_view_count": null,
2673
            "_view_module": "@jupyter-widgets/base",
2674
            "_view_module_version": "1.2.0",
2675
            "_view_name": "LayoutView",
2676
            "align_content": null,
2677
            "align_items": null,
2678
            "align_self": null,
2679
            "border": null,
2680
            "bottom": null,
2681
            "display": null,
2682
            "flex": null,
2683
            "flex_flow": null,
2684
            "grid_area": null,
2685
            "grid_auto_columns": null,
2686
            "grid_auto_flow": null,
2687
            "grid_auto_rows": null,
2688
            "grid_column": null,
2689
            "grid_gap": null,
2690
            "grid_row": null,
2691
            "grid_template_areas": null,
2692
            "grid_template_columns": null,
2693
            "grid_template_rows": null,
2694
            "height": null,
2695
            "justify_content": null,
2696
            "justify_items": null,
2697
            "left": null,
2698
            "margin": null,
2699
            "max_height": null,
2700
            "max_width": null,
2701
            "min_height": null,
2702
            "min_width": null,
2703
            "object_fit": null,
2704
            "object_position": null,
2705
            "order": null,
2706
            "overflow": null,
2707
            "overflow_x": null,
2708
            "overflow_y": null,
2709
            "padding": null,
2710
            "right": null,
2711
            "top": null,
2712
            "visibility": null,
2713
            "width": null
2714
          }
2715
        },
2716
        "e2235493048f44bbb957c5680a2c48e7": {
2717
          "model_module": "@jupyter-widgets/base",
2718
          "model_name": "LayoutModel",
2719
          "model_module_version": "1.2.0",
2720
          "state": {
2721
            "_model_module": "@jupyter-widgets/base",
2722
            "_model_module_version": "1.2.0",
2723
            "_model_name": "LayoutModel",
2724
            "_view_count": null,
2725
            "_view_module": "@jupyter-widgets/base",
2726
            "_view_module_version": "1.2.0",
2727
            "_view_name": "LayoutView",
2728
            "align_content": null,
2729
            "align_items": null,
2730
            "align_self": null,
2731
            "border": null,
2732
            "bottom": null,
2733
            "display": null,
2734
            "flex": null,
2735
            "flex_flow": null,
2736
            "grid_area": null,
2737
            "grid_auto_columns": null,
2738
            "grid_auto_flow": null,
2739
            "grid_auto_rows": null,
2740
            "grid_column": null,
2741
            "grid_gap": null,
2742
            "grid_row": null,
2743
            "grid_template_areas": null,
2744
            "grid_template_columns": null,
2745
            "grid_template_rows": null,
2746
            "height": null,
2747
            "justify_content": null,
2748
            "justify_items": null,
2749
            "left": null,
2750
            "margin": null,
2751
            "max_height": null,
2752
            "max_width": null,
2753
            "min_height": null,
2754
            "min_width": null,
2755
            "object_fit": null,
2756
            "object_position": null,
2757
            "order": null,
2758
            "overflow": null,
2759
            "overflow_x": null,
2760
            "overflow_y": null,
2761
            "padding": null,
2762
            "right": null,
2763
            "top": null,
2764
            "visibility": null,
2765
            "width": null
2766
          }
2767
        },
2768
        "5959983c01fb4cbbb45a76d729beef52": {
2769
          "model_module": "@jupyter-widgets/controls",
2770
          "model_name": "DescriptionStyleModel",
2771
          "model_module_version": "1.5.0",
2772
          "state": {
2773
            "_model_module": "@jupyter-widgets/controls",
2774
            "_model_module_version": "1.5.0",
2775
            "_model_name": "DescriptionStyleModel",
2776
            "_view_count": null,
2777
            "_view_module": "@jupyter-widgets/base",
2778
            "_view_module_version": "1.2.0",
2779
            "_view_name": "StyleView",
2780
            "description_width": ""
2781
          }
2782
        },
2783
        "5fa9619b96274aa795dff3a5906992d2": {
2784
          "model_module": "@jupyter-widgets/base",
2785
          "model_name": "LayoutModel",
2786
          "model_module_version": "1.2.0",
2787
          "state": {
2788
            "_model_module": "@jupyter-widgets/base",
2789
            "_model_module_version": "1.2.0",
2790
            "_model_name": "LayoutModel",
2791
            "_view_count": null,
2792
            "_view_module": "@jupyter-widgets/base",
2793
            "_view_module_version": "1.2.0",
2794
            "_view_name": "LayoutView",
2795
            "align_content": null,
2796
            "align_items": null,
2797
            "align_self": null,
2798
            "border": null,
2799
            "bottom": null,
2800
            "display": null,
2801
            "flex": null,
2802
            "flex_flow": null,
2803
            "grid_area": null,
2804
            "grid_auto_columns": null,
2805
            "grid_auto_flow": null,
2806
            "grid_auto_rows": null,
2807
            "grid_column": null,
2808
            "grid_gap": null,
2809
            "grid_row": null,
2810
            "grid_template_areas": null,
2811
            "grid_template_columns": null,
2812
            "grid_template_rows": null,
2813
            "height": null,
2814
            "justify_content": null,
2815
            "justify_items": null,
2816
            "left": null,
2817
            "margin": null,
2818
            "max_height": null,
2819
            "max_width": null,
2820
            "min_height": null,
2821
            "min_width": null,
2822
            "object_fit": null,
2823
            "object_position": null,
2824
            "order": null,
2825
            "overflow": null,
2826
            "overflow_x": null,
2827
            "overflow_y": null,
2828
            "padding": null,
2829
            "right": null,
2830
            "top": null,
2831
            "visibility": null,
2832
            "width": null
2833
          }
2834
        },
2835
        "1a6c2123525f4ba9bb9967165c06a4a9": {
2836
          "model_module": "@jupyter-widgets/controls",
2837
          "model_name": "ProgressStyleModel",
2838
          "model_module_version": "1.5.0",
2839
          "state": {
2840
            "_model_module": "@jupyter-widgets/controls",
2841
            "_model_module_version": "1.5.0",
2842
            "_model_name": "ProgressStyleModel",
2843
            "_view_count": null,
2844
            "_view_module": "@jupyter-widgets/base",
2845
            "_view_module_version": "1.2.0",
2846
            "_view_name": "StyleView",
2847
            "bar_color": null,
2848
            "description_width": ""
2849
          }
2850
        },
2851
        "8301a8f379af4ba8bfbe8e4b7a2eb812": {
2852
          "model_module": "@jupyter-widgets/base",
2853
          "model_name": "LayoutModel",
2854
          "model_module_version": "1.2.0",
2855
          "state": {
2856
            "_model_module": "@jupyter-widgets/base",
2857
            "_model_module_version": "1.2.0",
2858
            "_model_name": "LayoutModel",
2859
            "_view_count": null,
2860
            "_view_module": "@jupyter-widgets/base",
2861
            "_view_module_version": "1.2.0",
2862
            "_view_name": "LayoutView",
2863
            "align_content": null,
2864
            "align_items": null,
2865
            "align_self": null,
2866
            "border": null,
2867
            "bottom": null,
2868
            "display": null,
2869
            "flex": null,
2870
            "flex_flow": null,
2871
            "grid_area": null,
2872
            "grid_auto_columns": null,
2873
            "grid_auto_flow": null,
2874
            "grid_auto_rows": null,
2875
            "grid_column": null,
2876
            "grid_gap": null,
2877
            "grid_row": null,
2878
            "grid_template_areas": null,
2879
            "grid_template_columns": null,
2880
            "grid_template_rows": null,
2881
            "height": null,
2882
            "justify_content": null,
2883
            "justify_items": null,
2884
            "left": null,
2885
            "margin": null,
2886
            "max_height": null,
2887
            "max_width": null,
2888
            "min_height": null,
2889
            "min_width": null,
2890
            "object_fit": null,
2891
            "object_position": null,
2892
            "order": null,
2893
            "overflow": null,
2894
            "overflow_x": null,
2895
            "overflow_y": null,
2896
            "padding": null,
2897
            "right": null,
2898
            "top": null,
2899
            "visibility": null,
2900
            "width": null
2901
          }
2902
        },
2903
        "0ee49d6c54594cd7a5f4d9bdfe4c8a5c": {
2904
          "model_module": "@jupyter-widgets/controls",
2905
          "model_name": "DescriptionStyleModel",
2906
          "model_module_version": "1.5.0",
2907
          "state": {
2908
            "_model_module": "@jupyter-widgets/controls",
2909
            "_model_module_version": "1.5.0",
2910
            "_model_name": "DescriptionStyleModel",
2911
            "_view_count": null,
2912
            "_view_module": "@jupyter-widgets/base",
2913
            "_view_module_version": "1.2.0",
2914
            "_view_name": "StyleView",
2915
            "description_width": ""
2916
          }
2917
        },
2918
        "45d7468b23d14ea99d103689c891749f": {
2919
          "model_module": "@jupyter-widgets/controls",
2920
          "model_name": "HBoxModel",
2921
          "model_module_version": "1.5.0",
2922
          "state": {
2923
            "_dom_classes": [],
2924
            "_model_module": "@jupyter-widgets/controls",
2925
            "_model_module_version": "1.5.0",
2926
            "_model_name": "HBoxModel",
2927
            "_view_count": null,
2928
            "_view_module": "@jupyter-widgets/controls",
2929
            "_view_module_version": "1.5.0",
2930
            "_view_name": "HBoxView",
2931
            "box_style": "",
2932
            "children": [
2933
              "IPY_MODEL_432ef064af77465b9da7d059179bd705",
2934
              "IPY_MODEL_ba5349ad5a8344709e8924f9ba3a306b",
2935
              "IPY_MODEL_5acddf8d428f4a3daff2b69a0ae45446"
2936
            ],
2937
            "layout": "IPY_MODEL_e5d0ac47ca4042349ceb9a23f1399bf9"
2938
          }
2939
        },
2940
        "432ef064af77465b9da7d059179bd705": {
2941
          "model_module": "@jupyter-widgets/controls",
2942
          "model_name": "HTMLModel",
2943
          "model_module_version": "1.5.0",
2944
          "state": {
2945
            "_dom_classes": [],
2946
            "_model_module": "@jupyter-widgets/controls",
2947
            "_model_module_version": "1.5.0",
2948
            "_model_name": "HTMLModel",
2949
            "_view_count": null,
2950
            "_view_module": "@jupyter-widgets/controls",
2951
            "_view_module_version": "1.5.0",
2952
            "_view_name": "HTMLView",
2953
            "description": "",
2954
            "description_tooltip": null,
2955
            "layout": "IPY_MODEL_ff04a0a610144d82aa271f72324a49ea",
2956
            "placeholder": "​",
2957
            "style": "IPY_MODEL_1984ff4e3cc243e1a791ce094ffa87d3",
2958
            "value": "special_tokens_map.json: 100%"
2959
          }
2960
        },
2961
        "ba5349ad5a8344709e8924f9ba3a306b": {
2962
          "model_module": "@jupyter-widgets/controls",
2963
          "model_name": "FloatProgressModel",
2964
          "model_module_version": "1.5.0",
2965
          "state": {
2966
            "_dom_classes": [],
2967
            "_model_module": "@jupyter-widgets/controls",
2968
            "_model_module_version": "1.5.0",
2969
            "_model_name": "FloatProgressModel",
2970
            "_view_count": null,
2971
            "_view_module": "@jupyter-widgets/controls",
2972
            "_view_module_version": "1.5.0",
2973
            "_view_name": "ProgressView",
2974
            "bar_style": "success",
2975
            "description": "",
2976
            "description_tooltip": null,
2977
            "layout": "IPY_MODEL_4726b87618454e858d3e7a2f982558df",
2978
            "max": 454,
2979
            "min": 0,
2980
            "orientation": "horizontal",
2981
            "style": "IPY_MODEL_33647f79114144feae792e43cf17e4b7",
2982
            "value": 454
2983
          }
2984
        },
2985
        "5acddf8d428f4a3daff2b69a0ae45446": {
2986
          "model_module": "@jupyter-widgets/controls",
2987
          "model_name": "HTMLModel",
2988
          "model_module_version": "1.5.0",
2989
          "state": {
2990
            "_dom_classes": [],
2991
            "_model_module": "@jupyter-widgets/controls",
2992
            "_model_module_version": "1.5.0",
2993
            "_model_name": "HTMLModel",
2994
            "_view_count": null,
2995
            "_view_module": "@jupyter-widgets/controls",
2996
            "_view_module_version": "1.5.0",
2997
            "_view_name": "HTMLView",
2998
            "description": "",
2999
            "description_tooltip": null,
3000
            "layout": "IPY_MODEL_138d704d84ba403695d6d8c9538e29bc",
3001
            "placeholder": "​",
3002
            "style": "IPY_MODEL_bacd0d7737244fd7905d4e40ebd54f6d",
3003
            "value": " 454/454 [00:00&lt;00:00, 34.9kB/s]"
3004
          }
3005
        },
3006
        "e5d0ac47ca4042349ceb9a23f1399bf9": {
3007
          "model_module": "@jupyter-widgets/base",
3008
          "model_name": "LayoutModel",
3009
          "model_module_version": "1.2.0",
3010
          "state": {
3011
            "_model_module": "@jupyter-widgets/base",
3012
            "_model_module_version": "1.2.0",
3013
            "_model_name": "LayoutModel",
3014
            "_view_count": null,
3015
            "_view_module": "@jupyter-widgets/base",
3016
            "_view_module_version": "1.2.0",
3017
            "_view_name": "LayoutView",
3018
            "align_content": null,
3019
            "align_items": null,
3020
            "align_self": null,
3021
            "border": null,
3022
            "bottom": null,
3023
            "display": null,
3024
            "flex": null,
3025
            "flex_flow": null,
3026
            "grid_area": null,
3027
            "grid_auto_columns": null,
3028
            "grid_auto_flow": null,
3029
            "grid_auto_rows": null,
3030
            "grid_column": null,
3031
            "grid_gap": null,
3032
            "grid_row": null,
3033
            "grid_template_areas": null,
3034
            "grid_template_columns": null,
3035
            "grid_template_rows": null,
3036
            "height": null,
3037
            "justify_content": null,
3038
            "justify_items": null,
3039
            "left": null,
3040
            "margin": null,
3041
            "max_height": null,
3042
            "max_width": null,
3043
            "min_height": null,
3044
            "min_width": null,
3045
            "object_fit": null,
3046
            "object_position": null,
3047
            "order": null,
3048
            "overflow": null,
3049
            "overflow_x": null,
3050
            "overflow_y": null,
3051
            "padding": null,
3052
            "right": null,
3053
            "top": null,
3054
            "visibility": null,
3055
            "width": null
3056
          }
3057
        },
3058
        "ff04a0a610144d82aa271f72324a49ea": {
3059
          "model_module": "@jupyter-widgets/base",
3060
          "model_name": "LayoutModel",
3061
          "model_module_version": "1.2.0",
3062
          "state": {
3063
            "_model_module": "@jupyter-widgets/base",
3064
            "_model_module_version": "1.2.0",
3065
            "_model_name": "LayoutModel",
3066
            "_view_count": null,
3067
            "_view_module": "@jupyter-widgets/base",
3068
            "_view_module_version": "1.2.0",
3069
            "_view_name": "LayoutView",
3070
            "align_content": null,
3071
            "align_items": null,
3072
            "align_self": null,
3073
            "border": null,
3074
            "bottom": null,
3075
            "display": null,
3076
            "flex": null,
3077
            "flex_flow": null,
3078
            "grid_area": null,
3079
            "grid_auto_columns": null,
3080
            "grid_auto_flow": null,
3081
            "grid_auto_rows": null,
3082
            "grid_column": null,
3083
            "grid_gap": null,
3084
            "grid_row": null,
3085
            "grid_template_areas": null,
3086
            "grid_template_columns": null,
3087
            "grid_template_rows": null,
3088
            "height": null,
3089
            "justify_content": null,
3090
            "justify_items": null,
3091
            "left": null,
3092
            "margin": null,
3093
            "max_height": null,
3094
            "max_width": null,
3095
            "min_height": null,
3096
            "min_width": null,
3097
            "object_fit": null,
3098
            "object_position": null,
3099
            "order": null,
3100
            "overflow": null,
3101
            "overflow_x": null,
3102
            "overflow_y": null,
3103
            "padding": null,
3104
            "right": null,
3105
            "top": null,
3106
            "visibility": null,
3107
            "width": null
3108
          }
3109
        },
3110
        "1984ff4e3cc243e1a791ce094ffa87d3": {
3111
          "model_module": "@jupyter-widgets/controls",
3112
          "model_name": "DescriptionStyleModel",
3113
          "model_module_version": "1.5.0",
3114
          "state": {
3115
            "_model_module": "@jupyter-widgets/controls",
3116
            "_model_module_version": "1.5.0",
3117
            "_model_name": "DescriptionStyleModel",
3118
            "_view_count": null,
3119
            "_view_module": "@jupyter-widgets/base",
3120
            "_view_module_version": "1.2.0",
3121
            "_view_name": "StyleView",
3122
            "description_width": ""
3123
          }
3124
        },
3125
        "4726b87618454e858d3e7a2f982558df": {
3126
          "model_module": "@jupyter-widgets/base",
3127
          "model_name": "LayoutModel",
3128
          "model_module_version": "1.2.0",
3129
          "state": {
3130
            "_model_module": "@jupyter-widgets/base",
3131
            "_model_module_version": "1.2.0",
3132
            "_model_name": "LayoutModel",
3133
            "_view_count": null,
3134
            "_view_module": "@jupyter-widgets/base",
3135
            "_view_module_version": "1.2.0",
3136
            "_view_name": "LayoutView",
3137
            "align_content": null,
3138
            "align_items": null,
3139
            "align_self": null,
3140
            "border": null,
3141
            "bottom": null,
3142
            "display": null,
3143
            "flex": null,
3144
            "flex_flow": null,
3145
            "grid_area": null,
3146
            "grid_auto_columns": null,
3147
            "grid_auto_flow": null,
3148
            "grid_auto_rows": null,
3149
            "grid_column": null,
3150
            "grid_gap": null,
3151
            "grid_row": null,
3152
            "grid_template_areas": null,
3153
            "grid_template_columns": null,
3154
            "grid_template_rows": null,
3155
            "height": null,
3156
            "justify_content": null,
3157
            "justify_items": null,
3158
            "left": null,
3159
            "margin": null,
3160
            "max_height": null,
3161
            "max_width": null,
3162
            "min_height": null,
3163
            "min_width": null,
3164
            "object_fit": null,
3165
            "object_position": null,
3166
            "order": null,
3167
            "overflow": null,
3168
            "overflow_x": null,
3169
            "overflow_y": null,
3170
            "padding": null,
3171
            "right": null,
3172
            "top": null,
3173
            "visibility": null,
3174
            "width": null
3175
          }
3176
        },
3177
        "33647f79114144feae792e43cf17e4b7": {
3178
          "model_module": "@jupyter-widgets/controls",
3179
          "model_name": "ProgressStyleModel",
3180
          "model_module_version": "1.5.0",
3181
          "state": {
3182
            "_model_module": "@jupyter-widgets/controls",
3183
            "_model_module_version": "1.5.0",
3184
            "_model_name": "ProgressStyleModel",
3185
            "_view_count": null,
3186
            "_view_module": "@jupyter-widgets/base",
3187
            "_view_module_version": "1.2.0",
3188
            "_view_name": "StyleView",
3189
            "bar_color": null,
3190
            "description_width": ""
3191
          }
3192
        },
3193
        "138d704d84ba403695d6d8c9538e29bc": {
3194
          "model_module": "@jupyter-widgets/base",
3195
          "model_name": "LayoutModel",
3196
          "model_module_version": "1.2.0",
3197
          "state": {
3198
            "_model_module": "@jupyter-widgets/base",
3199
            "_model_module_version": "1.2.0",
3200
            "_model_name": "LayoutModel",
3201
            "_view_count": null,
3202
            "_view_module": "@jupyter-widgets/base",
3203
            "_view_module_version": "1.2.0",
3204
            "_view_name": "LayoutView",
3205
            "align_content": null,
3206
            "align_items": null,
3207
            "align_self": null,
3208
            "border": null,
3209
            "bottom": null,
3210
            "display": null,
3211
            "flex": null,
3212
            "flex_flow": null,
3213
            "grid_area": null,
3214
            "grid_auto_columns": null,
3215
            "grid_auto_flow": null,
3216
            "grid_auto_rows": null,
3217
            "grid_column": null,
3218
            "grid_gap": null,
3219
            "grid_row": null,
3220
            "grid_template_areas": null,
3221
            "grid_template_columns": null,
3222
            "grid_template_rows": null,
3223
            "height": null,
3224
            "justify_content": null,
3225
            "justify_items": null,
3226
            "left": null,
3227
            "margin": null,
3228
            "max_height": null,
3229
            "max_width": null,
3230
            "min_height": null,
3231
            "min_width": null,
3232
            "object_fit": null,
3233
            "object_position": null,
3234
            "order": null,
3235
            "overflow": null,
3236
            "overflow_x": null,
3237
            "overflow_y": null,
3238
            "padding": null,
3239
            "right": null,
3240
            "top": null,
3241
            "visibility": null,
3242
            "width": null
3243
          }
3244
        },
3245
        "bacd0d7737244fd7905d4e40ebd54f6d": {
3246
          "model_module": "@jupyter-widgets/controls",
3247
          "model_name": "DescriptionStyleModel",
3248
          "model_module_version": "1.5.0",
3249
          "state": {
3250
            "_model_module": "@jupyter-widgets/controls",
3251
            "_model_module_version": "1.5.0",
3252
            "_model_name": "DescriptionStyleModel",
3253
            "_view_count": null,
3254
            "_view_module": "@jupyter-widgets/base",
3255
            "_view_module_version": "1.2.0",
3256
            "_view_name": "StyleView",
3257
            "description_width": ""
3258
          }
3259
        },
3260
        "a41034aac0fb4301ad12bbd8e2b0cc40": {
3261
          "model_module": "@jupyter-widgets/controls",
3262
          "model_name": "HBoxModel",
3263
          "model_module_version": "1.5.0",
3264
          "state": {
3265
            "_dom_classes": [],
3266
            "_model_module": "@jupyter-widgets/controls",
3267
            "_model_module_version": "1.5.0",
3268
            "_model_name": "HBoxModel",
3269
            "_view_count": null,
3270
            "_view_module": "@jupyter-widgets/controls",
3271
            "_view_module_version": "1.5.0",
3272
            "_view_name": "HBoxView",
3273
            "box_style": "",
3274
            "children": [
3275
              "IPY_MODEL_b635e3775c164f94b6acec4dd20b192e",
3276
              "IPY_MODEL_356cc173337649588e8990e9b948e9cf",
3277
              "IPY_MODEL_17996150ba4946bc8b9531db9f5f31b5"
3278
            ],
3279
            "layout": "IPY_MODEL_927a0a29edcd47e4a4d3d74df7a9ea2b"
3280
          }
3281
        },
3282
        "b635e3775c164f94b6acec4dd20b192e": {
3283
          "model_module": "@jupyter-widgets/controls",
3284
          "model_name": "HTMLModel",
3285
          "model_module_version": "1.5.0",
3286
          "state": {
3287
            "_dom_classes": [],
3288
            "_model_module": "@jupyter-widgets/controls",
3289
            "_model_module_version": "1.5.0",
3290
            "_model_name": "HTMLModel",
3291
            "_view_count": null,
3292
            "_view_module": "@jupyter-widgets/controls",
3293
            "_view_module_version": "1.5.0",
3294
            "_view_name": "HTMLView",
3295
            "description": "",
3296
            "description_tooltip": null,
3297
            "layout": "IPY_MODEL_5ce59b62adfb416b85bc0effcced25dd",
3298
            "placeholder": "​",
3299
            "style": "IPY_MODEL_913b0f0ccc8848b0b2c3917950f70e93",
3300
            "value": "Map: 100%"
3301
          }
3302
        },
3303
        "356cc173337649588e8990e9b948e9cf": {
3304
          "model_module": "@jupyter-widgets/controls",
3305
          "model_name": "FloatProgressModel",
3306
          "model_module_version": "1.5.0",
3307
          "state": {
3308
            "_dom_classes": [],
3309
            "_model_module": "@jupyter-widgets/controls",
3310
            "_model_module_version": "1.5.0",
3311
            "_model_name": "FloatProgressModel",
3312
            "_view_count": null,
3313
            "_view_module": "@jupyter-widgets/controls",
3314
            "_view_module_version": "1.5.0",
3315
            "_view_name": "ProgressView",
3316
            "bar_style": "success",
3317
            "description": "",
3318
            "description_tooltip": null,
3319
            "layout": "IPY_MODEL_5b0cadad0628423ea3b308a648c3c56e",
3320
            "max": 33955,
3321
            "min": 0,
3322
            "orientation": "horizontal",
3323
            "style": "IPY_MODEL_5b0e393c08bc492aa4079297d6602aa7",
3324
            "value": 33955
3325
          }
3326
        },
3327
        "17996150ba4946bc8b9531db9f5f31b5": {
3328
          "model_module": "@jupyter-widgets/controls",
3329
          "model_name": "HTMLModel",
3330
          "model_module_version": "1.5.0",
3331
          "state": {
3332
            "_dom_classes": [],
3333
            "_model_module": "@jupyter-widgets/controls",
3334
            "_model_module_version": "1.5.0",
3335
            "_model_name": "HTMLModel",
3336
            "_view_count": null,
3337
            "_view_module": "@jupyter-widgets/controls",
3338
            "_view_module_version": "1.5.0",
3339
            "_view_name": "HTMLView",
3340
            "description": "",
3341
            "description_tooltip": null,
3342
            "layout": "IPY_MODEL_5c9790a723f54ec3aa26d61e1e6880b5",
3343
            "placeholder": "​",
3344
            "style": "IPY_MODEL_48ca23b61bac4b9583993577ef4451c4",
3345
            "value": " 33955/33955 [00:01&lt;00:00, 31269.82 examples/s]"
3346
          }
3347
        },
3348
        "927a0a29edcd47e4a4d3d74df7a9ea2b": {
3349
          "model_module": "@jupyter-widgets/base",
3350
          "model_name": "LayoutModel",
3351
          "model_module_version": "1.2.0",
3352
          "state": {
3353
            "_model_module": "@jupyter-widgets/base",
3354
            "_model_module_version": "1.2.0",
3355
            "_model_name": "LayoutModel",
3356
            "_view_count": null,
3357
            "_view_module": "@jupyter-widgets/base",
3358
            "_view_module_version": "1.2.0",
3359
            "_view_name": "LayoutView",
3360
            "align_content": null,
3361
            "align_items": null,
3362
            "align_self": null,
3363
            "border": null,
3364
            "bottom": null,
3365
            "display": null,
3366
            "flex": null,
3367
            "flex_flow": null,
3368
            "grid_area": null,
3369
            "grid_auto_columns": null,
3370
            "grid_auto_flow": null,
3371
            "grid_auto_rows": null,
3372
            "grid_column": null,
3373
            "grid_gap": null,
3374
            "grid_row": null,
3375
            "grid_template_areas": null,
3376
            "grid_template_columns": null,
3377
            "grid_template_rows": null,
3378
            "height": null,
3379
            "justify_content": null,
3380
            "justify_items": null,
3381
            "left": null,
3382
            "margin": null,
3383
            "max_height": null,
3384
            "max_width": null,
3385
            "min_height": null,
3386
            "min_width": null,
3387
            "object_fit": null,
3388
            "object_position": null,
3389
            "order": null,
3390
            "overflow": null,
3391
            "overflow_x": null,
3392
            "overflow_y": null,
3393
            "padding": null,
3394
            "right": null,
3395
            "top": null,
3396
            "visibility": null,
3397
            "width": null
3398
          }
3399
        },
3400
        "5ce59b62adfb416b85bc0effcced25dd": {
3401
          "model_module": "@jupyter-widgets/base",
3402
          "model_name": "LayoutModel",
3403
          "model_module_version": "1.2.0",
3404
          "state": {
3405
            "_model_module": "@jupyter-widgets/base",
3406
            "_model_module_version": "1.2.0",
3407
            "_model_name": "LayoutModel",
3408
            "_view_count": null,
3409
            "_view_module": "@jupyter-widgets/base",
3410
            "_view_module_version": "1.2.0",
3411
            "_view_name": "LayoutView",
3412
            "align_content": null,
3413
            "align_items": null,
3414
            "align_self": null,
3415
            "border": null,
3416
            "bottom": null,
3417
            "display": null,
3418
            "flex": null,
3419
            "flex_flow": null,
3420
            "grid_area": null,
3421
            "grid_auto_columns": null,
3422
            "grid_auto_flow": null,
3423
            "grid_auto_rows": null,
3424
            "grid_column": null,
3425
            "grid_gap": null,
3426
            "grid_row": null,
3427
            "grid_template_areas": null,
3428
            "grid_template_columns": null,
3429
            "grid_template_rows": null,
3430
            "height": null,
3431
            "justify_content": null,
3432
            "justify_items": null,
3433
            "left": null,
3434
            "margin": null,
3435
            "max_height": null,
3436
            "max_width": null,
3437
            "min_height": null,
3438
            "min_width": null,
3439
            "object_fit": null,
3440
            "object_position": null,
3441
            "order": null,
3442
            "overflow": null,
3443
            "overflow_x": null,
3444
            "overflow_y": null,
3445
            "padding": null,
3446
            "right": null,
3447
            "top": null,
3448
            "visibility": null,
3449
            "width": null
3450
          }
3451
        },
3452
        "913b0f0ccc8848b0b2c3917950f70e93": {
3453
          "model_module": "@jupyter-widgets/controls",
3454
          "model_name": "DescriptionStyleModel",
3455
          "model_module_version": "1.5.0",
3456
          "state": {
3457
            "_model_module": "@jupyter-widgets/controls",
3458
            "_model_module_version": "1.5.0",
3459
            "_model_name": "DescriptionStyleModel",
3460
            "_view_count": null,
3461
            "_view_module": "@jupyter-widgets/base",
3462
            "_view_module_version": "1.2.0",
3463
            "_view_name": "StyleView",
3464
            "description_width": ""
3465
          }
3466
        },
3467
        "5b0cadad0628423ea3b308a648c3c56e": {
3468
          "model_module": "@jupyter-widgets/base",
3469
          "model_name": "LayoutModel",
3470
          "model_module_version": "1.2.0",
3471
          "state": {
3472
            "_model_module": "@jupyter-widgets/base",
3473
            "_model_module_version": "1.2.0",
3474
            "_model_name": "LayoutModel",
3475
            "_view_count": null,
3476
            "_view_module": "@jupyter-widgets/base",
3477
            "_view_module_version": "1.2.0",
3478
            "_view_name": "LayoutView",
3479
            "align_content": null,
3480
            "align_items": null,
3481
            "align_self": null,
3482
            "border": null,
3483
            "bottom": null,
3484
            "display": null,
3485
            "flex": null,
3486
            "flex_flow": null,
3487
            "grid_area": null,
3488
            "grid_auto_columns": null,
3489
            "grid_auto_flow": null,
3490
            "grid_auto_rows": null,
3491
            "grid_column": null,
3492
            "grid_gap": null,
3493
            "grid_row": null,
3494
            "grid_template_areas": null,
3495
            "grid_template_columns": null,
3496
            "grid_template_rows": null,
3497
            "height": null,
3498
            "justify_content": null,
3499
            "justify_items": null,
3500
            "left": null,
3501
            "margin": null,
3502
            "max_height": null,
3503
            "max_width": null,
3504
            "min_height": null,
3505
            "min_width": null,
3506
            "object_fit": null,
3507
            "object_position": null,
3508
            "order": null,
3509
            "overflow": null,
3510
            "overflow_x": null,
3511
            "overflow_y": null,
3512
            "padding": null,
3513
            "right": null,
3514
            "top": null,
3515
            "visibility": null,
3516
            "width": null
3517
          }
3518
        },
3519
        "5b0e393c08bc492aa4079297d6602aa7": {
3520
          "model_module": "@jupyter-widgets/controls",
3521
          "model_name": "ProgressStyleModel",
3522
          "model_module_version": "1.5.0",
3523
          "state": {
3524
            "_model_module": "@jupyter-widgets/controls",
3525
            "_model_module_version": "1.5.0",
3526
            "_model_name": "ProgressStyleModel",
3527
            "_view_count": null,
3528
            "_view_module": "@jupyter-widgets/base",
3529
            "_view_module_version": "1.2.0",
3530
            "_view_name": "StyleView",
3531
            "bar_color": null,
3532
            "description_width": ""
3533
          }
3534
        },
3535
        "5c9790a723f54ec3aa26d61e1e6880b5": {
3536
          "model_module": "@jupyter-widgets/base",
3537
          "model_name": "LayoutModel",
3538
          "model_module_version": "1.2.0",
3539
          "state": {
3540
            "_model_module": "@jupyter-widgets/base",
3541
            "_model_module_version": "1.2.0",
3542
            "_model_name": "LayoutModel",
3543
            "_view_count": null,
3544
            "_view_module": "@jupyter-widgets/base",
3545
            "_view_module_version": "1.2.0",
3546
            "_view_name": "LayoutView",
3547
            "align_content": null,
3548
            "align_items": null,
3549
            "align_self": null,
3550
            "border": null,
3551
            "bottom": null,
3552
            "display": null,
3553
            "flex": null,
3554
            "flex_flow": null,
3555
            "grid_area": null,
3556
            "grid_auto_columns": null,
3557
            "grid_auto_flow": null,
3558
            "grid_auto_rows": null,
3559
            "grid_column": null,
3560
            "grid_gap": null,
3561
            "grid_row": null,
3562
            "grid_template_areas": null,
3563
            "grid_template_columns": null,
3564
            "grid_template_rows": null,
3565
            "height": null,
3566
            "justify_content": null,
3567
            "justify_items": null,
3568
            "left": null,
3569
            "margin": null,
3570
            "max_height": null,
3571
            "max_width": null,
3572
            "min_height": null,
3573
            "min_width": null,
3574
            "object_fit": null,
3575
            "object_position": null,
3576
            "order": null,
3577
            "overflow": null,
3578
            "overflow_x": null,
3579
            "overflow_y": null,
3580
            "padding": null,
3581
            "right": null,
3582
            "top": null,
3583
            "visibility": null,
3584
            "width": null
3585
          }
3586
        },
3587
        "48ca23b61bac4b9583993577ef4451c4": {
3588
          "model_module": "@jupyter-widgets/controls",
3589
          "model_name": "DescriptionStyleModel",
3590
          "model_module_version": "1.5.0",
3591
          "state": {
3592
            "_model_module": "@jupyter-widgets/controls",
3593
            "_model_module_version": "1.5.0",
3594
            "_model_name": "DescriptionStyleModel",
3595
            "_view_count": null,
3596
            "_view_module": "@jupyter-widgets/base",
3597
            "_view_module_version": "1.2.0",
3598
            "_view_name": "StyleView",
3599
            "description_width": ""
3600
          }
3601
        },
3602
        "2959bb04464046fd9c5b78e39e4d31aa": {
3603
          "model_module": "@jupyter-widgets/controls",
3604
          "model_name": "HBoxModel",
3605
          "model_module_version": "1.5.0",
3606
          "state": {
3607
            "_dom_classes": [],
3608
            "_model_module": "@jupyter-widgets/controls",
3609
            "_model_module_version": "1.5.0",
3610
            "_model_name": "HBoxModel",
3611
            "_view_count": null,
3612
            "_view_module": "@jupyter-widgets/controls",
3613
            "_view_module_version": "1.5.0",
3614
            "_view_name": "HBoxView",
3615
            "box_style": "",
3616
            "children": [
3617
              "IPY_MODEL_5412eabb86f54fa6b39bda564fb08334",
3618
              "IPY_MODEL_362a07edc2ba457d9939bad3ead4f683",
3619
              "IPY_MODEL_d1937db6c00840ef895654c58c5cf844"
3620
            ],
3621
            "layout": "IPY_MODEL_9324776524bd44ed83972090e1def47e"
3622
          }
3623
        },
3624
        "5412eabb86f54fa6b39bda564fb08334": {
3625
          "model_module": "@jupyter-widgets/controls",
3626
          "model_name": "HTMLModel",
3627
          "model_module_version": "1.5.0",
3628
          "state": {
3629
            "_dom_classes": [],
3630
            "_model_module": "@jupyter-widgets/controls",
3631
            "_model_module_version": "1.5.0",
3632
            "_model_name": "HTMLModel",
3633
            "_view_count": null,
3634
            "_view_module": "@jupyter-widgets/controls",
3635
            "_view_module_version": "1.5.0",
3636
            "_view_name": "HTMLView",
3637
            "description": "",
3638
            "description_tooltip": null,
3639
            "layout": "IPY_MODEL_b07669693dd840249f6d55d8ecc6f394",
3640
            "placeholder": "​",
3641
            "style": "IPY_MODEL_7fd6c7363ade4591824599e64f62a8d8",
3642
            "value": "Map: 100%"
3643
          }
3644
        },
3645
        "362a07edc2ba457d9939bad3ead4f683": {
3646
          "model_module": "@jupyter-widgets/controls",
3647
          "model_name": "FloatProgressModel",
3648
          "model_module_version": "1.5.0",
3649
          "state": {
3650
            "_dom_classes": [],
3651
            "_model_module": "@jupyter-widgets/controls",
3652
            "_model_module_version": "1.5.0",
3653
            "_model_name": "FloatProgressModel",
3654
            "_view_count": null,
3655
            "_view_module": "@jupyter-widgets/controls",
3656
            "_view_module_version": "1.5.0",
3657
            "_view_name": "ProgressView",
3658
            "bar_style": "success",
3659
            "description": "",
3660
            "description_tooltip": null,
3661
            "layout": "IPY_MODEL_d06aac9749f14f74b1a9b4ea7fd4ab20",
3662
            "max": 33955,
3663
            "min": 0,
3664
            "orientation": "horizontal",
3665
            "style": "IPY_MODEL_badae3344d2448d69f5d33f419344c29",
3666
            "value": 33955
3667
          }
3668
        },
3669
        "d1937db6c00840ef895654c58c5cf844": {
3670
          "model_module": "@jupyter-widgets/controls",
3671
          "model_name": "HTMLModel",
3672
          "model_module_version": "1.5.0",
3673
          "state": {
3674
            "_dom_classes": [],
3675
            "_model_module": "@jupyter-widgets/controls",
3676
            "_model_module_version": "1.5.0",
3677
            "_model_name": "HTMLModel",
3678
            "_view_count": null,
3679
            "_view_module": "@jupyter-widgets/controls",
3680
            "_view_module_version": "1.5.0",
3681
            "_view_name": "HTMLView",
3682
            "description": "",
3683
            "description_tooltip": null,
3684
            "layout": "IPY_MODEL_afecd6f978f9451bace318a0ad92a593",
3685
            "placeholder": "​",
3686
            "style": "IPY_MODEL_982831102f1f45959043b619108119b9",
3687
            "value": " 33955/33955 [00:06&lt;00:00, 7211.46 examples/s]"
3688
          }
3689
        },
3690
        "9324776524bd44ed83972090e1def47e": {
3691
          "model_module": "@jupyter-widgets/base",
3692
          "model_name": "LayoutModel",
3693
          "model_module_version": "1.2.0",
3694
          "state": {
3695
            "_model_module": "@jupyter-widgets/base",
3696
            "_model_module_version": "1.2.0",
3697
            "_model_name": "LayoutModel",
3698
            "_view_count": null,
3699
            "_view_module": "@jupyter-widgets/base",
3700
            "_view_module_version": "1.2.0",
3701
            "_view_name": "LayoutView",
3702
            "align_content": null,
3703
            "align_items": null,
3704
            "align_self": null,
3705
            "border": null,
3706
            "bottom": null,
3707
            "display": null,
3708
            "flex": null,
3709
            "flex_flow": null,
3710
            "grid_area": null,
3711
            "grid_auto_columns": null,
3712
            "grid_auto_flow": null,
3713
            "grid_auto_rows": null,
3714
            "grid_column": null,
3715
            "grid_gap": null,
3716
            "grid_row": null,
3717
            "grid_template_areas": null,
3718
            "grid_template_columns": null,
3719
            "grid_template_rows": null,
3720
            "height": null,
3721
            "justify_content": null,
3722
            "justify_items": null,
3723
            "left": null,
3724
            "margin": null,
3725
            "max_height": null,
3726
            "max_width": null,
3727
            "min_height": null,
3728
            "min_width": null,
3729
            "object_fit": null,
3730
            "object_position": null,
3731
            "order": null,
3732
            "overflow": null,
3733
            "overflow_x": null,
3734
            "overflow_y": null,
3735
            "padding": null,
3736
            "right": null,
3737
            "top": null,
3738
            "visibility": null,
3739
            "width": null
3740
          }
3741
        },
3742
        "b07669693dd840249f6d55d8ecc6f394": {
3743
          "model_module": "@jupyter-widgets/base",
3744
          "model_name": "LayoutModel",
3745
          "model_module_version": "1.2.0",
3746
          "state": {
3747
            "_model_module": "@jupyter-widgets/base",
3748
            "_model_module_version": "1.2.0",
3749
            "_model_name": "LayoutModel",
3750
            "_view_count": null,
3751
            "_view_module": "@jupyter-widgets/base",
3752
            "_view_module_version": "1.2.0",
3753
            "_view_name": "LayoutView",
3754
            "align_content": null,
3755
            "align_items": null,
3756
            "align_self": null,
3757
            "border": null,
3758
            "bottom": null,
3759
            "display": null,
3760
            "flex": null,
3761
            "flex_flow": null,
3762
            "grid_area": null,
3763
            "grid_auto_columns": null,
3764
            "grid_auto_flow": null,
3765
            "grid_auto_rows": null,
3766
            "grid_column": null,
3767
            "grid_gap": null,
3768
            "grid_row": null,
3769
            "grid_template_areas": null,
3770
            "grid_template_columns": null,
3771
            "grid_template_rows": null,
3772
            "height": null,
3773
            "justify_content": null,
3774
            "justify_items": null,
3775
            "left": null,
3776
            "margin": null,
3777
            "max_height": null,
3778
            "max_width": null,
3779
            "min_height": null,
3780
            "min_width": null,
3781
            "object_fit": null,
3782
            "object_position": null,
3783
            "order": null,
3784
            "overflow": null,
3785
            "overflow_x": null,
3786
            "overflow_y": null,
3787
            "padding": null,
3788
            "right": null,
3789
            "top": null,
3790
            "visibility": null,
3791
            "width": null
3792
          }
3793
        },
3794
        "7fd6c7363ade4591824599e64f62a8d8": {
3795
          "model_module": "@jupyter-widgets/controls",
3796
          "model_name": "DescriptionStyleModel",
3797
          "model_module_version": "1.5.0",
3798
          "state": {
3799
            "_model_module": "@jupyter-widgets/controls",
3800
            "_model_module_version": "1.5.0",
3801
            "_model_name": "DescriptionStyleModel",
3802
            "_view_count": null,
3803
            "_view_module": "@jupyter-widgets/base",
3804
            "_view_module_version": "1.2.0",
3805
            "_view_name": "StyleView",
3806
            "description_width": ""
3807
          }
3808
        },
3809
        "d06aac9749f14f74b1a9b4ea7fd4ab20": {
3810
          "model_module": "@jupyter-widgets/base",
3811
          "model_name": "LayoutModel",
3812
          "model_module_version": "1.2.0",
3813
          "state": {
3814
            "_model_module": "@jupyter-widgets/base",
3815
            "_model_module_version": "1.2.0",
3816
            "_model_name": "LayoutModel",
3817
            "_view_count": null,
3818
            "_view_module": "@jupyter-widgets/base",
3819
            "_view_module_version": "1.2.0",
3820
            "_view_name": "LayoutView",
3821
            "align_content": null,
3822
            "align_items": null,
3823
            "align_self": null,
3824
            "border": null,
3825
            "bottom": null,
3826
            "display": null,
3827
            "flex": null,
3828
            "flex_flow": null,
3829
            "grid_area": null,
3830
            "grid_auto_columns": null,
3831
            "grid_auto_flow": null,
3832
            "grid_auto_rows": null,
3833
            "grid_column": null,
3834
            "grid_gap": null,
3835
            "grid_row": null,
3836
            "grid_template_areas": null,
3837
            "grid_template_columns": null,
3838
            "grid_template_rows": null,
3839
            "height": null,
3840
            "justify_content": null,
3841
            "justify_items": null,
3842
            "left": null,
3843
            "margin": null,
3844
            "max_height": null,
3845
            "max_width": null,
3846
            "min_height": null,
3847
            "min_width": null,
3848
            "object_fit": null,
3849
            "object_position": null,
3850
            "order": null,
3851
            "overflow": null,
3852
            "overflow_x": null,
3853
            "overflow_y": null,
3854
            "padding": null,
3855
            "right": null,
3856
            "top": null,
3857
            "visibility": null,
3858
            "width": null
3859
          }
3860
        },
3861
        "badae3344d2448d69f5d33f419344c29": {
3862
          "model_module": "@jupyter-widgets/controls",
3863
          "model_name": "ProgressStyleModel",
3864
          "model_module_version": "1.5.0",
3865
          "state": {
3866
            "_model_module": "@jupyter-widgets/controls",
3867
            "_model_module_version": "1.5.0",
3868
            "_model_name": "ProgressStyleModel",
3869
            "_view_count": null,
3870
            "_view_module": "@jupyter-widgets/base",
3871
            "_view_module_version": "1.2.0",
3872
            "_view_name": "StyleView",
3873
            "bar_color": null,
3874
            "description_width": ""
3875
          }
3876
        },
3877
        "afecd6f978f9451bace318a0ad92a593": {
3878
          "model_module": "@jupyter-widgets/base",
3879
          "model_name": "LayoutModel",
3880
          "model_module_version": "1.2.0",
3881
          "state": {
3882
            "_model_module": "@jupyter-widgets/base",
3883
            "_model_module_version": "1.2.0",
3884
            "_model_name": "LayoutModel",
3885
            "_view_count": null,
3886
            "_view_module": "@jupyter-widgets/base",
3887
            "_view_module_version": "1.2.0",
3888
            "_view_name": "LayoutView",
3889
            "align_content": null,
3890
            "align_items": null,
3891
            "align_self": null,
3892
            "border": null,
3893
            "bottom": null,
3894
            "display": null,
3895
            "flex": null,
3896
            "flex_flow": null,
3897
            "grid_area": null,
3898
            "grid_auto_columns": null,
3899
            "grid_auto_flow": null,
3900
            "grid_auto_rows": null,
3901
            "grid_column": null,
3902
            "grid_gap": null,
3903
            "grid_row": null,
3904
            "grid_template_areas": null,
3905
            "grid_template_columns": null,
3906
            "grid_template_rows": null,
3907
            "height": null,
3908
            "justify_content": null,
3909
            "justify_items": null,
3910
            "left": null,
3911
            "margin": null,
3912
            "max_height": null,
3913
            "max_width": null,
3914
            "min_height": null,
3915
            "min_width": null,
3916
            "object_fit": null,
3917
            "object_position": null,
3918
            "order": null,
3919
            "overflow": null,
3920
            "overflow_x": null,
3921
            "overflow_y": null,
3922
            "padding": null,
3923
            "right": null,
3924
            "top": null,
3925
            "visibility": null,
3926
            "width": null
3927
          }
3928
        },
3929
        "982831102f1f45959043b619108119b9": {
3930
          "model_module": "@jupyter-widgets/controls",
3931
          "model_name": "DescriptionStyleModel",
3932
          "model_module_version": "1.5.0",
3933
          "state": {
3934
            "_model_module": "@jupyter-widgets/controls",
3935
            "_model_module_version": "1.5.0",
3936
            "_model_name": "DescriptionStyleModel",
3937
            "_view_count": null,
3938
            "_view_module": "@jupyter-widgets/base",
3939
            "_view_module_version": "1.2.0",
3940
            "_view_name": "StyleView",
3941
            "description_width": ""
3942
          }
3943
        },
3944
        "11f1c457989b4211a66099e84f6beb73": {
3945
          "model_module": "@jupyter-widgets/controls",
3946
          "model_name": "HBoxModel",
3947
          "model_module_version": "1.5.0",
3948
          "state": {
3949
            "_dom_classes": [],
3950
            "_model_module": "@jupyter-widgets/controls",
3951
            "_model_module_version": "1.5.0",
3952
            "_model_name": "HBoxModel",
3953
            "_view_count": null,
3954
            "_view_module": "@jupyter-widgets/controls",
3955
            "_view_module_version": "1.5.0",
3956
            "_view_name": "HBoxView",
3957
            "box_style": "",
3958
            "children": [
3959
              "IPY_MODEL_3aa2d2085fc64bfd89d2889621cfd2ae",
3960
              "IPY_MODEL_6d85c1fb9dc8478899b39a8f49ba6fde",
3961
              "IPY_MODEL_2794d95fbb924c58acd1d806c6f847ee"
3962
            ],
3963
            "layout": "IPY_MODEL_2a1e24790e2e4df99c29fc9e0fc2da9d"
3964
          }
3965
        },
3966
        "3aa2d2085fc64bfd89d2889621cfd2ae": {
3967
          "model_module": "@jupyter-widgets/controls",
3968
          "model_name": "HTMLModel",
3969
          "model_module_version": "1.5.0",
3970
          "state": {
3971
            "_dom_classes": [],
3972
            "_model_module": "@jupyter-widgets/controls",
3973
            "_model_module_version": "1.5.0",
3974
            "_model_name": "HTMLModel",
3975
            "_view_count": null,
3976
            "_view_module": "@jupyter-widgets/controls",
3977
            "_view_module_version": "1.5.0",
3978
            "_view_name": "HTMLView",
3979
            "description": "",
3980
            "description_tooltip": null,
3981
            "layout": "IPY_MODEL_5b8c18ab8f934c33bab55beee17d7ac7",
3982
            "placeholder": "​",
3983
            "style": "IPY_MODEL_34e7a0da7e4b494ba248654e124638b3",
3984
            "value": "Map (num_proc=2): 100%"
3985
          }
3986
        },
3987
        "6d85c1fb9dc8478899b39a8f49ba6fde": {
3988
          "model_module": "@jupyter-widgets/controls",
3989
          "model_name": "FloatProgressModel",
3990
          "model_module_version": "1.5.0",
3991
          "state": {
3992
            "_dom_classes": [],
3993
            "_model_module": "@jupyter-widgets/controls",
3994
            "_model_module_version": "1.5.0",
3995
            "_model_name": "FloatProgressModel",
3996
            "_view_count": null,
3997
            "_view_module": "@jupyter-widgets/controls",
3998
            "_view_module_version": "1.5.0",
3999
            "_view_name": "ProgressView",
4000
            "bar_style": "success",
4001
            "description": "",
4002
            "description_tooltip": null,
4003
            "layout": "IPY_MODEL_e5c927adf18f44cdb054ae3123f8b526",
4004
            "max": 33955,
4005
            "min": 0,
4006
            "orientation": "horizontal",
4007
            "style": "IPY_MODEL_98d8d0fed266494abd1ec14a7e3c4d05",
4008
            "value": 33955
4009
          }
4010
        },
4011
        "2794d95fbb924c58acd1d806c6f847ee": {
4012
          "model_module": "@jupyter-widgets/controls",
4013
          "model_name": "HTMLModel",
4014
          "model_module_version": "1.5.0",
4015
          "state": {
4016
            "_dom_classes": [],
4017
            "_model_module": "@jupyter-widgets/controls",
4018
            "_model_module_version": "1.5.0",
4019
            "_model_name": "HTMLModel",
4020
            "_view_count": null,
4021
            "_view_module": "@jupyter-widgets/controls",
4022
            "_view_module_version": "1.5.0",
4023
            "_view_name": "HTMLView",
4024
            "description": "",
4025
            "description_tooltip": null,
4026
            "layout": "IPY_MODEL_ed3b09500a97415891a3c1cf1a681d6c",
4027
            "placeholder": "​",
4028
            "style": "IPY_MODEL_5beefaa4ac9347bf8edf5d9e62e6baf0",
4029
            "value": " 33955/33955 [00:29&lt;00:00, 2587.22 examples/s]"
4030
          }
4031
        },
4032
        "2a1e24790e2e4df99c29fc9e0fc2da9d": {
4033
          "model_module": "@jupyter-widgets/base",
4034
          "model_name": "LayoutModel",
4035
          "model_module_version": "1.2.0",
4036
          "state": {
4037
            "_model_module": "@jupyter-widgets/base",
4038
            "_model_module_version": "1.2.0",
4039
            "_model_name": "LayoutModel",
4040
            "_view_count": null,
4041
            "_view_module": "@jupyter-widgets/base",
4042
            "_view_module_version": "1.2.0",
4043
            "_view_name": "LayoutView",
4044
            "align_content": null,
4045
            "align_items": null,
4046
            "align_self": null,
4047
            "border": null,
4048
            "bottom": null,
4049
            "display": null,
4050
            "flex": null,
4051
            "flex_flow": null,
4052
            "grid_area": null,
4053
            "grid_auto_columns": null,
4054
            "grid_auto_flow": null,
4055
            "grid_auto_rows": null,
4056
            "grid_column": null,
4057
            "grid_gap": null,
4058
            "grid_row": null,
4059
            "grid_template_areas": null,
4060
            "grid_template_columns": null,
4061
            "grid_template_rows": null,
4062
            "height": null,
4063
            "justify_content": null,
4064
            "justify_items": null,
4065
            "left": null,
4066
            "margin": null,
4067
            "max_height": null,
4068
            "max_width": null,
4069
            "min_height": null,
4070
            "min_width": null,
4071
            "object_fit": null,
4072
            "object_position": null,
4073
            "order": null,
4074
            "overflow": null,
4075
            "overflow_x": null,
4076
            "overflow_y": null,
4077
            "padding": null,
4078
            "right": null,
4079
            "top": null,
4080
            "visibility": null,
4081
            "width": null
4082
          }
4083
        },
4084
        "5b8c18ab8f934c33bab55beee17d7ac7": {
4085
          "model_module": "@jupyter-widgets/base",
4086
          "model_name": "LayoutModel",
4087
          "model_module_version": "1.2.0",
4088
          "state": {
4089
            "_model_module": "@jupyter-widgets/base",
4090
            "_model_module_version": "1.2.0",
4091
            "_model_name": "LayoutModel",
4092
            "_view_count": null,
4093
            "_view_module": "@jupyter-widgets/base",
4094
            "_view_module_version": "1.2.0",
4095
            "_view_name": "LayoutView",
4096
            "align_content": null,
4097
            "align_items": null,
4098
            "align_self": null,
4099
            "border": null,
4100
            "bottom": null,
4101
            "display": null,
4102
            "flex": null,
4103
            "flex_flow": null,
4104
            "grid_area": null,
4105
            "grid_auto_columns": null,
4106
            "grid_auto_flow": null,
4107
            "grid_auto_rows": null,
4108
            "grid_column": null,
4109
            "grid_gap": null,
4110
            "grid_row": null,
4111
            "grid_template_areas": null,
4112
            "grid_template_columns": null,
4113
            "grid_template_rows": null,
4114
            "height": null,
4115
            "justify_content": null,
4116
            "justify_items": null,
4117
            "left": null,
4118
            "margin": null,
4119
            "max_height": null,
4120
            "max_width": null,
4121
            "min_height": null,
4122
            "min_width": null,
4123
            "object_fit": null,
4124
            "object_position": null,
4125
            "order": null,
4126
            "overflow": null,
4127
            "overflow_x": null,
4128
            "overflow_y": null,
4129
            "padding": null,
4130
            "right": null,
4131
            "top": null,
4132
            "visibility": null,
4133
            "width": null
4134
          }
4135
        },
4136
        "34e7a0da7e4b494ba248654e124638b3": {
4137
          "model_module": "@jupyter-widgets/controls",
4138
          "model_name": "DescriptionStyleModel",
4139
          "model_module_version": "1.5.0",
4140
          "state": {
4141
            "_model_module": "@jupyter-widgets/controls",
4142
            "_model_module_version": "1.5.0",
4143
            "_model_name": "DescriptionStyleModel",
4144
            "_view_count": null,
4145
            "_view_module": "@jupyter-widgets/base",
4146
            "_view_module_version": "1.2.0",
4147
            "_view_name": "StyleView",
4148
            "description_width": ""
4149
          }
4150
        },
4151
        "e5c927adf18f44cdb054ae3123f8b526": {
4152
          "model_module": "@jupyter-widgets/base",
4153
          "model_name": "LayoutModel",
4154
          "model_module_version": "1.2.0",
4155
          "state": {
4156
            "_model_module": "@jupyter-widgets/base",
4157
            "_model_module_version": "1.2.0",
4158
            "_model_name": "LayoutModel",
4159
            "_view_count": null,
4160
            "_view_module": "@jupyter-widgets/base",
4161
            "_view_module_version": "1.2.0",
4162
            "_view_name": "LayoutView",
4163
            "align_content": null,
4164
            "align_items": null,
4165
            "align_self": null,
4166
            "border": null,
4167
            "bottom": null,
4168
            "display": null,
4169
            "flex": null,
4170
            "flex_flow": null,
4171
            "grid_area": null,
4172
            "grid_auto_columns": null,
4173
            "grid_auto_flow": null,
4174
            "grid_auto_rows": null,
4175
            "grid_column": null,
4176
            "grid_gap": null,
4177
            "grid_row": null,
4178
            "grid_template_areas": null,
4179
            "grid_template_columns": null,
4180
            "grid_template_rows": null,
4181
            "height": null,
4182
            "justify_content": null,
4183
            "justify_items": null,
4184
            "left": null,
4185
            "margin": null,
4186
            "max_height": null,
4187
            "max_width": null,
4188
            "min_height": null,
4189
            "min_width": null,
4190
            "object_fit": null,
4191
            "object_position": null,
4192
            "order": null,
4193
            "overflow": null,
4194
            "overflow_x": null,
4195
            "overflow_y": null,
4196
            "padding": null,
4197
            "right": null,
4198
            "top": null,
4199
            "visibility": null,
4200
            "width": null
4201
          }
4202
        },
4203
        "98d8d0fed266494abd1ec14a7e3c4d05": {
4204
          "model_module": "@jupyter-widgets/controls",
4205
          "model_name": "ProgressStyleModel",
4206
          "model_module_version": "1.5.0",
4207
          "state": {
4208
            "_model_module": "@jupyter-widgets/controls",
4209
            "_model_module_version": "1.5.0",
4210
            "_model_name": "ProgressStyleModel",
4211
            "_view_count": null,
4212
            "_view_module": "@jupyter-widgets/base",
4213
            "_view_module_version": "1.2.0",
4214
            "_view_name": "StyleView",
4215
            "bar_color": null,
4216
            "description_width": ""
4217
          }
4218
        },
4219
        "ed3b09500a97415891a3c1cf1a681d6c": {
4220
          "model_module": "@jupyter-widgets/base",
4221
          "model_name": "LayoutModel",
4222
          "model_module_version": "1.2.0",
4223
          "state": {
4224
            "_model_module": "@jupyter-widgets/base",
4225
            "_model_module_version": "1.2.0",
4226
            "_model_name": "LayoutModel",
4227
            "_view_count": null,
4228
            "_view_module": "@jupyter-widgets/base",
4229
            "_view_module_version": "1.2.0",
4230
            "_view_name": "LayoutView",
4231
            "align_content": null,
4232
            "align_items": null,
4233
            "align_self": null,
4234
            "border": null,
4235
            "bottom": null,
4236
            "display": null,
4237
            "flex": null,
4238
            "flex_flow": null,
4239
            "grid_area": null,
4240
            "grid_auto_columns": null,
4241
            "grid_auto_flow": null,
4242
            "grid_auto_rows": null,
4243
            "grid_column": null,
4244
            "grid_gap": null,
4245
            "grid_row": null,
4246
            "grid_template_areas": null,
4247
            "grid_template_columns": null,
4248
            "grid_template_rows": null,
4249
            "height": null,
4250
            "justify_content": null,
4251
            "justify_items": null,
4252
            "left": null,
4253
            "margin": null,
4254
            "max_height": null,
4255
            "max_width": null,
4256
            "min_height": null,
4257
            "min_width": null,
4258
            "object_fit": null,
4259
            "object_position": null,
4260
            "order": null,
4261
            "overflow": null,
4262
            "overflow_x": null,
4263
            "overflow_y": null,
4264
            "padding": null,
4265
            "right": null,
4266
            "top": null,
4267
            "visibility": null,
4268
            "width": null
4269
          }
4270
        },
4271
        "5beefaa4ac9347bf8edf5d9e62e6baf0": {
4272
          "model_module": "@jupyter-widgets/controls",
4273
          "model_name": "DescriptionStyleModel",
4274
          "model_module_version": "1.5.0",
4275
          "state": {
4276
            "_model_module": "@jupyter-widgets/controls",
4277
            "_model_module_version": "1.5.0",
4278
            "_model_name": "DescriptionStyleModel",
4279
            "_view_count": null,
4280
            "_view_module": "@jupyter-widgets/base",
4281
            "_view_module_version": "1.2.0",
4282
            "_view_name": "StyleView",
4283
            "description_width": ""
4284
          }
4285
        },
4286
        "3be9f1c4ca424b08b995986b31bc6f73": {
4287
          "model_module": "@jupyter-widgets/controls",
4288
          "model_name": "HBoxModel",
4289
          "model_module_version": "1.5.0",
4290
          "state": {
4291
            "_dom_classes": [],
4292
            "_model_module": "@jupyter-widgets/controls",
4293
            "_model_module_version": "1.5.0",
4294
            "_model_name": "HBoxModel",
4295
            "_view_count": null,
4296
            "_view_module": "@jupyter-widgets/controls",
4297
            "_view_module_version": "1.5.0",
4298
            "_view_name": "HBoxView",
4299
            "box_style": "",
4300
            "children": [
4301
              "IPY_MODEL_cbaaf16637334b8c907be3c1eea8e36b",
4302
              "IPY_MODEL_ab35ff19da2b4ab49ea4f6ab3bc32981",
4303
              "IPY_MODEL_d9add78673484904995f4b3181c2d3d6"
4304
            ],
4305
            "layout": "IPY_MODEL_d44d61caea1f4aa79d3fae256b5e351e"
4306
          }
4307
        },
4308
        "cbaaf16637334b8c907be3c1eea8e36b": {
4309
          "model_module": "@jupyter-widgets/controls",
4310
          "model_name": "HTMLModel",
4311
          "model_module_version": "1.5.0",
4312
          "state": {
4313
            "_dom_classes": [],
4314
            "_model_module": "@jupyter-widgets/controls",
4315
            "_model_module_version": "1.5.0",
4316
            "_model_name": "HTMLModel",
4317
            "_view_count": null,
4318
            "_view_module": "@jupyter-widgets/controls",
4319
            "_view_module_version": "1.5.0",
4320
            "_view_name": "HTMLView",
4321
            "description": "",
4322
            "description_tooltip": null,
4323
            "layout": "IPY_MODEL_4be9d0609a1d4a28b622ada5052fd653",
4324
            "placeholder": "​",
4325
            "style": "IPY_MODEL_fbf5b0b982d5483bb160f1c745e5fa1d",
4326
            "value": "Map: 100%"
4327
          }
4328
        },
4329
        "ab35ff19da2b4ab49ea4f6ab3bc32981": {
4330
          "model_module": "@jupyter-widgets/controls",
4331
          "model_name": "FloatProgressModel",
4332
          "model_module_version": "1.5.0",
4333
          "state": {
4334
            "_dom_classes": [],
4335
            "_model_module": "@jupyter-widgets/controls",
4336
            "_model_module_version": "1.5.0",
4337
            "_model_name": "FloatProgressModel",
4338
            "_view_count": null,
4339
            "_view_module": "@jupyter-widgets/controls",
4340
            "_view_module_version": "1.5.0",
4341
            "_view_name": "ProgressView",
4342
            "bar_style": "success",
4343
            "description": "",
4344
            "description_tooltip": null,
4345
            "layout": "IPY_MODEL_55be8a889c8a414f83c2af904513f96d",
4346
            "max": 33955,
4347
            "min": 0,
4348
            "orientation": "horizontal",
4349
            "style": "IPY_MODEL_567af20e2fab400aae2131ade113d39d",
4350
            "value": 33955
4351
          }
4352
        },
4353
        "d9add78673484904995f4b3181c2d3d6": {
4354
          "model_module": "@jupyter-widgets/controls",
4355
          "model_name": "HTMLModel",
4356
          "model_module_version": "1.5.0",
4357
          "state": {
4358
            "_dom_classes": [],
4359
            "_model_module": "@jupyter-widgets/controls",
4360
            "_model_module_version": "1.5.0",
4361
            "_model_name": "HTMLModel",
4362
            "_view_count": null,
4363
            "_view_module": "@jupyter-widgets/controls",
4364
            "_view_module_version": "1.5.0",
4365
            "_view_name": "HTMLView",
4366
            "description": "",
4367
            "description_tooltip": null,
4368
            "layout": "IPY_MODEL_a17fe71fa4f24581a5a5758d367888c3",
4369
            "placeholder": "​",
4370
            "style": "IPY_MODEL_106ddc5392a747e88905c314032671fa",
4371
            "value": " 33955/33955 [00:09&lt;00:00, 2567.44 examples/s]"
4372
          }
4373
        },
4374
        "d44d61caea1f4aa79d3fae256b5e351e": {
4375
          "model_module": "@jupyter-widgets/base",
4376
          "model_name": "LayoutModel",
4377
          "model_module_version": "1.2.0",
4378
          "state": {
4379
            "_model_module": "@jupyter-widgets/base",
4380
            "_model_module_version": "1.2.0",
4381
            "_model_name": "LayoutModel",
4382
            "_view_count": null,
4383
            "_view_module": "@jupyter-widgets/base",
4384
            "_view_module_version": "1.2.0",
4385
            "_view_name": "LayoutView",
4386
            "align_content": null,
4387
            "align_items": null,
4388
            "align_self": null,
4389
            "border": null,
4390
            "bottom": null,
4391
            "display": null,
4392
            "flex": null,
4393
            "flex_flow": null,
4394
            "grid_area": null,
4395
            "grid_auto_columns": null,
4396
            "grid_auto_flow": null,
4397
            "grid_auto_rows": null,
4398
            "grid_column": null,
4399
            "grid_gap": null,
4400
            "grid_row": null,
4401
            "grid_template_areas": null,
4402
            "grid_template_columns": null,
4403
            "grid_template_rows": null,
4404
            "height": null,
4405
            "justify_content": null,
4406
            "justify_items": null,
4407
            "left": null,
4408
            "margin": null,
4409
            "max_height": null,
4410
            "max_width": null,
4411
            "min_height": null,
4412
            "min_width": null,
4413
            "object_fit": null,
4414
            "object_position": null,
4415
            "order": null,
4416
            "overflow": null,
4417
            "overflow_x": null,
4418
            "overflow_y": null,
4419
            "padding": null,
4420
            "right": null,
4421
            "top": null,
4422
            "visibility": null,
4423
            "width": null
4424
          }
4425
        },
4426
        "4be9d0609a1d4a28b622ada5052fd653": {
4427
          "model_module": "@jupyter-widgets/base",
4428
          "model_name": "LayoutModel",
4429
          "model_module_version": "1.2.0",
4430
          "state": {
4431
            "_model_module": "@jupyter-widgets/base",
4432
            "_model_module_version": "1.2.0",
4433
            "_model_name": "LayoutModel",
4434
            "_view_count": null,
4435
            "_view_module": "@jupyter-widgets/base",
4436
            "_view_module_version": "1.2.0",
4437
            "_view_name": "LayoutView",
4438
            "align_content": null,
4439
            "align_items": null,
4440
            "align_self": null,
4441
            "border": null,
4442
            "bottom": null,
4443
            "display": null,
4444
            "flex": null,
4445
            "flex_flow": null,
4446
            "grid_area": null,
4447
            "grid_auto_columns": null,
4448
            "grid_auto_flow": null,
4449
            "grid_auto_rows": null,
4450
            "grid_column": null,
4451
            "grid_gap": null,
4452
            "grid_row": null,
4453
            "grid_template_areas": null,
4454
            "grid_template_columns": null,
4455
            "grid_template_rows": null,
4456
            "height": null,
4457
            "justify_content": null,
4458
            "justify_items": null,
4459
            "left": null,
4460
            "margin": null,
4461
            "max_height": null,
4462
            "max_width": null,
4463
            "min_height": null,
4464
            "min_width": null,
4465
            "object_fit": null,
4466
            "object_position": null,
4467
            "order": null,
4468
            "overflow": null,
4469
            "overflow_x": null,
4470
            "overflow_y": null,
4471
            "padding": null,
4472
            "right": null,
4473
            "top": null,
4474
            "visibility": null,
4475
            "width": null
4476
          }
4477
        },
4478
        "fbf5b0b982d5483bb160f1c745e5fa1d": {
4479
          "model_module": "@jupyter-widgets/controls",
4480
          "model_name": "DescriptionStyleModel",
4481
          "model_module_version": "1.5.0",
4482
          "state": {
4483
            "_model_module": "@jupyter-widgets/controls",
4484
            "_model_module_version": "1.5.0",
4485
            "_model_name": "DescriptionStyleModel",
4486
            "_view_count": null,
4487
            "_view_module": "@jupyter-widgets/base",
4488
            "_view_module_version": "1.2.0",
4489
            "_view_name": "StyleView",
4490
            "description_width": ""
4491
          }
4492
        },
4493
        "55be8a889c8a414f83c2af904513f96d": {
4494
          "model_module": "@jupyter-widgets/base",
4495
          "model_name": "LayoutModel",
4496
          "model_module_version": "1.2.0",
4497
          "state": {
4498
            "_model_module": "@jupyter-widgets/base",
4499
            "_model_module_version": "1.2.0",
4500
            "_model_name": "LayoutModel",
4501
            "_view_count": null,
4502
            "_view_module": "@jupyter-widgets/base",
4503
            "_view_module_version": "1.2.0",
4504
            "_view_name": "LayoutView",
4505
            "align_content": null,
4506
            "align_items": null,
4507
            "align_self": null,
4508
            "border": null,
4509
            "bottom": null,
4510
            "display": null,
4511
            "flex": null,
4512
            "flex_flow": null,
4513
            "grid_area": null,
4514
            "grid_auto_columns": null,
4515
            "grid_auto_flow": null,
4516
            "grid_auto_rows": null,
4517
            "grid_column": null,
4518
            "grid_gap": null,
4519
            "grid_row": null,
4520
            "grid_template_areas": null,
4521
            "grid_template_columns": null,
4522
            "grid_template_rows": null,
4523
            "height": null,
4524
            "justify_content": null,
4525
            "justify_items": null,
4526
            "left": null,
4527
            "margin": null,
4528
            "max_height": null,
4529
            "max_width": null,
4530
            "min_height": null,
4531
            "min_width": null,
4532
            "object_fit": null,
4533
            "object_position": null,
4534
            "order": null,
4535
            "overflow": null,
4536
            "overflow_x": null,
4537
            "overflow_y": null,
4538
            "padding": null,
4539
            "right": null,
4540
            "top": null,
4541
            "visibility": null,
4542
            "width": null
4543
          }
4544
        },
4545
        "567af20e2fab400aae2131ade113d39d": {
4546
          "model_module": "@jupyter-widgets/controls",
4547
          "model_name": "ProgressStyleModel",
4548
          "model_module_version": "1.5.0",
4549
          "state": {
4550
            "_model_module": "@jupyter-widgets/controls",
4551
            "_model_module_version": "1.5.0",
4552
            "_model_name": "ProgressStyleModel",
4553
            "_view_count": null,
4554
            "_view_module": "@jupyter-widgets/base",
4555
            "_view_module_version": "1.2.0",
4556
            "_view_name": "StyleView",
4557
            "bar_color": null,
4558
            "description_width": ""
4559
          }
4560
        },
4561
        "a17fe71fa4f24581a5a5758d367888c3": {
4562
          "model_module": "@jupyter-widgets/base",
4563
          "model_name": "LayoutModel",
4564
          "model_module_version": "1.2.0",
4565
          "state": {
4566
            "_model_module": "@jupyter-widgets/base",
4567
            "_model_module_version": "1.2.0",
4568
            "_model_name": "LayoutModel",
4569
            "_view_count": null,
4570
            "_view_module": "@jupyter-widgets/base",
4571
            "_view_module_version": "1.2.0",
4572
            "_view_name": "LayoutView",
4573
            "align_content": null,
4574
            "align_items": null,
4575
            "align_self": null,
4576
            "border": null,
4577
            "bottom": null,
4578
            "display": null,
4579
            "flex": null,
4580
            "flex_flow": null,
4581
            "grid_area": null,
4582
            "grid_auto_columns": null,
4583
            "grid_auto_flow": null,
4584
            "grid_auto_rows": null,
4585
            "grid_column": null,
4586
            "grid_gap": null,
4587
            "grid_row": null,
4588
            "grid_template_areas": null,
4589
            "grid_template_columns": null,
4590
            "grid_template_rows": null,
4591
            "height": null,
4592
            "justify_content": null,
4593
            "justify_items": null,
4594
            "left": null,
4595
            "margin": null,
4596
            "max_height": null,
4597
            "max_width": null,
4598
            "min_height": null,
4599
            "min_width": null,
4600
            "object_fit": null,
4601
            "object_position": null,
4602
            "order": null,
4603
            "overflow": null,
4604
            "overflow_x": null,
4605
            "overflow_y": null,
4606
            "padding": null,
4607
            "right": null,
4608
            "top": null,
4609
            "visibility": null,
4610
            "width": null
4611
          }
4612
        },
4613
        "106ddc5392a747e88905c314032671fa": {
4614
          "model_module": "@jupyter-widgets/controls",
4615
          "model_name": "DescriptionStyleModel",
4616
          "model_module_version": "1.5.0",
4617
          "state": {
4618
            "_model_module": "@jupyter-widgets/controls",
4619
            "_model_module_version": "1.5.0",
4620
            "_model_name": "DescriptionStyleModel",
4621
            "_view_count": null,
4622
            "_view_module": "@jupyter-widgets/base",
4623
            "_view_module_version": "1.2.0",
4624
            "_view_name": "StyleView",
4625
            "description_width": ""
4626
          }
4627
        }
4628
      }
4629
    }
4630
  },
4631
  "nbformat": 4,
4632
  "nbformat_minor": 0
4633
}