File size: 223,594 Bytes
0b8fdfb
1
{"cells":[{"cell_type":"markdown","metadata":{"id":"4t3eRIwJjLUd"},"source":["# Config Setup"]},{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":127492,"status":"ok","timestamp":1745243278667,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"},"user_tz":-180},"id":"LOVNadmhuVjz","outputId":"34c8a608-cbde-4fcc-9378-ad0c83072056"},"outputs":[{"output_type":"stream","name":"stdout","text":["Requirement already satisfied: transformers in /usr/local/lib/python3.11/dist-packages (4.51.3)\n","Requirement already satisfied: sentencepiece in /usr/local/lib/python3.11/dist-packages (0.2.0)\n","Collecting datasets\n","  Downloading datasets-3.5.0-py3-none-any.whl.metadata (19 kB)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from transformers) (3.18.0)\n","Requirement already satisfied: huggingface-hub<1.0,>=0.30.0 in /usr/local/lib/python3.11/dist-packages (from transformers) (0.30.2)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.11/dist-packages (from transformers) (2.0.2)\n","Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from transformers) (24.2)\n","Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.11/dist-packages (from transformers) (6.0.2)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.11/dist-packages (from transformers) (2024.11.6)\n","Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from transformers) (2.32.3)\n","Requirement already satisfied: tokenizers<0.22,>=0.21 in /usr/local/lib/python3.11/dist-packages (from transformers) (0.21.1)\n","Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.11/dist-packages (from transformers) (0.5.3)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.11/dist-packages (from transformers) (4.67.1)\n","Requirement already satisfied: pyarrow>=15.0.0 in /usr/local/lib/python3.11/dist-packages (from datasets) (18.1.0)\n","Collecting dill<0.3.9,>=0.3.0 (from datasets)\n","  Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)\n","Requirement already satisfied: pandas in /usr/local/lib/python3.11/dist-packages (from datasets) (2.2.2)\n","Collecting xxhash (from datasets)\n","  Downloading xxhash-3.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)\n","Collecting multiprocess<0.70.17 (from datasets)\n","  Downloading multiprocess-0.70.16-py311-none-any.whl.metadata (7.2 kB)\n","Collecting fsspec<=2024.12.0,>=2023.1.0 (from fsspec[http]<=2024.12.0,>=2023.1.0->datasets)\n","  Downloading fsspec-2024.12.0-py3-none-any.whl.metadata (11 kB)\n","Requirement already satisfied: aiohttp in /usr/local/lib/python3.11/dist-packages (from datasets) (3.11.15)\n","Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (2.6.1)\n","Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (1.3.2)\n","Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (25.3.0)\n","Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (1.5.0)\n","Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (6.4.3)\n","Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (0.3.1)\n","Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->datasets) (1.19.0)\n","Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.11/dist-packages (from huggingface-hub<1.0,>=0.30.0->transformers) (4.13.2)\n","Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests->transformers) (3.4.1)\n","Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->transformers) (3.10)\n","Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests->transformers) (2.3.0)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests->transformers) (2025.1.31)\n","Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas->datasets) (2.8.2)\n","Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas->datasets) (2025.2)\n","Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas->datasets) (2025.2)\n","Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->pandas->datasets) (1.17.0)\n","Downloading datasets-3.5.0-py3-none-any.whl (491 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m491.2/491.2 kB\u001b[0m \u001b[31m9.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading dill-0.3.8-py3-none-any.whl (116 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m6.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading fsspec-2024.12.0-py3-none-any.whl (183 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m183.9/183.9 kB\u001b[0m \u001b[31m10.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading multiprocess-0.70.16-py311-none-any.whl (143 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.5/143.5 kB\u001b[0m \u001b[31m5.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading xxhash-3.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (194 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.8/194.8 kB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hInstalling collected packages: xxhash, fsspec, dill, multiprocess, datasets\n","  Attempting uninstall: fsspec\n","    Found existing installation: fsspec 2025.3.2\n","    Uninstalling fsspec-2025.3.2:\n","      Successfully uninstalled fsspec-2025.3.2\n","\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n","gcsfs 2025.3.2 requires fsspec==2025.3.2, but you have fsspec 2024.12.0 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cublas-cu12==12.4.5.8; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cublas-cu12 12.5.3.2 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cuda-cupti-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cuda-cupti-cu12 12.5.82 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cuda-nvrtc-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cuda-nvrtc-cu12 12.5.82 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cuda-runtime-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cuda-runtime-cu12 12.5.82 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cudnn-cu12==9.1.0.70; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cudnn-cu12 9.3.0.75 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cufft-cu12==11.2.1.3; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cufft-cu12 11.2.3.61 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-curand-cu12==10.3.5.147; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-curand-cu12 10.3.6.82 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cusolver-cu12==11.6.1.9; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cusolver-cu12 11.6.3.83 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-cusparse-cu12==12.3.1.170; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-cusparse-cu12 12.5.1.3 which is incompatible.\n","torch 2.6.0+cu124 requires nvidia-nvjitlink-cu12==12.4.127; platform_system == \"Linux\" and platform_machine == \"x86_64\", but you have nvidia-nvjitlink-cu12 12.5.82 which is incompatible.\u001b[0m\u001b[31m\n","\u001b[0mSuccessfully installed datasets-3.5.0 dill-0.3.8 fsspec-2024.12.0 multiprocess-0.70.16 xxhash-3.5.0\n","Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (4.67.1)\n","Requirement already satisfied: torch in /usr/local/lib/python3.11/dist-packages (2.6.0+cu124)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from torch) (3.18.0)\n","Requirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/dist-packages (from torch) (4.13.2)\n","Requirement already satisfied: networkx in /usr/local/lib/python3.11/dist-packages (from torch) (3.4.2)\n","Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from torch) (3.1.6)\n","Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from torch) (2024.12.0)\n","Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch)\n","  Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n","Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch)\n","  Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n","Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch)\n","  Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n","Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch)\n","  Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n","Collecting nvidia-cublas-cu12==12.4.5.8 (from torch)\n","  Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n","Collecting nvidia-cufft-cu12==11.2.1.3 (from torch)\n","  Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n","Collecting nvidia-curand-cu12==10.3.5.147 (from torch)\n","  Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n","Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch)\n","  Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n","Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch)\n","  Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n","Requirement already satisfied: nvidia-cusparselt-cu12==0.6.2 in /usr/local/lib/python3.11/dist-packages (from torch) (0.6.2)\n","Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch) (2.21.5)\n","Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch) (12.4.127)\n","Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch)\n","  Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n","Requirement already satisfied: triton==3.2.0 in /usr/local/lib/python3.11/dist-packages (from torch) (3.2.0)\n","Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch) (1.13.1)\n","Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy==1.13.1->torch) (1.3.0)\n","Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from jinja2->torch) (3.0.2)\n","Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m363.4/363.4 MB\u001b[0m \u001b[31m4.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.8/13.8 MB\u001b[0m \u001b[31m53.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m24.6/24.6 MB\u001b[0m \u001b[31m19.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m883.7/883.7 kB\u001b[0m \u001b[31m29.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m664.8/664.8 MB\u001b[0m \u001b[31m2.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m211.5/211.5 MB\u001b[0m \u001b[31m4.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.3/56.3 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m127.9/127.9 MB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m207.5/207.5 MB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.1/21.1 MB\u001b[0m \u001b[31m70.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hInstalling collected packages: nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12\n","  Attempting uninstall: nvidia-nvjitlink-cu12\n","    Found existing installation: nvidia-nvjitlink-cu12 12.5.82\n","    Uninstalling nvidia-nvjitlink-cu12-12.5.82:\n","      Successfully uninstalled nvidia-nvjitlink-cu12-12.5.82\n","  Attempting uninstall: nvidia-curand-cu12\n","    Found existing installation: nvidia-curand-cu12 10.3.6.82\n","    Uninstalling nvidia-curand-cu12-10.3.6.82:\n","      Successfully uninstalled nvidia-curand-cu12-10.3.6.82\n","  Attempting uninstall: nvidia-cufft-cu12\n","    Found existing installation: nvidia-cufft-cu12 11.2.3.61\n","    Uninstalling nvidia-cufft-cu12-11.2.3.61:\n","      Successfully uninstalled nvidia-cufft-cu12-11.2.3.61\n","  Attempting uninstall: nvidia-cuda-runtime-cu12\n","    Found existing installation: nvidia-cuda-runtime-cu12 12.5.82\n","    Uninstalling nvidia-cuda-runtime-cu12-12.5.82:\n","      Successfully uninstalled nvidia-cuda-runtime-cu12-12.5.82\n","  Attempting uninstall: nvidia-cuda-nvrtc-cu12\n","    Found existing installation: nvidia-cuda-nvrtc-cu12 12.5.82\n","    Uninstalling nvidia-cuda-nvrtc-cu12-12.5.82:\n","      Successfully uninstalled nvidia-cuda-nvrtc-cu12-12.5.82\n","  Attempting uninstall: nvidia-cuda-cupti-cu12\n","    Found existing installation: nvidia-cuda-cupti-cu12 12.5.82\n","    Uninstalling nvidia-cuda-cupti-cu12-12.5.82:\n","      Successfully uninstalled nvidia-cuda-cupti-cu12-12.5.82\n","  Attempting uninstall: nvidia-cublas-cu12\n","    Found existing installation: nvidia-cublas-cu12 12.5.3.2\n","    Uninstalling nvidia-cublas-cu12-12.5.3.2:\n","      Successfully uninstalled nvidia-cublas-cu12-12.5.3.2\n","  Attempting uninstall: nvidia-cusparse-cu12\n","    Found existing installation: nvidia-cusparse-cu12 12.5.1.3\n","    Uninstalling nvidia-cusparse-cu12-12.5.1.3:\n","      Successfully uninstalled nvidia-cusparse-cu12-12.5.1.3\n","  Attempting uninstall: nvidia-cudnn-cu12\n","    Found existing installation: nvidia-cudnn-cu12 9.3.0.75\n","    Uninstalling nvidia-cudnn-cu12-9.3.0.75:\n","      Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75\n","  Attempting uninstall: nvidia-cusolver-cu12\n","    Found existing installation: nvidia-cusolver-cu12 11.6.3.83\n","    Uninstalling nvidia-cusolver-cu12-11.6.3.83:\n","      Successfully uninstalled nvidia-cusolver-cu12-11.6.3.83\n","Successfully installed nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127\n","Collecting sacrebleu\n","  Downloading sacrebleu-2.5.1-py3-none-any.whl.metadata (51 kB)\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.8/51.8 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hCollecting portalocker (from sacrebleu)\n","  Downloading portalocker-3.1.1-py3-none-any.whl.metadata (8.6 kB)\n","Requirement already satisfied: regex in /usr/local/lib/python3.11/dist-packages (from sacrebleu) (2024.11.6)\n","Requirement already satisfied: tabulate>=0.8.9 in /usr/local/lib/python3.11/dist-packages (from sacrebleu) (0.9.0)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.11/dist-packages (from sacrebleu) (2.0.2)\n","Collecting colorama (from sacrebleu)\n","  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n","Requirement already satisfied: lxml in /usr/local/lib/python3.11/dist-packages (from sacrebleu) (5.3.2)\n","Downloading sacrebleu-2.5.1-py3-none-any.whl (104 kB)\n","\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m104.1/104.1 kB\u001b[0m \u001b[31m7.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hDownloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n","Downloading portalocker-3.1.1-py3-none-any.whl (19 kB)\n","Installing collected packages: portalocker, colorama, sacrebleu\n","Successfully installed colorama-0.4.6 portalocker-3.1.1 sacrebleu-2.5.1\n"]}],"source":["! pip install transformers sentencepiece datasets\n","! pip install tqdm\n","! pip install torch\n","!pip install sacrebleu"]},{"cell_type":"markdown","metadata":{"id":"zJC5YliTjCyC"},"source":["#  Huggingface Configuration"]},{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":17,"referenced_widgets":["0873702b270f44ac8d403d0f99071b85","0b6b39f74eaf4f88b7d3f61cabacb0e2","49e30da2bece411e8b9694f82c45d4c3","df6ed50562094937a11564a84af307b0","9e7c6b0af2ca41989e7c8d91e841c2a2","955464dbf9b947b98f1b624ee9b3e91e","c739646664eb4ebb9fa75ec379f90742","58a9c1e2ed5a4d8d898151cd316d9b38","ea26eccbc6b54b40bc6d5acd0df31ffd","2c30a0e71754492ea5f83c9474ded504","4cc6ba92ee2e431ca58b1d149cec2bba","13fa0cd4033b4ede881a6c5363040d07","bfc46a69fc3b4de0990cda3ca422c1da","79d871b05ff441acbc6966320816bd70","b507639502064738b7095f409cce89cc","01f97991c9e1461294b6cf8bef9dca24","fd121d1c5c244a6d9db2cce5d2ccb173","67e52e14229e44898003134e8e3bddde","efec379b17154562a54c1bf4a445b1e8","b31d8f6b308640e5922ce8c24300bbef"]},"executionInfo":{"elapsed":678,"status":"ok","timestamp":1745243279400,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"},"user_tz":-180},"id":"JPXDbcI8kz3j","outputId":"648d6cf8-5ab3-47d7-9937-b175a443621b"},"outputs":[{"output_type":"display_data","data":{"text/plain":["VBox(children=(HTML(value='<center> <img\\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.sv…"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"0873702b270f44ac8d403d0f99071b85"}},"metadata":{}}],"source":["from huggingface_hub import notebook_login\n","notebook_login()"]},{"cell_type":"markdown","metadata":{"id":"U7mn2KIli7ZK"},"source":["# Data Preparation"]},{"cell_type":"code","execution_count":3,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":736,"referenced_widgets":["01ad19819d194df6abdc3ca38bf3ef9f","32483b7e2dac49dc83d7e5637ad3859b","ab8e5ddc21544cc0a067435184401c87","2194f1bcd6de47dfbc1a0c56dadbd0db","c693139090c84a71a9622e29ee1486f7","cdcdfa84d499437eb31ddb74a3727052","2d8aa291f72c4ccfbdd3b9d240512fde","5a806f719d044c22aa1c8f760d493586","37c9b1e7cff5406393643ef0ef1209cb","1ab52a34829243259b43161d1f5a463e","652e2b1830ea4e9288f183f715bd0283","9f92bb2906064f43a565fb612c63ca53","17a8be32f1f34185975d097bb53c78e5","d89d2f0967b6466fa7ea16ea28eb0fad","4283f6c063dd462ab4d348a2090e79c6","8323b33e82da445889df90d1f2e948c3","2780847850f047618fd88eb20713de49","83e4d61822604ee1b828964153ba06e3","0f80568a53d9437a87f7a8eb75f25732","1b3b8b69b1e34cb6959299d60fbf58d6","bd6e78c808da407e905b0d24aeb860f4","ed2707245ae34f91ab670506d3ede7d7","664e48a5eee7495285e28aee6de0e24e","95fbb099efc14da6ad8153998594a78d","4740cfaee4434704b3c9af618a888b39","1988059740164b9b9218f8731cfc3a6d","6f38265e62954db894c329b5df9315ec","3ebf9466cb6c415fa28fdcab276f927f","0143cab4de7642f691314096fd3c7e34","f260262b0e584b639446f3caf486682d","ff8b3a4b380243898aa0d4af0c781b7f","7291721c188a454e90516c5879d0aa6e","9bb4a05135e541539b0c3acde2776f1a","f4bf32ad23b841adaae373c42f0c8e58","ac51d9c1ce964cc5ab0ffac67a4152d3","2f1048d1732a431e963f71db73eb0119","fb5e00e3b5f946109381dcb12e975a1c","65aef48efc8e44d88e0e3318b53c3c2c","dbb2f190e4874676868c51e8c44f9269","9d36dd04b1574233b94b248c9a17cdec","8d9c6b8557454eeaadba6f391dcee9fb","993a2e3658ae432c835967dba4549ddd","24383d98e440490597bdf315dccf8458","abf573d24d054fec807499bbd430fc7d","d835717d807e4d669cddaca6d185a00f","5b8c3d32fad94b329529c95df5e82687","ce23f5a663be47109163b7874cd3e319","67d9b51b865349819a21b3c190866b38","1e405ca8116a4ed4929a857dfd6d8d0e","dd2066aa820047ff8b8bce1e87cbabc8","678f084146ce4dc4813f53eddad9fcd0","447fd0256fc14882bac7bf09a965b9d3","696ca97bfeea4960a7fecfbb05e7a869","da15cbcae1f144cbaa801acadf8f63db","cf151c89f47046e0b551dda7271e7df1","a04e1ee52dad4bec9d0397f348e7145a","f9fa4b496d9046d5a4e45ba83ad8eadb","0af1c5ffdd08492699fd86fc3c429eb6","363ea5c7afd94ee58f7f83324fb37d0b","7eb841d985354e7394437bd074adb255","96861850eb4a461a9149e0dc0da6004a","e934d87fa39c4396a8edc33bf4d19e81","60f354df57f54f5983b1d82ec14dba9e","bae3a4a551ad483bba92a88df7d3246d","5c3dbc9716ef468d92d9db40a8994a26","1a81a5c82a414fea9dd0783c62e5573d","611171887f204c45bf4906daa511fc3f","f2c245dd46b74a08ba812443e0cac622","1534dd2eeb6344a39c4716f935f1a887","08ef282171834d9da1cb992df4cccf71","f00b8156cf8a4d329660fb0684c75e4c","0e6d44e73bce4d5290c01399227129cc","86dec322b89241d986a276a8e373e890","3edcaf0a115f46c7b8859d43d5042490","75c0b09565ec4ca4a9f1826dadf7e112","a1f64953ffed4830a54564394ed0e55d","1ec3c7dfedf2491cae7d2b946b95d45d","3f7c83ece2b342fdbf360fa0db50af19","68201d78f7584da8991f96f2a92e67d4","aa62b7bada85416ea7a72f64484f41a6","634a86a6d5f24678b1f04d61e054a2d4","f5e202c483074a638c39066332aa398d","b7982850284642a69b2d1c353270f640","12d11255e6f448ea9a7f8120dcad75e7","86d9746b27b64ebc81f53c6feb054718","485642dd4ef84b939c10f43b2dbbba15","8208f3c65b434822801f60c760369a95","81d6328f81c34e14bc9c6a12a549f09b","b2fd4ed099e04f58b9214c4261f2220f","2c2ac61d95034824bce1763ddc91dddb","fd29b52b41ab4867aa635b26e4ae2e00","f4174e40111d4c5584de962a9dd42d66","530e9c35bd8b47f297d6e1a3c35bdbae","f189bfd677fd49728cc26246a8f94f21","58985bb016f84e099897d5c0d3b67bec","477e8c56848a4b0f913d363d7fc30c44","2db1671efa9747b98b7d172fb1c90bad","7d52d57be23540e3aa671f1727a72d53","fb44bded1de74357ab5a52a201fbd755","e58c4bba2d334eb3bc84ba090f8fc823","750ce8951fb04e72a70b063f514c0e01","66933d47ba8d4b148d2ee7ecac2d439e","2dd1c80b03fe49bb961440c3679a5e18","0599b43baa5d45848a42da5b06eea7e5","0fb70cfe19c7400e9609d31eac5b8dd2","b79fc3b1f76341b5bf1ad1f2749d2375","47aa9984792a4d1ca83056dffd69c2f2","90bc4cb737fe4ca7979252670be48542","aa3e1b45f26c4d1192eb108070589277","32229c970ab34b40ab202b01b5d29072","8cf7df27297a4fc6991adc70d7ca8f55","f8a77b2cfa1e4a82a07caac71b05f28c","5ed190532d4d4a339ee8e13b6a074c0b","101af85cff1f432ab5cfee182e418171","f30b0e549ea24719a605369c2a2751bc","05a96057d8dc49e2a68b1c54c3d0495a","850f26fe52354280a67d9e8998fc6c63","fe0a1e1dad084b79a63cd441ed69f99a","dd6227782ce848f9a92f257ce09ab915","66cc7a1d9de34d2db205fec120ed3bc1","6a1c014e0c1c4013ad046bcf2b7e3f83"]},"executionInfo":{"elapsed":110998,"status":"ok","timestamp":1745243400098,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"},"user_tz":-180},"id":"3FkGZzlfx3ip","outputId":"abc3b61c-36f9-4fc0-d611-fa9d1f163d56"},"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive\n","/content\n"]},{"output_type":"display_data","data":{"text/plain":["tokenizer_config.json:   0%|          | 0.00/843 [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"01ad19819d194df6abdc3ca38bf3ef9f"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["source.spm:   0%|          | 0.00/817k [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"9f92bb2906064f43a565fb612c63ca53"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["target.spm:   0%|          | 0.00/823k [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"664e48a5eee7495285e28aee6de0e24e"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["vocab.json:   0%|          | 0.00/1.45M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"f4bf32ad23b841adaae373c42f0c8e58"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["special_tokens_map.json:   0%|          | 0.00/416 [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"d835717d807e4d669cddaca6d185a00f"}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.11/dist-packages/transformers/models/marian/tokenization_marian.py:175: UserWarning: Recommended: pip install sacremoses.\n","  warnings.warn(\"Recommended: pip install sacremoses.\")\n"]},{"output_type":"display_data","data":{"text/plain":["config.json:   0%|          | 0.00/1.38k [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"a04e1ee52dad4bec9d0397f348e7145a"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["model.safetensors:   0%|          | 0.00/297M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"611171887f204c45bf4906daa511fc3f"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["generation_config.json:   0%|          | 0.00/288 [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"3f7c83ece2b342fdbf360fa0db50af19"}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["The new embeddings will be initialized from a multivariate normal distribution that has old embeddings' mean and covariance. As described in this article: https://nlp.stanford.edu/~johnhew/vocab-expansion.html. To disable this, use `mean_resizing=False`\n"]},{"output_type":"display_data","data":{"text/plain":["README.md:   0%|          | 0.00/173 [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"b2fd4ed099e04f58b9214c4261f2220f"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["ensw.csv:   0%|          | 0.00/21.6M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"e58c4bba2d334eb3bc84ba090f8fc823"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["Generating train split:   0%|          | 0/210471 [00:00<?, ? examples/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"8cf7df27297a4fc6991adc70d7ca8f55"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["Available splits: dict_keys(['train'])\n","DatasetDict({\n","    train: Dataset({\n","        features: ['English sentence', 'Swahili Translation'],\n","        num_rows: 168376\n","    })\n","    validation: Dataset({\n","        features: ['English sentence', 'Swahili Translation'],\n","        num_rows: 21047\n","    })\n","    test: Dataset({\n","        features: ['English sentence', 'Swahili Translation'],\n","        num_rows: 21048\n","    })\n","})\n"]}],"source":["import torch\n","import numpy as np\n","from datasets import load_dataset, DatasetDict\n","from google.colab import drive\n","from transformers import (\n","    AutoModelForSeq2SeqLM,\n","    AutoTokenizer,\n","    get_linear_schedule_with_warmup,\n",")\n","from typing import Dict, List, Tuple, Optional\n","from tqdm import tqdm_notebook\n","import matplotlib.pyplot as plt\n","import seaborn as sns\n","from torch import optim\n","from torch.nn import functional as F\n","import glob\n","import os\n","import gc\n","from tqdm.notebook import tqdm\n","from huggingface_hub import HfFolder\n","from huggingface_hub import HfApi, Repository, hf_hub_download\n","\n","sns.set_style('dark')\n","\n","from google.colab import drive\n","drive.mount('/content/drive')\n","curfile = os.getcwd()\n","print(curfile)\n","\n","\n","# Model and configuration parameters\n","model_name = 'Bildad/Swahili-English_Translation'\n","# branch_used=\"recovery\"\n","max_length = 128\n","batch_size = 8\n","learning_rate = 5e-5\n","num_epochs = 10\n","device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n","\n","# Language tokens\n","lang_token = {\n","    'sw': '<sw>',\n","    'en': '<en>'\n","\n","}\n","\n","api = HfApi()  # Initialize the API client once\n","repo_id=\"JMwagunda/Trial\"\n","tokenizer = AutoTokenizer.from_pretrained(model_name)\n","model = AutoModelForSeq2SeqLM.from_pretrained(model_name)\n","model.to(device)\n","\n","repo_name=\"JMwagunda/Trial\"\n","checkpoint_file = \"checkpoint.pth\"\n","\n","# Add special tokens\n","special_tokens = {'additional_special_tokens': list(lang_token.values())}\n","tokenizer.add_special_tokens(special_tokens)\n","model.resize_token_embeddings(len(tokenizer))\n","\n","# Load the dataset and check available splits\n","ds = load_dataset('Rogendo/English-Swahili-Sentence-Pairs')\n","print(\"Available splits:\", ds.keys())\n","\n","\n","# Calculate the sizes based on percentages\n","total_rows = len(ds['train'])\n","train_size = int(0.8 * total_rows)  # 80% for training\n","validation_size = int(0.1 * total_rows)  # 10% for validation\n","test_size = total_rows - train_size - validation_size  # Remaining 10% for test\n","\n","# Shuffle the dataset to ensure randomness in splitting\n","ds_shuffled = ds['train'].shuffle(seed=42)\n","\n","# Create the splits based on the specified sizes\n","train_dataset = ds_shuffled.select(range(train_size)) # train_dataset should be a dataset, not an int\n","validation_dataset = ds_shuffled.select(range(train_size, train_size + validation_size))\n","test_dataset = ds_shuffled.select(range(train_size + validation_size, train_size + validation_size + test_size))\n","\n","new_dataset = DatasetDict({\n","    'train': train_dataset,\n","    'validation': validation_dataset,\n","    'test': test_dataset\n","})\n","\n","# Print the new dataset structure\n","print(new_dataset)"]},{"cell_type":"markdown","metadata":{"id":"d2ge1G8ei3-t"},"source":["# Preprocessor"]},{"cell_type":"code","source":["import torch\n","from typing import Dict, List, Tuple, Optional, Union, Iterator\n","from dataclasses import dataclass\n","from transformers import AutoTokenizer\n","from torch.utils.data import Dataset, DataLoader\n","from enum import Enum\n","\n","class TranslationDirection(Enum):\n","    \"\"\"Enum for translation directions\"\"\"\n","    SW2EN = \"sw2en\"\n","    EN2SW = \"en2sw\"\n","\n","\n","@dataclass\n","class TranslationPair:\n","    \"\"\"Data class for holding translation pairs.\"\"\"\n","    source_text: str\n","    target_text: str\n","    source_lang: str\n","    target_lang: str\n","\n","    def __post_init__(self):\n","        \"\"\"Validate inputs upon initialization.\"\"\"\n","        # Convert None to empty string to avoid attribute errors\n","        self.source_text = str(self.source_text or \"\")\n","        self.target_text = str(self.target_text or \"\")\n","        self.source_lang = str(self.source_lang or \"\")\n","        self.target_lang = str(self.target_lang or \"\")\n","\n","    def is_valid(self) -> bool:\n","        \"\"\"Check if the translation pair is valid for training.\"\"\"\n","        return (bool(self.source_text.strip()) and\n","                bool(self.target_text.strip()) and\n","                bool(self.source_lang.strip()) and\n","                bool(self.target_lang.strip()))\n","\n","class TranslationPreprocessor:\n","    def __init__(self, tokenizer: AutoTokenizer, lang_tokens: Dict[str, str], max_length: int):\n","        \"\"\"\n","        Initialize the preprocessor.\n","\n","        Args:\n","            tokenizer: HuggingFace tokenizer\n","            lang_tokens: Dictionary mapping language codes to tokens\n","            max_length: Maximum sequence length\n","        \"\"\"\n","        self.tokenizer = tokenizer\n","        self.lang_tokens = lang_tokens\n","        self.max_length = max_length\n","        self.device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n","        self.key_mapping = {\n","            TranslationDirection.SW2EN.value: (\"Swahili Translation\", \"English sentence\"),\n","            TranslationDirection.EN2SW.value: (\"English sentence\", \"Swahili Translation\")\n","        }\n","\n","    def add_language_token(self, text: str, lang_code: str) -> str:\n","        \"\"\"Prepend language-specific token to text.\"\"\"\n","        return f\"{self.lang_tokens[lang_code]} {text}\"\n","\n","    def encode_input_str(self, text: str, target_lang: str, tokenizer: AutoTokenizer, seq_len: int, lang_token: Dict[str, str]) -> torch.Tensor:\n","        \"\"\"Encode input string with source language token\"\"\"\n","        # Use source language token (English)\n","        source_lang_token = lang_token['sw']\n","\n","        # Tokenize with English token\n","        input_ids = tokenizer.encode(\n","            text=f\"{source_lang_token} {text}\",\n","            return_tensors='pt',\n","            padding='max_length',\n","            truncation=True,\n","            max_length=seq_len\n","        )\n","\n","        return input_ids[0]\n","\n","    def encode_target_str(self, text: str, tokenizer: AutoTokenizer, seq_len: int, lang_token: Dict[str, str]) -> torch.Tensor:\n","        \"\"\"Encode target string with target language token\"\"\"\n","        # For target, we'll keep the Giriama token as it's the target language\n","        target_lang_token = lang_token['en']\n","\n","        token_ids = tokenizer.encode(\n","            text=f\"{target_lang_token} {text}\",\n","            return_tensors='pt',\n","            padding='max_length',\n","            truncation=True,\n","            max_length=seq_len\n","        )\n","\n","        return token_ids[0]\n","\n","    def format_translation_data(self, translations: Dict[str, str], lang_token: Dict[str, str], tokenizer: AutoTokenizer, seq_len: int = 20) -> Optional[Tuple[torch.Tensor, torch.Tensor]]:\n","        \"\"\"Format translation data for model input\"\"\"\n","        # Define possible input-output language pairs and randomly select one\n","        input_lang, target_lang = 'sw', 'en'\n","\n","        # Map language codes to column names\n","        column_map = {\n","            'sw': 'Swahili Translation',\n","            'en': 'English sentence'\n","        }\n","\n","        # Extract the translations based on the chosen direction\n","        input_text = translations.get(column_map[input_lang])\n","        target_text = translations.get(column_map[target_lang])\n","\n","        # Check for any missing translations\n","        if input_text is None or target_text is None:\n","            return None\n","\n","        # Tokenize input with English as source language\n","        input_token_ids = self.encode_input_str(\n","            text=input_text,\n","            target_lang='en',\n","            tokenizer=tokenizer,\n","            seq_len=seq_len,\n","            lang_token=lang_token\n","        )\n","\n","        # Tokenize target text\n","        target_token_ids = self.encode_target_str(\n","            text=target_text,\n","            tokenizer=tokenizer,\n","            seq_len=seq_len,\n","            lang_token=lang_token\n","        )\n","\n","        return input_token_ids, target_token_ids\n","\n","    def transform_batch(self, batch: Dict[str, List[str]], lang_token: Dict[str, str], tokenizer: AutoTokenizer, max_length: int) -> Optional[Tuple[torch.Tensor, torch.Tensor]]:\n","        \"\"\"Transform a batch of translations\"\"\"\n","        inputs = []\n","        targets = []\n","\n","        # Get all English Sentences and Giriama translations from the batch\n","        swahili_translations = batch['Swahili Translation']\n","        english_sentences = batch['English sentence']\n","\n","\n","        # Process each pair in the batch\n","        for eng, sw in zip(english_sentences, swahili_translations):\n","            translation_set = {\n","                'Swahili Translation': sw,\n","                'English sentence': eng\n","\n","            }\n","\n","            # Process the translation pair\n","            formatted_data = self.format_translation_data(\n","                translation_set,\n","                lang_token,\n","                tokenizer,\n","                max_length\n","            )\n","\n","            if formatted_data is None:\n","                continue\n","\n","            input_ids, target_ids = formatted_data\n","            inputs.append(input_ids.unsqueeze(0))\n","            targets.append(target_ids.unsqueeze(0))\n","\n","        if not inputs or not targets:  # Check if we have any valid translations\n","            return None\n","\n","        # Concatenate tensors for batch\n","        device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n","        batch_input_ids = torch.cat(inputs).to(device)\n","        batch_target_ids = torch.cat(targets).to(device)\n","\n","        return batch_input_ids, batch_target_ids\n","\n","    def get_data_generator(self, dataset, lang_token: Dict[str, str], tokenizer: AutoTokenizer, batch_size: int = 8, direction: TranslationDirection = TranslationDirection.SW2EN) -> Iterator[Tuple[torch.Tensor, torch.Tensor]]:\n","        \"\"\"Generate batches of processed translation data\"\"\"\n","        # dataset = dataset.shuffle()\n","        for i in range(0, len(dataset), batch_size):\n","            end_idx = min(i + batch_size, len(dataset))\n","            batch = dataset[i:end_idx]\n","            batch_dict = {\n","                'Swahili Translation': batch['Swahili Translation'],\n","                'English sentence': batch['English sentence']\n","            }\n","            processed_batch = self.transform_batch(batch, lang_token, tokenizer, self.max_length)\n","            if processed_batch is not None:\n","                yield processed_batch\n","\n","    def process_translation_pair(self, pair: TranslationPair) -> Tuple[torch.Tensor, torch.Tensor]:\n","        \"\"\"Process a single translation pair\"\"\"\n","        # Add language tokens to source and target texts\n","        source_text_with_token = self.add_language_token(pair.source_text, pair.source_lang)\n","        target_text_with_token = self.add_language_token(pair.target_text, pair.target_lang)\n","\n","        # Tokenize source and target texts\n","        source_ids = self.tokenizer.encode(\n","            source_text_with_token,\n","            return_tensors='pt',\n","            padding='max_length',\n","            truncation=True,\n","            max_length=self.max_length\n","        )\n","\n","        target_ids = self.tokenizer.encode(\n","            target_text_with_token,\n","            return_tensors='pt',\n","            padding='max_length',\n","            truncation=True,\n","            max_length=self.max_length\n","        )\n","\n","        return source_ids[0], target_ids[0]"],"metadata":{"id":"1DTZQgbS8Phl","executionInfo":{"status":"ok","timestamp":1745243400122,"user_tz":-180,"elapsed":19,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}}},"execution_count":4,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"ExKaNdSRiz9f"},"source":["# Optimizer\n"]},{"cell_type":"code","execution_count":5,"metadata":{"id":"FpWqrHk7eXWw","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1745243400142,"user_tz":-180,"elapsed":15,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}},"outputId":"5cff2477-d7c2-4588-c14d-f52064f5c37d"},"outputs":[{"output_type":"stream","name":"stdout","text":["Step 0:\n","  Base LR: 0.00e+00\n","  Scheduler LR: 0.00e+00\n","Step 1:\n","  Base LR: 4.75e-09\n","  Scheduler LR: 4.75e-09\n","Step 2:\n","  Base LR: 9.50e-09\n","  Scheduler LR: 9.50e-09\n","Step 3:\n","  Base LR: 1.43e-08\n","  Scheduler LR: 1.43e-08\n","Step 4:\n","  Base LR: 1.90e-08\n","  Scheduler LR: 1.90e-08\n"]}],"source":["from transformers import get_cosine_schedule_with_warmup\n","from torch.optim import AdamW\n","import math\n","import numpy as np\n","\n","# Configurable parameters\n","learning_rate = 5e-5\n","epsilon_value = 1e-8\n","batch_size = 8\n","num_epochs = 10\n","\n","# Optimizer setup\n","optimizer = AdamW(\n","    model.parameters(),\n","    lr=learning_rate,\n","    eps=epsilon_value,\n",")\n","\n","# Calculate steps\n","n_batches = int(np.ceil(len(train_dataset) / batch_size))\n","total_steps = num_epochs * n_batches\n","num_warmup_steps = int(0.05 * total_steps)  # 5% warmup\n","\n","# Use standard cosine scheduler\n","scheduler = get_cosine_schedule_with_warmup(\n","    optimizer,\n","    num_warmup_steps=num_warmup_steps,\n","    num_training_steps=total_steps\n",")\n","\n","# Debugging function\n","def print_lr_details(optimizer, scheduler, step):\n","    print(f\"Step {step}:\")\n","    print(f\"  Base LR: {optimizer.param_groups[0]['lr']:.2e}\")\n","    print(f\"  Scheduler LR: {scheduler.get_last_lr()[0]:.2e}\")\n","\n","# Example usage (replace with your actual training loop)\n","for step in range(5):\n","   print_lr_details(optimizer, scheduler, step)\n","   optimizer.step()\n","   scheduler.step()"]},{"cell_type":"markdown","source":["# Checkpoint Manager\n"],"metadata":{"id":"oBC0yjRDFRGT"}},{"cell_type":"code","execution_count":6,"metadata":{"id":"NU8DRmxNyzZ-","executionInfo":{"status":"ok","timestamp":1745243400171,"user_tz":-180,"elapsed":24,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}}},"outputs":[],"source":["import torch\n","from huggingface_hub import HfApi, hf_hub_download\n","import os\n","import gc\n","import matplotlib.pyplot as plt\n","import numpy as np\n","\n","class CheckpointManager:\n","    def __init__(self, model, optimizer, scheduler, tokenizer, repo_name, device, branch_name=\"main\"):\n","        self.model = model\n","        self.optimizer = optimizer\n","        self.scheduler = scheduler\n","        self.tokenizer = tokenizer\n","        self.repo_name = repo_name\n","        self.device = device\n","        self.branch_name = branch_name\n","        self.api = HfApi()\n","        self.batches_per_epoch = None\n","\n","    def set_dataset_info(self, num_samples, batch_size):\n","        \"\"\"Store dataset info for accurate step calculations\"\"\"\n","        self.batches_per_epoch = int(np.ceil(num_samples / batch_size))\n","        self.batch_size = batch_size\n","        self.num_samples = num_samples\n","        print(f\"CheckpointManager: Batches per epoch set to {self.batches_per_epoch}\")\n","\n","\n","    def save_checkpoint(self, epoch, batch_idx, losses, total_steps=None, steps_taken=None, repo_name=None, branch_name=None, is_best=False):\n","        repo_name = repo_name or self.repo_name\n","        branch_name = branch_name or self.branch_name\n","\n","        try:\n","            # Calculate steps_taken if not provided, using the stored batches_per_epoch\n","            if steps_taken is None and self.batches_per_epoch is not None:\n","                steps_taken = epoch * self.batches_per_epoch + batch_idx\n","                print(f\"Calculated steps_taken for saving: {steps_taken}\")\n","\n","            # Get current learning rates\n","            current_lr = self.optimizer.param_groups[0]['lr']\n","            scheduler_lr = self.scheduler.get_last_lr()[0]\n","\n","            # Prepare the checkpoint dictionary with enhanced information\n","            checkpoint = {\n","                'model_state_dict': self.model.state_dict(),\n","                'optimizer_state_dict': self.optimizer.state_dict(),\n","                'scheduler_state_dict': self.scheduler.state_dict(),\n","                'epoch': epoch,\n","                'batch': batch_idx,\n","                'losses': losses,\n","                'current_lr': current_lr,\n","                'scheduler_lr': scheduler_lr,\n","                'total_steps': total_steps,\n","                'batches_per_epoch': self.batches_per_epoch,\n","                'steps_taken': steps_taken if steps_taken is not None else (epoch * batch_idx),\n","                'is_best': is_best\n","            }\n","\n","            # Save the checkpoint locally\n","            checkpoint_filename = 'best_checkpoint.pth' if is_best else 'checkpoint.pth'\n","            torch.save(checkpoint, checkpoint_filename)\n","            print(f\"{'Best m' if is_best else 'M'}odel checkpoint saved locally with learning rate: {current_lr:.2e}, scheduler lr: {scheduler_lr:.2e}\")\n","            print(f\"Saved at epoch {epoch + 1}, batch {batch_idx}, steps_taken: {steps_taken}\")\n","\n","            # Ensure all tensors in the model are contiguous\n","            for param in self.model.parameters():\n","                param.data = param.data.contiguous()\n","\n","            # Upload model to Hugging Face Hub\n","            commit_message = f\"{'Best m' if is_best else 'M'}odel checkpoint after epoch {epoch + 1}, batch {batch_idx}\"\n","            self.model.push_to_hub(\n","                repo_id=repo_name,\n","                commit_message=commit_message,\n","                use_temp_dir=True,\n","                revision=branch_name\n","            )\n","\n","            # Upload tokenizer to Hugging Face Hub\n","            self.tokenizer.push_to_hub(\n","                repo_id=repo_name,\n","                revision=branch_name\n","            )\n","\n","            # Upload checkpoint file to Hugging Face Hub\n","            self.api.upload_file(\n","                path_or_fileobj=checkpoint_filename,\n","                path_in_repo=checkpoint_filename,\n","                repo_id=repo_name,\n","                revision=branch_name\n","            )\n","\n","            # Upload notebook if available\n","            notebook_path = \"/content/drive/MyDrive/Colab Notebooks/progress.ipynb\"\n","            if os.path.exists(notebook_path):\n","                self.api.upload_file(\n","                    path_or_fileobj=notebook_path,\n","                    path_in_repo=\"current_notebook.ipynb\",\n","                    repo_id=repo_name,\n","                    revision=branch_name\n","                )\n","\n","            print(f\"Checkpoint file uploaded to Hugging Face Hub.\")\n","            print(f\"{'Best m' if is_best else 'M'}odel checkpoint saved to Hugging Face Hub after epoch {epoch + 1}, batch {batch_idx}\")\n","\n","        except Exception as e:\n","            print(f\"Error saving checkpoint: {e}\")\n","\n","    def load_checkpoint(self, repo_name=None, branch_name=None):\n","        repo_name = repo_name or self.repo_name\n","        branch_name = branch_name or self.branch_name\n","\n","        try:\n","            # Clear memory before loading checkpoint\n","            torch.cuda.empty_cache()\n","            gc.collect()\n","\n","            # Check if the checkpoint file exists in the repo\n","            if self.checkpoint_exists(repo_name, \"checkpoint.pth\", branch_name):\n","                # Download the checkpoint file\n","                checkpoint_path = hf_hub_download(\n","                    repo_id=repo_name,\n","                    filename=\"checkpoint.pth\",\n","                    revision=branch_name\n","                )\n","\n","                # Load the checkpoint\n","                checkpoint = torch.load(checkpoint_path, map_location=self.device)\n","\n","                # Store learning rate before loading for comparison\n","                prev_lr = self.optimizer.param_groups[0]['lr'] if self.optimizer else None\n","                prev_scheduler_lr = self.scheduler.get_last_lr()[0] if self.scheduler else None\n","\n","                # Load model, optimizer, and scheduler states\n","                self.model.load_state_dict(checkpoint['model_state_dict'])\n","                self.optimizer.load_state_dict(checkpoint['optimizer_state_dict'])\n","                self.scheduler.load_state_dict(checkpoint['scheduler_state_dict'])\n","\n","                # Load training state\n","                epoch_idx = checkpoint['epoch']\n","                batch_idx = checkpoint['batch']\n","                losses = checkpoint['losses']\n","\n","                # Extract additional information (with backward compatibility)\n","                current_lr = checkpoint.get('current_lr', self.optimizer.param_groups[0]['lr'])\n","                scheduler_lr = checkpoint.get('scheduler_lr', self.scheduler.get_last_lr()[0])\n","                steps_taken = checkpoint.get('steps_taken', None)\n","                total_steps = checkpoint.get('total_steps', None)\n","                is_best = checkpoint.get('is_best', False)\n","\n","                if steps_taken is None and self.batches_per_epoch is not None:\n","                    # Calculate steps_taken from epoch and batch_idx\n","                    steps_taken = epoch_idx * self.batches_per_epoch + batch_idx\n","                    print(f\"Calculated steps_taken from epoch/batch: {steps_taken}\")\n","\n","                # Verify learning rates\n","                print(f\"LR before checkpoint loading: {prev_lr:.2e}, After: {self.optimizer.param_groups[0]['lr']:.2e}\")\n","                print(f\"Scheduler LR before: {prev_scheduler_lr:.2e}, After: {self.scheduler.get_last_lr()[0]:.2e}\")\n","                print(f\"Checkpoint saved with LR: {current_lr:.2e}, Scheduler LR: {scheduler_lr:.2e}\")\n","\n","                # Verify if the learning rates match up\n","                if abs(self.optimizer.param_groups[0]['lr'] - current_lr) > 1e-8:\n","                    print(\"WARNING: Current learning rate doesn't match the checkpoint's saved learning rate!\")\n","\n","                print(f\"Loaded checkpoint from epoch {epoch_idx + 1}, batch {batch_idx}\")\n","                if is_best:\n","                    print(\"This is marked as the best checkpoint with lowest validation loss.\")\n","\n","                if steps_taken is not None:\n","                    print(f\"Steps taken according to checkpoint: {steps_taken}\")\n","                    if self.batches_per_epoch is not None:\n","                        expected_steps = epoch_idx * self.batches_per_epoch + batch_idx\n","                        if expected_steps != steps_taken:\n","                            print(f\"WARNING: Expected steps ({expected_steps}) doesn't match steps_taken in checkpoint ({steps_taken})!\")\n","\n","                return epoch_idx, batch_idx, losses, steps_taken, total_steps\n","\n","            # Try loading the best checkpoint if regular checkpoint not found\n","            elif self.checkpoint_exists(repo_name, \"best_checkpoint.pth\", branch_name):\n","                print(\"Regular checkpoint not found. Attempting to load best checkpoint.\")\n","                checkpoint_path = hf_hub_download(\n","                    repo_id=repo_name,\n","                    filename=\"best_checkpoint.pth\",\n","                    revision=branch_name\n","                )\n","\n","                # Process the best checkpoint (similar logic as above)\n","                checkpoint = torch.load(checkpoint_path, map_location=self.device)\n","\n","                # Store learning rate before loading for comparison\n","                prev_lr = self.optimizer.param_groups[0]['lr'] if self.optimizer else None\n","                prev_scheduler_lr = self.scheduler.get_last_lr()[0] if self.scheduler else None\n","\n","                # Load model, optimizer, and scheduler states\n","                self.model.load_state_dict(checkpoint['model_state_dict'])\n","                self.optimizer.load_state_dict(checkpoint['optimizer_state_dict'])\n","                self.scheduler.load_state_dict(checkpoint['scheduler_state_dict'])\n","\n","                # Load training state\n","                epoch_idx = checkpoint['epoch']\n","                batch_idx = checkpoint['batch']\n","                losses = checkpoint['losses']\n","\n","                # Extract additional information\n","                current_lr = checkpoint.get('current_lr', self.optimizer.param_groups[0]['lr'])\n","                scheduler_lr = checkpoint.get('scheduler_lr', self.scheduler.get_last_lr()[0])\n","                steps_taken = checkpoint.get('steps_taken', None)\n","                total_steps = checkpoint.get('total_steps', None)\n","\n","                print(f\"Loaded best checkpoint from epoch {epoch_idx + 1}, batch {batch_idx}\")\n","\n","                return epoch_idx, batch_idx, losses, steps_taken, total_steps\n","            else:\n","                print(\"No checkpoint file found in the repository.\")\n","\n","        except Exception as e:\n","            print(f\"Error loading checkpoint: {e}\")\n","            torch.cuda.empty_cache()\n","            gc.collect()\n","\n","        print(\"No checkpoint found or error occurred. Starting training from scratch.\")\n","        return 0, 0, [], 0, None\n","\n","    def checkpoint_exists(self, repo_name, filename, branch_name):\n","        try:\n","            # List all files in the specified branch\n","            files = self.api.list_repo_files(repo_id=repo_name, revision=branch_name)\n","            return filename in files\n","        except Exception as e:\n","            print(f\"Error checking for checkpoint: {e}\")\n","            return False"]},{"cell_type":"markdown","metadata":{"id":"1kRcC8c-p_b8"},"source":["# Evaluate"]},{"cell_type":"code","execution_count":7,"metadata":{"id":"URWKI37kp9nt","executionInfo":{"status":"ok","timestamp":1745243400189,"user_tz":-180,"elapsed":15,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}}},"outputs":[],"source":["def eval_model(model, val_dataset, tokenizer, LANG_TOKEN_MAPPING):\n","    model.eval()\n","    total_val_loss = 0\n","    val_data_generator = preprocessor.get_data_generator(\n","        val_dataset, LANG_TOKEN_MAPPING, tokenizer, batch_size=batch_size\n","    )\n","    total_val_batches = len(val_dataset) // batch_size\n","    if len(val_dataset) % batch_size != 0:\n","        total_val_batches += 1\n","\n","    with torch.no_grad():\n","        for batch_idx, (input_batch, label_batch) in enumerate(val_data_generator):\n","            input_batch = input_batch.to(device)\n","            label_batch = label_batch.to(device)\n","            outputs = model(input_ids=input_batch, labels=label_batch)\n","            total_val_loss += outputs.loss.item()\n","\n","    avg_val_loss = total_val_loss / total_val_batches\n","    return avg_val_loss"]},{"cell_type":"markdown","metadata":{"id":"2fiODOvRjnYV"},"source":["# Bleue Score"]},{"cell_type":"code","source":["import sacrebleu\n","\n","def calculate_bleu(predictions, references):\n","    \"\"\"\n","    Calculate BLEU score using sacrebleu.\n","\n","    Args:\n","        predictions: List of predicted translations\n","        references: List of reference translations\n","\n","    Returns:\n","        BLEU score\n","    \"\"\"\n","    # Convert single references to the format expected by sacrebleu\n","    refs = [[ref] for ref in references]\n","\n","    # Calculate BLEU score\n","    bleu = sacrebleu.corpus_bleu(predictions, refs)\n","\n","    return bleu.score"],"metadata":{"id":"M7Gbg99IaQet","executionInfo":{"status":"ok","timestamp":1745243400271,"user_tz":-180,"elapsed":84,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}}},"execution_count":8,"outputs":[]},{"cell_type":"code","source":["%matplotlib inline\n","from transformers import get_cosine_schedule_with_warmup\n","import numpy as np\n","from tqdm import tqdm\n","import matplotlib.pyplot as plt\n","import random\n","\n","def plot_training_history(history):\n","    \"\"\"\n","    Plot training loss, validation loss, and BLEU scores.\n","\n","    Args:\n","        history: Dictionary containing training and validation metrics.\n","    \"\"\"\n","    plt.figure(figsize=(12, 6))\n","\n","    # Plot training and validation loss\n","    plt.subplot(1, 2, 1)\n","    plt.plot(history['train_loss'], label='Training Loss')\n","    plt.plot(history['val_loss'], label='Validation Loss')\n","    plt.xlabel('Epoch')\n","    plt.ylabel('Loss')\n","    plt.title('Training and Validation Loss')\n","    plt.legend()\n","\n","    # Plot BLEU score\n","    plt.subplot(1, 2, 2)\n","    plt.plot(history['val_bleu'], label='Validation BLEU', color='green')\n","    plt.xlabel('Epoch')\n","    plt.ylabel('BLEU Score')\n","    plt.title('Validation BLEU Score')\n","    plt.legend()\n","\n","    plt.tight_layout()\n","    plt.show()"],"metadata":{"id":"xRqAgFY8TmIM","executionInfo":{"status":"ok","timestamp":1745243400289,"user_tz":-180,"elapsed":21,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}}},"execution_count":9,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"j1o67awKjrVs"},"source":["# Training loop"]},{"cell_type":"code","execution_count":10,"metadata":{"id":"sih3aURBjs4O","executionInfo":{"status":"ok","timestamp":1745243400343,"user_tz":-180,"elapsed":69,"user":{"displayName":"Judd Marc","userId":"09923286896387104894"}}},"outputs":[],"source":["def train_model(\n","    model, train_dataset, val_dataset, optimizer, scheduler, num_epochs, device, tokenizer,\n","    preprocessor, LANG_TOKEN_MAPPING, batch_size=8, max_length=128,\n","    learning_rate=5e-5, repo_name=\"JMwagunda/Trial\"  # Reduced default learning rate\n","):\n","    \"\"\"\n","    Train the model with checkpointing, validation, and BLEU score calculation.\n","    \"\"\"\n","    # Memory management and initialization\n","    torch.cuda.empty_cache()\n","    gc.collect()\n","\n","    # Move model to device\n","    model.to(device)\n","\n","    # Store training history\n","    history = {\n","        'train_loss': [],\n","        'val_loss': [],\n","        'val_bleu': [],\n","    }\n","\n","    # Calculate total batches and steps\n","    n_batches = int(np.ceil(len(train_dataset) / batch_size))\n","    total_steps = num_epochs * n_batches\n","\n","    # Reduced warmup ratio to 3%\n","    num_warmup_steps = int(0.03 * total_steps)  # 3% warmup\n","    print(f\"Number of warmup steps: {num_warmup_steps}\")\n","    print(f\"Total training steps: {total_steps}\")\n","    print(f\"Batches per epoch: {n_batches}\")\n","\n","    # Initialize CheckpointManager\n","    checkpoint_manager = CheckpointManager(\n","        model=model,\n","        optimizer=optimizer,\n","        scheduler=scheduler,\n","        tokenizer=tokenizer,\n","        repo_name=repo_name,\n","        device=device\n","    )\n","\n","    # Set dataset info for accurate calculations\n","    checkpoint_manager.set_dataset_info(len(train_dataset), batch_size)\n","\n","    # Load checkpoint if it exists - pass dataset info here\n","    start_epoch, start_batch, checkpoint_losses, steps_taken, checkpoint_total_steps = checkpoint_manager.load_checkpoint()\n","\n","    # Check if total_steps has changed and print warning\n","    if checkpoint_total_steps is not None and checkpoint_total_steps != total_steps:\n","        print(f\"WARNING: Total steps in checkpoint ({checkpoint_total_steps}) differs from current setting ({total_steps})\")\n","\n","    # Manually adjust the scheduler state if resuming from a checkpoint\n","    if start_epoch > 0 or start_batch > 0:\n","        current_steps = steps_taken if steps_taken is not None else (start_epoch * n_batches + start_batch)\n","        expected_steps = start_epoch * n_batches + start_batch\n","\n","        print(f\"Checkpoint indicates {current_steps} steps taken, calculated steps: {expected_steps}\")\n","\n","        # If steps_taken is not available, manually step the scheduler\n","        if steps_taken is None:\n","            print(f\"Stepping scheduler {expected_steps} times to match checkpoint position\")\n","            # Reset scheduler to initial state\n","            scheduler = get_cosine_schedule_with_warmup(\n","                optimizer, num_warmup_steps=num_warmup_steps, num_training_steps=total_steps\n","            )\n","            # Step to match checkpoint position\n","            for _ in range(expected_steps):\n","                scheduler.step()\n","\n","        print(f\"Learning rate after scheduler adjustment: {optimizer.param_groups[0]['lr']:.2e}\")\n","        print(f\"Scheduler learning rate after adjustment: {scheduler.get_last_lr()[0]:.2e}\")\n","\n","    # Check if training has already completed\n","    if start_epoch >= num_epochs:\n","        print(f\"Training already completed. Checkpoint found at epoch {start_epoch}, batch {start_batch}.\")\n","        return history, start_batch\n","\n","    # Early stopping variables\n","    best_val_loss = float('inf')\n","    patience = 5  # Number of epochs to wait for improvement\n","    patience_counter = 0\n","    early_stop = False\n","\n","    # Training loop\n","    for epoch in range(start_epoch, num_epochs):\n","        print(f\"\\nEpoch {epoch + 1}/{num_epochs}\")\n","        print(f\"Starting from batch: {start_batch if epoch == start_epoch else 0}\")\n","        print(f\"Current learning rate: {optimizer.param_groups[0]['lr']:.2e}\")\n","        print(f\"Current scheduler learning rate: {scheduler.get_last_lr()[0]:.2e}\")\n","\n","        model.train()\n","\n","        # Reset epoch-specific tracking variables\n","        epoch_losses = []  # Track losses only for this epoch\n","        processed_batches = 0  # Count of actually processed batches\n","\n","        # Initialize total_train_loss only with losses from the current epoch\n","        total_train_loss = 0.0\n","\n","        # Create data generator for this epoch\n","        train_data_generator = preprocessor.get_data_generator(\n","            train_dataset, LANG_TOKEN_MAPPING, tokenizer, batch_size=batch_size\n","        )\n","\n","        # Calculate total number of batches\n","        total_batches = len(train_dataset) // batch_size\n","        if len(train_dataset) % batch_size != 0:\n","            total_batches += 1\n","\n","        # Training progress bar\n","        pbar = tqdm(train_data_generator, total=total_batches, desc=f\"Epoch {epoch + 1}/{num_epochs}\", ncols=100)\n","\n","        # Keep track of steps for this session\n","        session_steps = 0\n","\n","        # Add gradient accumulation\n","        gradient_accumulation_steps = 4  # Accumulate gradients over 4 batches\n","        optimizer.zero_grad()\n","\n","        for batch_idx, (input_batch, label_batch) in enumerate(pbar):\n","            try:\n","                # Skip batches already processed in the checkpoint\n","                if epoch == start_epoch and batch_idx < start_batch:\n","                    continue\n","\n","                # Memory management\n","                torch.cuda.empty_cache()\n","\n","                # Move batches to device\n","                input_batch = input_batch.to(device)\n","                label_batch = label_batch.to(device)\n","\n","                # Forward pass with memory management\n","                try:\n","                    outputs = model(input_ids=input_batch, labels=label_batch)\n","                    loss = outputs.loss / gradient_accumulation_steps  # Scale loss\n","                except RuntimeError as e:\n","                    if 'CUDA out of memory' in str(e):\n","                        print(\"Out of memory error. Clearing memory and retrying.\")\n","                        torch.cuda.empty_cache()\n","                        gc.collect()\n","                        continue\n","                    else:\n","                        raise\n","\n","                # Backward pass\n","                loss.backward()\n","\n","                # Step the optimizer every gradient_accumulation_steps batches\n","                if (batch_idx + 1) % gradient_accumulation_steps == 0 or (batch_idx + 1) == total_batches:\n","                    torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)\n","                    optimizer.step()\n","                    scheduler.step()\n","                    optimizer.zero_grad()\n","                    session_steps += 1\n","\n","                # Update metrics - only track losses for current epoch\n","                # Multiply by gradient_accumulation_steps to get the actual loss value\n","                current_loss = loss.item() * gradient_accumulation_steps\n","                epoch_losses.append(current_loss)\n","                total_train_loss += current_loss\n","                processed_batches += 1\n","\n","                # Calculate steps taken more accurately\n","                steps_from_previous_epochs = start_epoch * n_batches\n","                steps_from_current_epoch = session_steps\n","                if epoch == start_epoch:\n","                    steps_from_current_epoch += start_batch\n","                total_steps_taken = steps_from_previous_epochs + steps_from_current_epoch\n","\n","                # Update progress bar with current epoch's metrics only\n","                current_avg_loss = total_train_loss / processed_batches if processed_batches > 0 else 0\n","                pbar.set_postfix({\n","                    \"loss\": current_loss,\n","                    \"avg_loss\": current_avg_loss,\n","                    \"lr\": scheduler.get_last_lr()[0],\n","                    \"steps\": total_steps_taken\n","                })\n","\n","            except Exception as e:\n","                print(f\"\\nError processing training batch {batch_idx}: {str(e)}\")\n","\n","                # Save checkpoint before exiting in case of error\n","                steps_from_previous_epochs = start_epoch * n_batches\n","                steps_from_current_epoch = session_steps\n","                if epoch == start_epoch:\n","                    steps_from_current_epoch += start_batch\n","                total_steps_taken = steps_from_previous_epochs + steps_from_current_epoch\n","\n","                # Combine previous checkpoint losses with current epoch losses for saving\n","                all_losses = checkpoint_losses + epoch_losses if epoch == start_epoch else epoch_losses\n","\n","                checkpoint_manager.save_checkpoint(\n","                    epoch=epoch,\n","                    batch_idx=batch_idx,\n","                    losses=all_losses,\n","                    total_steps=total_steps,\n","                    steps_taken=total_steps_taken\n","                )\n","                print(f\"Checkpoint saved after error at epoch {epoch + 1}, batch {batch_idx}\")\n","                continue\n","\n","        pbar.close()\n","\n","        # Calculate average training loss for this epoch only\n","        avg_train_loss = total_train_loss / processed_batches if processed_batches > 0 else 0\n","        history['train_loss'].append(avg_train_loss)\n","        print(f\"Average Training Loss: {avg_train_loss:.4f}\")\n","\n","        # Validation loop\n","        model.eval()\n","        total_val_loss = 0\n","        processed_val_batches = 0  # Count actual processed validation batches\n","        predictions = []\n","        references = []\n","\n","        # Create validation data generator\n","        val_data_generator = preprocessor.get_data_generator(\n","            val_dataset, LANG_TOKEN_MAPPING, tokenizer, batch_size=batch_size\n","        )\n","\n","        # Calculate total number of validation batches\n","        total_val_batches = len(val_dataset) // batch_size\n","        if len(val_dataset) % batch_size != 0:\n","            total_val_batches += 1\n","\n","        # Validation progress bar\n","        pbar = tqdm(val_data_generator, total=total_val_batches, desc=\"Validating\", ncols=100)\n","\n","        with torch.no_grad():\n","            for batch_idx, (input_batch, label_batch) in enumerate(pbar):\n","                try:\n","                    # Move batches to device\n","                    input_batch = input_batch.to(device)\n","                    label_batch = label_batch.to(device)\n","\n","                    # Calculate validation loss\n","                    model_outputs = model(input_ids=input_batch, labels=label_batch)\n","                    batch_val_loss = model_outputs.loss.item()\n","                    total_val_loss += batch_val_loss\n","                    processed_val_batches += 1  # Count only successfully processed batches\n","\n","                    # Generate translations\n","                    outputs = model.generate(input_batch, max_length=max_length)\n","\n","                    # Decode predictions and references\n","                    pred_texts = tokenizer.batch_decode(outputs, skip_special_tokens=True)\n","                    ref_texts = tokenizer.batch_decode(label_batch, skip_special_tokens=True)\n","\n","                    # Print some sample translations for debugging (first 2 in the batch)\n","                    if batch_idx == 0:\n","                        print(\"\\nSample translations:\")\n","                        for i in range(min(2, len(pred_texts))):\n","                            print(f\"Reference: {ref_texts[i]}\")\n","                            print(f\"Prediction: {pred_texts[i]}\")\n","                            print(\"---\")\n","\n","                    # Add to predictions and references\n","                    predictions.extend(pred_texts)\n","                    references.extend(ref_texts)\n","\n","                    # Update progress bar with current batch loss and running average\n","                    current_avg_val_loss = total_val_loss / processed_val_batches\n","                    pbar.set_postfix({\n","                        \"batch_loss\": batch_val_loss,\n","                        \"avg_val_loss\": current_avg_val_loss\n","                    })\n","\n","                except Exception as e:\n","                    print(f\"Error processing validation batch {batch_idx}: {str(e)}\")\n","                    continue\n","\n","        pbar.close()\n","\n","        # Calculate average validation loss based on actually processed batches\n","        avg_val_loss = total_val_loss / processed_val_batches if processed_val_batches > 0 else float('inf')\n","        history['val_loss'].append(avg_val_loss)\n","\n","        # Calculate BLEU score with the fixed implementation\n","        bleu_score = calculate_bleu(predictions, references)\n","        history['val_bleu'].append(bleu_score)\n","        print(f\"Validation Loss: {avg_val_loss:.4f}\")\n","        print(f\"Validation BLEU: {bleu_score:.4f}\")\n","\n","        # Update the combined list of losses for checkpoint saving\n","        if epoch == start_epoch:\n","            all_losses = checkpoint_losses + epoch_losses\n","        else:\n","            all_losses = epoch_losses if epoch == 0 else history.get('checkpoint_losses', []) + epoch_losses\n","\n","        # Store losses for future epochs\n","        history['checkpoint_losses'] = all_losses\n","\n","        # Save checkpoint at the end of the epoch - only every 10 epochs or final epoch\n","        if (epoch + 1) % 10 == 0 or epoch == num_epochs - 1:  # Save every 10 epochs or at the final epoch\n","            total_steps_taken = (epoch + 1) * n_batches  # End of epoch\n","            checkpoint_manager.save_checkpoint(\n","                epoch=epoch + 1,  # Save as the start of the next epoch\n","                batch_idx=0,      # Start from batch 0 of next epoch\n","                losses=all_losses,\n","                total_steps=total_steps,\n","                steps_taken=total_steps_taken\n","            )\n","            print(f\"Checkpoint saved at epoch {epoch + 1}\")\n","        else:\n","            print(f\"Skipping checkpoint save at epoch {epoch + 1} (saving every 10 epochs)\")\n","\n","        # Print epoch summary\n","        print(f\"\\nEpoch {epoch + 1} Summary:\")\n","        print(f\"Training Loss: {avg_train_loss:.4f}\")\n","        print(f\"Validation Loss: {avg_val_loss:.4f}\")\n","        print(f\"BLEU Score: {bleu_score:.4f}\")\n","        print(f\"Final Learning Rate: {optimizer.param_groups[0]['lr']:.2e}\")\n","\n","        # Early stopping check - always save the best model regardless of epoch\n","        if avg_val_loss < best_val_loss:\n","            best_val_loss = avg_val_loss\n","            patience_counter = 0\n","            # Save best model\n","            checkpoint_manager.save_checkpoint(\n","                epoch=epoch + 1,\n","                batch_idx=0,\n","                losses=all_losses,\n","                total_steps=total_steps,\n","                steps_taken=total_steps_taken,\n","                is_best=True  # Important to mark this as the best checkpoint\n","            )\n","            print(\"New best model saved!\")\n","        else:\n","            patience_counter += 1\n","            print(f\"Validation loss did not improve. Patience: {patience_counter}/{patience}\")\n","\n","        if patience_counter >= patience:\n","            print(f\"Early stopping triggered after {epoch + 1} epochs\")\n","            early_stop = True\n","            break\n","\n","        if early_stop:\n","            break\n","\n","    # Plot training history\n","    plot_training_history(history)\n","\n","    return history"]},{"cell_type":"markdown","metadata":{"id":"IhGr97x5Jwul"},"source":["# Run training loop"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":877,"referenced_widgets":["f52bf6543a1b4210b0088ae01092e552","fadfa2c246194682a9fa2cda0be5fcbf","70e803c534ca4a598f758f71a6a5cf9e","54d8e95ffac44fab8ee3678c99dd4c9d","e597a3e957764e79a5c2fd3838055f20","0c00a41d78dd49c098f07f431e56e000","daad0d84fca34e7a9c8959d901768f3a","f1ed39710e5945d69e4c8aaab1227cd1","53f190cbb797479580f10e7126cd2d98","a04368b095fc4b1aa7f85609f7ea3ae8","6398a0f7cb7e45cbb53ecdb1f3f8a210","3e2bf1c957f8490d8af594b5393dd9e9","ff5d82b83f094613a97bdce16767dcf3","7b599508229746508252fb8b4fa7d08c","756d7d37885f4be1bfa8432e13f4be68","38b3f637913d42c4a898865d3cc65241","99af1f7bdd3243fc9b6dd72991f9848b","c04936fb51e3463d9ecbf82eaf75bd0b","330a09588a1741a08cd9bb8b91a72cdd","81d6575ab426481688e0a098e33654b6","7fafa218796c4e5ea1346636191e0f34","de4652b0d3824e31b3a1fac8c4439c32","4085c92f282b4e03a6ea563fd5785879","404a4531344c420d9e3df64156604494","497c3aab22294a8287be7681beed4af5","102299141a114074b69741d15d986f5b","fdf9c5d2e354459295cab200cbb57f10","cee0f02f89d44f48a84951610e8186ae","8047b9f0c3664fb4a9949e46d294226e","d537deb9041947249e47d70937a553cd","c6339c4b26a94af79a5c4816009b1b91","9caad337f5d542acad5d2d2b72a81e43","564c5aa95d6241e39aff6739c85c4291","635acd876dab46b2b944c5bae4dd4e09","730d7f35ad584ddfa38e0acb2a1ed25f","20bd0956455a4228a05e8ae882b06805","7c867b80e0ab41c380c495130733af9a","2f2b51acca1149318440342568642cd2","42781d18428d4782ae567cccc0435b87","1107dd5a4f674d7d91db9595be370343","3cd4fdc7c326462cbaa417167a5ccee2","44eb9eaf05144ff58d24101cf2e0ea2f","fb96e0c0252c4b78b9cc56f1f370fd7c","64f1d24c16e04b5d9134fc62b3dda477"]},"collapsed":true,"id":"PYeWtSRtJ0_T","outputId":"a4919a2f-df56-4ce2-bd10-4a9bd28b0ce3"},"outputs":[{"output_type":"stream","name":"stdout","text":["Number of warmup steps: 6314\n","Total training steps: 210470\n","Batches per epoch: 21047\n","CheckpointManager: Batches per epoch set to 21047\n","Regular checkpoint not found. Attempting to load best checkpoint.\n"]},{"output_type":"display_data","data":{"text/plain":["best_checkpoint.pth:   0%|          | 0.00/895M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"f52bf6543a1b4210b0088ae01092e552"}},"metadata":{}},{"output_type":"stream","name":"stdout","text":["Loaded best checkpoint from epoch 3, batch 0\n","Checkpoint indicates 5262 steps taken, calculated steps: 42094\n","Learning rate after scheduler adjustment: 5.00e-05\n","Scheduler learning rate after adjustment: 5.00e-05\n","\n","Epoch 3/10\n","Starting from batch: 0\n","Current learning rate: 5.00e-05\n","Current scheduler learning rate: 5.00e-05\n"]},{"output_type":"stream","name":"stderr","text":["Epoch 3/10:   0%|                                                         | 0/21047 [00:00<?, ?it/s]We strongly recommend passing in an `attention_mask` since your input_ids may be padded. See https://huggingface.co/docs/transformers/troubleshooting#incorrect-output-when-padding-tokens-arent-masked.\n","Epoch 3/10: 100%|β–ˆ| 21047/21047 [1:06:34<00:00,  5.27it/s, loss=0.114, avg_loss=0.236, lr=4.99e-5, s\n"]},{"output_type":"stream","name":"stdout","text":["Average Training Loss: 0.2364\n"]},{"output_type":"stream","name":"stderr","text":["Validating:   0%|          | 1/2631 [00:01<1:25:08,  1.94s/it, batch_loss=0.346, avg_val_loss=0.346]"]},{"output_type":"stream","name":"stdout","text":["\n","Sample translations:\n","Reference: Tom quickly realized that something was wrong\n","Prediction: Tom quickly found that something was wrong\n","---\n","Reference: He must've missed the bus\n","Prediction: She must have missed the bus\n","---\n"]},{"output_type":"stream","name":"stderr","text":["Validating: 100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 2631/2631 [30:13<00:00,  1.45it/s, batch_loss=0.068, avg_val_loss=0.206]\n"]},{"output_type":"stream","name":"stdout","text":["Validation Loss: 0.2062\n","Validation BLEU: 53.7285\n","Skipping checkpoint save at epoch 3 (saving every 10 epochs)\n","\n","Epoch 3 Summary:\n","Training Loss: 0.2364\n","Validation Loss: 0.2062\n","BLEU Score: 53.7285\n","Final Learning Rate: 4.99e-05\n","Best model checkpoint saved locally with learning rate: 4.99e-05, scheduler lr: 4.99e-05\n","Saved at epoch 4, batch 0, steps_taken: 47356\n"]},{"output_type":"display_data","data":{"text/plain":["README.md:   0%|          | 0.00/5.17k [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"3e2bf1c957f8490d8af594b5393dd9e9"}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.11/dist-packages/transformers/modeling_utils.py:3339: UserWarning: Moving the following attributes in the config to the generation config: {'max_length': 512, 'num_beams': 6, 'bad_words_ids': [[58904]]}. You are seeing this warning because you've set generation parameters in the model config, as opposed to in the generation config.\n","  warnings.warn(\n"]},{"output_type":"display_data","data":{"text/plain":["model.safetensors:   0%|          | 0.00/297M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"4085c92f282b4e03a6ea563fd5785879"}},"metadata":{}},{"output_type":"stream","name":"stderr","text":["No files have been modified since last commit. Skipping to prevent empty commit.\n","WARNING:huggingface_hub.hf_api:No files have been modified since last commit. Skipping to prevent empty commit.\n"]},{"output_type":"display_data","data":{"text/plain":["best_checkpoint.pth:   0%|          | 0.00/895M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"635acd876dab46b2b944c5bae4dd4e09"}},"metadata":{}}],"source":["# Device setup\n","import torch\n","device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n","\n","#clear the cache\n","torch.cuda.empty_cache()\n","\n","# Preprocessing setup\n","preprocessor = TranslationPreprocessor(tokenizer, lang_token, max_length)\n","\n","# Shuffle the dataset before creating the data generator\n","new_dataset['train'] = new_dataset['train'].shuffle(seed=42)\n","new_dataset['validation'] = new_dataset['validation'].shuffle(seed=42)\n","\n","# Clear the cache\n","torch.cuda.empty_cache()\n","\n","# Run training loop\n","history = train_model(\n","    model=model,\n","    train_dataset=new_dataset['train'],\n","    val_dataset=new_dataset['validation'],\n","    optimizer=optimizer,\n","    scheduler=scheduler,\n","    num_epochs=num_epochs,\n","    tokenizer=tokenizer,\n","    device=device,\n","    preprocessor=preprocessor,\n","    LANG_TOKEN_MAPPING=lang_token,\n","    repo_name=repo_name\n",")\n","# history, last_batch_idx = train_model(\n","#     model=model,\n","#     train_dataset=new_dataset['train'],\n","#     val_dataset=new_dataset['validation'],\n","#     optimizer=optimizer,\n","#     scheduler=scheduler,\n","#     num_epochs=num_epochs,\n","#     tokenizer=tokenizer,\n","#     device=device,\n","#     preprocessor=preprocessor,\n","#     LANG_TOKEN_MAPPING=lang_token,\n","#     repo_name=repo_name\n","# )"]},{"cell_type":"markdown","metadata":{"id":"cfVjMZ8uEf8Z"},"source":["# Plotting code"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"U6CzbnuDEhzE"},"outputs":[],"source":["%matplotlib inline\n","import matplotlib.pyplot as plt\n","\n","def plot_training_history(history: Dict[str, List[float]], save_path: Optional[str] = None):\n","    \"\"\"\n","    Plot training loss, validation loss, and BLEU scores.\n","\n","    Args:\n","        history: Dictionary containing training and validation metrics.\n","        save_path: Optional path to save the plot to a file.\n","    \"\"\"\n","    plt.figure(figsize=(12, 6))\n","\n","    # Plot training and validation loss\n","    plt.subplot(1, 2, 1)\n","    plt.plot(history['train_loss'], label='Training Loss')\n","    plt.plot(history['val_loss'], label='Validation Loss')\n","    plt.xlabel('Epoch')\n","    plt.ylabel('Loss')\n","    plt.title('Training and Validation Loss')\n","    plt.legend()\n","\n","    # Plot BLEU score\n","    plt.subplot(1, 2, 2)\n","    plt.plot(history['val_bleu'], label='Validation BLEU', color='green')\n","    plt.xlabel('Epoch')\n","    plt.ylabel('BLEU Score')\n","    plt.title('Validation BLEU Score')\n","    plt.legend()\n","\n","    plt.tight_layout()\n","\n","    # Save the plot if a path is provided\n","    if save_path:\n","        plt.savefig(save_path)\n","        print(f\"Plot saved to {save_path}\")\n","\n","    plt.show()\n","\n","# Example usage\n","if __name__ == \"__main__\":\n","    history = {}\n","\n","    # Call the plotting function\n","    plot_training_history(history, save_plot_path)"]},{"cell_type":"markdown","metadata":{"id":"TLIoPSb5k3ll"},"source":["# Save Final model"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"pVyHSofhk5G6"},"outputs":[],"source":["# Save the final checkpoint\n","checkpoint_manager = CheckpointManager(\n","    model=model,\n","    optimizer=optimizer,\n","    scheduler=scheduler,\n","    tokenizer=tokenizer,\n","    repo_name=\"Lingua-Connect/JMW_TrainerImproved\",\n","    device=device\n",")\n","\n","# Save the final model and tokenizer\n","checkpoint_manager.save_checkpoint(\n","    epoch=num_epochs - 1,  # Final epoch\n","    batch_idx= 0,\n","    losses=history['train_loss']\n",")\n","\n","print(\"Final model and tokenizer pushed to Hugging Face Hub.\")"]},{"cell_type":"markdown","metadata":{"id":"rdaehd5Gk62D"},"source":["# Load the saved model\n","\n","\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"TZkyTn9Nk6ZZ"},"outputs":[],"source":["from transformers import AutoModelForSeq2SeqLM, AutoTokenizer\n","import torch\n","\n","# Set device\n","device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n","print(f\"Using device: {device}\")\n","\n","# Dictionary for language tokens\n","lang_token = {\n","    'en': '<en>',\n","    'nys': '<nys>'\n","}\n","\n","# Function to load model and tokenizer\n","def load_model_and_tokenizer(model_name):\n","    model = AutoModelForSeq2SeqLM.from_pretrained(model_name)\n","    tokenizer = AutoTokenizer.from_pretrained(model_name)\n","    model.to(device)\n","    return model, tokenizer\n","\n","# Load English to Giriama model\n","eng_gir_model, eng_gir_tokenizer = load_model_and_tokenizer(\"Lingua-Connect/ENG_GIR\")\n","print(\"English to Giriama model and tokenizer loaded.\")\n","\n","# Load Giriama to English model\n","gir_eng_model, gir_eng_tokenizer = load_model_and_tokenizer(\"Lingua-Connect/GIR_ENG\")\n","print(\"Giriama to English model and tokenizer loaded.\")"]},{"cell_type":"markdown","metadata":{"id":"0YE9Rxr-k-4_"},"source":["# Perform inference"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"iJWGL949lASo"},"outputs":[],"source":["def translate(text, model, tokenizer, source_lang, target_lang, max_length=128, num_beams=5, num_return_sequences=1):\n","    # Add language token to the input text\n","    input_text = f\"{lang_token[source_lang]} {text}\"\n","\n","    # Tokenize the input text\n","    input_ids = tokenizer.encode(input_text, return_tensors=\"pt\", max_length=max_length, truncation=True)\n","    input_ids = input_ids.to(device)\n","\n","    # Generate translation\n","    outputs = model.generate(\n","        input_ids,\n","        max_length=max_length,\n","        num_beams=num_beams,\n","        num_return_sequences=num_return_sequences,\n","        early_stopping=True\n","    )\n","\n","    # Decode the generated tokens to text\n","    translated_texts = [tokenizer.decode(output, skip_special_tokens=True) for output in outputs]\n","\n","    return translated_texts"]},{"cell_type":"code","source":["# Example usage - English to Giriama\n","eng_text = \"Where are you?\"\n","gir_translations = translate(\n","    eng_text,\n","    eng_gir_model,\n","    eng_gir_tokenizer,\n","    source_lang=\"en\",\n","    target_lang=\"nys\",\n","    num_beams=5,\n","    num_return_sequences=3\n",")\n","\n","print(f\"\\nEnglish to Giriama:\")\n","print(f\"Input: {eng_text}\")\n","for i, translation in enumerate(gir_translations):\n","    print(f\"Translation {i+1}: {translation}\")"],"metadata":{"id":"W2Gwuu9WecDO"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# Example usage - Giriama to English\n","gir_text = gir_translations[0]  # Use the first translation as input\n","eng_back_translations = translate(\n","    gir_text,\n","    gir_eng_model,\n","    gir_eng_tokenizer,\n","    source_lang=\"nys\",\n","    target_lang=\"en\",\n","    num_beams=5,\n","    num_return_sequences=3\n",")\n","\n","print(f\"\\nGiriama to English:\")\n","print(f\"Input: {gir_text}\")\n","for i, translation in enumerate(eng_back_translations):\n","    print(f\"Translation {i+1}: {translation}\")"],"metadata":{"id":"w7SeA-8decx7"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"fwspZl7Nl8qG"},"source":["# Validation Inference\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"_79JXTMgl-Rh"},"outputs":[],"source":["# If you have a validation dataset\n","if 'validation_dataset' in locals():\n","    print(\"\\n===== VALIDATION DATASET TESTS =====\")\n","    sample = validation_dataset[76]  # Change the index to test different samples\n","    input_text = sample['English sentence']\n","    target_text = sample['Swahili Translation']  # This should be 'Giriama Translation'\n","\n","    print(f\"Dataset sample:\")\n","    print(f\"English: {input_text}\")\n","    print(f\"Reference Giriama: {target_text}\")\n","\n","    # Translate English to Giriama\n","    gir_translations = translate(\n","        input_text,\n","        eng_gir_model,\n","        eng_gir_tokenizer,\n","        source_lang=\"en\",\n","        target_lang=\"gir\",\n","        num_beams=5,\n","        num_return_sequences=3\n","    )\n","\n","    print(\"\\nGenerated translations:\")\n","    for i, translation in enumerate(gir_translations):\n","        print(f\"Translation {i+1}: {translation}\")"]}],"metadata":{"accelerator":"GPU","colab":{"collapsed_sections":["jmiqP3XaJR2Z"],"gpuType":"T4","provenance":[],"authorship_tag":"ABX9TyM4u7fODAs/hBs2W6DIH49r"},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"0873702b270f44ac8d403d0f99071b85":{"model_module":"@jupyter-widgets/controls","model_name":"VBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"VBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"VBoxView","box_style":"","children":[],"layout":"IPY_MODEL_c739646664eb4ebb9fa75ec379f90742"}},"0b6b39f74eaf4f88b7d3f61cabacb0e2":{"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_58a9c1e2ed5a4d8d898151cd316d9b38","placeholder":"​","style":"IPY_MODEL_ea26eccbc6b54b40bc6d5acd0df31ffd","value":"<center> <img\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.svg\nalt='Hugging Face'> <br> Copy a token from <a\nhref=\"https://huggingface.co/settings/tokens\" target=\"_blank\">your Hugging Face\ntokens page</a> and paste it below. <br> Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file. </center>"}},"49e30da2bece411e8b9694f82c45d4c3":{"model_module":"@jupyter-widgets/controls","model_name":"PasswordModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"PasswordModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"PasswordView","continuous_update":true,"description":"Token:","description_tooltip":null,"disabled":false,"layout":"IPY_MODEL_2c30a0e71754492ea5f83c9474ded504","placeholder":"​","style":"IPY_MODEL_4cc6ba92ee2e431ca58b1d149cec2bba","value":""}},"df6ed50562094937a11564a84af307b0":{"model_module":"@jupyter-widgets/controls","model_name":"CheckboxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"CheckboxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"CheckboxView","description":"Add token as git credential?","description_tooltip":null,"disabled":false,"indent":true,"layout":"IPY_MODEL_13fa0cd4033b4ede881a6c5363040d07","style":"IPY_MODEL_bfc46a69fc3b4de0990cda3ca422c1da","value":true}},"9e7c6b0af2ca41989e7c8d91e841c2a2":{"model_module":"@jupyter-widgets/controls","model_name":"ButtonModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ButtonModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ButtonView","button_style":"","description":"Login","disabled":false,"icon":"","layout":"IPY_MODEL_79d871b05ff441acbc6966320816bd70","style":"IPY_MODEL_b507639502064738b7095f409cce89cc","tooltip":""}},"955464dbf9b947b98f1b624ee9b3e91e":{"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_01f97991c9e1461294b6cf8bef9dca24","placeholder":"​","style":"IPY_MODEL_fd121d1c5c244a6d9db2cce5d2ccb173","value":"\n<b>Pro Tip:</b> If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks. </center>"}},"c739646664eb4ebb9fa75ec379f90742":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":"center","align_self":null,"border":null,"bottom":null,"display":"flex","flex":null,"flex_flow":"column","grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":"50%"}},"58a9c1e2ed5a4d8d898151cd316d9b38":{"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}},"ea26eccbc6b54b40bc6d5acd0df31ffd":{"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":""}},"2c30a0e71754492ea5f83c9474ded504":{"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}},"4cc6ba92ee2e431ca58b1d149cec2bba":{"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":""}},"13fa0cd4033b4ede881a6c5363040d07":{"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}},"bfc46a69fc3b4de0990cda3ca422c1da":{"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":""}},"79d871b05ff441acbc6966320816bd70":{"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}},"b507639502064738b7095f409cce89cc":{"model_module":"@jupyter-widgets/controls","model_name":"ButtonStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ButtonStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","button_color":null,"font_weight":""}},"01f97991c9e1461294b6cf8bef9dca24":{"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}},"fd121d1c5c244a6d9db2cce5d2ccb173":{"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":""}},"67e52e14229e44898003134e8e3bddde":{"model_module":"@jupyter-widgets/controls","model_name":"LabelModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"LabelModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"LabelView","description":"","description_tooltip":null,"layout":"IPY_MODEL_efec379b17154562a54c1bf4a445b1e8","placeholder":"​","style":"IPY_MODEL_b31d8f6b308640e5922ce8c24300bbef","value":"Connecting..."}},"efec379b17154562a54c1bf4a445b1e8":{"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}},"b31d8f6b308640e5922ce8c24300bbef":{"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":""}},"01ad19819d194df6abdc3ca38bf3ef9f":{"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_32483b7e2dac49dc83d7e5637ad3859b","IPY_MODEL_ab8e5ddc21544cc0a067435184401c87","IPY_MODEL_2194f1bcd6de47dfbc1a0c56dadbd0db"],"layout":"IPY_MODEL_c693139090c84a71a9622e29ee1486f7"}},"32483b7e2dac49dc83d7e5637ad3859b":{"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_cdcdfa84d499437eb31ddb74a3727052","placeholder":"​","style":"IPY_MODEL_2d8aa291f72c4ccfbdd3b9d240512fde","value":"tokenizer_config.json: 100%"}},"ab8e5ddc21544cc0a067435184401c87":{"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_5a806f719d044c22aa1c8f760d493586","max":843,"min":0,"orientation":"horizontal","style":"IPY_MODEL_37c9b1e7cff5406393643ef0ef1209cb","value":843}},"2194f1bcd6de47dfbc1a0c56dadbd0db":{"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_1ab52a34829243259b43161d1f5a463e","placeholder":"​","style":"IPY_MODEL_652e2b1830ea4e9288f183f715bd0283","value":" 843/843 [00:00&lt;00:00, 85.9kB/s]"}},"c693139090c84a71a9622e29ee1486f7":{"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}},"cdcdfa84d499437eb31ddb74a3727052":{"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}},"2d8aa291f72c4ccfbdd3b9d240512fde":{"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":""}},"5a806f719d044c22aa1c8f760d493586":{"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}},"37c9b1e7cff5406393643ef0ef1209cb":{"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":""}},"1ab52a34829243259b43161d1f5a463e":{"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}},"652e2b1830ea4e9288f183f715bd0283":{"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":""}},"9f92bb2906064f43a565fb612c63ca53":{"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_17a8be32f1f34185975d097bb53c78e5","IPY_MODEL_d89d2f0967b6466fa7ea16ea28eb0fad","IPY_MODEL_4283f6c063dd462ab4d348a2090e79c6"],"layout":"IPY_MODEL_8323b33e82da445889df90d1f2e948c3"}},"17a8be32f1f34185975d097bb53c78e5":{"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_2780847850f047618fd88eb20713de49","placeholder":"​","style":"IPY_MODEL_83e4d61822604ee1b828964153ba06e3","value":"source.spm: 100%"}},"d89d2f0967b6466fa7ea16ea28eb0fad":{"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_0f80568a53d9437a87f7a8eb75f25732","max":817328,"min":0,"orientation":"horizontal","style":"IPY_MODEL_1b3b8b69b1e34cb6959299d60fbf58d6","value":817328}},"4283f6c063dd462ab4d348a2090e79c6":{"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_bd6e78c808da407e905b0d24aeb860f4","placeholder":"​","style":"IPY_MODEL_ed2707245ae34f91ab670506d3ede7d7","value":" 817k/817k [00:00&lt;00:00, 6.51MB/s]"}},"8323b33e82da445889df90d1f2e948c3":{"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}},"2780847850f047618fd88eb20713de49":{"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}},"83e4d61822604ee1b828964153ba06e3":{"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":""}},"0f80568a53d9437a87f7a8eb75f25732":{"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}},"1b3b8b69b1e34cb6959299d60fbf58d6":{"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":""}},"bd6e78c808da407e905b0d24aeb860f4":{"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}},"ed2707245ae34f91ab670506d3ede7d7":{"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":""}},"664e48a5eee7495285e28aee6de0e24e":{"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_95fbb099efc14da6ad8153998594a78d","IPY_MODEL_4740cfaee4434704b3c9af618a888b39","IPY_MODEL_1988059740164b9b9218f8731cfc3a6d"],"layout":"IPY_MODEL_6f38265e62954db894c329b5df9315ec"}},"95fbb099efc14da6ad8153998594a78d":{"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_3ebf9466cb6c415fa28fdcab276f927f","placeholder":"​","style":"IPY_MODEL_0143cab4de7642f691314096fd3c7e34","value":"target.spm: 100%"}},"4740cfaee4434704b3c9af618a888b39":{"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_f260262b0e584b639446f3caf486682d","max":822567,"min":0,"orientation":"horizontal","style":"IPY_MODEL_ff8b3a4b380243898aa0d4af0c781b7f","value":822567}},"1988059740164b9b9218f8731cfc3a6d":{"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_7291721c188a454e90516c5879d0aa6e","placeholder":"​","style":"IPY_MODEL_9bb4a05135e541539b0c3acde2776f1a","value":" 823k/823k [00:00&lt;00:00, 6.79MB/s]"}},"6f38265e62954db894c329b5df9315ec":{"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}},"3ebf9466cb6c415fa28fdcab276f927f":{"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}},"0143cab4de7642f691314096fd3c7e34":{"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":""}},"f260262b0e584b639446f3caf486682d":{"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}},"ff8b3a4b380243898aa0d4af0c781b7f":{"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":""}},"7291721c188a454e90516c5879d0aa6e":{"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}},"9bb4a05135e541539b0c3acde2776f1a":{"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":""}},"f4bf32ad23b841adaae373c42f0c8e58":{"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_ac51d9c1ce964cc5ab0ffac67a4152d3","IPY_MODEL_2f1048d1732a431e963f71db73eb0119","IPY_MODEL_fb5e00e3b5f946109381dcb12e975a1c"],"layout":"IPY_MODEL_65aef48efc8e44d88e0e3318b53c3c2c"}},"ac51d9c1ce964cc5ab0ffac67a4152d3":{"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_dbb2f190e4874676868c51e8c44f9269","placeholder":"​","style":"IPY_MODEL_9d36dd04b1574233b94b248c9a17cdec","value":"vocab.json: 100%"}},"2f1048d1732a431e963f71db73eb0119":{"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_8d9c6b8557454eeaadba6f391dcee9fb","max":1447475,"min":0,"orientation":"horizontal","style":"IPY_MODEL_993a2e3658ae432c835967dba4549ddd","value":1447475}},"fb5e00e3b5f946109381dcb12e975a1c":{"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_24383d98e440490597bdf315dccf8458","placeholder":"​","style":"IPY_MODEL_abf573d24d054fec807499bbd430fc7d","value":" 1.45M/1.45M [00:00&lt;00:00, 7.56MB/s]"}},"65aef48efc8e44d88e0e3318b53c3c2c":{"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}},"dbb2f190e4874676868c51e8c44f9269":{"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}},"9d36dd04b1574233b94b248c9a17cdec":{"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":""}},"8d9c6b8557454eeaadba6f391dcee9fb":{"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}},"993a2e3658ae432c835967dba4549ddd":{"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":""}},"24383d98e440490597bdf315dccf8458":{"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}},"abf573d24d054fec807499bbd430fc7d":{"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":""}},"d835717d807e4d669cddaca6d185a00f":{"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_5b8c3d32fad94b329529c95df5e82687","IPY_MODEL_ce23f5a663be47109163b7874cd3e319","IPY_MODEL_67d9b51b865349819a21b3c190866b38"],"layout":"IPY_MODEL_1e405ca8116a4ed4929a857dfd6d8d0e"}},"5b8c3d32fad94b329529c95df5e82687":{"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_dd2066aa820047ff8b8bce1e87cbabc8","placeholder":"​","style":"IPY_MODEL_678f084146ce4dc4813f53eddad9fcd0","value":"special_tokens_map.json: 100%"}},"ce23f5a663be47109163b7874cd3e319":{"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_447fd0256fc14882bac7bf09a965b9d3","max":416,"min":0,"orientation":"horizontal","style":"IPY_MODEL_696ca97bfeea4960a7fecfbb05e7a869","value":416}},"67d9b51b865349819a21b3c190866b38":{"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_da15cbcae1f144cbaa801acadf8f63db","placeholder":"​","style":"IPY_MODEL_cf151c89f47046e0b551dda7271e7df1","value":" 416/416 [00:00&lt;00:00, 49.9kB/s]"}},"1e405ca8116a4ed4929a857dfd6d8d0e":{"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}},"dd2066aa820047ff8b8bce1e87cbabc8":{"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}},"678f084146ce4dc4813f53eddad9fcd0":{"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":""}},"447fd0256fc14882bac7bf09a965b9d3":{"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}},"696ca97bfeea4960a7fecfbb05e7a869":{"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":""}},"da15cbcae1f144cbaa801acadf8f63db":{"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}},"cf151c89f47046e0b551dda7271e7df1":{"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":""}},"a04e1ee52dad4bec9d0397f348e7145a":{"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_f9fa4b496d9046d5a4e45ba83ad8eadb","IPY_MODEL_0af1c5ffdd08492699fd86fc3c429eb6","IPY_MODEL_363ea5c7afd94ee58f7f83324fb37d0b"],"layout":"IPY_MODEL_7eb841d985354e7394437bd074adb255"}},"f9fa4b496d9046d5a4e45ba83ad8eadb":{"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_96861850eb4a461a9149e0dc0da6004a","placeholder":"​","style":"IPY_MODEL_e934d87fa39c4396a8edc33bf4d19e81","value":"config.json: 100%"}},"0af1c5ffdd08492699fd86fc3c429eb6":{"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_60f354df57f54f5983b1d82ec14dba9e","max":1381,"min":0,"orientation":"horizontal","style":"IPY_MODEL_bae3a4a551ad483bba92a88df7d3246d","value":1381}},"363ea5c7afd94ee58f7f83324fb37d0b":{"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_5c3dbc9716ef468d92d9db40a8994a26","placeholder":"​","style":"IPY_MODEL_1a81a5c82a414fea9dd0783c62e5573d","value":" 1.38k/1.38k [00:00&lt;00:00, 119kB/s]"}},"7eb841d985354e7394437bd074adb255":{"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}},"96861850eb4a461a9149e0dc0da6004a":{"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}},"e934d87fa39c4396a8edc33bf4d19e81":{"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":""}},"60f354df57f54f5983b1d82ec14dba9e":{"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}},"bae3a4a551ad483bba92a88df7d3246d":{"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":""}},"5c3dbc9716ef468d92d9db40a8994a26":{"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}},"1a81a5c82a414fea9dd0783c62e5573d":{"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":""}},"611171887f204c45bf4906daa511fc3f":{"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_f2c245dd46b74a08ba812443e0cac622","IPY_MODEL_1534dd2eeb6344a39c4716f935f1a887","IPY_MODEL_08ef282171834d9da1cb992df4cccf71"],"layout":"IPY_MODEL_f00b8156cf8a4d329660fb0684c75e4c"}},"f2c245dd46b74a08ba812443e0cac622":{"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_0e6d44e73bce4d5290c01399227129cc","placeholder":"​","style":"IPY_MODEL_86dec322b89241d986a276a8e373e890","value":"model.safetensors: 100%"}},"1534dd2eeb6344a39c4716f935f1a887":{"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_3edcaf0a115f46c7b8859d43d5042490","max":297456100,"min":0,"orientation":"horizontal","style":"IPY_MODEL_75c0b09565ec4ca4a9f1826dadf7e112","value":297456100}},"08ef282171834d9da1cb992df4cccf71":{"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_a1f64953ffed4830a54564394ed0e55d","placeholder":"​","style":"IPY_MODEL_1ec3c7dfedf2491cae7d2b946b95d45d","value":" 297M/297M [00:03&lt;00:00, 52.8MB/s]"}},"f00b8156cf8a4d329660fb0684c75e4c":{"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}},"0e6d44e73bce4d5290c01399227129cc":{"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}},"86dec322b89241d986a276a8e373e890":{"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":""}},"3edcaf0a115f46c7b8859d43d5042490":{"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}},"75c0b09565ec4ca4a9f1826dadf7e112":{"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":""}},"a1f64953ffed4830a54564394ed0e55d":{"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}},"1ec3c7dfedf2491cae7d2b946b95d45d":{"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":""}},"3f7c83ece2b342fdbf360fa0db50af19":{"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_68201d78f7584da8991f96f2a92e67d4","IPY_MODEL_aa62b7bada85416ea7a72f64484f41a6","IPY_MODEL_634a86a6d5f24678b1f04d61e054a2d4"],"layout":"IPY_MODEL_f5e202c483074a638c39066332aa398d"}},"68201d78f7584da8991f96f2a92e67d4":{"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_b7982850284642a69b2d1c353270f640","placeholder":"​","style":"IPY_MODEL_12d11255e6f448ea9a7f8120dcad75e7","value":"generation_config.json: 100%"}},"aa62b7bada85416ea7a72f64484f41a6":{"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_86d9746b27b64ebc81f53c6feb054718","max":288,"min":0,"orientation":"horizontal","style":"IPY_MODEL_485642dd4ef84b939c10f43b2dbbba15","value":288}},"634a86a6d5f24678b1f04d61e054a2d4":{"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_8208f3c65b434822801f60c760369a95","placeholder":"​","style":"IPY_MODEL_81d6328f81c34e14bc9c6a12a549f09b","value":" 288/288 [00:00&lt;00:00, 32.5kB/s]"}},"f5e202c483074a638c39066332aa398d":{"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}},"b7982850284642a69b2d1c353270f640":{"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}},"12d11255e6f448ea9a7f8120dcad75e7":{"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":""}},"86d9746b27b64ebc81f53c6feb054718":{"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}},"485642dd4ef84b939c10f43b2dbbba15":{"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":""}},"8208f3c65b434822801f60c760369a95":{"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}},"81d6328f81c34e14bc9c6a12a549f09b":{"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":""}},"b2fd4ed099e04f58b9214c4261f2220f":{"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_2c2ac61d95034824bce1763ddc91dddb","IPY_MODEL_fd29b52b41ab4867aa635b26e4ae2e00","IPY_MODEL_f4174e40111d4c5584de962a9dd42d66"],"layout":"IPY_MODEL_530e9c35bd8b47f297d6e1a3c35bdbae"}},"2c2ac61d95034824bce1763ddc91dddb":{"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_f189bfd677fd49728cc26246a8f94f21","placeholder":"​","style":"IPY_MODEL_58985bb016f84e099897d5c0d3b67bec","value":"README.md: 100%"}},"fd29b52b41ab4867aa635b26e4ae2e00":{"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_477e8c56848a4b0f913d363d7fc30c44","max":173,"min":0,"orientation":"horizontal","style":"IPY_MODEL_2db1671efa9747b98b7d172fb1c90bad","value":173}},"f4174e40111d4c5584de962a9dd42d66":{"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_7d52d57be23540e3aa671f1727a72d53","placeholder":"​","style":"IPY_MODEL_fb44bded1de74357ab5a52a201fbd755","value":" 173/173 [00:00&lt;00:00, 16.7kB/s]"}},"530e9c35bd8b47f297d6e1a3c35bdbae":{"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}},"f189bfd677fd49728cc26246a8f94f21":{"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}},"58985bb016f84e099897d5c0d3b67bec":{"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":""}},"477e8c56848a4b0f913d363d7fc30c44":{"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}},"2db1671efa9747b98b7d172fb1c90bad":{"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":""}},"7d52d57be23540e3aa671f1727a72d53":{"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}},"fb44bded1de74357ab5a52a201fbd755":{"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":""}},"e58c4bba2d334eb3bc84ba090f8fc823":{"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_750ce8951fb04e72a70b063f514c0e01","IPY_MODEL_66933d47ba8d4b148d2ee7ecac2d439e","IPY_MODEL_2dd1c80b03fe49bb961440c3679a5e18"],"layout":"IPY_MODEL_0599b43baa5d45848a42da5b06eea7e5"}},"750ce8951fb04e72a70b063f514c0e01":{"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_0fb70cfe19c7400e9609d31eac5b8dd2","placeholder":"​","style":"IPY_MODEL_b79fc3b1f76341b5bf1ad1f2749d2375","value":"ensw.csv: 100%"}},"66933d47ba8d4b148d2ee7ecac2d439e":{"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_47aa9984792a4d1ca83056dffd69c2f2","max":21554329,"min":0,"orientation":"horizontal","style":"IPY_MODEL_90bc4cb737fe4ca7979252670be48542","value":21554329}},"2dd1c80b03fe49bb961440c3679a5e18":{"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_aa3e1b45f26c4d1192eb108070589277","placeholder":"​","style":"IPY_MODEL_32229c970ab34b40ab202b01b5d29072","value":" 21.6M/21.6M [00:00&lt;00:00, 97.7MB/s]"}},"0599b43baa5d45848a42da5b06eea7e5":{"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}},"0fb70cfe19c7400e9609d31eac5b8dd2":{"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}},"b79fc3b1f76341b5bf1ad1f2749d2375":{"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":""}},"47aa9984792a4d1ca83056dffd69c2f2":{"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}},"90bc4cb737fe4ca7979252670be48542":{"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":""}},"aa3e1b45f26c4d1192eb108070589277":{"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}},"32229c970ab34b40ab202b01b5d29072":{"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":""}},"8cf7df27297a4fc6991adc70d7ca8f55":{"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_f8a77b2cfa1e4a82a07caac71b05f28c","IPY_MODEL_5ed190532d4d4a339ee8e13b6a074c0b","IPY_MODEL_101af85cff1f432ab5cfee182e418171"],"layout":"IPY_MODEL_f30b0e549ea24719a605369c2a2751bc"}},"f8a77b2cfa1e4a82a07caac71b05f28c":{"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_05a96057d8dc49e2a68b1c54c3d0495a","placeholder":"​","style":"IPY_MODEL_850f26fe52354280a67d9e8998fc6c63","value":"Generating train split: 100%"}},"5ed190532d4d4a339ee8e13b6a074c0b":{"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_fe0a1e1dad084b79a63cd441ed69f99a","max":210471,"min":0,"orientation":"horizontal","style":"IPY_MODEL_dd6227782ce848f9a92f257ce09ab915","value":210471}},"101af85cff1f432ab5cfee182e418171":{"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_66cc7a1d9de34d2db205fec120ed3bc1","placeholder":"​","style":"IPY_MODEL_6a1c014e0c1c4013ad046bcf2b7e3f83","value":" 210471/210471 [00:00&lt;00:00, 566654.23 examples/s]"}},"f30b0e549ea24719a605369c2a2751bc":{"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}},"05a96057d8dc49e2a68b1c54c3d0495a":{"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}},"850f26fe52354280a67d9e8998fc6c63":{"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":""}},"fe0a1e1dad084b79a63cd441ed69f99a":{"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}},"dd6227782ce848f9a92f257ce09ab915":{"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":""}},"66cc7a1d9de34d2db205fec120ed3bc1":{"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}},"6a1c014e0c1c4013ad046bcf2b7e3f83":{"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":""}},"f52bf6543a1b4210b0088ae01092e552":{"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_fadfa2c246194682a9fa2cda0be5fcbf","IPY_MODEL_70e803c534ca4a598f758f71a6a5cf9e","IPY_MODEL_54d8e95ffac44fab8ee3678c99dd4c9d"],"layout":"IPY_MODEL_e597a3e957764e79a5c2fd3838055f20"}},"fadfa2c246194682a9fa2cda0be5fcbf":{"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_0c00a41d78dd49c098f07f431e56e000","placeholder":"​","style":"IPY_MODEL_daad0d84fca34e7a9c8959d901768f3a","value":"best_checkpoint.pth: 100%"}},"70e803c534ca4a598f758f71a6a5cf9e":{"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_f1ed39710e5945d69e4c8aaab1227cd1","max":894616619,"min":0,"orientation":"horizontal","style":"IPY_MODEL_53f190cbb797479580f10e7126cd2d98","value":894616619}},"54d8e95ffac44fab8ee3678c99dd4c9d":{"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_a04368b095fc4b1aa7f85609f7ea3ae8","placeholder":"​","style":"IPY_MODEL_6398a0f7cb7e45cbb53ecdb1f3f8a210","value":" 895M/895M [00:11&lt;00:00, 85.4MB/s]"}},"e597a3e957764e79a5c2fd3838055f20":{"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}},"0c00a41d78dd49c098f07f431e56e000":{"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}},"daad0d84fca34e7a9c8959d901768f3a":{"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":""}},"f1ed39710e5945d69e4c8aaab1227cd1":{"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}},"53f190cbb797479580f10e7126cd2d98":{"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":""}},"a04368b095fc4b1aa7f85609f7ea3ae8":{"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}},"6398a0f7cb7e45cbb53ecdb1f3f8a210":{"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":""}},"3e2bf1c957f8490d8af594b5393dd9e9":{"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_ff5d82b83f094613a97bdce16767dcf3","IPY_MODEL_7b599508229746508252fb8b4fa7d08c","IPY_MODEL_756d7d37885f4be1bfa8432e13f4be68"],"layout":"IPY_MODEL_38b3f637913d42c4a898865d3cc65241"}},"ff5d82b83f094613a97bdce16767dcf3":{"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_99af1f7bdd3243fc9b6dd72991f9848b","placeholder":"​","style":"IPY_MODEL_c04936fb51e3463d9ecbf82eaf75bd0b","value":"README.md: 100%"}},"7b599508229746508252fb8b4fa7d08c":{"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_330a09588a1741a08cd9bb8b91a72cdd","max":5174,"min":0,"orientation":"horizontal","style":"IPY_MODEL_81d6575ab426481688e0a098e33654b6","value":5174}},"756d7d37885f4be1bfa8432e13f4be68":{"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_7fafa218796c4e5ea1346636191e0f34","placeholder":"​","style":"IPY_MODEL_de4652b0d3824e31b3a1fac8c4439c32","value":" 5.17k/5.17k [00:00&lt;00:00, 450kB/s]"}},"38b3f637913d42c4a898865d3cc65241":{"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}},"99af1f7bdd3243fc9b6dd72991f9848b":{"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}},"c04936fb51e3463d9ecbf82eaf75bd0b":{"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":""}},"330a09588a1741a08cd9bb8b91a72cdd":{"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}},"81d6575ab426481688e0a098e33654b6":{"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":""}},"7fafa218796c4e5ea1346636191e0f34":{"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}},"de4652b0d3824e31b3a1fac8c4439c32":{"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":""}},"4085c92f282b4e03a6ea563fd5785879":{"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_404a4531344c420d9e3df64156604494","IPY_MODEL_497c3aab22294a8287be7681beed4af5","IPY_MODEL_102299141a114074b69741d15d986f5b"],"layout":"IPY_MODEL_fdf9c5d2e354459295cab200cbb57f10"}},"404a4531344c420d9e3df64156604494":{"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_cee0f02f89d44f48a84951610e8186ae","placeholder":"​","style":"IPY_MODEL_8047b9f0c3664fb4a9949e46d294226e","value":"model.safetensors: 100%"}},"497c3aab22294a8287be7681beed4af5":{"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_d537deb9041947249e47d70937a553cd","max":297460204,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c6339c4b26a94af79a5c4816009b1b91","value":297460204}},"102299141a114074b69741d15d986f5b":{"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_9caad337f5d542acad5d2d2b72a81e43","placeholder":"​","style":"IPY_MODEL_564c5aa95d6241e39aff6739c85c4291","value":" 297M/297M [00:11&lt;00:00, 31.6MB/s]"}},"fdf9c5d2e354459295cab200cbb57f10":{"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}},"cee0f02f89d44f48a84951610e8186ae":{"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}},"8047b9f0c3664fb4a9949e46d294226e":{"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":""}},"d537deb9041947249e47d70937a553cd":{"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}},"c6339c4b26a94af79a5c4816009b1b91":{"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":""}},"9caad337f5d542acad5d2d2b72a81e43":{"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}},"564c5aa95d6241e39aff6739c85c4291":{"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":""}},"635acd876dab46b2b944c5bae4dd4e09":{"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_730d7f35ad584ddfa38e0acb2a1ed25f","IPY_MODEL_20bd0956455a4228a05e8ae882b06805","IPY_MODEL_7c867b80e0ab41c380c495130733af9a"],"layout":"IPY_MODEL_2f2b51acca1149318440342568642cd2"}},"730d7f35ad584ddfa38e0acb2a1ed25f":{"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_42781d18428d4782ae567cccc0435b87","placeholder":"​","style":"IPY_MODEL_1107dd5a4f674d7d91db9595be370343","value":"best_checkpoint.pth:  29%"}},"20bd0956455a4228a05e8ae882b06805":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_3cd4fdc7c326462cbaa417167a5ccee2","max":894808875,"min":0,"orientation":"horizontal","style":"IPY_MODEL_44eb9eaf05144ff58d24101cf2e0ea2f","value":261881856}},"7c867b80e0ab41c380c495130733af9a":{"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_fb96e0c0252c4b78b9cc56f1f370fd7c","placeholder":"​","style":"IPY_MODEL_64f1d24c16e04b5d9134fc62b3dda477","value":" 262M/895M [00:06&lt;00:14, 42.5MB/s]"}},"2f2b51acca1149318440342568642cd2":{"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}},"42781d18428d4782ae567cccc0435b87":{"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}},"1107dd5a4f674d7d91db9595be370343":{"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":""}},"3cd4fdc7c326462cbaa417167a5ccee2":{"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}},"44eb9eaf05144ff58d24101cf2e0ea2f":{"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":""}},"fb96e0c0252c4b78b9cc56f1f370fd7c":{"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}},"64f1d24c16e04b5d9134fc62b3dda477":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":0}