{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9b42d4f5",
   "metadata": {
    "id": "9b42d4f5"
   },
   "source": [
    "# Uncertainty Analysis and Calibration for LLMs\n",
    "\n",
    "Author: Mehmet Emre Tiryaki (JHU)\n",
    "\n",
    "This lab notebook is organized around three parts:\n",
    "\n",
    "- **Part I — Uncertainty quantification:** Methods that measure the uncertainty in the answer of a language model.\n",
    "\n",
    "- **Part II — Evaluating uncertainty quantification:** Metrics that score uncertainty quantification methods. This is a tricky concept, the metrics here are concerned with how well uncertainty quantification scores align with accuracy.\n",
    "\n",
    "- **Part III — Calibration:** Methods that rescale an uncertainty quantification score to match better with the accuracy.\n",
    "\n",
    "**Your job: complete every cell marked `### TODO`.**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "36727b81",
   "metadata": {
    "id": "36727b81"
   },
   "source": [
    "## 1. Setup\n",
    "\n",
    "Please don't forget to connect to a runtime with a sufficient GPU, T4 works here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "522a286d",
   "metadata": {
    "id": "522a286d",
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "outputId": "022a39b8-71ab-44f1-9805-dd845d98ff7f"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.2/11.2 MB\u001b[0m \u001b[31m71.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m555.1/555.1 kB\u001b[0m \u001b[31m20.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m48.9/48.9 MB\u001b[0m \u001b[31m18.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25h  Building wheel for rouge_score (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
      "GPU 0: Tesla T4 (UUID: GPU-7d944ab8-80e1-6371-6aa1-7a198c3a3b7e)\n"
     ]
    }
   ],
   "source": [
    "!pip install -q -U transformers datasets accelerate rouge_score\n",
    "!nvidia-smi -L"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "53c9325a",
   "metadata": {
    "id": "53c9325a"
   },
   "source": [
    "We are using Qwen2.5-3B-Instruct for this lab as the language model we are working on. The next two cells will download the model and setup some helpful functions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fbbdc581",
   "metadata": {
    "id": "fbbdc581",
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 493,
     "referenced_widgets": [
      "7103e1ad65f54e12b92fc98f66d38098",
      "21984568641a46f78b795aa203a4d027",
      "23b4877569314d228839ad7db4a210d1",
      "0ac7ff31066b4f7894bb1224e9c2eb58",
      "11dfda2a41484b49be9cc902a99e51b0",
      "e7711195948b44f4bb75c818e2c86e82",
      "8811325234124f06b11125a5c5388ca5",
      "32b146c325494d049e0ddf7b0a7a1732",
      "9434ac52bd094673a22f4de1a2d86466",
      "8544d282d6334bedbbd2af1b20d41968",
      "a0357b921cd84d57bc5a856cf87ce169",
      "e717bfd0d2cf404797b5abce24107edf",
      "a4b9269ee34a40bbbb231ff140884535",
      "a18ab8bc0b24411e9bd1cb9528b9cf2c",
      "215bacdc9e904705ac10e5b978d1c9e2",
      "89db3cbacbbd4f46812ea2525a122f37",
      "05a725cbd0354b8a9cb0d362e8a4f8f1",
      "103533dca50b43cc895723204b531a34",
      "14a265ebf1aa432bae0d3e22512aa290",
      "5d5496f645be4f46a7cde50956014f9c",
      "266472b6c631463ca065f38c5e5b6425",
      "b6a6a55bc5274469b123bb2cd7ca0f61",
      "e72441549fa048b1aa6563536b65084f",
      "ba286075bb574c0abb6fac90f7524e3a",
      "4d0f30dd6ba245828226124a56553499",
      "4f011326f28542aa94ed919c64cfcc9c",
      "9a7f44c1067f4dbab4d515c8f3b03d4d",
      "a0ef66a2fecf4a6cb21c0f99f1f43bff",
      "71a056894ce3438d9b9dc320366198a5",
      "6b59d32734904f558272e6a6f5bacc9a",
      "01aa973ba5cd460a84095119c488e64c",
      "8d39e3ac14c6416d85c7939784b8535d",
      "8a1c7e76b18e4492bfda508cecf8a54e",
      "9eea72f6e8da4ddaa8b9a35a25519121",
      "2678832320184c849f714e5d9bcc05a4",
      "189426f646884052be3abc10b45cd245",
      "ff4cd8ea16864b22a5dcec1c11009072",
      "07c629492e6e404bba00ee71c0fb370f",
      "565468c0cebc4e589b5aa7da2a868322",
      "3bc794ca96914d7db8855685fef2de63",
      "789caf0616d249cea779187fe59b82a2",
      "63a6c53619f449a1953007775424e4ae",
      "f08270ad274b4a68a56b9060f542281f",
      "f88d070070124d959f2b5d8d577f340a",
      "3583bae78c2a4b21bfc4ff7e62b33731",
      "9f62ee46f104435ca2455f26c67eb244",
      "ee629ac2441a4f9d963cde0f51f8e236",
      "55be8381eea04b268c2c01c1f6322610",
      "61c8a67f897245e58264c633d81e9102",
      "a10543b9f469427686d81b1fe4d4152e",
      "90295d65b56642a3894bc7b427fb1606",
      "0bd205955b9b4267b7ae2e9b257aadd7",
      "1af07954d6ab4c6cac19cb74af65aa2b",
      "f353bedbdf7041cf830e2bb5e09e1b2e",
      "5cb7ecf8706d4b12bd70cd8e09ffa2c0",
      "69918082f4454cf9bbb993238de1412c",
      "33e70069e46246ba947e4568419d4552",
      "ab0c1f08109140b2b6367af712998d0c",
      "539d43da6c1f4b8eb2426e82ae5ead41",
      "c94fa3beb7394ce39c394b2ef802e745",
      "967809c8825d4bfa97693015be89b352",
      "955aa8c4190f4388af853ebaeaf00887",
      "4c2a8c5d005f44a2abe28874d6f71850",
      "e70b3a60f0de4ad39e6ea962a195b792",
      "6265c246e7b24e83b1b37a9f9dea5cfe",
      "75794d0f48de44a7b40e152b6c1ee676",
      "3b3d0765591b407798b1d55d888da81b",
      "d79a39892a4249a2ae8ae0a79fe75ab7",
      "9d8b73ec452f444cb93de6fa33a069f4",
      "6ed8601b504c40db9ef25b1f86be990c",
      "d73a204f38ce40818ec5a1b64d0eb3db",
      "81a7e34772524b9d88633e37059b5453",
      "2017f7c4db74416d86aa2aae16e8d96f",
      "97aac36b9a464f56b2488ea4083771d1",
      "261e6dad2b504b768e6f158137026569",
      "20cc24dba7334746bfa85d5a5ed7d8f3",
      "9d086bc281fb415e964a2abea61a0f9b",
      "5b8150031a7844949e9cddc847d8b951",
      "d7729eedfc2449f8b4f5fe52df5dbe90",
      "655d8262d4db4a0a812c42efd0b94fa1",
      "2ab9fa1b1b954ffdaef68f6e19e0aef3",
      "78d8dd41009e44859b4f352fbecde212",
      "5b80643e2ab4409c93fc146a20ea466a",
      "504b992d77a543a8a819e16e10e990ad",
      "9d872b63905b465c839ad7a2de2d3fff",
      "316ddeaedb9d43589b4a139f7455085f",
      "eec83e83e63a4b24805c5324b7f66290",
      "423614d43fee41d69ace440d2c64a061",
      "92c364f520fa4638a584aed1e862f7ff",
      "c7d45069039a4570849256478fd373f1",
      "cef2dfdc4a4b49b2b6103fcfdeb5d46f",
      "7e0870ba336d4760b976841f298a3972",
      "791172b9e0d84d5380ff96eb22f39192",
      "e59e97516bee46619f294e1ccf711647",
      "4976d340ee7b46ff81dfbfe40b097507",
      "58d9cd9a5e284bed95ab79ab3625bd7e",
      "f84a28c95553465a8daf8b8f61098e36",
      "5487e7108cf1468eab9465b2ec3ee538",
      "7623653f31e749ad8af61e61fcf37231",
      "48fe1b70d8c4420dab104fdc3e78ed15",
      "bef0676d9392449598de1d3f61517c5f",
      "61c5de07b4874b0389a156980a0f2254",
      "7be7b6f77cf0400aa8712e39d7646167",
      "8e25d08318b148c9ad6d6614e20177e2",
      "13f9a9dc4e3047f5aedb6800d6748881",
      "983956e797bf41ae8833356763d8ef8c",
      "2fb2243089194bea887f43e39267754e",
      "acb6ed4b32954253be26404705777b81",
      "e16325a5f7534380939af0a008c19def",
      "2ee465f8d3d74f2f9cfaaab9eba293e0"
     ]
    },
    "outputId": "a0663656-5fb6-44ef-9624-333ce381404a"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "/usr/local/lib/python3.12/dist-packages/huggingface_hub/utils/_auth.py:134: UserWarning: \n",
      "Error while fetching `HF_TOKEN` secret value from your vault: 'Requesting secret HF_TOKEN timed out. Secrets can only be fetched when running from the Colab UI.'.\n",
      "You are not authenticated with the Hugging Face Hub in this notebook.\n",
      "If the error persists, please let us know by opening an issue on GitHub (https://github.com/huggingface/huggingface_hub/issues/new).\n",
      "  warnings.warn(\n",
      "Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n",
      "WARNING:huggingface_hub.utils._http:Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "config.json:   0%|          | 0.00/661 [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "7103e1ad65f54e12b92fc98f66d38098"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "tokenizer_config.json:   0%|          | 0.00/7.30k [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "e717bfd0d2cf404797b5abce24107edf"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "vocab.json:   0%|          | 0.00/2.78M [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "e72441549fa048b1aa6563536b65084f"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "merges.txt:   0%|          | 0.00/1.67M [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "9eea72f6e8da4ddaa8b9a35a25519121"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "tokenizer.json:   0%|          | 0.00/7.03M [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "3583bae78c2a4b21bfc4ff7e62b33731"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "[transformers] `torch_dtype` is deprecated! Use `dtype` instead!\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "model.safetensors.index.json:   0%|          | 0.00/35.6k [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "69918082f4454cf9bbb993238de1412c"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Downloading (incomplete total...): 0.00B [00:00, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "3b3d0765591b407798b1d55d888da81b"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Fetching 2 files:   0%|          | 0/2 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "5b8150031a7844949e9cddc847d8b951"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Loading weights:   0%|          | 0/434 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "92c364f520fa4638a584aed1e862f7ff"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "generation_config.json:   0%|          | 0.00/242 [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "48fe1b70d8c4420dab104fdc3e78ed15"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "loaded on cuda:0\n"
     ]
    }
   ],
   "source": [
    "import re, math, time\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "from transformers import AutoModelForCausalLM, AutoTokenizer\n",
    "\n",
    "MODEL_NAME = \"Qwen/Qwen2.5-3B-Instruct\"\n",
    "\n",
    "tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)\n",
    "if tokenizer.pad_token is None:\n",
    "    tokenizer.pad_token = tokenizer.eos_token\n",
    "\n",
    "model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch.float16)\n",
    "model.to(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "model.eval()\n",
    "device = model.device\n",
    "print(\"loaded on\", device)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8aec6640",
   "metadata": {
    "id": "8aec6640"
   },
   "source": [
    "The generation helper returns the decoded answers and the per-token log-probabilities\n",
    "of the generated tokens. `sample=False` gives the most-likely answer; `sample=True`\n",
    "draws `n` answers with nucleus ($P=0.9$) and top-K ($K=50$) sampling.\n",
    "We are using an instruction tuned model, so we use its chat template: a brief system instruction\n",
    "plus a few-shot block of `Question → answer` turns. For the system prompt, we use one to instruct the LLM to answer briefly in order to accurately judge the answers without clutter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "487af6a3",
   "metadata": {
    "id": "487af6a3"
   },
   "outputs": [],
   "source": [
    "SYSTEM = \"Answer the following question as briefly as possible.\"\n",
    "\n",
    "FEWSHOT_MESSAGES = []\n",
    "\n",
    "def chat_prompt(question, fewshot_messages):\n",
    "    # the full prompt string (system + few-shot turns + this question)\n",
    "    messages = (\n",
    "        [{\"role\": \"system\", \"content\": SYSTEM}]                    # the brief instruction\n",
    "        + fewshot_messages                                         # sampled Question -> answer examples\n",
    "        + [{\"role\": \"user\", \"content\": f\"Question: {question}\"}]   # the question to answer\n",
    "    )\n",
    "    return tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)\n",
    "\n",
    "def generate(question, n=1, sample=False, temperature=1.0, max_new_tokens=64, fewshot_messages=None):\n",
    "    # (list of n answer strings, list of their per-token log-probabilities)\n",
    "    fewshot_messages = FEWSHOT_MESSAGES if fewshot_messages is None else fewshot_messages\n",
    "    enc = tokenizer(chat_prompt(question, fewshot_messages), return_tensors=\"pt\").to(device)\n",
    "    prompt_len = enc.input_ids.shape[1]\n",
    "\n",
    "    gen_kwargs = dict(max_new_tokens=max_new_tokens, do_sample=sample,\n",
    "                      num_return_sequences=n, pad_token_id=tokenizer.pad_token_id,\n",
    "                      return_dict_in_generate=True, output_scores=True)\n",
    "    if sample:\n",
    "        gen_kwargs.update(temperature=temperature, top_p=0.9, top_k=50)\n",
    "\n",
    "    with torch.no_grad():\n",
    "        out = model.generate(**enc, **gen_kwargs)\n",
    "    transition = model.compute_transition_scores(out.sequences, out.scores, normalize_logits=True)\n",
    "\n",
    "    new_tokens = out.sequences[:, prompt_len:]\n",
    "    texts, logprobs = [], []\n",
    "    for i in range(new_tokens.shape[0]):\n",
    "        row = new_tokens[i]\n",
    "        eos = (row == tokenizer.eos_token_id).nonzero()\n",
    "        cut = int(eos[0]) if len(eos) > 0 else len(row)\n",
    "        texts.append(tokenizer.decode(row[:cut], skip_special_tokens=True).strip())\n",
    "        logprobs.append(transition[i, :cut].float().cpu().tolist())\n",
    "    return texts, logprobs\n",
    "\n",
    "def hidden_states(question, answer, fewshot_messages=None):\n",
    "    # array (num_layers, hidden_size): the model's internal state for this question+answer\n",
    "    fewshot_messages = FEWSHOT_MESSAGES if fewshot_messages is None else fewshot_messages\n",
    "    enc = tokenizer(chat_prompt(question, fewshot_messages) + answer, return_tensors=\"pt\").to(device)\n",
    "    with torch.no_grad():\n",
    "        out = model(**enc, output_hidden_states=True)\n",
    "    idx = max(enc.input_ids.shape[1] - 2, 0)\n",
    "    return torch.stack([layer[0, idx, :] for layer in out.hidden_states], dim=0).float().cpu().numpy()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34d653d1",
   "metadata": {
    "id": "34d653d1"
   },
   "source": [
    "## 2. Data and records\n",
    "\n",
    "TriviaQA is short-answer trivia dataset, we will use this dataset for the rest of the lab. We will use N_TEST number of questions for our test split, N_CALIB number of questions to calibrate the uncertainty quantification methods. For each questions we generate N_SAMPLES number of answers.We also sample a few **train** examples to build the\n",
    "few-shot prompt that will be used later.\n",
    "\n",
    "This cell will generate the answers using the numbers and the model that was determined before. We store these along with their log-probs in a dict for ease of use, you can inspect what is in the dict in the build_qa function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "28e479e9",
   "metadata": {
    "id": "28e479e9",
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 305,
     "referenced_widgets": [
      "bac66ec0e6e5453289b927ecdd30d12d",
      "b6305c93facd44809570b9da6644b2f1",
      "8695753c6d0b4b9fbf96edb831ae7388",
      "4afb14ec08e44f4ba19204c201eaa647",
      "6bfce0addd294a33885827b4e0cedc76",
      "f921d43ba3934f199947ce350f3f75ed",
      "5fd292d7d0f0442f9bcff60c47529f61",
      "c6891c5b2645446280296cdf09136e32",
      "a069419c36f1492b9126c3424615f49d",
      "c7f61eabcf8c4c6f9ca66cabee4fee1a",
      "83ffdf5ef2ce4f329b56d77cf934d250",
      "96c0e319a4094389ab6ea9f9f01b21a5",
      "7a14af69bf6c4437884a41c8d0404bf4",
      "b85bec22a9dc40b9a7f3627d36b67918",
      "9a1b3e327d614df19f04809f3adcedef",
      "22795686dd0c4978bc879a54f00f7b67",
      "55e0cfeb099f4358aed4aa1b23e21181",
      "ca193079c550486881a7b877a57d848b",
      "c552e825599a4e139bed87283678347d",
      "9f15d5b0f1e64696b762bb206feefe5a",
      "61ded5db3c654a16aca9b4c37a720c9a",
      "890c4c78daa54ca09ce5cb3840d48f1f",
      "660bfbe65abc4e3293e3073f0fd5e012",
      "041ffe5b1c194812a866e7ca33829968",
      "285109f878cc40e2b6a2ef10ec8ca762",
      "f2fa7dad370d4c4ba5054356c9f37fb7",
      "d257a779c8464237928fefe6955c1f82",
      "4e79a8a32c6043459e1d6f40883a8d2f",
      "e74a587e146a4188a5f9fcc5ff516773",
      "395623293e494066916bc3214132a45c",
      "a0aaf2d650a34bea9ea40429f2235bce",
      "ed915e3478774cd18a677759367c9f3b",
      "464056ed5d2c40499d9c58e18b02baae",
      "6e24d27cb3344516841c427548d89e45",
      "745797fdc90346d582b1104f9bdcac56",
      "7be357788c3e4a2a8c2080a9dd68a33d",
      "39d67dd7c1c14216b060ebc0d52ce356",
      "b7cb21582cc7481a87fcc83d7698b598",
      "506b3cc149f34aa68ae1885894331f82",
      "adc9e8f4353e419d8395ae26c1c0f3d8",
      "604e8a676a354959b1dfe586aad3f4ce",
      "48c5d80c294948aab27261404ddd1815",
      "cf140e73df0e42d69440aeba121defdf",
      "1d11024172684a068fd942a59bfa146f",
      "a88661d894dc49869b7055210ccde1b5",
      "134bbf749fd548da84b7782b5254211a",
      "56dbf26c45664b339f8b39dcaf30495d",
      "aa14acdc35af4694ba37fe09add66679",
      "c816c396a8c84dc8a97d0950a3a217c1",
      "c0eeea01ef71462fa6af0ddc0dc37e12",
      "748d19a894754751915384376adc793d",
      "32dac79cf785435a9efcf2f89195c2ef",
      "530c913caa5f46a5a0e0e18d4a0a31c4",
      "d45615c4146c40e8b93de01b7c96bc0c",
      "a685429b8b5e46b7850c771730049a10",
      "5731929b60cb49389e3952f30b9eefe7",
      "ac10d34379aa4f80816e210222940c28",
      "9c07ec5a19104033917c3bb7e42fbe88",
      "33b9bce3665f458c98656cd814a1a675",
      "d0f3eb1619b14195b8bf46f0230abe35",
      "a9e3b0ae4ec94520a174516fe681a112",
      "a6964342599941ac89ea5bc04a96b290",
      "5ab1687b90c24bd8b30a525b0a31c4f8",
      "48714856a8044de3a42298039e4b8e0f",
      "b1443e37817d403e8f90f18f6009f230",
      "4cf69c42b6d24d98881a68bfe1f02649",
      "ef73b5b206174e0c90838f18341f7451",
      "29c4381d143b4c0ca413bc1423699f24",
      "72e587d08920467bb209ba33a27c9255",
      "4d1fe185e86e484e834d3244faa03266",
      "0358746ff7314db58e7229ad88ff8ca1",
      "1464a5bfcc8d4175b5d29e86fe88bdbf",
      "3b77905339ce4f318ea4089d778bc5cb",
      "f9c5d4818bc141a0bd3ea915df6a8c2b",
      "b0eb0c416992426f86352e6500106075",
      "174fbdf5f5014d5b9366ea73982ebd21",
      "9d1b2d3cd90545d88ad94cc9a2ff94d5",
      "24e8f933e09849c4a295b1123e639104",
      "410459ac62c24191b2fd0ece5da7e13a",
      "81d8166701e9476abfc02c3ebaee7b64",
      "0e1bbe9ab51e4692a2227e0a50afc7e8",
      "50abb09d696c478caca27f1fb2b9776a",
      "fe745b6dad364c22af1feb9c681d7999",
      "d080a7f4009a479a99cd63db1539ce94",
      "65e68517d1ff4ab6a7736aaae7a0acf9",
      "a5873f9e2fa5406c8cbfebb0a7dae900",
      "9be3dd5549404edfa2c5f59c8a4c929f",
      "0b83b5fa2cbf4883b26a47cc71c94277",
      "b94c73a73d354d1fb7fef920b8258170",
      "fa36579bc04242a6907f7d573463cac5",
      "c152a78db1e44aa9b978bdd54822ff5f",
      "efa3bc15e29749dba08a183a30654618",
      "dccb5c5cc81148cf87b86a06fec5a169",
      "f5c56e4c022842fcb1e9e29e7b61c377",
      "5f3e5bf506914f3b96cd9d66ad4c8eb6",
      "2d6f7b335c3d4c1292fde72450a9ed9f",
      "4cad8b745c8b4d63b42b6710822e3906",
      "5a2beb4448814b69b1699710ec1e6716",
      "334d0c6611404c508458a206fa70dd32"
     ]
    },
    "outputId": "186f7f3e-50bb-4e62-c726-b3fad2194678"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "README.md:   0%|          | 0.00/26.7k [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "bac66ec0e6e5453289b927ecdd30d12d"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Resolving data files:   0%|          | 0/26 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "96c0e319a4094389ab6ea9f9f01b21a5"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "rc.nocontext/train-00000-of-00001.parque(…):   0%|          | 0.00/55.4M [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "660bfbe65abc4e3293e3073f0fd5e012"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "rc.nocontext/validation-00000-of-00001.p(…):   0%|          | 0.00/7.34M [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "6e24d27cb3344516841c427548d89e45"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "rc.nocontext/test-00000-of-00001.parquet:   0%|          | 0.00/1.20M [00:00<?, ?B/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "a88661d894dc49869b7055210ccde1b5"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Generating train split:   0%|          | 0/138384 [00:00<?, ? examples/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "5731929b60cb49389e3952f30b9eefe7"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Generating validation split:   0%|          | 0/17944 [00:00<?, ? examples/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "ef73b5b206174e0c90838f18341f7451"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Generating test split:   0%|          | 0/17210 [00:00<?, ? examples/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "24e8f933e09849c4a295b1123e639104"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "Resolving data files:   0%|          | 0/26 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "b94c73a73d354d1fb7fef920b8258170"
      }
     },
     "metadata": {}
    }
   ],
   "source": [
    "from datasets import load_dataset\n",
    "import random\n",
    "\n",
    "N_TEST    = 100\n",
    "N_CALIB   = 100\n",
    "N_SAMPLES = 10\n",
    "SAMPLING_TEMPERATURE = 1.0\n",
    "NUM_FEW_SHOT = 5\n",
    "\n",
    "dataset    = load_dataset(\"mandarjoshi/trivia_qa\", \"rc.nocontext\", split=\"validation\")\n",
    "train_data = load_dataset(\"mandarjoshi/trivia_qa\", \"rc.nocontext\", split=\"train\")\n",
    "\n",
    "# Build the few-shot chat turns, from sampled TRAIN examples.\n",
    "fewshot_idx = random.Random(0).sample(range(len(train_data)), NUM_FEW_SHOT)\n",
    "FEWSHOT_MESSAGES = []\n",
    "for fi in fewshot_idx:\n",
    "    ex = train_data[fi]\n",
    "    FEWSHOT_MESSAGES.append({\"role\": \"user\", \"content\": f\"Question: {ex['question']}\"})\n",
    "    FEWSHOT_MESSAGES.append({\"role\": \"assistant\", \"content\": ex[\"answer\"][\"value\"]})\n",
    "\n",
    "order = list(range(len(dataset)))\n",
    "random.Random(0).shuffle(order)\n",
    "\n",
    "items = []\n",
    "for i in order:\n",
    "    example = dataset[i]\n",
    "    references = example[\"answer\"][\"aliases\"] or [example[\"answer\"][\"value\"]]\n",
    "    items.append({\"question\": example[\"question\"], \"answers\": list(references)})\n",
    "    if len(items) >= N_TEST + N_CALIB:\n",
    "        break\n",
    "\n",
    "calib_items = items[:N_CALIB]\n",
    "test_items  = items[N_CALIB:]\n",
    "\n",
    "def build_qa(item, with_hidden=True):\n",
    "    # a dict with the question, references, greedy answer, samples, and their log-probs\n",
    "    question = item[\"question\"]\n",
    "    greedy_text, greedy_logprobs = generate(question, n=1, sample=False)\n",
    "    sample_text, sample_logprobs = generate(question, n=N_SAMPLES, sample=True,\n",
    "                                            temperature=SAMPLING_TEMPERATURE)\n",
    "    qa = {\n",
    "        \"question\":        question,\n",
    "        \"answers\":         item.get(\"answers\"),\n",
    "        \"greedy_answer\":   greedy_text[0],\n",
    "        \"greedy_logprobs\": greedy_logprobs[0],\n",
    "        \"samples\":         sample_text,\n",
    "        \"sample_logprobs\": sample_logprobs,\n",
    "    }\n",
    "    if with_hidden:\n",
    "        qa[\"hidden_states\"] = hidden_states(question, greedy_text[0])\n",
    "    return qa\n",
    "\n",
    "test_qas  = [build_qa(it) for it in test_items]\n",
    "calib_qas = [build_qa(it) for it in calib_items]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "Pqds-XVFtL2S",
   "metadata": {
    "id": "Pqds-XVFtL2S"
   },
   "outputs": [],
   "source": [
    "dataset[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3d74a33",
   "metadata": {
    "id": "a3d74a33"
   },
   "source": [
    "Here are the first few test records: the question, how many *distinct* answers the model\n",
    "gave across the samples, and the samples themselves. Familiarize yourself with the dataset and the type of answers our LLM tends to give."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fd0223ea",
   "metadata": {
    "id": "fd0223ea"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "pd.set_option(\"display.max_colwidth\", None)   # show full text; Colab clips wide cells by default\n",
    "\n",
    "pd.DataFrame([{\n",
    "    \"question\": qa[\"question\"],\n",
    "    \"distinct samples\": len({s.lower() for s in qa[\"samples\"]}),\n",
    "    \"samples\": qa[\"samples\"],\n",
    "} for qa in test_qas[:8]])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "18546b20",
   "metadata": {
    "id": "18546b20"
   },
   "source": [
    "## 3. Correctness\n",
    "\n",
    "Every uncertainty number in this lab is judged against a correctness label: was the model's\n",
    "answer right or wrong? So before measuring uncertainty we need a way to decide correctness\n",
    "automatically, by comparing the model's answer to one or more reference answers.\n",
    "\n",
    "The obvious choice, exact string match, is too strict for free-form text. The model\n",
    "might say *\"JFK\"* when the reference is *\"John F. Kennedy\"*, *\"Paris\"* vs *\"Paris, France\"*,\n",
    "*\"in 1944\"* vs *\"1944\"* and so on. So we need a softer notion of \"same answer\"\n",
    "and there's a spectrum of them.\n",
    "\n",
    "**Lexical overlap/Fuzzy Matching**: compare the words or characters of the answer to the reference label. These are cheap but has a not so small chance of failing when it comes to paraphrasing and synonyms. Most of these came from language translation.\n",
    "\n",
    "- **Token-F1** *(your TODO, and what we use)*: Treat each answer as a bag of words. Precision is\n",
    "  the share of the answer's words found in the reference, recall is the share of the reference's\n",
    "  words the answer covers. F1 score is their harmonic mean.We call an answer\n",
    "  correct when **Token-F1 against the best-matching reference > T** where you choose T. We will use > 0.5 for this lab. It\n",
    "  rewards word overlap regardless of meaning, \"not guilty\"* vs *\"guilty\"* score higher than true\n",
    "  synonyms like \"car\" and \"automobile\".\n",
    "- **Rouge-L** *(provided)*: based on the **longest common subsequence** — the longest run of words\n",
    "  appearing in both answers in the same order. Same harmonic-mean idea\n",
    "  as Token-F1, but order-sensitive, so it rewards getting the sequence right. Common in\n",
    "  summarization.\n",
    "- **BLEU** *: an n-gram precision metric from machine translation.\n",
    "  It checks how many 1-, 2-, 3-, and 4-word groups of the answer appear in the reference, takes a\n",
    "  geometric average of those precisions, and multiplies by a brevity penalty so an answer\n",
    "  can't win just by being short. Because it leans on longer n-grams, it's designed for full\n",
    "  sentences.\n",
    "\n",
    "**Semantic / model-based**: compare meaning using a learned model. The methods may be more accurate then lexical similarity based methods but they have their own inacurracies as they are dependent on the quality of the model used and they are more expensive to run.\n",
    "\n",
    "- **BERTScore**: Instead of matching exact words, it embeds every\n",
    "  token of the answer and the reference with a language model (e.g. finetuned BERT) and matches them by\n",
    "  cosine similarity of their embeddings, then aggregates into a precision/recall/F1. Because\n",
    "  it works in embedding space, *\"car\"* and *\"automobile\"* match even though they share no letters, it aims to capture semantic information directly.\n",
    "\n",
    "- Further along this axis: an **LLM-as-a-judge** (ask a strong model \"is this answer correct given\n",
    "  the reference?\"), or **human annotators**, which is the most faithful but also the most expensive.\n",
    "\n",
    "We use **Token-F1 > 0.5** for the lab following some previous work as instant, but it's imperfect. Keep that in mind and note that which correctness metric you use is one of the knobs you can experiment with later."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c8e5a576",
   "metadata": {
    "id": "c8e5a576"
   },
   "outputs": [],
   "source": [
    "def normalize(text):\n",
    "    # the text lowercased, with articles and punctuation stripped (for fair matching)\n",
    "    text = text.lower()\n",
    "    text = re.sub(r\"\\b(a|an|the)\\b\", \" \", text)\n",
    "    text = re.sub(r\"[^a-z0-9 ]\", \" \", text)\n",
    "    return re.sub(r\"\\s+\", \" \", text).strip()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d1d60c53",
   "metadata": {
    "id": "d1d60c53"
   },
   "outputs": [],
   "source": [
    "def token_f1(prediction, reference):\n",
    "    ### TODO: Token-F1 between prediction and reference.\n",
    "\n",
    "    # Algorithm:\n",
    "    # 1. Normalize both strings and split them into word lists.\n",
    "    # 2. Count the words they share, counting a repeated word only as many times as it\n",
    "    #    appears in both.\n",
    "    # 3. Precision is shared over the prediction length; recall is shared over the\n",
    "    #    reference length.\n",
    "    # 4. Return the harmonic mean of precision and recall (0 if nothing is shared).\n",
    "\n",
    "    raise NotImplementedError(\"Implement Token-F1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1b1bf981",
   "metadata": {
    "id": "1b1bf981"
   },
   "outputs": [],
   "source": [
    "from rouge_score import rouge_scorer\n",
    "_rouge_scorer = rouge_scorer.RougeScorer([\"rougeL\"], use_stemmer=False)\n",
    "\n",
    "def rouge_l(prediction, reference):\n",
    "    # Rouge-L F-measure in [0, 1] (first argument is the reference, second the prediction)\n",
    "    return _rouge_scorer.score(reference, prediction)[\"rougeL\"].fmeasure\n",
    "\n",
    "def is_correct(prediction, references, threshold=0.5):\n",
    "    # True if the prediction matches any reference alias well enough (Token-F1 > 0.5 default)\n",
    "    if isinstance(references, str):\n",
    "        references = [references]\n",
    "    return max((token_f1(prediction, r) for r in references), default=0.0) >= threshold"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34aa41c4",
   "metadata": {
    "id": "34aa41c4"
   },
   "source": [
    "Let's check the accuracy of our model (using its greedy answers) on our test set using our definition of correctness and inspect some of them. How much was actually incorrect, how much is due to errors caused by Token-F1 as the correctness measure? You might also notice some bad reference answers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8d81696c",
   "metadata": {
    "id": "8d81696c"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "pd.set_option(\"display.max_colwidth\", None)\n",
    "\n",
    "test_correct  = np.array([is_correct(qa[\"greedy_answer\"], qa[\"answers\"]) for qa in test_qas])\n",
    "calib_correct = np.array([is_correct(qa[\"greedy_answer\"], qa[\"answers\"]) for qa in calib_qas])\n",
    "print(f\"greedy accuracy on test: {test_correct.mean():.1%}\")\n",
    "\n",
    "df = pd.DataFrame([\n",
    "    {\"question\": qa[\"question\"], \"model answer\": qa[\"greedy_answer\"],\n",
    "     \"reference\": qa[\"answers\"][0], \"correct\": bool(ok)}\n",
    "    for qa, ok in zip(test_qas, test_correct)])\n",
    "\n",
    "right, wrong = df[df.correct], df[~df.correct]\n",
    "print(\"Examples the model got RIGHT:\"); display(right.sample(min(3, len(right))))\n",
    "print(\"\\nExamples the model got WRONG:\"); display(wrong.sample(min(3, len(wrong))))\n",
    "\n",
    "acc = test_correct.mean()\n",
    "plt.figure(figsize=(5, 1.3))\n",
    "plt.barh([\"test\"], [acc], color=\"#4c9f70\")\n",
    "plt.barh([\"test\"], [1 - acc], left=[acc], color=\"#d96c6c\")\n",
    "plt.xlim(0, 1); plt.xticks([0, 0.5, 1]); plt.title(f\"greedy accuracy = {acc:.1%}  (green = correct)\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c8f7df14",
   "metadata": {
    "id": "c8f7df14"
   },
   "source": [
    "# Part I — Uncertainty Quantification\n",
    "\n",
    "An **uncertainty quantification (UQ) method** is a function that maps a model's answer\n",
    "to a number, the *uncertainty score*, where larger means the model is more uncertain. The methods differ in what they read to compute the\n",
    "number and their costs.\n",
    "\n",
    "We may classify the methods into black-box (output text only), grey-box\n",
    "(token probabilities), and white-box (hidden states) depending on what the method needs as an input. Then, we have the following methods at hand in this notebook:\n",
    "\n",
    "- **Sequence-likelihood methods** *(grey-box)*:\n",
    "  token confidence (perplexity), predictive entropy, length-normalized entropy\n",
    "  (Malinin & Gales).\n",
    "\n",
    "- **Self-evaluation methods**: ask the model about its own answer: P(True) *(grey-box;\n",
    "  Kadavath)*, verbalized confidence *(black-box; Lin et al., Tian et al.)*,\n",
    "  LLM-as-a-judge *(grey-box)*.\n",
    "- **Semantic Similarity Methods**: sample several answers and measure agreement in some space: lexical similarity *(black-box; Kuhn, after Fomicheva et al.)*, semantic entropy *(grey-box or black-box; Kuhn)*.\n",
    "- **Others**: semantic entropy probe *(white-box; Kossen\n",
    "  et al.)*."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f823358",
   "metadata": {
    "id": "9f823358"
   },
   "source": [
    "### I.I Sequence-likelihood methods\n",
    "\n",
    "These read the log-probabilities the model already assigns to tokens. Write the greedy\n",
    "answer as tokens $w_1,\\dots,w_T$, and a sampled answer $s_n$ with sequence\n",
    "log-probability $\\log p(s_n\\mid x) = \\sum_t \\log p(w^{(n)}_t \\mid w^{(n)}_{<t}, x)$.\n",
    "\n",
    "- **Token confidence** (perplexity): mean negative log-probability of\n",
    "  the greedy answer:\n",
    "  $$U_{\\text{tok}} = -\\frac{1}{T}\\sum_{t=1}^{T} \\log p(w_t \\mid w_{<t}, x).$$\n",
    "- **Predictive entropy**: how spread out the sampled answers' probabilities are, the entropy of the sampled answers' likelihoods\n",
    "  (Malinin & Gales):\n",
    "  $$U_{\\text{PE}} = -\\frac{1}{N}\\sum_{n=1}^{N} \\log p(s_n \\mid x).$$\n",
    "- **Length-normalized entropy**: same as above, but divide each sequence log-probability by\n",
    "  its length $T_n$ first to normalize, so long answers are not automatically scored as more uncertain:\n",
    "  $$U_{\\text{LN}} = -\\frac{1}{N}\\sum_{n=1}^{N} \\frac{1}{T_n}\\log p(s_n \\mid x).$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "df224511",
   "metadata": {
    "id": "df224511"
   },
   "outputs": [],
   "source": [
    "def token_confidence(qa):\n",
    "    # mean negative log-prob of the greedy answer (higher means less confident)\n",
    "    logprobs = qa[\"greedy_logprobs\"]\n",
    "    if not logprobs:\n",
    "        return 0.0\n",
    "    return -sum(logprobs) / len(logprobs)\n",
    "\n",
    "def sequence_logprob(token_logprobs, length_normalize):\n",
    "    # the sequence's total (or per-token mean) log-probability\n",
    "    if not token_logprobs:\n",
    "        return 0.0\n",
    "    if length_normalize:\n",
    "        return sum(token_logprobs) / len(token_logprobs)\n",
    "    return sum(token_logprobs)\n",
    "\n",
    "def predictive_entropy(qa, length_normalize=False):\n",
    "    # predictive entropy: mean negative sequence log-prob across the samples\n",
    "    sample_logprobs = qa[\"sample_logprobs\"]\n",
    "    if not sample_logprobs:\n",
    "        return 0.0\n",
    "    per_sample = [sequence_logprob(lp, length_normalize) for lp in sample_logprobs]\n",
    "    return -sum(per_sample) / len(per_sample)\n",
    "\n",
    "def length_norm_entropy(qa):\n",
    "    # predictive entropy with each sequence log-prob divided by its length\n",
    "    return predictive_entropy(qa, length_normalize=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c883b8c1",
   "metadata": {
    "id": "c883b8c1"
   },
   "source": [
    "This plots the per-token probability of the most-likely answer, for a confident case and\n",
    "a shaky one."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "947c13ae",
   "metadata": {
    "id": "947c13ae"
   },
   "outputs": [],
   "source": [
    "order_by_unc = sorted(range(len(test_qas)), key=lambda i: token_confidence(test_qas[i]))\n",
    "certain, uncertain = test_qas[order_by_unc[0]], test_qas[order_by_unc[-1]]\n",
    "\n",
    "fig, axes = plt.subplots(1, 2, figsize=(11, 3.4))\n",
    "for ax, qa, title in [(axes[0], certain, \"low uncertainty\"), (axes[1], uncertain, \"high uncertainty\")]:\n",
    "    probs = np.exp(qa[\"greedy_logprobs\"])\n",
    "    ids = tokenizer(qa[\"greedy_answer\"], add_special_tokens=False)[\"input_ids\"]\n",
    "    n = min(len(probs), len(ids))\n",
    "    labels = [tokenizer.decode([ids[k]]).strip() or \"_\" for k in range(n)]\n",
    "    ax.bar(range(n), probs[:n], color=\"#4c78a8\")\n",
    "    ax.set_xticks(range(n)); ax.set_xticklabels(labels, rotation=45, ha=\"right\", fontsize=8)\n",
    "    ax.set_ylim(0, 1); ax.set_ylabel(\"token probability\")\n",
    "    ax.set_title(f\"{title}\\nA: {qa['greedy_answer'][:42]}\", fontsize=9)\n",
    "plt.tight_layout(); plt.show()\n",
    "\n",
    "for label, qa in [(\"certain  \", certain), (\"uncertain\", uncertain)]:\n",
    "    print(f\"[{label.strip()}] Q: {qa['question']}\")\n",
    "    print(f\"            A: {qa['greedy_answer']}\")\n",
    "    print(f\"            mean_neg_logprob={token_confidence(qa):.2f}  \"\n",
    "          f\"predictive_entropy={predictive_entropy(qa):.2f}  \"\n",
    "          f\"length_norm={length_norm_entropy(qa):.2f}\\n\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "osesfCau_B3d",
   "metadata": {
    "id": "osesfCau_B3d"
   },
   "source": [
    "Let's look at how much of the answers fall in which uncertainty bin as well as the most and least certain ones."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "raewemp9-6oU",
   "metadata": {
    "id": "raewemp9-6oU"
   },
   "outputs": [],
   "source": [
    "uncertainty = {}      # method name -> array of per-question uncertainty scores (test set)\n",
    "\n",
    "def show_uncertainty(items, qas, bins=20):\n",
    "    # items: list of (name, scores). Show each method's score distribution and the questions\n",
    "    # it rates least / most uncertain.\n",
    "    fig, axes = plt.subplots(1, len(items), figsize=(3.7 * len(items), 2.6))\n",
    "    for ax, (name, scores) in zip(np.atleast_1d(axes), items):\n",
    "        ax.hist(scores, bins=bins, color=\"#4c78a8\")\n",
    "        ax.set_title(name, fontsize=9); ax.set_xlabel(\"uncertainty\"); ax.set_ylabel(\"count\")\n",
    "    plt.tight_layout(); plt.show()\n",
    "    for name, scores in items:\n",
    "        o = np.argsort(scores)\n",
    "        lo, hi = qas[o[0]], qas[o[-1]]\n",
    "        print(name)\n",
    "        print(f\"   least uncertain -> {lo['greedy_answer']}  (Q: {lo['question']})\")\n",
    "        print(f\"   most  uncertain -> {hi['greedy_answer']}  (Q: {hi['question']})\")\n",
    "\n",
    "# Compute the three sequence-likelihood scores on the test set and look at the values.\n",
    "uncertainty[\"token_confidence\"]    = np.array([token_confidence(qa)    for qa in test_qas])\n",
    "uncertainty[\"predictive_entropy\"]  = np.array([predictive_entropy(qa)  for qa in test_qas])\n",
    "uncertainty[\"length_norm_entropy\"] = np.array([length_norm_entropy(qa) for qa in test_qas])\n",
    "\n",
    "show_uncertainty([(n, uncertainty[n]) for n in\n",
    "                  [\"token_confidence\", \"predictive_entropy\", \"length_norm_entropy\"]], test_qas)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4b2d620",
   "metadata": {
    "id": "b4b2d620"
   },
   "source": [
    "### I.II Self Evaluation Methods\n",
    "\n",
    "\n",
    "- **Verbalized confidence** a very naive method where we generate the answer to the question \"How confident are you?\" from the LLM from 1 to 100.\n",
    "\n",
    "  $c \\in [0,100]$ and use $U = 1 - c/100$.\n",
    "\n",
    "- **LLM-as-a-judge**: another naive method, ask \"is this correct?\" and read\n",
    "  the probability of \"Yes\" without supplying sample answers or few-shot examples.\n",
    "\n",
    "- **P(True)** *(your exercise, below)*: using an instruction tuned model show the model the question, some candidate answers by sampling them, the proposed answer to check confidence, and ask if the proposed answer is `A) True` / `B) False`, and read $p(\\texttt{A})$.\n",
    "  To ensure correct formatting, thus intended probabilities for the A and B tokens we provide few-shot turns built from sampled **train** questions, each labelled `A`/`B` by\n",
    "  correctness.\n",
    "  $$U = 1 - p(\\texttt{A}\\mid \\text{prompt}).$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "833f1b3b",
   "metadata": {
    "id": "833f1b3b"
   },
   "outputs": [],
   "source": [
    "def next_token_prob(prompt, words):\n",
    "    # probability that the model's next token is one of `words`\n",
    "    enc = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
    "    with torch.no_grad():\n",
    "        logits = model(**enc).logits[0, -1, :]\n",
    "    probs = torch.softmax(logits.float(), dim=-1)\n",
    "    total = 0.0\n",
    "    for word in words:\n",
    "        ids = tokenizer.encode(word, add_special_tokens=False)\n",
    "        if ids:\n",
    "            total += probs[ids[0]].item()\n",
    "    return total\n",
    "\n",
    "def verbalized_conf(qa):\n",
    "    # the model's self-reported confidence in [0, 1]\n",
    "    user = (f\"Question: {qa['question']}\\n\"\n",
    "            f\"Your answer: {qa['greedy_answer']}\\n\"\n",
    "            f\"Output only your confidence as an integer 0-100.\")\n",
    "    prompt = tokenizer.apply_chat_template(\n",
    "        [{\"role\": \"system\", \"content\": \"Output only an integer from 0 to 100.\"},\n",
    "         {\"role\": \"user\", \"content\": user}],\n",
    "        tokenize=False, add_generation_prompt=True)\n",
    "    enc = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
    "    with torch.no_grad():\n",
    "        out = model.generate(**enc, max_new_tokens=8, do_sample=False,\n",
    "                             pad_token_id=tokenizer.pad_token_id)\n",
    "    text = tokenizer.decode(out[0, enc.input_ids.shape[1]:], skip_special_tokens=True)\n",
    "    match = re.search(r\"\\d+\", text)\n",
    "    if not match:\n",
    "        return 0.5\n",
    "    return max(0.0, min(100.0, float(match.group()))) / 100.0\n",
    "\n",
    "def judge_conf(qa):\n",
    "    # p(Yes) among {Yes, No}: the model's judgement that its own answer is correct\n",
    "    user = (f\"Question: {qa['question']}\\n\"\n",
    "            f\"Answer: {qa['greedy_answer']}\\n\"\n",
    "            f\"Is the answer correct? Reply Yes or No.\")\n",
    "    prompt = tokenizer.apply_chat_template(\n",
    "        [{\"role\": \"system\", \"content\": \"You grade answers. Reply Yes or No.\"},\n",
    "         {\"role\": \"user\", \"content\": user}],\n",
    "        tokenize=False, add_generation_prompt=True)\n",
    "    p_yes = next_token_prob(prompt, [\" Yes\", \"Yes\", \"yes\"])\n",
    "    p_no  = next_token_prob(prompt, [\" No\", \"No\", \"no\"])\n",
    "    if p_yes + p_no == 0:\n",
    "        return 0.5\n",
    "    return p_yes / (p_yes + p_no)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3751c89a",
   "metadata": {
    "id": "3751c89a"
   },
   "outputs": [],
   "source": [
    "# Few-shot turns for P(True), built from sampled train questions and labelled A/B by\n",
    "# correctness. This pins the A/B output format so p(A) is meaningful.\n",
    "P_TRUE_NUM_FEWSHOT = 5\n",
    "\n",
    "def ptrue_user_block(question, brainstormed, proposed):\n",
    "    # Format one P(True) prompt as text: the question, the brainstormed candidate answers,\n",
    "    # the proposed answer to judge, and the \"A) True / B) False\" choice. This is the user\n",
    "    # message you send when asking the model whether `proposed` is correct.\n",
    "    lines = [f\"Question: {question}\", \"Brainstormed Answers:\"]\n",
    "    lines += [b.strip() for b in brainstormed]\n",
    "    lines += [f\"Possible answer: {proposed}\",\n",
    "              \"Is the possible answer:\", \"A) True\", \"B) False\",\n",
    "              \"Respond with just A or B.\"]\n",
    "    return \"\\n\".join(lines)\n",
    "\n",
    "def build_ptrue_messages(indices):\n",
    "    # Build the few-shot examples for P(True): for each train question, generate answers,\n",
    "    # wrap them in a ptrue_user_block, and label it \"A\" (true) or \"B\" (false) by actual\n",
    "    # correctness. Returns chat turns to prepend so the model replies with a single A/B token.\n",
    "    msgs = []\n",
    "    for fi in indices:\n",
    "        ex = train_data[fi]\n",
    "        question = ex[\"question\"]\n",
    "        references = ex[\"answer\"][\"aliases\"] or [ex[\"answer\"][\"value\"]]\n",
    "        most_likely = generate(question, n=1, sample=False)[0][0]\n",
    "        samples = generate(question, n=N_SAMPLES, sample=True, temperature=SAMPLING_TEMPERATURE)[0]\n",
    "        block = ptrue_user_block(question, [most_likely] + samples, most_likely)\n",
    "        msgs.append({\"role\": \"user\", \"content\": block})\n",
    "        msgs.append({\"role\": \"assistant\", \"content\": \"A\" if is_correct(most_likely, references) else \"B\"})\n",
    "    return msgs\n",
    "\n",
    "ptrue_fewshot_idx = random.Random(1).sample(range(len(train_data)), P_TRUE_NUM_FEWSHOT)\n",
    "PTRUE_MESSAGES = build_ptrue_messages(ptrue_fewshot_idx)   # few-shot turns, reused by p_true_conf below"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e03945ad",
   "metadata": {
    "id": "e03945ad"
   },
   "outputs": [],
   "source": [
    "def p_true_conf(qa):\n",
    "    ### TODO: P(True) confidence: p(\"A\") normalized against p(\"B\").\n",
    "    # Use the helpers defined just above this cell:\n",
    "    #   - ptrue_user_block(question, candidates, proposed) formats the A/B prompt block.\n",
    "    #     Use the samples plus the greedy answer as the candidates, and the greedy answer\n",
    "    #     as the proposed answer to judge.\n",
    "    #   - PTRUE_MESSAGES are the few-shot turns that pin the A/B format. Put them before\n",
    "    #     your block, then apply the chat template (as in build_ptrue_messages / verbalized_conf).\n",
    "    #   - next_token_prob(prompt, words) reads the next-token probability of those words\n",
    "    #     (pass both spaced and unspaced variants, like judge_conf does for Yes/No).\n",
    "    # Read p(\"A\") and p(\"B\"), then return p(A) / (p(A) + p(B)).\n",
    "    raise NotImplementedError(\"Implement P(True)\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a317b9b",
   "metadata": {
    "id": "6a317b9b"
   },
   "source": [
    "This cell checks some answers and what these methods gave as uncertainty scores."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43b6d86f",
   "metadata": {
    "id": "43b6d86f"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "pd.DataFrame([{\n",
    "    \"answer\":  qa[\"greedy_answer\"][:24],\n",
    "    \"correct\": bool(is_correct(qa[\"greedy_answer\"], qa[\"answers\"])),\n",
    "    \"verbal\":  round(verbalized_conf(qa), 2),\n",
    "    \"judge\":   round(judge_conf(qa), 2),\n",
    "    \"P(True)\": round(p_true_conf(qa), 2),\n",
    "} for qa in test_qas[:8]])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62ccb1fa",
   "metadata": {
    "id": "62ccb1fa"
   },
   "source": [
    "### I.III Semantic Similarity Methods\n",
    "\n",
    "Sample several answers, measure some sort of agreement.\n",
    "\n",
    "- **Lexical similarity**: agreement in *surface form*, the average pairwise Rouge-L\n",
    "  among the $N$ samples:\n",
    "  $$U_{\\text{lex}} = 1 - \\frac{1}{\\binom{N}{2}}\\sum_{i<j}\\text{RougeL}(s_i, s_j).$$\n",
    "  It treats \"Paris\" and \"It's Paris\" as disagreement.\n",
    "- **Semantic entropy**: agreement in *meaning*. Two forms, **grey-box** (likelihood-weighted) and **black-box** (discrete, from cluster\n",
    "  counts only).\n",
    "\n",
    "*Access:* lexical similarity needs only the sample text (**black-box**), as does discrete\n",
    "semantic entropy; grey-box semantic entropy also reads the samples' token probabilities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e126c914",
   "metadata": {
    "id": "e126c914"
   },
   "outputs": [],
   "source": [
    "def lexical_similarity(qa):\n",
    "    # 1 minus the average pairwise Rouge-L among the samples (higher = more disagreement)\n",
    "    samples = qa[\"samples\"]\n",
    "    if len(samples) < 2:\n",
    "        return 0.0\n",
    "    pair_scores = []\n",
    "    for i in range(len(samples)):\n",
    "        for j in range(i + 1, len(samples)):\n",
    "            pair_scores.append(rouge_l(samples[i], samples[j]))\n",
    "    return 1 - sum(pair_scores) / len(pair_scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4557121d",
   "metadata": {
    "id": "4557121d"
   },
   "source": [
    "**Semantic entropy**, in three steps (Farquhar et al.):\n",
    "\n",
    "1. sample $N$ answers (already done, they are in each record);\n",
    "2. **cluster** them by meaning: two answers are equivalent when each *entails* the\n",
    "   other under a natural-language-inference model (both directions must entail);\n",
    "3. take the entropy of the distribution over meanings.\n",
    "\n",
    "We load DeBERTa-v2-xlarge-MNLI for the entailment model and provide\n",
    "`entails(premise, hypothesis, context)`. The clustering is for you to fill out, both\n",
    "entropy estimators are provided in the cell after."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "81522b69",
   "metadata": {
    "id": "81522b69"
   },
   "outputs": [],
   "source": [
    "from transformers import AutoModelForSequenceClassification\n",
    "\n",
    "NLI_NAME = \"microsoft/deberta-v2-xlarge-mnli\"\n",
    "nli_tokenizer = AutoTokenizer.from_pretrained(NLI_NAME)\n",
    "nli_model = AutoModelForSequenceClassification.from_pretrained(NLI_NAME)\n",
    "nli_model.to(device)\n",
    "nli_model.eval()\n",
    "ENTAILMENT_ID = {k.upper(): v for k, v in nli_model.config.label2id.items()}[\"ENTAILMENT\"]\n",
    "\n",
    "def entails(premise, hypothesis, context=\"\"):\n",
    "    # True if the NLI model predicts the premise entails the hypothesis\n",
    "    a = (context + \" \" + premise).strip()\n",
    "    b = (context + \" \" + hypothesis).strip()\n",
    "    enc = nli_tokenizer(a, b, return_tensors=\"pt\", truncation=True).to(device)\n",
    "    with torch.no_grad():\n",
    "        logits = nli_model(**enc).logits[0]\n",
    "    return int(logits.argmax()) == ENTAILMENT_ID"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "10ac4396",
   "metadata": {
    "id": "10ac4396"
   },
   "outputs": [],
   "source": [
    "def equivalent(a, b, context=\"\"):\n",
    "    ### TODO: True iff a and b mean the same thing, that is, each entails the other.\n",
    "    # The provided entails(premise, hypothesis, context) gives one direction.\n",
    "    raise NotImplementedError(\"Implement bidirectional entailment\")\n",
    "\n",
    "def cluster_by_meaning(answers, context=\"\"):\n",
    "    ### TODO: group the answers by meaning. Return one cluster id per answer (same length\n",
    "    ### as answers); equal ids mean the same meaning.\n",
    "    # Algorithm:\n",
    "    # 1. Put the first answer in its own cluster.\n",
    "    # 2. For each later answer, compare it against one representative from each existing\n",
    "    #    cluster with equivalent(...).\n",
    "    # 3. If it matches a cluster's representative, add it there; if it matches none, start\n",
    "    #    a new cluster.\n",
    "    # 4. A single greedy pass over the answers is enough.\n",
    "    raise NotImplementedError(\"Implement clustering\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b3be3b60",
   "metadata": {
    "id": "b3be3b60"
   },
   "source": [
    "With clustering implemented, look at it in action: a few test questions, their sampled\n",
    "answers, and the meaning groups your `cluster_by_meaning` puts them in. Samples that mean\n",
    "the same thing should land in the same cluster even when the wording differs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c54b85d6",
   "metadata": {
    "id": "c54b85d6"
   },
   "outputs": [],
   "source": [
    "for qa in test_qas[:4]:\n",
    "    cluster_ids = cluster_by_meaning(qa[\"samples\"], qa[\"question\"])\n",
    "    groups = {}\n",
    "    for sample, cid in zip(qa[\"samples\"], cluster_ids):\n",
    "        groups.setdefault(cid, []).append(sample)\n",
    "    print(\"Q:\", qa[\"question\"])\n",
    "    print(\"   greedy:\", qa[\"greedy_answer\"])\n",
    "    for cid, members in sorted(groups.items()):\n",
    "        print(f\"   cluster {cid}: {members}\")\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ff1dc89",
   "metadata": {
    "id": "8ff1dc89"
   },
   "source": [
    "Now let's fully implement the semantic entropy methods to output an uncertainty score.\n",
    "\n",
    "- **Semantic entropy (grey-box)**: each cluster's probability is the total likelihood of\n",
    "  its samples using the **length-normalized** sequence log-probabilities; normalize across\n",
    "  clusters into a distribution $P(C_i\\mid x)$ and take its Shannon entropy. Needs the token\n",
    "  probabilities.\n",
    "- **Discrete semantic entropy (black-box)**: set each cluster's probability to its share\n",
    "  of samples, $p(c)=|c|/N$, and take the Shannon entropy. Uses only the cluster\n",
    "  assignments, so it needs no probabilities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0420bde8",
   "metadata": {
    "id": "0420bde8"
   },
   "outputs": [],
   "source": [
    "from scipy.special import logsumexp\n",
    "\n",
    "def semantic_entropy(qa):\n",
    "    ### TODO: grey-box semantic entropy = Shannon entropy over likelihood-weighted meaning clusters.\n",
    "    # - Cluster the samples by meaning (reuse your clustering).\n",
    "    # - Weight each cluster by the total likelihood of its samples, from their\n",
    "    #   length-normalized sequence log-likelihoods combined in log-space.\n",
    "    # - Normalize the cluster weights into a distribution and return its Shannon entropy.\n",
    "    raise NotImplementedError(\"Implement grey-box semantic entropy\")\n",
    "\n",
    "def discrete_semantic_entropy(qa):\n",
    "    ### TODO: black-box semantic entropy = Shannon entropy over cluster sizes (counts only).\n",
    "    # - Cluster the samples by meaning.\n",
    "    # - Take each cluster's share of the samples as its probability.\n",
    "    # - Return the Shannon entropy of that distribution.\n",
    "    raise NotImplementedError(\"Implement black-box semantic entropy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "X92D5Az8BpQU",
   "metadata": {
    "id": "X92D5Az8BpQU"
   },
   "source": [
    "With clustering implemented, let's run it on a few test questions and see the uncertainty scores besides the clustering for both types of semantic entropy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "22_rO3ntBoxH",
   "metadata": {
    "id": "22_rO3ntBoxH"
   },
   "outputs": [],
   "source": [
    "for qa in test_qas[:4]:\n",
    "    cluster_ids = cluster_by_meaning(qa[\"samples\"], qa[\"question\"])\n",
    "    groups = {}\n",
    "    for sample, cid in zip(qa[\"samples\"], cluster_ids):\n",
    "        groups.setdefault(cid, []).append(sample)\n",
    "    print(\"Q:\", qa[\"question\"])\n",
    "    print(\"   greedy answer:\", qa[\"greedy_answer\"])\n",
    "    for cid, members in sorted(groups.items()):\n",
    "        print(f\"   cluster {cid}: {members}\")\n",
    "    print(f\"   semantic entropy: grey-box={semantic_entropy(qa):.2f}   discrete={discrete_semantic_entropy(qa):.2f}\")\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95ec4b82",
   "metadata": {
    "id": "95ec4b82"
   },
   "source": [
    "### I.IV The semantic entropy probe\n",
    "\n",
    "Sampling is what makes semantic entropy expensive: every question needs `N_SAMPLES`\n",
    "generations plus the NLI clustering. The **semantic entropy probe** avoids\n",
    "that at inference time. We train a linear probe on the hidden state $h$ of a *single* greedy\n",
    "generation to predict whether that question's semantic entropy is high using logistic regression, $U = \\sigma(w^\\top h + b)$.\n",
    "The labels come from the semantic entropy we already computed on the **calibration** set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "TD_wcQOJDE5J",
   "metadata": {
    "id": "TD_wcQOJDE5J"
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "def fit_semantic_entropy_probe(calib_qas, se_calib, layer=-1):\n",
    "    # Train a linear probe to predict \"is semantic entropy high?\" from one generation's\n",
    "    # hidden state at `layer`.\n",
    "    X = np.stack([qa[\"hidden_states\"][layer] for qa in calib_qas])\n",
    "    y = (se_calib >= np.median(se_calib)).astype(int)\n",
    "    probe = LogisticRegression(max_iter=1000).fit(X, y)\n",
    "    return lambda qa: float(probe.predict_proba(qa[\"hidden_states\"][layer].reshape(1, -1))[0, 1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "nAoPvDr_DV6y",
   "metadata": {
    "id": "nAoPvDr_DV6y"
   },
   "source": [
    "This next cell scores everything on the test set using all the methods we discussed. This will be used in the next section to evaluate the methods."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5dd55d81",
   "metadata": {
    "id": "5dd55d81"
   },
   "outputs": [],
   "source": [
    "# Score every Part I method on the test set; this dict is what Part II evaluates.\n",
    "def all_method_scores(qas):\n",
    "    # method name -> uncertainty score per record\n",
    "    return {\n",
    "        \"token_confidence\":    np.array([token_confidence(qa)    for qa in qas]),\n",
    "        \"predictive_entropy\":  np.array([predictive_entropy(qa)  for qa in qas]),\n",
    "        \"length_norm_entropy\": np.array([length_norm_entropy(qa) for qa in qas]),\n",
    "        \"lexical_similarity\":  np.array([lexical_similarity(qa)  for qa in qas]),\n",
    "        \"semantic_entropy\":          np.array([semantic_entropy(qa)          for qa in qas]),\n",
    "        \"semantic_entropy_discrete\": np.array([discrete_semantic_entropy(qa) for qa in qas]),\n",
    "        \"p_true\":              np.array([1 - p_true_conf(qa)     for qa in qas]),\n",
    "        \"verbalized\":          np.array([1 - verbalized_conf(qa) for qa in qas]),\n",
    "        \"llm_judge\":           np.array([1 - judge_conf(qa)      for qa in qas]),\n",
    "    }\n",
    "\n",
    "uncertainty = all_method_scores(test_qas)\n",
    "\n",
    "# The probe trains on semantic entropy over the calibration set, then scores the test set.\n",
    "semantic_entropy_calib = np.array([semantic_entropy(qa) for qa in calib_qas])\n",
    "se_probe = fit_semantic_entropy_probe(calib_qas, semantic_entropy_calib)\n",
    "uncertainty[\"semantic_entropy_probe\"] = np.array([se_probe(qa) for qa in test_qas])\n",
    "\n",
    "print(\"computed\", len(uncertainty), \"methods on the test set:\", list(uncertainty))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f4ad4d7c",
   "metadata": {
    "id": "f4ad4d7c"
   },
   "source": [
    "# Part II — Evaluating Uncertainty Quantification\n",
    "\n",
    "We saw some uncertainty quantification methods. But how to measure them through metrics is a different question. Each metric is a function of two arrays, one method's scores\n",
    "and the correctness labels, returning a single number that rates the method. Each metric here tries to measure how accurate an uncertainty score is to measure accuracy.\n",
    "\n",
    "Four metrics, split by what they look at:\n",
    "\n",
    "- **ECE** and **Brier** look at the score's *values*, so they apply only to a confidence\n",
    "  in $[0,1]$: when it says 0.8, are about 80% of those answers right?\n",
    "- **AUROC** and **PRR** look only at the *ordering* of the scores: do wrong answers get\n",
    "  higher uncertainty than right ones? They work on any type of score."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2af18516",
   "metadata": {
    "id": "2af18516"
   },
   "source": [
    "### ECE and Brier\n",
    "\n",
    "Both rate the *values* of a confidence in $[0,1]$. Write $c_i$ for the\n",
    "confidence and $y_i \\in \\{0,1\\}$ for whether answer $i$ is correct.\n",
    "\n",
    "**ECE**: bin the answers by confidence into $B$ bins. In bin $b$ compare its mean\n",
    "confidence $\\overline{\\text{conf}}(b)$ to its accuracy $\\text{acc}(b)$; average the gaps,\n",
    "weighted by bin size $n_b$:\n",
    "$$\\text{ECE} = \\sum_{b=1}^{B} \\frac{n_b}{N}\\,\\bigl|\\,\\text{acc}(b) - \\overline{\\text{conf}}(b)\\,\\bigr|.$$\n",
    "Implement it, paying attention to the binning.\n",
    "\n",
    "**Brier**: mean squared error between confidence and outcome (provided):\n",
    "$$\\text{Brier} = \\frac{1}{N}\\sum_{i=1}^{N}(c_i - y_i)^2.$$\n",
    "\n",
    "The confidence-vs-accuracy plot draws the per-bin points against the diagonal, and the\n",
    "print below shows how much ECE moves as you change the number of bins."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3d58bb98",
   "metadata": {
    "id": "3d58bb98"
   },
   "outputs": [],
   "source": [
    "def confidence_accuracy_bins(confidence, correct, n_bins=10):\n",
    "    ### TODO: summarize calibration per bin.\n",
    "    # This is the main function behind the ECE curve.\n",
    "    # Inputs:\n",
    "    #   confidence : length-N array of values in [0, 1] (one confidence per answer)\n",
    "    #   correct    : length-N array of 0/1 (or True/False) correctness for those answers\n",
    "    #   n_bins     : how many equal-width bins to split [0, 1] into\n",
    "    # Returns three arrays, each of length n_bins, ordered from the lowest to the highest\n",
    "    # confidence bin and aligned so index i refers to the same bin in all three:\n",
    "    #   mean_conf  : the mean confidence of the answers in each bin\n",
    "    #   accuracy   : the fraction of answers in each bin that are correct\n",
    "    #   count      : how many answers fell in each bin\n",
    "    # Assign each answer to the bin its confidence falls in; make the shared edge between two\n",
    "    # neighbouring bins belong to exactly one of them so nothing is double-counted. An empty\n",
    "    # bin should report a count of 0 (its mean_conf / accuracy can be any placeholder).\n",
    "    raise NotImplementedError(\"Implement the binning\")\n",
    "\n",
    "def ece(confidence, correct, n_bins=10):\n",
    "    ### TODO: Expected Calibration Error, built on confidence_accuracy_bins.\n",
    "    # Inputs: the same confidence / correct / n_bins.\n",
    "    # Returns: a single float.\n",
    "    # Take each bin's gap between its mean confidence and its accuracy, weight that gap by the\n",
    "    # bin's share of all answers, and sum the weighted gaps over the bins.\n",
    "    raise NotImplementedError(\"Implement ECE\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "RAOWSZ-yH0pX",
   "metadata": {
    "id": "RAOWSZ-yH0pX"
   },
   "source": [
    "This cell implements the Brier score and plots the confidence vs. accuracy plots for the P(True) method.\n",
    "\n",
    "TODO: Play around with the number of bins and observe how the curves and the results change."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "af5485da",
   "metadata": {
    "id": "af5485da"
   },
   "outputs": [],
   "source": [
    "def brier(confidence, correct):\n",
    "    # Brier score: mean squared error between confidence and the 0/1 outcome\n",
    "    return float(np.mean((confidence - correct.astype(float)) ** 2))\n",
    "\n",
    "def plot_confidence_accuracy(confidence, correct, title, n_bins=10):\n",
    "    # accuracy per confidence bin vs the diagonal; lower panel = bin counts\n",
    "    mean_conf, accuracy, count = confidence_accuracy_bins(confidence, correct, n_bins)\n",
    "    edges   = np.linspace(0, 1, n_bins + 1)\n",
    "    centers = (edges[:-1] + edges[1:]) / 2\n",
    "    w = 0.9 / n_bins\n",
    "    ne = count > 0\n",
    "\n",
    "    fig, (ax, axc) = plt.subplots(2, 1, figsize=(4.5, 5.2), sharex=True,\n",
    "                                  gridspec_kw={\"height_ratios\": [4, 1]})\n",
    "    ax.plot([0, 1], [0, 1], \"--\", color=\"gray\", label=\"perfect calibration\")\n",
    "    ax.bar(centers[ne], accuracy[ne], width=w, edgecolor=\"white\", label=\"accuracy in bin\")\n",
    "    ax.set_ylabel(\"accuracy\"); ax.set_ylim(0, 1)\n",
    "    ax.set_title(f\"{title}\\nECE={ece(confidence, correct, n_bins):.3f}  \"\n",
    "                 f\"Brier={brier(confidence, correct):.3f}\")\n",
    "    ax.legend(fontsize=8, loc=\"upper left\")\n",
    "\n",
    "    axc.bar(centers, count, width=w)\n",
    "    axc.set_ylabel(\"count\"); axc.set_xlabel(\"confidence bin\"); axc.set_xlim(0, 1)\n",
    "    plt.tight_layout(); plt.show()\n",
    "\n",
    "N_BINS = 50\n",
    "\n",
    "ptrue_confidence = np.array([p_true_conf(qa) for qa in test_qas])\n",
    "plot_confidence_accuracy(ptrue_confidence, test_correct, \"P(True) confidence\", n_bins=N_BINS)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "261c3a0d",
   "metadata": {
    "id": "261c3a0d"
   },
   "source": [
    "### AUROC and PRR\n",
    "\n",
    "Both rate the *ordering* of a method's scores against the labels.\n",
    "\n",
    "**AUROC**: the probability that a random wrong answer is scored more uncertain than a\n",
    "random right one. With $n_w$ wrong and $n_c$ correct answers,\n",
    "$$\\text{AUROC} = \\frac{1}{n_w\\,n_c}\\sum_{i\\,\\text{wrong}}\\;\\sum_{j\\,\\text{correct}}\n",
    "\\mathbf{1}\\!\\left[\\,U_i > U_j\\,\\right].$$\n",
    "\n",
    "**PRR**: reject the most uncertain answers first and track the accuracy on the answers you keep, which traces the rejection curve. Let $A_{\\text{method}}$, $A_{\\text{oracle}}$, $A_{\\text{random}}$\n",
    "be the areas under that curve for this score, a perfect ranking, and random rejection:\n",
    "$$\\text{PRR} = \\frac{A_{\\text{method}} - A_{\\text{random}}}{A_{\\text{oracle}} - A_{\\text{random}}}.$$\n",
    "0 means no better than random, 1 matches the oracle. Both the rejection curve and `prr` are provided."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "66ddab35",
   "metadata": {
    "id": "66ddab35"
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_auc_score, roc_curve\n",
    "\n",
    "def auroc(uncertainty_scores, correct):\n",
    "    # AUROC: probability a random wrong answer scores more uncertain than a right one\n",
    "    wrong = (~correct).astype(int)\n",
    "    if wrong.min() == wrong.max():\n",
    "        return float(\"nan\")\n",
    "    return float(roc_auc_score(wrong, uncertainty_scores))\n",
    "\n",
    "def plot_roc(scores_by_name, correct):\n",
    "    # draws the ROC curve for each named score\n",
    "    wrong = (~correct).astype(int)\n",
    "    plt.figure(figsize=(5, 5))\n",
    "    plt.plot([0, 1], [0, 1], \"--\", color=\"gray\")\n",
    "    for name, scores in scores_by_name.items():\n",
    "        fpr, tpr, _ = roc_curve(wrong, scores)\n",
    "        plt.plot(fpr, tpr, label=f\"{name} (AUROC={roc_auc_score(wrong, scores):.2f})\")\n",
    "    plt.xlabel(\"false positive rate\"); plt.ylabel(\"true positive rate\")\n",
    "    plt.legend(fontsize=8); plt.show()\n",
    "\n",
    "plot_roc({k: uncertainty[k] for k in [\"token_confidence\", \"predictive_entropy\", \"semantic_entropy\"]}, test_correct)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "541bef83",
   "metadata": {
    "id": "541bef83"
   },
   "outputs": [],
   "source": [
    "def rejection_curve(uncertainty_scores, correct, n_points=50):\n",
    "    # (fractions, accuracies): accuracy on the kept answers as you reject the most uncertain first\n",
    "    keep_order = np.argsort(uncertainty_scores)        # most confident first\n",
    "    kept_correct = correct[keep_order].astype(float)\n",
    "    n = len(kept_correct)\n",
    "    fractions = np.linspace(0, 0.9, n_points)\n",
    "    accuracies = []\n",
    "    for f in fractions:\n",
    "        keep = max(1, int(round((1 - f) * n)))\n",
    "        accuracies.append(kept_correct[:keep].mean())\n",
    "    return fractions, np.array(accuracies)\n",
    "\n",
    "fractions, accuracies = rejection_curve(uncertainty[\"semantic_entropy\"], test_correct)\n",
    "plt.figure(figsize=(5, 4)); plt.plot(fractions, accuracies, \"o-\")\n",
    "plt.xlabel(\"fraction rejected\"); plt.ylabel(\"accuracy on retained\")\n",
    "plt.title(\"Rejection curve (semantic entropy)\"); plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dd871c0c",
   "metadata": {
    "id": "dd871c0c"
   },
   "outputs": [],
   "source": [
    "def prr(uncertainty_scores, correct):\n",
    "    # Prediction-Rejection Ratio: (A_method - A_random) / (A_oracle - A_random), where each\n",
    "    # A is the area under the accuracy-vs-rejection curve (reject the most uncertain first).\n",
    "    # The random curve is flat at the base accuracy, so A_random is the base accuracy.\n",
    "    y = correct.astype(float)\n",
    "    n = len(y)\n",
    "    def retained_accuracy_area(order):\n",
    "        kept_accuracy = np.cumsum(y[order]) / np.arange(1, n + 1)\n",
    "        return kept_accuracy.mean()\n",
    "    a_method = retained_accuracy_area(np.argsort(uncertainty_scores))   # most confident first\n",
    "    a_oracle = retained_accuracy_area(np.argsort(-y))                   # correct answers first\n",
    "    a_random = y.mean()                                                 # base accuracy\n",
    "    denom = a_oracle - a_random\n",
    "    return float((a_method - a_random) / denom) if denom else float(\"nan\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "feadfeb9",
   "metadata": {
    "id": "feadfeb9"
   },
   "source": [
    "### Compare every method\n",
    "\n",
    "This cell scores every Part I method with the metrics above, on the same labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "01b08d58",
   "metadata": {
    "id": "01b08d58"
   },
   "outputs": [],
   "source": [
    "print(f\"{'method':22s} {'AUROC':>7} {'PRR':>7}\")\n",
    "for name, scores in uncertainty.items():\n",
    "    print(f\"{name:22s} {auroc(scores, test_correct):7.3f} {prr(scores, test_correct):7.3f}\")\n",
    "\n",
    "names  = list(uncertainty)\n",
    "values = [auroc(uncertainty[name], test_correct) for name in names]\n",
    "order  = np.argsort(values)\n",
    "plt.figure(figsize=(7, 4))\n",
    "plt.barh([names[i] for i in order], [values[i] for i in order])\n",
    "plt.axvline(0.5, ls=\"--\", color=\"gray\"); plt.xlabel(\"AUROC\"); plt.xlim(0.4, 1.0); plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12137b48",
   "metadata": {
    "id": "12137b48"
   },
   "source": [
    "The same result as a distribution. For the top method, where do correct and wrong\n",
    "answers fall on the uncertainty axis? Good UQ shifts the wrong answers to the right."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ce0ea1f9",
   "metadata": {
    "id": "ce0ea1f9"
   },
   "outputs": [],
   "source": [
    "best_name = names[int(np.argmax(values))]\n",
    "s = uncertainty[best_name]\n",
    "plt.figure(figsize=(6, 3.4))\n",
    "plt.hist(s[test_correct],  bins=15, alpha=0.6, density=True, label=\"correct\")\n",
    "plt.hist(s[~test_correct], bins=15, alpha=0.6, density=True, label=\"wrong\")\n",
    "plt.xlabel(f\"uncertainty  ({best_name})\"); plt.ylabel(\"density\"); plt.legend()\n",
    "plt.title(\"Does uncertainty separate right from wrong?\"); plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "244e7a08",
   "metadata": {
    "id": "244e7a08"
   },
   "source": [
    "# Part III — Calibration\n",
    "\n",
    "A **calibration tool** transforms a confidence so its numbers match accuracy, fit on the\n",
    "calibration split. Two tools, with $y_i\\in\\{0,1\\}$ the correctness labels and $c_i$ the\n",
    "input confidences:\n",
    "\n",
    "- **Platt scaling**: fit a slope $a$ and intercept $b$ on the confidence's logit\n",
    "  $z_i = \\log\\frac{c_i}{1-c_i}$, giving $\\hat p_i = \\sigma(a\\,z_i + b)$, with $a$ and $b$ chosen\n",
    "  to minimize the negative log-likelihood\n",
    "  $\\;-\\sum_i\\bigl[y_i\\log\\hat p_i + (1-y_i)\\log(1-\\hat p_i)\\bigr]$. Two knobs: $a$ sharpens or\n",
    "  softens the confidences and $b$ shifts them, correcting a systematic over- or under-confidence.\n",
    "- **Temperature scaling**: divide the confidence's logit $z_i = \\log\\frac{c_i}{1-c_i}$\n",
    "  by one scalar $T$, $\\hat p_i = \\sigma(z_i/T)$, with $T$ chosen to minimize the negative\n",
    "  log-likelihood $\\;-\\sum_i\\bigl[y_i\\log\\hat p_i + (1-y_i)\\log(1-\\hat p_i)\\bigr]$. One knob,\n",
    "  so every confidence is sharpened or softened by the same amount.\n",
    "- **Isotonic regression**: instead of one knob, it learns a free-form mapping from\n",
    "  confidence to accuracy, with the single constraint that the mapping never decreases\n",
    "  (a higher confidence is never assigned a lower accuracy). It sorts the calibration\n",
    "  answers by confidence and pools neighbouring answers into flat steps wherever accuracy\n",
    "  would otherwise dip, giving the non-decreasing step function $f$ that minimizes\n",
    "  $\\sum_i (f(c_i) - y_i)^2$; the calibrated value is $\\hat p_i = f(c_i)$. Far more flexible\n",
    "  than a single scalar, but it needs enough calibration data or the steps overfit.\n",
    "\n",
    "We calibrate the greedy token-probability confidence; implement `fit_temperature` (isotonic\n",
    "is provided)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4b304c54",
   "metadata": {
    "id": "4b304c54"
   },
   "outputs": [],
   "source": [
    "from scipy.optimize import minimize_scalar\n",
    "from sklearn.isotonic import IsotonicRegression\n",
    "\n",
    "def greedy_confidence(qa):\n",
    "    # the greedy answer's geometric-mean token probability, a confidence in [0, 1]\n",
    "    logprobs = qa[\"greedy_logprobs\"]\n",
    "    if not logprobs:\n",
    "        return 0.0\n",
    "    return math.exp(sum(logprobs) / len(logprobs))\n",
    "\n",
    "confidence_calib = np.array([greedy_confidence(qa) for qa in calib_qas])\n",
    "confidence_test  = np.array([greedy_confidence(qa) for qa in test_qas])\n",
    "\n",
    "def to_logit(p):\n",
    "    # the log-odds log(p / (1 - p)), so a temperature can rescale it\n",
    "    p = np.clip(p, 1e-6, 1 - 1e-6)\n",
    "    return np.log(p / (1 - p))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f747a9db",
   "metadata": {
    "id": "f747a9db"
   },
   "outputs": [],
   "source": [
    "def fit_temperature(logits, correct):\n",
    "    ### TODO: fit one temperature T on the calibration set.\n",
    "    # Algorithm:\n",
    "    # 1. For a candidate T, turn each logit into a probability with the sigmoid of logit / T.\n",
    "    # 2. Score those probabilities against the correctness labels with the negative\n",
    "    #    log-likelihood (lower is better).\n",
    "    # 3. Search for the T that makes that score smallest and return it.\n",
    "    # Use the provided one-dimensional bounded minimizer for the search in step 3.\n",
    "    raise NotImplementedError(\"Implement temperature fitting\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "976ac1d6",
   "metadata": {
    "id": "976ac1d6"
   },
   "outputs": [],
   "source": [
    "T = fit_temperature(to_logit(confidence_calib), calib_correct)\n",
    "confidence_temp = 1 / (1 + np.exp(-to_logit(confidence_test) / T))\n",
    "\n",
    "isotonic = IsotonicRegression(out_of_bounds=\"clip\", y_min=0, y_max=1)\n",
    "isotonic.fit(confidence_calib, calib_correct.astype(float))\n",
    "confidence_iso = isotonic.predict(confidence_test)\n",
    "\n",
    "print(f\"T={T:.2f}\")\n",
    "print(f\"ECE    raw={ece(confidence_test, test_correct):.3f}  \"\n",
    "      f\"temp={ece(confidence_temp, test_correct):.3f}  \"\n",
    "      f\"iso={ece(confidence_iso, test_correct):.3f}\")\n",
    "print(f\"AUROC  raw={auroc(1 - confidence_test, test_correct):.3f}  \"\n",
    "      f\"temp={auroc(1 - confidence_temp, test_correct):.3f}  (unchanged)\")\n",
    "\n",
    "plot_confidence_accuracy(confidence_test, test_correct, \"Before calibration\")\n",
    "plot_confidence_accuracy(confidence_temp, test_correct, f\"After temperature scaling (T={T:.2f})\")\n",
    "plot_confidence_accuracy(confidence_iso, test_correct, \"After isotonic regression\")"
   ]
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 🏆 Competition\n",
    "\n",
    "Your job is to predict, for a **hidden test set**, the probability that the model's answer to each question is **correct**.\n",
    "\n",
    "Write one function, `predict_correct(record) -> float in [0, 1]`.\n",
    "You may do anything, use any method from this lab, combine them, create your own UQ method, and calibrate or not. You should be abke to take a record (our dict with questions, samples, logprobs and hidden states in it), return a probability that `record[\"greedy_answer\"]`\n",
    "is correct.\n",
    "\n",
    "We ran the same model (Qwen2.5-3B-Instruct) on a test set of questions and sampled 20 answers along with the greedy answer. You will be given this test set with questions, greedy answer, sampled answers, their logprobs and hidden states, but not the actual reference answer. You will evaluate each greedy answer and return the probability that it is correct. You are also given a dev set for development and can use the TriviaQA examples we used above.\n",
    "\n",
    "**Two files:**\n",
    "- `dev_public.pt` — records **with** reference answers + gold labels → you can use this to build and test.\n",
    "- `test_public.pt` — records **without** references or labels → what you actually score.\n",
    "\n",
    "You build a csv with question id and the probability that the greedy answer to the question given by the model is correct. **You submit** `submission.csv` (`id,p_correct`). **Ranked by Brier score**, lower is better.\n",
    "\n",
    "The cell below downloads the test and dev sets for you."
   ],
   "metadata": {
    "id": "WTaSKkL74mro"
   },
   "id": "WTaSKkL74mro"
  },
  {
   "cell_type": "code",
   "source": [
    "!pip -q install gdown\n",
    "\n",
    "!gdown 1RGmqRe8vLh_d0Nk9IvbeV7yR8rGQWARU -O test_public.pt\n",
    "!gdown 157TQsTIvxEmBk5qjH41ZeOtPTPfsqvrH -O dev_public.pt"
   ],
   "metadata": {
    "id": "ypkrwOcIASWb"
   },
   "id": "ypkrwOcIASWb",
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "source": [
    "The cell below shows you how to use the given samples and remind you the structure for our record object.\n"
   ],
   "metadata": {
    "id": "UR0NyItsAyZ1"
   },
   "id": "UR0NyItsAyZ1"
  },
  {
   "cell_type": "code",
   "source": [
    "import torch, numpy as np\n",
    "\n",
    "# upload via the file panel (left), or: !gdown <link> -O test_public.pt\n",
    "dev  = torch.load(\"dev_public.pt\",  weights_only=False)[\"records\"]\n",
    "test = torch.load(\"test_public.pt\", weights_only=False)[\"records\"]\n",
    "print(f\"dev : {len(dev)} records (with references + labels)\")\n",
    "print(f\"test: {len(test)} records (hidden)\\n\")\n",
    "\n",
    "r = test[0]\n",
    "print(\"a TEST record — this is your INPUT:\")\n",
    "print(\"  id             :\", r[\"id\"])\n",
    "print(\"  question       :\", r[\"question\"])\n",
    "print(\"  greedy_answer  :\", repr(r[\"greedy_answer\"]), \": predict whether this is correct\")\n",
    "print(\"  samples        :\", len(r[\"samples\"]), \"strings, e.g.\", r[\"samples\"][:3])\n",
    "print(\"  sample_logprobs:\", len(r[\"sample_logprobs\"]), \"lists of per-token logprobs\")\n",
    "print(\"  greedy_logprobs:\", len(r[\"greedy_logprobs\"]), \"per-token logprobs of the greedy answer\")\n",
    "print(\"  hidden_states  :\", r[\"hidden_states\"].shape, r[\"hidden_states\"].dtype)\n",
    "print(\"\\ndev records ALSO have:  answers =\", dev[0][\"answers\"], \" correct =\", dev[0][\"correct\"])"
   ],
   "metadata": {
    "id": "z3rgCOMp58lv"
   },
   "id": "z3rgCOMp58lv",
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "source": [
    "### Write `predict_correct`\n",
    "\n",
    "The cell below is a **deliberately naive** baseline (shorter answer → more confident that it is accurate), it's  there so you see the contract working. **Replace it** with your own method, using anything\n",
    "from the lab. There's no required structure; mix and match. Develop against `dev` (it has\n",
    "`answers` + `correct`), then point your function at `test`.\n",
    "\n",
    "Ideas to explore and combine:\n",
    "\n",
    "Things to try:\n",
    "\n",
    "- **Pick a signal.** Any uncertainty method you built: `token_confidence`, `predictive_entropy`,\n",
    "  `length_norm_entropy`, `lexical_similarity`, `semantic_entropy`, `p_true_conf`, or the probe.\n",
    "  Which separates correct from wrong best on `dev`?\n",
    "- **Choose your correctness label.** You're calibrating toward \"is the answer correct,\" but *you*\n",
    "  decide what that means on `dev` — Token-F1, Rouge-L, a different threshold, an LLM judge. A\n",
    "  cleaner label gives a better-calibrated probability.\n",
    "- **Pick the probe layer.** The records carry `hidden_states` for every layer. Train the probe on\n",
    "  an early / middle / late layer and keep whichever decodes uncertainty best.\n",
    "- **Ensemble.** Combine several signals into one score — average their calibrated probabilities, or\n",
    "  fit a small classifier on the `dev` labels over several features. Does it beat the best single one?\n",
    "- **Calibrate.** Map your raw score to an honest probability with temperature scaling or isotonic\n",
    "  regression (Part III), fit on the `dev` labels. **Brier rewards calibration directly**, so a\n",
    "  well-shaped probability often beats a better-separating but miscalibrated score."
   ],
   "metadata": {
    "id": "ET5-ypPo6Jsy"
   },
   "id": "ET5-ypPo6Jsy"
  },
  {
   "cell_type": "code",
   "source": [
    "def predict_correct(record):\n",
    "    # PLACEHOLDER — replace with your own method.\n",
    "    # take a record, return a probability in [0, 1].\n",
    "    n_words = len(record[\"greedy_answer\"].split())\n",
    "    return float(np.clip(1.0 - 0.1 * n_words, 0.0, 1.0))\n",
    "\n",
    "# e.g. a real one might be:  return float(my_calibrator(semantic_entropy(record)))"
   ],
   "metadata": {
    "id": "6m53WjuA6r_Y"
   },
   "id": "6m53WjuA6r_Y",
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "source": [
    "### Check yourself on dev (optional)\n",
    "\n",
    "You have gold labels on `dev`, so you can measure your Brier *before* submitting and iterate.\n",
    "Compare against the \"always predict the base rate\" baseline — if you can't beat that, your method\n",
    "isn't adding anything yet."
   ],
   "metadata": {
    "id": "0yYI-pzwLTzf"
   },
   "id": "0yYI-pzwLTzf"
  },
  {
   "cell_type": "code",
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "p = np.clip([predict_correct(r) for r in dev], 0, 1)\n",
    "y = np.array([r[\"correct\"] for r in dev])\n",
    "\n",
    "print(f\"your dev Brier = {np.mean((p - y)**2):.3f} , lower is better\")\n",
    "print(f\"your dev AUROC = {roc_auc_score(y, p):.3f} (how well you separate right from wrong)\")\n",
    "base = y.mean()\n",
    "print(f\"baseline       = {np.mean((base - y)**2):.3f}   (predict {base:.2f} everywhere — beat this)\")"
   ],
   "metadata": {
    "id": "sxF0MgB87Utp"
   },
   "id": "sxF0MgB87Utp",
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "source": [
    "### Make your submission\n",
    "\n",
    "Runs your `predict_correct` on every test record and writes `submission.csv`. Upload it to the\n",
    "leaderboard with your name.\n",
    "\n",
    "Here is the link for the leaderboard: https://huggingface.co/spaces/MTiryaki/JSALT2026_UQ_Lab\n",
    "\n",
    "Note: the leaderboard was set up for the JSALT 2026 Summer School, so it might not be working anymore."
   ],
   "metadata": {
    "id": "i2byzs0HLSMD"
   },
   "id": "i2byzs0HLSMD"
  },
  {
   "cell_type": "code",
   "source": [
    "import pandas as pd\n",
    "\n",
    "submission = pd.DataFrame([{\"id\": r[\"id\"], \"p_correct\": float(predict_correct(r))} for r in test])\n",
    "submission[\"p_correct\"] = submission[\"p_correct\"].clip(0, 1)\n",
    "\n",
    "assert list(submission.columns) == [\"id\", \"p_correct\"]\n",
    "assert submission[\"id\"].is_unique and len(submission) == len(test), \"need one row per test record\"\n",
    "assert submission[\"p_correct\"].notna().all(), \"p_correct has NaN\"\n",
    "\n",
    "submission.to_csv(\"submission.csv\", index=False)\n",
    "print(f\"wrote submission.csv — {len(submission)} rows\")\n",
    "display(submission.head())\n",
    "\n",
    "from google.colab import files\n",
    "files.download(\"submission.csv\")"
   ],
   "metadata": {
    "id": "9fAK1rSt7h8N"
   },
   "id": "9fAK1rSt7h8N",
   "execution_count": null,
   "outputs": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "gpuType": "T4",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.10"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "7103e1ad65f54e12b92fc98f66d38098": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_21984568641a46f78b795aa203a4d027",
       "IPY_MODEL_23b4877569314d228839ad7db4a210d1",
       "IPY_MODEL_0ac7ff31066b4f7894bb1224e9c2eb58"
      ],
      "layout": "IPY_MODEL_11dfda2a41484b49be9cc902a99e51b0"
     }
    },
    "21984568641a46f78b795aa203a4d027": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e7711195948b44f4bb75c818e2c86e82",
      "placeholder": "​",
      "style": "IPY_MODEL_8811325234124f06b11125a5c5388ca5",
      "value": "config.json: 100%"
     }
    },
    "23b4877569314d228839ad7db4a210d1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_32b146c325494d049e0ddf7b0a7a1732",
      "max": 661,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9434ac52bd094673a22f4de1a2d86466",
      "value": 661
     }
    },
    "0ac7ff31066b4f7894bb1224e9c2eb58": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8544d282d6334bedbbd2af1b20d41968",
      "placeholder": "​",
      "style": "IPY_MODEL_a0357b921cd84d57bc5a856cf87ce169",
      "value": " 661/661 [00:00&lt;00:00, 20.8kB/s]"
     }
    },
    "11dfda2a41484b49be9cc902a99e51b0": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e7711195948b44f4bb75c818e2c86e82": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8811325234124f06b11125a5c5388ca5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "32b146c325494d049e0ddf7b0a7a1732": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9434ac52bd094673a22f4de1a2d86466": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8544d282d6334bedbbd2af1b20d41968": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a0357b921cd84d57bc5a856cf87ce169": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e717bfd0d2cf404797b5abce24107edf": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_a4b9269ee34a40bbbb231ff140884535",
       "IPY_MODEL_a18ab8bc0b24411e9bd1cb9528b9cf2c",
       "IPY_MODEL_215bacdc9e904705ac10e5b978d1c9e2"
      ],
      "layout": "IPY_MODEL_89db3cbacbbd4f46812ea2525a122f37"
     }
    },
    "a4b9269ee34a40bbbb231ff140884535": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_05a725cbd0354b8a9cb0d362e8a4f8f1",
      "placeholder": "​",
      "style": "IPY_MODEL_103533dca50b43cc895723204b531a34",
      "value": "tokenizer_config.json: 100%"
     }
    },
    "a18ab8bc0b24411e9bd1cb9528b9cf2c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_14a265ebf1aa432bae0d3e22512aa290",
      "max": 7305,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_5d5496f645be4f46a7cde50956014f9c",
      "value": 7305
     }
    },
    "215bacdc9e904705ac10e5b978d1c9e2": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_266472b6c631463ca065f38c5e5b6425",
      "placeholder": "​",
      "style": "IPY_MODEL_b6a6a55bc5274469b123bb2cd7ca0f61",
      "value": " 7.30k/7.30k [00:00&lt;00:00, 117kB/s]"
     }
    },
    "89db3cbacbbd4f46812ea2525a122f37": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "05a725cbd0354b8a9cb0d362e8a4f8f1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "103533dca50b43cc895723204b531a34": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "14a265ebf1aa432bae0d3e22512aa290": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5d5496f645be4f46a7cde50956014f9c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "266472b6c631463ca065f38c5e5b6425": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b6a6a55bc5274469b123bb2cd7ca0f61": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "e72441549fa048b1aa6563536b65084f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_ba286075bb574c0abb6fac90f7524e3a",
       "IPY_MODEL_4d0f30dd6ba245828226124a56553499",
       "IPY_MODEL_4f011326f28542aa94ed919c64cfcc9c"
      ],
      "layout": "IPY_MODEL_9a7f44c1067f4dbab4d515c8f3b03d4d"
     }
    },
    "ba286075bb574c0abb6fac90f7524e3a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a0ef66a2fecf4a6cb21c0f99f1f43bff",
      "placeholder": "​",
      "style": "IPY_MODEL_71a056894ce3438d9b9dc320366198a5",
      "value": "vocab.json: 100%"
     }
    },
    "4d0f30dd6ba245828226124a56553499": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6b59d32734904f558272e6a6f5bacc9a",
      "max": 2776833,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_01aa973ba5cd460a84095119c488e64c",
      "value": 2776833
     }
    },
    "4f011326f28542aa94ed919c64cfcc9c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8d39e3ac14c6416d85c7939784b8535d",
      "placeholder": "​",
      "style": "IPY_MODEL_8a1c7e76b18e4492bfda508cecf8a54e",
      "value": " 2.78M/2.78M [00:00&lt;00:00, 22.3MB/s]"
     }
    },
    "9a7f44c1067f4dbab4d515c8f3b03d4d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a0ef66a2fecf4a6cb21c0f99f1f43bff": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "71a056894ce3438d9b9dc320366198a5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6b59d32734904f558272e6a6f5bacc9a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "01aa973ba5cd460a84095119c488e64c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8d39e3ac14c6416d85c7939784b8535d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8a1c7e76b18e4492bfda508cecf8a54e": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "9eea72f6e8da4ddaa8b9a35a25519121": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_2678832320184c849f714e5d9bcc05a4",
       "IPY_MODEL_189426f646884052be3abc10b45cd245",
       "IPY_MODEL_ff4cd8ea16864b22a5dcec1c11009072"
      ],
      "layout": "IPY_MODEL_07c629492e6e404bba00ee71c0fb370f"
     }
    },
    "2678832320184c849f714e5d9bcc05a4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_565468c0cebc4e589b5aa7da2a868322",
      "placeholder": "​",
      "style": "IPY_MODEL_3bc794ca96914d7db8855685fef2de63",
      "value": "merges.txt: 100%"
     }
    },
    "189426f646884052be3abc10b45cd245": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_789caf0616d249cea779187fe59b82a2",
      "max": 1671839,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_63a6c53619f449a1953007775424e4ae",
      "value": 1671839
     }
    },
    "ff4cd8ea16864b22a5dcec1c11009072": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f08270ad274b4a68a56b9060f542281f",
      "placeholder": "​",
      "style": "IPY_MODEL_f88d070070124d959f2b5d8d577f340a",
      "value": " 1.67M/1.67M [00:00&lt;00:00, 12.7MB/s]"
     }
    },
    "07c629492e6e404bba00ee71c0fb370f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "565468c0cebc4e589b5aa7da2a868322": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3bc794ca96914d7db8855685fef2de63": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "789caf0616d249cea779187fe59b82a2": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "63a6c53619f449a1953007775424e4ae": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "f08270ad274b4a68a56b9060f542281f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f88d070070124d959f2b5d8d577f340a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3583bae78c2a4b21bfc4ff7e62b33731": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_9f62ee46f104435ca2455f26c67eb244",
       "IPY_MODEL_ee629ac2441a4f9d963cde0f51f8e236",
       "IPY_MODEL_55be8381eea04b268c2c01c1f6322610"
      ],
      "layout": "IPY_MODEL_61c8a67f897245e58264c633d81e9102"
     }
    },
    "9f62ee46f104435ca2455f26c67eb244": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a10543b9f469427686d81b1fe4d4152e",
      "placeholder": "​",
      "style": "IPY_MODEL_90295d65b56642a3894bc7b427fb1606",
      "value": "tokenizer.json: 100%"
     }
    },
    "ee629ac2441a4f9d963cde0f51f8e236": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_0bd205955b9b4267b7ae2e9b257aadd7",
      "max": 7031645,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_1af07954d6ab4c6cac19cb74af65aa2b",
      "value": 7031645
     }
    },
    "55be8381eea04b268c2c01c1f6322610": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f353bedbdf7041cf830e2bb5e09e1b2e",
      "placeholder": "​",
      "style": "IPY_MODEL_5cb7ecf8706d4b12bd70cd8e09ffa2c0",
      "value": " 7.03M/7.03M [00:00&lt;00:00, 27.1MB/s]"
     }
    },
    "61c8a67f897245e58264c633d81e9102": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a10543b9f469427686d81b1fe4d4152e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "90295d65b56642a3894bc7b427fb1606": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "0bd205955b9b4267b7ae2e9b257aadd7": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1af07954d6ab4c6cac19cb74af65aa2b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "f353bedbdf7041cf830e2bb5e09e1b2e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5cb7ecf8706d4b12bd70cd8e09ffa2c0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "69918082f4454cf9bbb993238de1412c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_33e70069e46246ba947e4568419d4552",
       "IPY_MODEL_ab0c1f08109140b2b6367af712998d0c",
       "IPY_MODEL_539d43da6c1f4b8eb2426e82ae5ead41"
      ],
      "layout": "IPY_MODEL_c94fa3beb7394ce39c394b2ef802e745"
     }
    },
    "33e70069e46246ba947e4568419d4552": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_967809c8825d4bfa97693015be89b352",
      "placeholder": "​",
      "style": "IPY_MODEL_955aa8c4190f4388af853ebaeaf00887",
      "value": "model.safetensors.index.json: 100%"
     }
    },
    "ab0c1f08109140b2b6367af712998d0c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4c2a8c5d005f44a2abe28874d6f71850",
      "max": 35581,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_e70b3a60f0de4ad39e6ea962a195b792",
      "value": 35581
     }
    },
    "539d43da6c1f4b8eb2426e82ae5ead41": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_6265c246e7b24e83b1b37a9f9dea5cfe",
      "placeholder": "​",
      "style": "IPY_MODEL_75794d0f48de44a7b40e152b6c1ee676",
      "value": " 35.6k/35.6k [00:00&lt;00:00, 816kB/s]"
     }
    },
    "c94fa3beb7394ce39c394b2ef802e745": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "967809c8825d4bfa97693015be89b352": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "955aa8c4190f4388af853ebaeaf00887": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "4c2a8c5d005f44a2abe28874d6f71850": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e70b3a60f0de4ad39e6ea962a195b792": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "6265c246e7b24e83b1b37a9f9dea5cfe": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "75794d0f48de44a7b40e152b6c1ee676": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "3b3d0765591b407798b1d55d888da81b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_d79a39892a4249a2ae8ae0a79fe75ab7",
       "IPY_MODEL_9d8b73ec452f444cb93de6fa33a069f4",
       "IPY_MODEL_6ed8601b504c40db9ef25b1f86be990c"
      ],
      "layout": "IPY_MODEL_d73a204f38ce40818ec5a1b64d0eb3db"
     }
    },
    "d79a39892a4249a2ae8ae0a79fe75ab7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_81a7e34772524b9d88633e37059b5453",
      "placeholder": "​",
      "style": "IPY_MODEL_2017f7c4db74416d86aa2aae16e8d96f",
      "value": "Download complete: 100%"
     }
    },
    "9d8b73ec452f444cb93de6fa33a069f4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_97aac36b9a464f56b2488ea4083771d1",
      "max": 1,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_261e6dad2b504b768e6f158137026569",
      "value": 1
     }
    },
    "6ed8601b504c40db9ef25b1f86be990c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_20cc24dba7334746bfa85d5a5ed7d8f3",
      "placeholder": "​",
      "style": "IPY_MODEL_9d086bc281fb415e964a2abea61a0f9b",
      "value": " 6.17G/6.17G [01:36&lt;00:00, 39.0MB/s]"
     }
    },
    "d73a204f38ce40818ec5a1b64d0eb3db": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "81a7e34772524b9d88633e37059b5453": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2017f7c4db74416d86aa2aae16e8d96f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "97aac36b9a464f56b2488ea4083771d1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": "20px"
     }
    },
    "261e6dad2b504b768e6f158137026569": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "20cc24dba7334746bfa85d5a5ed7d8f3": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9d086bc281fb415e964a2abea61a0f9b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5b8150031a7844949e9cddc847d8b951": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_d7729eedfc2449f8b4f5fe52df5dbe90",
       "IPY_MODEL_655d8262d4db4a0a812c42efd0b94fa1",
       "IPY_MODEL_2ab9fa1b1b954ffdaef68f6e19e0aef3"
      ],
      "layout": "IPY_MODEL_78d8dd41009e44859b4f352fbecde212"
     }
    },
    "d7729eedfc2449f8b4f5fe52df5dbe90": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5b80643e2ab4409c93fc146a20ea466a",
      "placeholder": "​",
      "style": "IPY_MODEL_504b992d77a543a8a819e16e10e990ad",
      "value": "Fetching 2 files: 100%"
     }
    },
    "655d8262d4db4a0a812c42efd0b94fa1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9d872b63905b465c839ad7a2de2d3fff",
      "max": 2,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_316ddeaedb9d43589b4a139f7455085f",
      "value": 2
     }
    },
    "2ab9fa1b1b954ffdaef68f6e19e0aef3": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_eec83e83e63a4b24805c5324b7f66290",
      "placeholder": "​",
      "style": "IPY_MODEL_423614d43fee41d69ace440d2c64a061",
      "value": " 2/2 [01:36&lt;00:00, 96.00s/it]"
     }
    },
    "78d8dd41009e44859b4f352fbecde212": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5b80643e2ab4409c93fc146a20ea466a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "504b992d77a543a8a819e16e10e990ad": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "9d872b63905b465c839ad7a2de2d3fff": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "316ddeaedb9d43589b4a139f7455085f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "eec83e83e63a4b24805c5324b7f66290": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "423614d43fee41d69ace440d2c64a061": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "92c364f520fa4638a584aed1e862f7ff": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_c7d45069039a4570849256478fd373f1",
       "IPY_MODEL_cef2dfdc4a4b49b2b6103fcfdeb5d46f",
       "IPY_MODEL_7e0870ba336d4760b976841f298a3972"
      ],
      "layout": "IPY_MODEL_791172b9e0d84d5380ff96eb22f39192"
     }
    },
    "c7d45069039a4570849256478fd373f1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e59e97516bee46619f294e1ccf711647",
      "placeholder": "​",
      "style": "IPY_MODEL_4976d340ee7b46ff81dfbfe40b097507",
      "value": "Loading weights: 100%"
     }
    },
    "cef2dfdc4a4b49b2b6103fcfdeb5d46f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_58d9cd9a5e284bed95ab79ab3625bd7e",
      "max": 434,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_f84a28c95553465a8daf8b8f61098e36",
      "value": 434
     }
    },
    "7e0870ba336d4760b976841f298a3972": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5487e7108cf1468eab9465b2ec3ee538",
      "placeholder": "​",
      "style": "IPY_MODEL_7623653f31e749ad8af61e61fcf37231",
      "value": " 434/434 [00:23&lt;00:00, 17.86it/s]"
     }
    },
    "791172b9e0d84d5380ff96eb22f39192": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e59e97516bee46619f294e1ccf711647": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4976d340ee7b46ff81dfbfe40b097507": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "58d9cd9a5e284bed95ab79ab3625bd7e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f84a28c95553465a8daf8b8f61098e36": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "5487e7108cf1468eab9465b2ec3ee538": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "7623653f31e749ad8af61e61fcf37231": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "48fe1b70d8c4420dab104fdc3e78ed15": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_bef0676d9392449598de1d3f61517c5f",
       "IPY_MODEL_61c5de07b4874b0389a156980a0f2254",
       "IPY_MODEL_7be7b6f77cf0400aa8712e39d7646167"
      ],
      "layout": "IPY_MODEL_8e25d08318b148c9ad6d6614e20177e2"
     }
    },
    "bef0676d9392449598de1d3f61517c5f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_13f9a9dc4e3047f5aedb6800d6748881",
      "placeholder": "​",
      "style": "IPY_MODEL_983956e797bf41ae8833356763d8ef8c",
      "value": "generation_config.json: 100%"
     }
    },
    "61c5de07b4874b0389a156980a0f2254": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2fb2243089194bea887f43e39267754e",
      "max": 242,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_acb6ed4b32954253be26404705777b81",
      "value": 242
     }
    },
    "7be7b6f77cf0400aa8712e39d7646167": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_e16325a5f7534380939af0a008c19def",
      "placeholder": "​",
      "style": "IPY_MODEL_2ee465f8d3d74f2f9cfaaab9eba293e0",
      "value": " 242/242 [00:00&lt;00:00, 29.8kB/s]"
     }
    },
    "8e25d08318b148c9ad6d6614e20177e2": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "13f9a9dc4e3047f5aedb6800d6748881": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "983956e797bf41ae8833356763d8ef8c": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "2fb2243089194bea887f43e39267754e": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "acb6ed4b32954253be26404705777b81": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "e16325a5f7534380939af0a008c19def": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2ee465f8d3d74f2f9cfaaab9eba293e0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "bac66ec0e6e5453289b927ecdd30d12d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_b6305c93facd44809570b9da6644b2f1",
       "IPY_MODEL_8695753c6d0b4b9fbf96edb831ae7388",
       "IPY_MODEL_4afb14ec08e44f4ba19204c201eaa647"
      ],
      "layout": "IPY_MODEL_6bfce0addd294a33885827b4e0cedc76"
     }
    },
    "b6305c93facd44809570b9da6644b2f1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f921d43ba3934f199947ce350f3f75ed",
      "placeholder": "​",
      "style": "IPY_MODEL_5fd292d7d0f0442f9bcff60c47529f61",
      "value": "README.md: 100%"
     }
    },
    "8695753c6d0b4b9fbf96edb831ae7388": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c6891c5b2645446280296cdf09136e32",
      "max": 26668,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_a069419c36f1492b9126c3424615f49d",
      "value": 26668
     }
    },
    "4afb14ec08e44f4ba19204c201eaa647": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c7f61eabcf8c4c6f9ca66cabee4fee1a",
      "placeholder": "​",
      "style": "IPY_MODEL_83ffdf5ef2ce4f329b56d77cf934d250",
      "value": " 26.7k/26.7k [00:00&lt;00:00, 1.54MB/s]"
     }
    },
    "6bfce0addd294a33885827b4e0cedc76": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f921d43ba3934f199947ce350f3f75ed": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5fd292d7d0f0442f9bcff60c47529f61": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c6891c5b2645446280296cdf09136e32": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a069419c36f1492b9126c3424615f49d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "c7f61eabcf8c4c6f9ca66cabee4fee1a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "83ffdf5ef2ce4f329b56d77cf934d250": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "96c0e319a4094389ab6ea9f9f01b21a5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_7a14af69bf6c4437884a41c8d0404bf4",
       "IPY_MODEL_b85bec22a9dc40b9a7f3627d36b67918",
       "IPY_MODEL_9a1b3e327d614df19f04809f3adcedef"
      ],
      "layout": "IPY_MODEL_22795686dd0c4978bc879a54f00f7b67"
     }
    },
    "7a14af69bf6c4437884a41c8d0404bf4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_55e0cfeb099f4358aed4aa1b23e21181",
      "placeholder": "​",
      "style": "IPY_MODEL_ca193079c550486881a7b877a57d848b",
      "value": "Resolving data files: 100%"
     }
    },
    "b85bec22a9dc40b9a7f3627d36b67918": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c552e825599a4e139bed87283678347d",
      "max": 26,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9f15d5b0f1e64696b762bb206feefe5a",
      "value": 26
     }
    },
    "9a1b3e327d614df19f04809f3adcedef": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_61ded5db3c654a16aca9b4c37a720c9a",
      "placeholder": "​",
      "style": "IPY_MODEL_890c4c78daa54ca09ce5cb3840d48f1f",
      "value": " 26/26 [00:00&lt;00:00, 649.36it/s]"
     }
    },
    "22795686dd0c4978bc879a54f00f7b67": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "55e0cfeb099f4358aed4aa1b23e21181": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "ca193079c550486881a7b877a57d848b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "c552e825599a4e139bed87283678347d": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9f15d5b0f1e64696b762bb206feefe5a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "61ded5db3c654a16aca9b4c37a720c9a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "890c4c78daa54ca09ce5cb3840d48f1f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "660bfbe65abc4e3293e3073f0fd5e012": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_041ffe5b1c194812a866e7ca33829968",
       "IPY_MODEL_285109f878cc40e2b6a2ef10ec8ca762",
       "IPY_MODEL_f2fa7dad370d4c4ba5054356c9f37fb7"
      ],
      "layout": "IPY_MODEL_d257a779c8464237928fefe6955c1f82"
     }
    },
    "041ffe5b1c194812a866e7ca33829968": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_4e79a8a32c6043459e1d6f40883a8d2f",
      "placeholder": "​",
      "style": "IPY_MODEL_e74a587e146a4188a5f9fcc5ff516773",
      "value": "rc.nocontext/train-00000-of-00001.parque(…): 100%"
     }
    },
    "285109f878cc40e2b6a2ef10ec8ca762": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_395623293e494066916bc3214132a45c",
      "max": 55391498,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_a0aaf2d650a34bea9ea40429f2235bce",
      "value": 55391498
     }
    },
    "f2fa7dad370d4c4ba5054356c9f37fb7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_ed915e3478774cd18a677759367c9f3b",
      "placeholder": "​",
      "style": "IPY_MODEL_464056ed5d2c40499d9c58e18b02baae",
      "value": " 55.4M/55.4M [00:02&lt;00:00, 77.3MB/s]"
     }
    },
    "d257a779c8464237928fefe6955c1f82": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4e79a8a32c6043459e1d6f40883a8d2f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "e74a587e146a4188a5f9fcc5ff516773": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "395623293e494066916bc3214132a45c": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a0aaf2d650a34bea9ea40429f2235bce": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "ed915e3478774cd18a677759367c9f3b": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "464056ed5d2c40499d9c58e18b02baae": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "6e24d27cb3344516841c427548d89e45": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_745797fdc90346d582b1104f9bdcac56",
       "IPY_MODEL_7be357788c3e4a2a8c2080a9dd68a33d",
       "IPY_MODEL_39d67dd7c1c14216b060ebc0d52ce356"
      ],
      "layout": "IPY_MODEL_b7cb21582cc7481a87fcc83d7698b598"
     }
    },
    "745797fdc90346d582b1104f9bdcac56": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_506b3cc149f34aa68ae1885894331f82",
      "placeholder": "​",
      "style": "IPY_MODEL_adc9e8f4353e419d8395ae26c1c0f3d8",
      "value": "rc.nocontext/validation-00000-of-00001.p(…): 100%"
     }
    },
    "7be357788c3e4a2a8c2080a9dd68a33d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_604e8a676a354959b1dfe586aad3f4ce",
      "max": 7335321,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_48c5d80c294948aab27261404ddd1815",
      "value": 7335321
     }
    },
    "39d67dd7c1c14216b060ebc0d52ce356": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_cf140e73df0e42d69440aeba121defdf",
      "placeholder": "​",
      "style": "IPY_MODEL_1d11024172684a068fd942a59bfa146f",
      "value": " 7.34M/7.34M [00:01&lt;00:00, 20.1MB/s]"
     }
    },
    "b7cb21582cc7481a87fcc83d7698b598": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "506b3cc149f34aa68ae1885894331f82": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "adc9e8f4353e419d8395ae26c1c0f3d8": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "604e8a676a354959b1dfe586aad3f4ce": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "48c5d80c294948aab27261404ddd1815": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "cf140e73df0e42d69440aeba121defdf": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1d11024172684a068fd942a59bfa146f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "a88661d894dc49869b7055210ccde1b5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_134bbf749fd548da84b7782b5254211a",
       "IPY_MODEL_56dbf26c45664b339f8b39dcaf30495d",
       "IPY_MODEL_aa14acdc35af4694ba37fe09add66679"
      ],
      "layout": "IPY_MODEL_c816c396a8c84dc8a97d0950a3a217c1"
     }
    },
    "134bbf749fd548da84b7782b5254211a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_c0eeea01ef71462fa6af0ddc0dc37e12",
      "placeholder": "​",
      "style": "IPY_MODEL_748d19a894754751915384376adc793d",
      "value": "rc.nocontext/test-00000-of-00001.parquet: 100%"
     }
    },
    "56dbf26c45664b339f8b39dcaf30495d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_32dac79cf785435a9efcf2f89195c2ef",
      "max": 1199699,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_530c913caa5f46a5a0e0e18d4a0a31c4",
      "value": 1199699
     }
    },
    "aa14acdc35af4694ba37fe09add66679": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_d45615c4146c40e8b93de01b7c96bc0c",
      "placeholder": "​",
      "style": "IPY_MODEL_a685429b8b5e46b7850c771730049a10",
      "value": " 1.20M/1.20M [00:01&lt;00:00, 693kB/s]"
     }
    },
    "c816c396a8c84dc8a97d0950a3a217c1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "c0eeea01ef71462fa6af0ddc0dc37e12": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "748d19a894754751915384376adc793d": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "32dac79cf785435a9efcf2f89195c2ef": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "530c913caa5f46a5a0e0e18d4a0a31c4": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "d45615c4146c40e8b93de01b7c96bc0c": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a685429b8b5e46b7850c771730049a10": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5731929b60cb49389e3952f30b9eefe7": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_ac10d34379aa4f80816e210222940c28",
       "IPY_MODEL_9c07ec5a19104033917c3bb7e42fbe88",
       "IPY_MODEL_33b9bce3665f458c98656cd814a1a675"
      ],
      "layout": "IPY_MODEL_d0f3eb1619b14195b8bf46f0230abe35"
     }
    },
    "ac10d34379aa4f80816e210222940c28": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_a9e3b0ae4ec94520a174516fe681a112",
      "placeholder": "​",
      "style": "IPY_MODEL_a6964342599941ac89ea5bc04a96b290",
      "value": "Generating train split: 100%"
     }
    },
    "9c07ec5a19104033917c3bb7e42fbe88": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5ab1687b90c24bd8b30a525b0a31c4f8",
      "max": 138384,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_48714856a8044de3a42298039e4b8e0f",
      "value": 138384
     }
    },
    "33b9bce3665f458c98656cd814a1a675": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_b1443e37817d403e8f90f18f6009f230",
      "placeholder": "​",
      "style": "IPY_MODEL_4cf69c42b6d24d98881a68bfe1f02649",
      "value": " 138384/138384 [00:01&lt;00:00, 89925.52 examples/s]"
     }
    },
    "d0f3eb1619b14195b8bf46f0230abe35": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a9e3b0ae4ec94520a174516fe681a112": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a6964342599941ac89ea5bc04a96b290": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "5ab1687b90c24bd8b30a525b0a31c4f8": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "48714856a8044de3a42298039e4b8e0f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "b1443e37817d403e8f90f18f6009f230": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4cf69c42b6d24d98881a68bfe1f02649": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "ef73b5b206174e0c90838f18341f7451": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_29c4381d143b4c0ca413bc1423699f24",
       "IPY_MODEL_72e587d08920467bb209ba33a27c9255",
       "IPY_MODEL_4d1fe185e86e484e834d3244faa03266"
      ],
      "layout": "IPY_MODEL_0358746ff7314db58e7229ad88ff8ca1"
     }
    },
    "29c4381d143b4c0ca413bc1423699f24": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_1464a5bfcc8d4175b5d29e86fe88bdbf",
      "placeholder": "​",
      "style": "IPY_MODEL_3b77905339ce4f318ea4089d778bc5cb",
      "value": "Generating validation split: 100%"
     }
    },
    "72e587d08920467bb209ba33a27c9255": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f9c5d4818bc141a0bd3ea915df6a8c2b",
      "max": 17944,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_b0eb0c416992426f86352e6500106075",
      "value": 17944
     }
    },
    "4d1fe185e86e484e834d3244faa03266": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_174fbdf5f5014d5b9366ea73982ebd21",
      "placeholder": "​",
      "style": "IPY_MODEL_9d1b2d3cd90545d88ad94cc9a2ff94d5",
      "value": " 17944/17944 [00:00&lt;00:00, 82173.83 examples/s]"
     }
    },
    "0358746ff7314db58e7229ad88ff8ca1": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "1464a5bfcc8d4175b5d29e86fe88bdbf": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3b77905339ce4f318ea4089d778bc5cb": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "f9c5d4818bc141a0bd3ea915df6a8c2b": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "b0eb0c416992426f86352e6500106075": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "174fbdf5f5014d5b9366ea73982ebd21": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "9d1b2d3cd90545d88ad94cc9a2ff94d5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "24e8f933e09849c4a295b1123e639104": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_410459ac62c24191b2fd0ece5da7e13a",
       "IPY_MODEL_81d8166701e9476abfc02c3ebaee7b64",
       "IPY_MODEL_0e1bbe9ab51e4692a2227e0a50afc7e8"
      ],
      "layout": "IPY_MODEL_50abb09d696c478caca27f1fb2b9776a"
     }
    },
    "410459ac62c24191b2fd0ece5da7e13a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_fe745b6dad364c22af1feb9c681d7999",
      "placeholder": "​",
      "style": "IPY_MODEL_d080a7f4009a479a99cd63db1539ce94",
      "value": "Generating test split: 100%"
     }
    },
    "81d8166701e9476abfc02c3ebaee7b64": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_65e68517d1ff4ab6a7736aaae7a0acf9",
      "max": 17210,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_a5873f9e2fa5406c8cbfebb0a7dae900",
      "value": 17210
     }
    },
    "0e1bbe9ab51e4692a2227e0a50afc7e8": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_9be3dd5549404edfa2c5f59c8a4c929f",
      "placeholder": "​",
      "style": "IPY_MODEL_0b83b5fa2cbf4883b26a47cc71c94277",
      "value": " 17210/17210 [00:00&lt;00:00, 157956.98 examples/s]"
     }
    },
    "50abb09d696c478caca27f1fb2b9776a": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "fe745b6dad364c22af1feb9c681d7999": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "d080a7f4009a479a99cd63db1539ce94": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "65e68517d1ff4ab6a7736aaae7a0acf9": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "a5873f9e2fa5406c8cbfebb0a7dae900": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "9be3dd5549404edfa2c5f59c8a4c929f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "0b83b5fa2cbf4883b26a47cc71c94277": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "b94c73a73d354d1fb7fef920b8258170": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HBoxModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_fa36579bc04242a6907f7d573463cac5",
       "IPY_MODEL_c152a78db1e44aa9b978bdd54822ff5f",
       "IPY_MODEL_efa3bc15e29749dba08a183a30654618"
      ],
      "layout": "IPY_MODEL_dccb5c5cc81148cf87b86a06fec5a169"
     }
    },
    "fa36579bc04242a6907f7d573463cac5": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_f5c56e4c022842fcb1e9e29e7b61c377",
      "placeholder": "​",
      "style": "IPY_MODEL_5f3e5bf506914f3b96cd9d66ad4c8eb6",
      "value": "Resolving data files: 100%"
     }
    },
    "c152a78db1e44aa9b978bdd54822ff5f": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "FloatProgressModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "FloatProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "success",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2d6f7b335c3d4c1292fde72450a9ed9f",
      "max": 26,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_4cad8b745c8b4d63b42b6710822e3906",
      "value": 26
     }
    },
    "efa3bc15e29749dba08a183a30654618": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "HTMLModel",
     "model_module_version": "1.5.0",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "HTMLModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "HTMLView",
      "description": "",
      "description_tooltip": null,
      "layout": "IPY_MODEL_5a2beb4448814b69b1699710ec1e6716",
      "placeholder": "​",
      "style": "IPY_MODEL_334d0c6611404c508458a206fa70dd32",
      "value": " 26/26 [00:00&lt;00:00, 667.65it/s]"
     }
    },
    "dccb5c5cc81148cf87b86a06fec5a169": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "f5c56e4c022842fcb1e9e29e7b61c377": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "5f3e5bf506914f3b96cd9d66ad4c8eb6": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    },
    "2d6f7b335c3d4c1292fde72450a9ed9f": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "4cad8b745c8b4d63b42b6710822e3906": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "5a2beb4448814b69b1699710ec1e6716": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "model_module_version": "1.2.0",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "334d0c6611404c508458a206fa70dd32": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "DescriptionStyleModel",
     "model_module_version": "1.5.0",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "DescriptionStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "description_width": ""
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
