From 1d9457baaaa931495e0355513f6aea04386f4e0d Mon Sep 17 00:00:00 2001 From: Jakub Adamski Date: Fri, 10 Feb 2023 12:42:56 +0100 Subject: [PATCH] added all experiments --- .gitignore | 3 +- projekt/BERT_sms_spam.ipynb | 5415 ++++++++++++++++++++++ projekt/FLAN_T5_sms_spam.ipynb | 7156 +++++++++++++++++++++++++++++ projekt/GPT2_sms_spam.ipynb | 5277 +++++++++++++++++++++ projekt/README.md | 73 + projekt/T5_sms_spam.ipynb | 5972 ++++++++++++++++++++++++ projekt/transformer_encoder.ipynb | 32 - 7 files changed, 23895 insertions(+), 33 deletions(-) create mode 100644 projekt/BERT_sms_spam.ipynb create mode 100644 projekt/FLAN_T5_sms_spam.ipynb create mode 100644 projekt/GPT2_sms_spam.ipynb create mode 100644 projekt/README.md create mode 100644 projekt/T5_sms_spam.ipynb delete mode 100644 projekt/transformer_encoder.ipynb diff --git a/.gitignore b/.gitignore index 496ee2c..9a0bb54 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.DS_Store \ No newline at end of file +.DS_Store +models/ \ No newline at end of file diff --git a/projekt/BERT_sms_spam.ipynb b/projekt/BERT_sms_spam.ipynb new file mode 100644 index 0000000..670373b --- /dev/null +++ b/projekt/BERT_sms_spam.ipynb @@ -0,0 +1,5415 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "gpuClass": "standard", + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "26f1d5f367aa49c9a572adcded83219a": { + "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_b5eaae22aefd429d9946c7c644c0cd02", + "IPY_MODEL_3d95f755191647889171d659ddd6c755", + "IPY_MODEL_322e6c92a93845d683028f1ac77fd991" + ], + "layout": "IPY_MODEL_a1edcaafe9a349a487875ad77ccd00c9" + } + }, + "b5eaae22aefd429d9946c7c644c0cd02": { + "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_f1d9de6c2e864d5481f04af80d92058e", + "placeholder": "​", + "style": "IPY_MODEL_e2124cb283c045f5822a395ce8b5fe6d", + "value": "Downloading builder script: 100%" + } + }, + "3d95f755191647889171d659ddd6c755": { + "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_e4e57cf95df04f56a4ef4ae990344116", + "max": 3208, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_cccb07d8327342fa8f30de34f056543e", + "value": 3208 + } + }, + "322e6c92a93845d683028f1ac77fd991": { + "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_a1fa218698f64411a80bcf999ca1e786", + "placeholder": "​", + "style": "IPY_MODEL_3cf8102ac99f4c419dda058164653aaa", + "value": " 3.21k/3.21k [00:00<00:00, 158kB/s]" + } + }, + "a1edcaafe9a349a487875ad77ccd00c9": { + "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 + } + }, + "f1d9de6c2e864d5481f04af80d92058e": { + "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 + } + }, + "e2124cb283c045f5822a395ce8b5fe6d": { + "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": "" + } + }, + "e4e57cf95df04f56a4ef4ae990344116": { + "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 + } + }, + "cccb07d8327342fa8f30de34f056543e": { + "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": "" + } + }, + "a1fa218698f64411a80bcf999ca1e786": { + "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 + } + }, + "3cf8102ac99f4c419dda058164653aaa": { + "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": "" + } + }, + "fc229165f10d40d59c6d751a13848f6d": { + "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_bdafd6edd15c45f0849ec4973f4f0930", + "IPY_MODEL_9e821b7e6efa4cbcb200944969338ac0", + "IPY_MODEL_043b8b140ad54391ba0aff7062628eea" + ], + "layout": "IPY_MODEL_6730bd27c7404ccba47d535da42dc4df" + } + }, + "bdafd6edd15c45f0849ec4973f4f0930": { + "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_9ea0e304a63548bfa044e31f8b4c15d5", + "placeholder": "​", + "style": "IPY_MODEL_0d1e9d91e7dc4707b20266aaef49eb1c", + "value": "Downloading metadata: 100%" + } + }, + "9e821b7e6efa4cbcb200944969338ac0": { + "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_6eac05fb740f4483953ba2e1ad610019", + "max": 1687, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_28d758c4f4a8401c9a30fb87a71be070", + "value": 1687 + } + }, + "043b8b140ad54391ba0aff7062628eea": { + "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_c36f89ddd4b847c2a0cceeae00aee173", + "placeholder": "​", + "style": "IPY_MODEL_68ad89e9846d479ba7d4e3828e0cfb77", + "value": " 1.69k/1.69k [00:00<00:00, 82.7kB/s]" + } + }, + "6730bd27c7404ccba47d535da42dc4df": { + "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 + } + }, + "9ea0e304a63548bfa044e31f8b4c15d5": { + "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 + } + }, + "0d1e9d91e7dc4707b20266aaef49eb1c": { + "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": "" + } + }, + "6eac05fb740f4483953ba2e1ad610019": { + "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 + } + }, + "28d758c4f4a8401c9a30fb87a71be070": { + "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": "" + } + }, + "c36f89ddd4b847c2a0cceeae00aee173": { + "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 + } + }, + "68ad89e9846d479ba7d4e3828e0cfb77": { + "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": "" + } + }, + "39e2d7303cdf4d02bf2d31352a6e1e46": { + "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_50e674ad4a94415cb45eacd4fc3fe267", + "IPY_MODEL_ac515908ad4e48e392ab95322b9fce70", + "IPY_MODEL_5a286626f8824392a545c771d84a9c1e" + ], + "layout": "IPY_MODEL_05abdaeba97b4cdba119f09cdd7d6dd5" + } + }, + "50e674ad4a94415cb45eacd4fc3fe267": { + "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_a2497b2b41e94dad9750dd9dafe56685", + "placeholder": "​", + "style": "IPY_MODEL_abff67fe155a4646a27f821911e433ad", + "value": "Downloading readme: 100%" + } + }, + "ac515908ad4e48e392ab95322b9fce70": { + "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_269fd836fbb0407a9e9eff325fdf8abe", + "max": 4872, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f102c4257ca545b88da535d532c912c8", + "value": 4872 + } + }, + "5a286626f8824392a545c771d84a9c1e": { + "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_4a00e2b3f66f4bfc8f17cc4ceeaec36c", + "placeholder": "​", + "style": "IPY_MODEL_ad54e2070fe04f699966193c4f009599", + "value": " 4.87k/4.87k [00:00<00:00, 216kB/s]" + } + }, + "05abdaeba97b4cdba119f09cdd7d6dd5": { + "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 + } + }, + "a2497b2b41e94dad9750dd9dafe56685": { + "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 + } + }, + "abff67fe155a4646a27f821911e433ad": { + "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": "" + } + }, + "269fd836fbb0407a9e9eff325fdf8abe": { + "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 + } + }, + "f102c4257ca545b88da535d532c912c8": { + "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": "" + } + }, + "4a00e2b3f66f4bfc8f17cc4ceeaec36c": { + "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 + } + }, + "ad54e2070fe04f699966193c4f009599": { + "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": "" + } + }, + "1b3b7113964f4323ba191fcf81234c9e": { + "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_97271051ebb84baf817732aa9a0c40ed", + "IPY_MODEL_522da98c97d347de8ff5e6e2dda3dda7", + "IPY_MODEL_fae8dbc9f7924039aebcda0a044323ec" + ], + "layout": "IPY_MODEL_16d7fdc67b144af7a4a1d310d90aeb7a" + } + }, + "97271051ebb84baf817732aa9a0c40ed": { + "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_1150dfcfc607448b8cb6e7d2d81717f4", + "placeholder": "​", + "style": "IPY_MODEL_c88918df12b44f1a8cefebab628eb4bd", + "value": "Downloading data: 100%" + } + }, + "522da98c97d347de8ff5e6e2dda3dda7": { + "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_9395f6da4e5c437d80b65c207e81f9bd", + "max": 203415, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7d20ee84bb5e45f282e960a37f544901", + "value": 203415 + } + }, + "fae8dbc9f7924039aebcda0a044323ec": { + "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_fc689018e6f04ad0aeae11caca7ec1e6", + "placeholder": "​", + "style": "IPY_MODEL_2e0c88489b06443d849ca955b77b2577", + "value": " 203k/203k [00:00<00:00, 423kB/s]" + } + }, + "16d7fdc67b144af7a4a1d310d90aeb7a": { + "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 + } + }, + "1150dfcfc607448b8cb6e7d2d81717f4": { + "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 + } + }, + "c88918df12b44f1a8cefebab628eb4bd": { + "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": "" + } + }, + "9395f6da4e5c437d80b65c207e81f9bd": { + "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 + } + }, + "7d20ee84bb5e45f282e960a37f544901": { + "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": "" + } + }, + "fc689018e6f04ad0aeae11caca7ec1e6": { + "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 + } + }, + "2e0c88489b06443d849ca955b77b2577": { + "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": "" + } + }, + "442c9a346ffe451eb7fb70e906b554a7": { + "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_25980d4dc17b412c9e76a9efdf251759", + "IPY_MODEL_704713f8cceb4792bb986520698d0be5", + "IPY_MODEL_6f4fc94edab84a65ba57b34a2d0b2422" + ], + "layout": "IPY_MODEL_429b0cd8d6a643ac8a69c5b6adbd53a4" + } + }, + "25980d4dc17b412c9e76a9efdf251759": { + "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_0d71e715ffeb445e9e233a6d6bc2de2b", + "placeholder": "​", + "style": "IPY_MODEL_c713be1ba0904e7a8e95a6eb7108b630", + "value": "Generating train split: 100%" + } + }, + "704713f8cceb4792bb986520698d0be5": { + "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_91b3bd32d53b4fe5ad21814fcb73a4a2", + "max": 5574, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0cbf05e2f58f4bd289e3e845f64dce7e", + "value": 5574 + } + }, + "6f4fc94edab84a65ba57b34a2d0b2422": { + "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_edbf793856b24cb3a0d81c110e2c58fd", + "placeholder": "​", + "style": "IPY_MODEL_d57ed46f96fa4d51bac74fcc326700cc", + "value": " 5574/5574 [00:19<00:00, 17709.20 examples/s]" + } + }, + "429b0cd8d6a643ac8a69c5b6adbd53a4": { + "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 + } + }, + "0d71e715ffeb445e9e233a6d6bc2de2b": { + "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 + } + }, + "c713be1ba0904e7a8e95a6eb7108b630": { + "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": "" + } + }, + "91b3bd32d53b4fe5ad21814fcb73a4a2": { + "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 + } + }, + "0cbf05e2f58f4bd289e3e845f64dce7e": { + "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": "" + } + }, + "edbf793856b24cb3a0d81c110e2c58fd": { + "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 + } + }, + "d57ed46f96fa4d51bac74fcc326700cc": { + "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": "" + } + }, + "bab7298185af41188969a03e81489efc": { + "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_b0fba461ad5f4826a082787223335564", + "IPY_MODEL_e6ec15b30b8040d38098ea1fd383b77d", + "IPY_MODEL_678b9387f0454322b78f873de4febbda" + ], + "layout": "IPY_MODEL_146e93df04c6431fbc5f810541f61bc4" + } + }, + "b0fba461ad5f4826a082787223335564": { + "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_0632ab2656404dd4b64330fc98a9a229", + "placeholder": "​", + "style": "IPY_MODEL_61d2037630ad44d5ad6204724fe62108", + "value": "100%" + } + }, + "e6ec15b30b8040d38098ea1fd383b77d": { + "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_c7465ee25ec341709908366f2c1e6cb9", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0f57b73714264ca8b6b5a83e7d03a340", + "value": 1 + } + }, + "678b9387f0454322b78f873de4febbda": { + "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_0d83fcf09db44518889abe9e2d3a4756", + "placeholder": "​", + "style": "IPY_MODEL_3da9d5cbd9ce48758e5a86242c5c74a3", + "value": " 1/1 [00:00<00:00, 31.16it/s]" + } + }, + "146e93df04c6431fbc5f810541f61bc4": { + "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 + } + }, + "0632ab2656404dd4b64330fc98a9a229": { + "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 + } + }, + "61d2037630ad44d5ad6204724fe62108": { + "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": "" + } + }, + "c7465ee25ec341709908366f2c1e6cb9": { + "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 + } + }, + "0f57b73714264ca8b6b5a83e7d03a340": { + "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": "" + } + }, + "0d83fcf09db44518889abe9e2d3a4756": { + "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 + } + }, + "3da9d5cbd9ce48758e5a86242c5c74a3": { + "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": "" + } + }, + "645d79ef5a2143af93b9dd7a66398ef4": { + "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_3a5a82fb677b49fa964e7841a2a384c5", + "IPY_MODEL_c4e7374b8fdf420bb7024c820aac501d", + "IPY_MODEL_9e9b5577000f43d0a8c14ef9e17f2770" + ], + "layout": "IPY_MODEL_a73714a6ba874de28edc7a6b61db1289" + } + }, + "3a5a82fb677b49fa964e7841a2a384c5": { + "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_5b745905ea6d4f08b51dbaaa05dba69c", + "placeholder": "​", + "style": "IPY_MODEL_c83ab170d2704a1f8e32f70f6b40006b", + "value": "Downloading (…)solve/main/vocab.txt: 100%" + } + }, + "c4e7374b8fdf420bb7024c820aac501d": { + "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_38ace4c2fd31432e801fd5f073c40a4f", + "max": 231508, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9de94d9afbf6465a9f23898d1789da67", + "value": 231508 + } + }, + "9e9b5577000f43d0a8c14ef9e17f2770": { + "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_0c1e159cc977492fb1ff554818f8b90c", + "placeholder": "​", + "style": "IPY_MODEL_b78fb9ef1ff9445d86a68eb37d7f6959", + "value": " 232k/232k [00:00<00:00, 1.94MB/s]" + } + }, + "a73714a6ba874de28edc7a6b61db1289": { + "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 + } + }, + "5b745905ea6d4f08b51dbaaa05dba69c": { + "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 + } + }, + "c83ab170d2704a1f8e32f70f6b40006b": { + "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": "" + } + }, + "38ace4c2fd31432e801fd5f073c40a4f": { + "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 + } + }, + "9de94d9afbf6465a9f23898d1789da67": { + "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": "" + } + }, + "0c1e159cc977492fb1ff554818f8b90c": { + "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 + } + }, + "b78fb9ef1ff9445d86a68eb37d7f6959": { + "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": "" + } + }, + "4e79563a33e345a28ebd242f88f1391d": { + "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_b0e31c0236d043099a916902a79baa3b", + "IPY_MODEL_0d50f317048c4b3b9d0e433fc2b8b81f", + "IPY_MODEL_a74a190e28764f86980748e1861d4ae9" + ], + "layout": "IPY_MODEL_d3e4e3c42fec41afa141c27b1f0ed279" + } + }, + "b0e31c0236d043099a916902a79baa3b": { + "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_bf117c3c64c04ee6b94e03e82408ed2e", + "placeholder": "​", + "style": "IPY_MODEL_b3ec2fe604104083986a7720d5a2dd65", + "value": "Downloading (…)okenizer_config.json: 100%" + } + }, + "0d50f317048c4b3b9d0e433fc2b8b81f": { + "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_2247bfff362241e7bf036cf2596aea99", + "max": 28, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_07383fac57cf498e9eed23259a2d5763", + "value": 28 + } + }, + "a74a190e28764f86980748e1861d4ae9": { + "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_30e3e89595d541be81a95b2d600e4fba", + "placeholder": "​", + "style": "IPY_MODEL_65f61b687a2041bbbb0f6807d2f5b01c", + "value": " 28.0/28.0 [00:00<00:00, 759B/s]" + } + }, + "d3e4e3c42fec41afa141c27b1f0ed279": { + "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 + } + }, + "bf117c3c64c04ee6b94e03e82408ed2e": { + "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 + } + }, + "b3ec2fe604104083986a7720d5a2dd65": { + "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": "" + } + }, + "2247bfff362241e7bf036cf2596aea99": { + "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 + } + }, + "07383fac57cf498e9eed23259a2d5763": { + "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": "" + } + }, + "30e3e89595d541be81a95b2d600e4fba": { + "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 + } + }, + "65f61b687a2041bbbb0f6807d2f5b01c": { + "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": "" + } + }, + "71f3be8385a74b10a015974e168e6bd1": { + "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_f1b905ed8a0a412caab7515ea016267f", + "IPY_MODEL_a7fa5557847f453b89ded8dde3c372db", + "IPY_MODEL_a81e4849602f473386cb1782fa4de83d" + ], + "layout": "IPY_MODEL_026b251acf294bb8902aff109a7f6f5d" + } + }, + "f1b905ed8a0a412caab7515ea016267f": { + "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_6a4966cc6cc841fe86a704cd98bdb52d", + "placeholder": "​", + "style": "IPY_MODEL_371e82101aa14e90839490638c90a68e", + "value": "Downloading (…)lve/main/config.json: 100%" + } + }, + "a7fa5557847f453b89ded8dde3c372db": { + "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_8dd3f484a6e94b8aae8b7cb1675e7ec1", + "max": 570, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_72a3ecffa85948169f786ab1154b943f", + "value": 570 + } + }, + "a81e4849602f473386cb1782fa4de83d": { + "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_79621956769e4912bb6965df4e2c574a", + "placeholder": "​", + "style": "IPY_MODEL_e9a97237031d4bbd9a3582936f25d72b", + "value": " 570/570 [00:00<00:00, 17.2kB/s]" + } + }, + "026b251acf294bb8902aff109a7f6f5d": { + "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 + } + }, + "6a4966cc6cc841fe86a704cd98bdb52d": { + "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 + } + }, + "371e82101aa14e90839490638c90a68e": { + "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": "" + } + }, + "8dd3f484a6e94b8aae8b7cb1675e7ec1": { + "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 + } + }, + "72a3ecffa85948169f786ab1154b943f": { + "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": "" + } + }, + "79621956769e4912bb6965df4e2c574a": { + "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 + } + }, + "e9a97237031d4bbd9a3582936f25d72b": { + "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": "" + } + }, + "371154699498422189229c97ccbfa508": { + "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_51de31720ffc40ba8067dd2c2033851b", + "IPY_MODEL_8c1eaf11c9db4c09aa6936a201615412", + "IPY_MODEL_57ac64a5a8534de889c977d558fb81b8" + ], + "layout": "IPY_MODEL_7fb1c882a0524cbd8a71ab42cf54d02a" + } + }, + "51de31720ffc40ba8067dd2c2033851b": { + "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_981ae04516214af6995cd9f846f5f45a", + "placeholder": "​", + "style": "IPY_MODEL_815a8f36e137412aa54aa012adb7306d", + "value": "Downloading (…)"pytorch_model.bin";: 100%" + } + }, + "8c1eaf11c9db4c09aa6936a201615412": { + "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_83723a5f3104486193880e58b7e9228c", + "max": 440473133, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9947d9cd0a124c26b132c75e3bcafd2b", + "value": 440473133 + } + }, + "57ac64a5a8534de889c977d558fb81b8": { + "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_a323a1744edb4e84b7f2b80530abc097", + "placeholder": "​", + "style": "IPY_MODEL_665af58d5b5349f1a85dd4493407020f", + "value": " 440M/440M [00:02<00:00, 145MB/s]" + } + }, + "7fb1c882a0524cbd8a71ab42cf54d02a": { + "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 + } + }, + "981ae04516214af6995cd9f846f5f45a": { + "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 + } + }, + "815a8f36e137412aa54aa012adb7306d": { + "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": "" + } + }, + "83723a5f3104486193880e58b7e9228c": { + "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 + } + }, + "9947d9cd0a124c26b132c75e3bcafd2b": { + "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": "" + } + }, + "a323a1744edb4e84b7f2b80530abc097": { + "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 + } + }, + "665af58d5b5349f1a85dd4493407020f": { + "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": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Instalacja pakietów" + ], + "metadata": { + "id": "t2xXKpOpcZg_" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fdpN7ugfauLD", + "outputId": "e96c1a3b-4a4a-4ebc-b71c-163dd775c5ca" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting transformers\n", + " Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m51.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting datasets\n", + " Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m43.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n", + "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\n", + " Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m107.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", + "Collecting huggingface-hub<1.0,>=0.11.0\n", + " Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m27.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", + "Collecting multiprocess\n", + " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m20.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", + "Collecting xxhash\n", + " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m24.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", + "Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", + "Collecting responses<0.19\n", + " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", + "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", + "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", + "Collecting urllib3<1.27,>=1.21.1\n", + " Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m18.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", + "Installing collected packages: tokenizers, xxhash, urllib3, multiprocess, responses, huggingface-hub, transformers, datasets\n", + " Attempting uninstall: urllib3\n", + " Found existing installation: urllib3 1.24.3\n", + " Uninstalling urllib3-1.24.3:\n", + " Successfully uninstalled urllib3-1.24.3\n", + "Successfully installed datasets-2.9.0 huggingface-hub-0.12.0 multiprocess-0.70.14 responses-0.18.0 tokenizers-0.13.2 transformers-4.26.1 urllib3-1.26.14 xxhash-3.2.0\n" + ] + } + ], + "source": [ + "!pip install transformers datasets torch" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Załadowanie pakietów" + ], + "metadata": { + "id": "s8cfdy_6ldCn" + } + }, + { + "cell_type": "code", + "source": [ + "from datasets import load_dataset\n", + "from transformers import BertTokenizer\n", + "import torch\n", + "from torch.utils.data import TensorDataset, random_split\n", + "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler\n", + "from transformers import BertForSequenceClassification, BertConfig\n", + "from transformers import get_linear_schedule_with_warmup\n", + "import numpy as np\n", + "import time\n", + "import datetime\n", + "import random" + ], + "metadata": { + "id": "yLS_x9DIlgSs" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Załadowanie datasetu\n", + "sms_spam" + ], + "metadata": { + "id": "fPwDyJd5cdaE" + } + }, + { + "cell_type": "code", + "source": [ + "dataset = load_dataset(\"sms_spam\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 244, + "referenced_widgets": [ + "26f1d5f367aa49c9a572adcded83219a", + "b5eaae22aefd429d9946c7c644c0cd02", + "3d95f755191647889171d659ddd6c755", + "322e6c92a93845d683028f1ac77fd991", + "a1edcaafe9a349a487875ad77ccd00c9", + "f1d9de6c2e864d5481f04af80d92058e", + "e2124cb283c045f5822a395ce8b5fe6d", + "e4e57cf95df04f56a4ef4ae990344116", + "cccb07d8327342fa8f30de34f056543e", + "a1fa218698f64411a80bcf999ca1e786", + "3cf8102ac99f4c419dda058164653aaa", + "fc229165f10d40d59c6d751a13848f6d", + "bdafd6edd15c45f0849ec4973f4f0930", + "9e821b7e6efa4cbcb200944969338ac0", + "043b8b140ad54391ba0aff7062628eea", + "6730bd27c7404ccba47d535da42dc4df", + "9ea0e304a63548bfa044e31f8b4c15d5", + "0d1e9d91e7dc4707b20266aaef49eb1c", + "6eac05fb740f4483953ba2e1ad610019", + "28d758c4f4a8401c9a30fb87a71be070", + "c36f89ddd4b847c2a0cceeae00aee173", + "68ad89e9846d479ba7d4e3828e0cfb77", + "39e2d7303cdf4d02bf2d31352a6e1e46", + "50e674ad4a94415cb45eacd4fc3fe267", + "ac515908ad4e48e392ab95322b9fce70", + "5a286626f8824392a545c771d84a9c1e", + "05abdaeba97b4cdba119f09cdd7d6dd5", + "a2497b2b41e94dad9750dd9dafe56685", + "abff67fe155a4646a27f821911e433ad", + "269fd836fbb0407a9e9eff325fdf8abe", + "f102c4257ca545b88da535d532c912c8", + "4a00e2b3f66f4bfc8f17cc4ceeaec36c", + "ad54e2070fe04f699966193c4f009599", + "1b3b7113964f4323ba191fcf81234c9e", + "97271051ebb84baf817732aa9a0c40ed", + "522da98c97d347de8ff5e6e2dda3dda7", + "fae8dbc9f7924039aebcda0a044323ec", + "16d7fdc67b144af7a4a1d310d90aeb7a", + "1150dfcfc607448b8cb6e7d2d81717f4", + "c88918df12b44f1a8cefebab628eb4bd", + "9395f6da4e5c437d80b65c207e81f9bd", + "7d20ee84bb5e45f282e960a37f544901", + "fc689018e6f04ad0aeae11caca7ec1e6", + "2e0c88489b06443d849ca955b77b2577", + "442c9a346ffe451eb7fb70e906b554a7", + "25980d4dc17b412c9e76a9efdf251759", + "704713f8cceb4792bb986520698d0be5", + "6f4fc94edab84a65ba57b34a2d0b2422", + "429b0cd8d6a643ac8a69c5b6adbd53a4", + "0d71e715ffeb445e9e233a6d6bc2de2b", + "c713be1ba0904e7a8e95a6eb7108b630", + "91b3bd32d53b4fe5ad21814fcb73a4a2", + "0cbf05e2f58f4bd289e3e845f64dce7e", + "edbf793856b24cb3a0d81c110e2c58fd", + "d57ed46f96fa4d51bac74fcc326700cc", + "bab7298185af41188969a03e81489efc", + "b0fba461ad5f4826a082787223335564", + "e6ec15b30b8040d38098ea1fd383b77d", + "678b9387f0454322b78f873de4febbda", + "146e93df04c6431fbc5f810541f61bc4", + "0632ab2656404dd4b64330fc98a9a229", + "61d2037630ad44d5ad6204724fe62108", + "c7465ee25ec341709908366f2c1e6cb9", + "0f57b73714264ca8b6b5a83e7d03a340", + "0d83fcf09db44518889abe9e2d3a4756", + "3da9d5cbd9ce48758e5a86242c5c74a3" + ] + }, + "id": "N1EWeM0KcYtO", + "outputId": "a323ce09-0f64-4317-b1ef-a154e54994d6" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading builder script: 0%| | 0.00/3.21k [00:005,} test samples'.format(test_size))\n", + "print('{:>5,} training samples'.format(train_size))\n", + "print('{:>5,} validation samples'.format(val_size))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vH3yXhA0hT3n", + "outputId": "1023a01b-60b0-4de0-ba97-28518b935a21" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1,000 test samples\n", + "4,116 training samples\n", + " 458 validation samples\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create train and validation loaders" + ], + "metadata": { + "id": "z1hVsejihpO2" + } + }, + { + "cell_type": "code", + "source": [ + "batch_size = 32\n", + "\n", + "train_dataloader = DataLoader(\n", + " train_dataset,\n", + " sampler = RandomSampler(train_dataset),\n", + " batch_size = batch_size\n", + " )\n", + "\n", + "validation_dataloader = DataLoader(\n", + " val_dataset,\n", + " sampler = SequentialSampler(val_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "k4pXght6hre3" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Device check" + ], + "metadata": { + "id": "MnErwHAbl_rF" + } + }, + { + "cell_type": "code", + "source": [ + "if torch.cuda.is_available(): \n", + " device = torch.device(\"cuda\")\n", + "\n", + " print('There are %d GPU(s) available.' % torch.cuda.device_count())\n", + " print('We will use the GPU:', torch.cuda.get_device_name(0))\n", + "\n", + "else:\n", + " print('No GPU available, using the CPU instead.')\n", + " device = torch.device(\"cpu\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "aUvyBFxzmBUy", + "outputId": "830f843f-f1ab-47ee-def7-0dfa3943b264" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "There are 1 GPU(s) available.\n", + "We will use the GPU: Tesla T4\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Load BERT model" + ], + "metadata": { + "id": "o-YrojT-iIfY" + } + }, + { + "cell_type": "code", + "source": [ + "model = BertForSequenceClassification.from_pretrained(\n", + " \"bert-base-uncased\",\n", + " num_labels = 2,\n", + " output_attentions = False,\n", + " output_hidden_states = False,\n", + ")\n", + "\n", + "model.cuda()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "371154699498422189229c97ccbfa508", + "51de31720ffc40ba8067dd2c2033851b", + "8c1eaf11c9db4c09aa6936a201615412", + "57ac64a5a8534de889c977d558fb81b8", + "7fb1c882a0524cbd8a71ab42cf54d02a", + "981ae04516214af6995cd9f846f5f45a", + "815a8f36e137412aa54aa012adb7306d", + "83723a5f3104486193880e58b7e9228c", + "9947d9cd0a124c26b132c75e3bcafd2b", + "a323a1744edb4e84b7f2b80530abc097", + "665af58d5b5349f1a85dd4493407020f" + ] + }, + "id": "sIP3VGZmiK9s", + "outputId": "2f4e0a13-f379-4033-cca7-92dfc0155cd5" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading (…)\"pytorch_model.bin\";: 0%| | 0.00/440M [00:0012}\".format(p[0], str(tuple(p[1].size()))))\n", + "\n", + "print('\\n==== First Transformer ====\\n')\n", + "\n", + "for p in params[5:21]:\n", + " print(\"{:<55} {:>12}\".format(p[0], str(tuple(p[1].size()))))\n", + "\n", + "print('\\n==== Output Layer ====\\n')\n", + "\n", + "for p in params[-4:]:\n", + " print(\"{:<55} {:>12}\".format(p[0], str(tuple(p[1].size()))))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "QRAQLbNuigcW", + "outputId": "b01b3fc8-1c72-4529-bd88-cc019c097361" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The BERT model has 201 different named parameters.\n", + "\n", + "==== Embedding Layer ====\n", + "\n", + "bert.embeddings.word_embeddings.weight (30522, 768)\n", + "bert.embeddings.position_embeddings.weight (512, 768)\n", + "bert.embeddings.token_type_embeddings.weight (2, 768)\n", + "bert.embeddings.LayerNorm.weight (768,)\n", + "bert.embeddings.LayerNorm.bias (768,)\n", + "\n", + "==== First Transformer ====\n", + "\n", + "bert.encoder.layer.0.attention.self.query.weight (768, 768)\n", + "bert.encoder.layer.0.attention.self.query.bias (768,)\n", + "bert.encoder.layer.0.attention.self.key.weight (768, 768)\n", + "bert.encoder.layer.0.attention.self.key.bias (768,)\n", + "bert.encoder.layer.0.attention.self.value.weight (768, 768)\n", + "bert.encoder.layer.0.attention.self.value.bias (768,)\n", + "bert.encoder.layer.0.attention.output.dense.weight (768, 768)\n", + "bert.encoder.layer.0.attention.output.dense.bias (768,)\n", + "bert.encoder.layer.0.attention.output.LayerNorm.weight (768,)\n", + "bert.encoder.layer.0.attention.output.LayerNorm.bias (768,)\n", + "bert.encoder.layer.0.intermediate.dense.weight (3072, 768)\n", + "bert.encoder.layer.0.intermediate.dense.bias (3072,)\n", + "bert.encoder.layer.0.output.dense.weight (768, 3072)\n", + "bert.encoder.layer.0.output.dense.bias (768,)\n", + "bert.encoder.layer.0.output.LayerNorm.weight (768,)\n", + "bert.encoder.layer.0.output.LayerNorm.bias (768,)\n", + "\n", + "==== Output Layer ====\n", + "\n", + "bert.pooler.dense.weight (768, 768)\n", + "bert.pooler.dense.bias (768,)\n", + "classifier.weight (2, 768)\n", + "classifier.bias (2,)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Init training parameters" + ], + "metadata": { + "id": "NZDC4iiQizdX" + } + }, + { + "cell_type": "code", + "source": [ + "optimizer = torch.optim.AdamW(model.parameters(),\n", + " lr = 2e-5,\n", + " eps = 1e-8\n", + " )\n", + "\n", + "epochs = 4\n", + "\n", + "total_steps = len(train_dataloader) * epochs\n", + "\n", + "scheduler = get_linear_schedule_with_warmup(optimizer, \n", + " num_warmup_steps = 0,\n", + " num_training_steps = total_steps)" + ], + "metadata": { + "id": "_uffUPNEi3S5" + }, + "execution_count": 14, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Helper functions" + ], + "metadata": { + "id": "bnAwgfZekeYD" + } + }, + { + "cell_type": "code", + "source": [ + "def flat_accuracy(preds, labels):\n", + " pred_flat = np.argmax(preds, axis=1).flatten()\n", + " labels_flat = labels.flatten()\n", + " return np.sum(pred_flat == labels_flat) / len(labels_flat)\n", + "\n", + "def format_time(elapsed):\n", + " '''\n", + " Takes a time in seconds and returns a string hh:mm:ss\n", + " '''\n", + " elapsed_rounded = int(round((elapsed)))\n", + " \n", + " return str(datetime.timedelta(seconds=elapsed_rounded))" + ], + "metadata": { + "id": "Z3XSZuFmkgVr" + }, + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Training" + ], + "metadata": { + "id": "L-ZeLPfbkqy9" + } + }, + { + "cell_type": "code", + "source": [ + "# This training code is based on the `run_glue.py` script here:\n", + "# https://github.com/huggingface/transformers/blob/5bfcd0485ece086ebcbed2d008813037968a9e58/examples/run_glue.py#L128\n", + "\n", + "seed_val = 42\n", + "\n", + "random.seed(seed_val)\n", + "np.random.seed(seed_val)\n", + "torch.manual_seed(seed_val)\n", + "torch.cuda.manual_seed_all(seed_val)\n", + "\n", + "training_stats = []\n", + "total_t0 = time.time()\n", + "\n", + "for epoch_i in range(0, epochs):\n", + " \n", + " # ========================================\n", + " # Training\n", + " # ========================================\n", + "\n", + " print(\"\")\n", + " print('======== Epoch {:} / {:} ========'.format(epoch_i + 1, epochs))\n", + " print('Training...')\n", + "\n", + " t0 = time.time()\n", + " total_train_loss = 0\n", + "\n", + " model.train()\n", + "\n", + " for step, batch in enumerate(train_dataloader):\n", + " if step % 40 == 0 and not step == 0:\n", + " elapsed = format_time(time.time() - t0)\n", + " print(' Batch {:>5,} of {:>5,}. Elapsed: {:}.'.format(step, len(train_dataloader), elapsed))\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + " b_labels = batch[2].to(device)\n", + "\n", + " model.zero_grad() \n", + "\n", + " outputs = model(b_input_ids, \n", + " token_type_ids=None, \n", + " attention_mask=b_input_mask, \n", + " labels=b_labels)\n", + "\n", + " loss = outputs['loss']\n", + " total_train_loss += loss.item()\n", + "\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n", + "\n", + " optimizer.step()\n", + " scheduler.step()\n", + "\n", + " avg_train_loss = total_train_loss / len(train_dataloader) \n", + " training_time = format_time(time.time() - t0)\n", + "\n", + " print(\"\")\n", + " print(\" Average training loss: {0:.2f}\".format(avg_train_loss))\n", + " print(\" Training epcoh took: {:}\".format(training_time))\n", + " \n", + " # ========================================\n", + " # Validation\n", + " # ========================================\n", + "\n", + " print(\"\")\n", + " print(\"Running Validation...\")\n", + "\n", + " t0 = time.time()\n", + " model.eval()\n", + "\n", + " total_eval_accuracy = 0\n", + " total_eval_loss = 0\n", + " nb_eval_steps = 0\n", + "\n", + " for batch in validation_dataloader:\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + " b_labels = batch[2].to(device)\n", + " \n", + " with torch.no_grad(): \n", + " outputs = model(b_input_ids, \n", + " token_type_ids=None, \n", + " attention_mask=b_input_mask,\n", + " labels=b_labels)\n", + " loss = outputs['loss']\n", + " logits = outputs['logits']\n", + " \n", + " total_eval_loss += loss.item()\n", + "\n", + " logits = logits.detach().cpu().numpy()\n", + " label_ids = b_labels.to('cpu').numpy()\n", + "\n", + " total_eval_accuracy += flat_accuracy(logits, label_ids)\n", + " \n", + "\n", + " avg_val_accuracy = total_eval_accuracy / len(validation_dataloader)\n", + " print(\" Accuracy: {0:.2f}\".format(avg_val_accuracy))\n", + "\n", + " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", + " validation_time = format_time(time.time() - t0)\n", + " \n", + " print(\" Validation Loss: {0:.2f}\".format(avg_val_loss))\n", + " print(\" Validation took: {:}\".format(validation_time))\n", + "\n", + " training_stats.append(\n", + " {\n", + " 'epoch': epoch_i + 1,\n", + " 'Training Loss': avg_train_loss,\n", + " 'Valid. Loss': avg_val_loss,\n", + " 'Valid. Accur.': avg_val_accuracy,\n", + " 'Training Time': training_time,\n", + " 'Validation Time': validation_time\n", + " }\n", + " )\n", + "\n", + "print(\"\")\n", + "print(\"Training complete!\")\n", + "\n", + "print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "QZ9H2EJNksT_", + "outputId": "7c5d39fb-13d3-48c0-8d04-1dba8740bfcd" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "======== Epoch 1 / 4 ========\n", + "Training...\n", + " Batch 40 of 129. Elapsed: 0:00:49.\n", + " Batch 80 of 129. Elapsed: 0:01:34.\n", + " Batch 120 of 129. Elapsed: 0:02:19.\n", + "\n", + " Average training loss: 0.11\n", + " Training epcoh took: 0:02:29\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.99\n", + " Validation Loss: 0.07\n", + " Validation took: 0:00:06\n", + "\n", + "======== Epoch 2 / 4 ========\n", + "Training...\n", + " Batch 40 of 129. Elapsed: 0:00:46.\n", + " Batch 80 of 129. Elapsed: 0:01:30.\n", + " Batch 120 of 129. Elapsed: 0:02:15.\n", + "\n", + " Average training loss: 0.02\n", + " Training epcoh took: 0:02:25\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.99\n", + " Validation Loss: 0.08\n", + " Validation took: 0:00:06\n", + "\n", + "======== Epoch 3 / 4 ========\n", + "Training...\n", + " Batch 40 of 129. Elapsed: 0:00:45.\n", + " Batch 80 of 129. Elapsed: 0:01:30.\n", + " Batch 120 of 129. Elapsed: 0:02:15.\n", + "\n", + " Average training loss: 0.00\n", + " Training epcoh took: 0:02:25\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.98\n", + " Validation Loss: 0.10\n", + " Validation took: 0:00:06\n", + "\n", + "======== Epoch 4 / 4 ========\n", + "Training...\n", + " Batch 40 of 129. Elapsed: 0:00:45.\n", + " Batch 80 of 129. Elapsed: 0:01:30.\n", + " Batch 120 of 129. Elapsed: 0:02:15.\n", + "\n", + " Average training loss: 0.00\n", + " Training epcoh took: 0:02:25\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.99\n", + " Validation Loss: 0.09\n", + " Validation took: 0:00:06\n", + "\n", + "Training complete!\n", + "Total training took 0:10:06 (h:mm:ss)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Train summary" + ], + "metadata": { + "id": "eZ1fmJMjrRgc" + } + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "pd.set_option('precision', 2)\n", + "df_stats = pd.DataFrame(data=training_stats)\n", + "\n", + "df_stats = df_stats.set_index('epoch')\n", + "df_stats" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "w4ov2mClrLGW", + "outputId": "ad5057e3-f0e5-44c0-8c5a-bf4d69c600ab" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Training Loss Valid. Loss Valid. Accur. Training Time Validation Time\n", + "epoch \n", + "1 1.07e-01 0.07 0.99 0:02:29 0:00:06\n", + "2 1.89e-02 0.08 0.99 0:02:25 0:00:06\n", + "3 4.73e-03 0.10 0.98 0:02:25 0:00:06\n", + "4 1.93e-03 0.09 0.99 0:02:25 0:00:06" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Training LossValid. LossValid. Accur.Training TimeValidation Time
epoch
11.07e-010.070.990:02:290:00:06
21.89e-020.080.990:02:250:00:06
34.73e-030.100.980:02:250:00:06
41.93e-030.090.990:02:250:00:06
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import seaborn as sns\n", + "\n", + "sns.set(style='darkgrid')\n", + "\n", + "sns.set(font_scale=1.5)\n", + "plt.rcParams[\"figure.figsize\"] = (12,6)\n", + "\n", + "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", + "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", + "\n", + "plt.title(\"Training & Validation Loss\")\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.legend()\n", + "plt.xticks([1, 2, 3, 4])\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "4Jg3MOeZrTf9", + "outputId": "1782176d-be6e-43c8-8903-d1e698d3d700" + }, + "execution_count": 18, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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Z6NXr16IjIzE0KFDsXr1apSXl9vsq9Fo8Pbbb2PAgAGIiIhA7969MW3aNBw+fNhm35ycHLz00kvo2bMnOnfujOeeew6XLl1qkOsmIrJX7IEnImrmSkpKcP36dZt2uVwOpVJp+f2BAweQnp6OiRMnwsfHBwcOHMCnn36KzMxMvPfee5b9zpw5g0mTJkEqlVr2PXjwIJYuXYqUlBR88MEHln0zMjLw9NNPIy8vDyNHjkRERARKSkpw+vRpHDlyBH369LHsW1xcjGeeeQadO3fGwoULkZGRgfXr12PWrFnYvn07JBJJA/0JERHZFwZ4IqJmLiYmBjExMTbt/fr1w+eff275fUpKCjZv3ozw8HAAwDPPPIM5c+YgNjYW48ePR5cuXQAA77zzDgwGA7799luEhYVZ9l2wYAG2b9+OsWPHonfv3gCAf//738jNzcWaNWvw8MMPW53fZDJZ/f7GjRt47rnnMH36dEubl5cXlixZgiNHjtgcT0TUVDHAExE1c+PHj0d0dLRNu5eXl9XvH3roIUt4BwCRSITnn38e+/btw969e9GlSxfk5eXh5MmTGDRokCW8V+774osvYteuXdi7dy969+6N/Px8/PLLL3j44YerDd+3v0QrFottZs158MEHAQCXL19mgCeiZoMBnoiomQsODsZDDz101/1CQkJs2tq1awcASE9PB1AxJObW9lu1bdsWYrHYsu+VK1dgNpvRqVOnWtXp6+sLhUJh1ebh4QEAyM/Pr9VnEBE1BXyJlYiIHMKdxribzeZGrISISFgM8EREVCupqak2bRcuXAAABAUFAQACAwOt2m918eJFmEwmy76tWrWCSCRCcnJyQ5VMRNQkMcATEVGtHDlyBGfPnrX83mw2Y82aNQCAgQMHAgC8vb3RtWtXHDx4EOfPn7fad9WqVQCAQYMGAagY/vLII4/g0KFDOHLkiM352KtORFQ9joEnImrmkpKSEB8fX+22ymAOAGFhYZgyZQomTpwItVqN/fv348iRIxg5ciS6du1q2W/RokWYNGkSJk6ciAkTJkCtVuPgwYP49ddfMWzYMMsMNADwz3/+E0lJSZg+fTpGjRqF8PBw6PV6nD59Gi1btsTf//73hrtwIiIHxQBPRNTMbd++Hdu3b6922549eyxjzx977DG0adMGn3/+OS5dugRvb2/MmjULs2bNsjomMjIS3377LT755BP873//Q3FxMYKCgvDyyy/j2Weftdo3KCgIW7ZswfLly3Ho0CHEx8fDzc0NYWFhGD9+fMNcMBGRgxOZ+YySiIjuICMjAwMGDMCcOXMwd+5cocshImr2OAaeiIiIiMiBMMATERERETkQBngiIiIiIgfCMfBERERERA6EPfBERERERA6EAZ6IiIiIyIEwwBMRERERORAGeCIiIiIiB8IAT0RERETkQBjgiYiIiIgcyP8HWCG5ih+5mMkAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create test loader" + ], + "metadata": { + "id": "kn87qhtR9MP4" + } + }, + { + "cell_type": "code", + "source": [ + "prediction_dataloader = DataLoader(\n", + " test_dataset,\n", + " sampler = SequentialSampler(test_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "ENqiBZio9a7a" + }, + "execution_count": 19, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Evaluate on test dataset" + ], + "metadata": { + "id": "dAF9Iqol-kAP" + } + }, + { + "cell_type": "code", + "source": [ + "print('Predicting labels for {:,} test sentences...'.format(len(test_dataset)))\n", + "\n", + "model.eval()\n", + "predictions , true_labels = [], []\n", + "\n", + "for batch in prediction_dataloader:\n", + " batch = tuple(t.to(device) for t in batch)\n", + " \n", + " b_input_ids, b_input_mask, b_labels = batch\n", + " \n", + " with torch.no_grad():\n", + " outputs = model(b_input_ids, token_type_ids=None, \n", + " attention_mask=b_input_mask)\n", + "\n", + " logits = outputs['logits']\n", + "\n", + " logits = logits.detach().cpu().numpy()\n", + " label_ids = b_labels.to('cpu').numpy()\n", + " \n", + " predictions.append(logits)\n", + " true_labels.append(label_ids)\n", + "\n", + "print(' DONE.')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XXCWIk8c9Oun", + "outputId": "ad95fd9e-f132-4cef-d848-57d126687d8b" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Predicting labels for 1,000 test sentences...\n", + " DONE.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "results_ok = 0\n", + "results_false = 0\n", + "for idx, true_labels_batch in enumerate(true_labels):\n", + " predictions_i = np.argmax(predictions[idx], axis=1).flatten()\n", + " for bidx, true_label in enumerate(true_labels_batch):\n", + " if true_label == predictions_i[bidx]:\n", + " results_ok += 1\n", + " else:\n", + " results_false += 1\n", + "\n", + "print(\"Correct predictions: {}, incorrect results: {}, accuracy: {}\".format(results_ok, results_false, float(results_ok) / (results_ok + results_false)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TVIFBFmFEwNv", + "outputId": "8d0a7751-cb1b-40ed-a705-40944ec75309" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Correct predictions: 994, incorrect results: 6, accuracy: 0.994\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# MCC Score" + ], + "metadata": { + "id": "6gTgKchs_OXY" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "matthews_set = []\n", + "print('Calculating Matthews Corr. Coef. for each batch...')\n", + "\n", + "for i in range(len(true_labels)):\n", + " pred_labels_i = np.argmax(predictions[i], axis=1).flatten()\n", + "\n", + " matthews = matthews_corrcoef(true_labels[i], pred_labels_i) \n", + " matthews_set.append(matthews)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hOelDEdn_QDE", + "outputId": "022d5656-09cb-4279-878e-13611ceb68fc" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Calculating Matthews Corr. Coef. for each batch...\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "ax = sns.barplot(x=list(range(len(matthews_set))), y=matthews_set, ci=None)\n", + "\n", + "plt.title('MCC Score per Batch')\n", + "plt.ylabel('MCC Score (-1 to +1)')\n", + "plt.xlabel('Batch #')\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "cF34A88N_UgQ", + "outputId": "439ba21c-94a3-4a7b-bbc8-c2b828dbc6ba" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuUAAAGaCAYAAACopj13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde3yMZ/7/8ffkLAkSaaKKoIg4xbGUUqVo1JlQiji0qNJt9asbtr92d7vdUlR10RZtldAqkkixDqXdHpyLChWKOoRsmSIhiUgk8/vDV76NScYkmXGTvJ6Ph8fKdd/X5/5MJmbfuXvNNSaLxWIRAAAAAMO4GN0AAAAAUNYRygEAAACDEcoBAAAAgxHKAQAAAIMRygEAAACDEcoBAAAAgxHKAQC4SwwbNkydOnUyug0ABnAzugEAKKmdO3cqMjJSkjRkyBC9/vrrVudcuHBBHTp0UHZ2tlq1aqXo6Gircw4cOKBly5Zp9+7dMpvNcnFxUbVq1dSmTRsNGjRItWvXznf+1atX9cUXX2jTpk06duyY0tPTVbFiRTVs2FDdunVTr1695OZm+2X2ypUrio6O1saNG3X27Fnl5OTI399foaGh6tixowYMGFCC7wxu1alTJ509ezbva5PJpICAANWqVUuDBw9W9+7di1178+bNSkxM1AsvvOCIVgGUMYRyAKWGp6en1q5dq8mTJ8vDwyPfsfj4eFkslkJD8ty5czV37lz5+/urR48eqlOnjnJzc3Xs2DGtX79ey5Yt065du+Tr6ytJOnXqlMaMGaOTJ0+qbdu2GjNmjPz9/XXhwgVt375dU6ZM0bFjx/TnP/+50H7T0tIUERGhpKQkPfHEE+rfv7/c3d2VlJSkvXv3asmSJYRyJ7j//vv18ssvS5Jyc3N17tw5xcXF6eWXX5bZbNaIESOKVXfz5s2Ki4sjlAMoFkI5gFKjS5cuWrt2rTZv3qwnn3wy37HY2Fg9+uij2rFjh9W8VatWac6cOWrdurXmzZun8uXL5zv+yiuvaO7cuXlfZ2ZmauzYsTpz5ozmzJmjrl275jt/zJgxSkhI0IEDB2z2u2LFCp08eVJ/+ctfNHz4cKvjZrP5to/ZGdLS0vJ++biXWCwWZWRkyMfHx+Z55cuXV+/evfONPfXUU2rfvr1iY2OLHcoBoCRYUw6g1GjQoIHq1aun2NjYfOMJCQk6evSo+vfvbzUnKytLs2fPlre3t2bPnm0VyCXJy8tLkyZNyguqK1eu1IkTJzRy5EirQH5TWFiYhgwZYrPfkydPSpLatGlT4PHAwECrsVOnTmnKlCl69NFH1ahRI7Vr107jxo3TwYMH8523efNmDRo0SE2bNlWzZs00aNAgbd682apep06dNGzYMB06dEjPPPOMWrRooV69euXr8ZVXXlG7du3UqFEjderUSW+//bYyMjJsPrZb6//888+KjIxUs2bN1KpVK0VFRenChQtW52dlZenDDz9U9+7d1bhxY7Vs2VLPPfecDh06lO+8nTt35j3Xy5Yt05NPPqnGjRvrk08+sauvW1WsWFEeHh5yd3fPN56QkKDJkyfriSeeUJMmTfK+l1999VW+84YNG6a4uDhJUr169fL+/PFn0Ww2680339Tjjz+uRo0aqU2bNho5cqS2bt1q1c+5c+f08ssv66GHHlKTJk30zDPP6MSJE8V6bADuDdwpB1Cq9O/fX9OmTdO5c+dUuXJlSTfuhAcEBOixxx6zOn/v3r0ym83q3bu3KlWqZNc1Nm7cKOnG3dWSCA4OlnTjLv6kSZNuu/78wIEDGjFihK5fv66IiAjVrVtXqamp2rVrl/bt26dGjRpJkpYtW6Y33nhDDz74oJ5//nlJUlxcnMaPH6833njDqu/k5GQNHz5c4eHh6tq1a17gPnjwoIYPH64KFSroqaeeUuXKlXX48GFFR0dr3759io6OtgqxBfntt980YsQIde3aVU888YQOHTqkmJgYHTx4UKtWrVK5cuUkSdnZ2XrmmWe0b98+9e7dW0OGDFFaWppWrFihwYMHa+nSpWrcuHG+2osXL1ZKSooGDBigwMBA3X///bftJycnRxcvXpR0Y/mK2WzWkiVLlJ6erkGDBuU796uvvtKvv/6q8PBwVa1aVSkpKYqLi9OECRM0c+ZM9ezZU5L03HPPKTc3Vz/++KOmT5+eN7958+aSpDNnzmjw4MG6cOGCevfurUaNGunq1avav3+/tm3bpkceeSRvTkZGhoYOHaomTZpo4sSJOnPmjJYsWaLnn39ea9eulaur620fI4B7kAUA7nE7duywhISEWD766CPLxYsXLQ0bNrR88MEHFovFYrl69aqlRYsWlmnTplksFouladOmlqFDh+bNXbJkiSUkJMTyySef2H29Vq1aWZo3b17ivlNSUiwdOnSwhISEWNq0aWN54YUXLPPnz7fs3r3bkpOTk+/c3NxcS/fu3S2NGjWyJCYmWtW6eX5KSoqladOmls6dO1uuXLmSd/zKlSuWxx9/3NK0aVNLampq3njHjh0tISEhlhUrVljV7Nmzp+WJJ57IV8disVg2bdpkCQkJscTExNz2Md6sv2jRonzjixYtsoSEhFjmz59vNfbdd9/lO/fKlSuWDh065Hvebj7nDz30kOX333+/bR+39nPrn8aNG1uWL19udX56errVWEZGhqVr166Wbt265RuPioqyhISEFHjdZ599tsDHZrFY8j3XQ4cOtYSEhFgWLFiQ75yFCxcWOh9A6cDyFQClir+/vzp16pS3lGDTpk26cuVKgUtXpBvrpyUVaQ11Wlrabdct26NixYqKjY3V6NGjVb58eW3cuFHvvPOOhgwZos6dO+uHH37IOzcxMVFHjx5Vv379FBoaalXLxeXGy/nWrVuVkZGhYcOG5XtMvr6+GjZsmDIyMrRt27Z8c/38/NSvX798Y0eOHNGRI0fUo0cPZWVl6eLFi3l/WrRoIW9v7wKXXRTE19dXTz/9dL6xp59+Wr6+vvmWgXz55Zd68MEH1bBhw3zXy8rKUtu2bbVnzx5lZmbmq9O7d28FBATY1cdNVatW1aJFi7Ro0SJ98sknmjZtmpo0aaK//e1viomJyXeut7d33t+vXr2qS5cu6erVq3r44Yd1/PjxvJ8fW1JSUvT999+rffv2at++vdXxm8/dH7++uZvQTQ8//LCkG8uXAJROLF8BUOr0799fY8aM0Y8//qiYmBiFhYWpTp06BZ57M7imp6fbXd/X17dI59tSqVIlTZo0SZMmTdKlS5f0008/af369fryyy81YcIExcfHq0aNGnnrzxs0aGCz3pkzZyRJdevWtTp2cywpKSnfePXq1a2WRBw/flySNGfOHM2ZM6fAa/3++++3f4D/W//W3XA8PDxUvXr1fL0cP35cmZmZha6xl6RLly6pSpUqeV/XrFnTrh7+yNvbW23bts031rNnT/Xt21dvvvmmOnXqJH9/f0k3ttKcPXu2tmzZUuAa+MuXL9/2F7rTp0/LYrHc9rm7KSgoSJ6envnG/Pz8JN0I+ABKJ0I5gFKnXbt2qly5subNm6edO3fqb3/7W6Hn3gyqt76R0Ja6detq9+7dSkpKUvXq1Uvabh5/f3917NhRHTt2VJUqVfThhx9q3bp1eevCneXmmu6CjBo1qsC7u5JUoUIFh/ZhsVgUEhKiKVOmFHrOrev+bfVeFG5ubnr44Ye1ZMkSJSQkqEOHDrJYLBo1apSOHz+uyMhINWrUSOXLl5erq6tiYmK0du1a5ebmOuT6f2RrzbjFYnH49QDcHQjlAEodV1dX9enTR/Pnz5eXl5d69OhR6LnNmzdXYGCgNm/erEuXLuXdIbWla9eu2r17t1auXJm337WjNWnSRNKNXTgkqVatWpJuLGOx5eYvCUePHrW643zs2LF859hSo0YNSTeWUtx6V7mokpKSlJWVle9ueVZWlpKSkvTggw/mu+alS5f08MMPWy3puBOuX78u6f/+q8mRI0d0+PBhjR8/Xn/605/ynbty5Uqr+SaTqcC6wcHBMplMt33uAJRtrCkHUCoNGjRIEyZM0N///nebyws8PDz00ksvKT09XRMnTixwjfC1a9c0a9asvGMDBgxQrVq19MknnxS4zaB0Y+eSZcuW2exx3759unz5coHHbta9uewmNDRUdevWVUxMjI4ePWp1/s07qI888oi8vb21dOnSfI8lLS1NS5culbe3d76dPgrToEEDhYSEaPny5VbLXaQbAdbepRRpaWn67LPP8o199tlnSktLU+fOnfPG+vTpI7PZrEWLFhVYx97lMsVx7do1ff/995L+b4nQzV8Mbr07/csvv1htiSj93/rzW78vfn5+evTRR/Xdd99ZrecvqD6Asok75QBKpQceeMDuT1aMiIjQb7/9prlz56pr1675PtHz+PHj2rBhgy5evKgxY8ZIurFkYv78+RozZozGjx+vdu3aqW3btvLz89PFixe1c+dO/fDDD3r22WdtXnfNmjWKjY1Vhw4dFBYWJj8/P6WkpOjbb7/Vzp07VadOnbw3qJpMJr311lsaMWKEBgwYkLcl4uXLl7V79261b99ew4YNU4UKFTRp0iS98cYbGjhwoPr27SvpxpaIp06d0htvvFHgXuy3MplMmj59uoYPH65evXqpf//+qlOnjjIzM3Xq1Cl99dVXevnll63eIFqQ4OBgzZs3T0ePHlXDhg31888/KyYmRg8++KCGDRuWd15kZKS2bdum6dOna8eOHXr44Yfl6+ur5ORk7dixQx4eHoqOjr7t9W7nypUrio+P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d999RSpWtWpV/eUvf9Ho0aNve25CQoLWrVunKVOmaMSIEZKkPn36qEePHpo5c6aWLVtW6Nxly5YpMDBQixcvloeHhyRp4MCBevzxxxUfH08oBwAAwD2l0N1XihrI/ygwMPC252zYsEHu7u75ArSnp6ciIiK0Z88enT9/vtC5aWlpqlixYl4glyQPDw9VrFiR9ewAAAC45xi2JWJiYqJq1aolHx+ffONhYWGyWCxKTEwsdG6rVq109OhRzZ49W6dPn9bp06c1e/ZsnTx5UqNGjXJ26wAAAIBD2b0l4u1888032rRpk6ZOnWrX+WazWZUrV7Yav3mX3dad8ueee06nT5/Whx9+qA8++ECS5O3trffff1+PPPJIMboHAAAAjOOwUH748GGtXr3a7lCemZkpd3d3q/Gby0+uXbtW6FwPDw/VrFlT4eHh6tKli3JycrRixQq99NJL+vTTTxUWFlbk/gMCfIs8pzCBgeUdVqus17wXeqQmNalZdmreCz1Sk5rUvDtr3q6ew0J5UXl5eSk7O9tq/GYYt7U2/B//+IcOHDigVatWycXlxgqcbt26qUePHnrrrbe0fPnyIvdz4UKaw4K52Xwl7++OekLLas0/1ivLNe/W54ea1CxrNXn9oCY1qVmSei4upkLzps1QHhkZafeFkpOTi9RYYGBggUtUzGazJCkoKKjAeVlZWVq1apXGjh2bF8glyd3dXe3bt9fnn3+u69evy83NsN83AAAAgCKxmVx37dolNze3ApeZ3Or69etFunBoaKiio6OVnp6e782e+/fvzztekJSUFF2/fl05OTkF9nD9+vVCP3kUAAAAuBvZ3H2lcuXKateunfbt23fbP+PGjSvShcPDw5Wdna2VK1fmjWVlZSk2NlbNmzfPexNocnKyjh8/nndOQECAKlSooK+++irf8pf09HR98803CgkJseuXCAAAAOBuYfNOeYMGDXTgwAG7CplMpiJduEmTJgoPD9fMmTNlNpsVHBysuLg4JScn53uzaFRUlHbt2qUjR45IklxdXTVq1CjNnj1bTz31lHr16qXc3FytWrVKv/32m6KioorUBwAAAGA0m6G8YcOG+uabb3Tu3LkCty/8o/Lly6tKlSpFuvj06dM1e/ZsxcfHKzU1VfXq1dOCBQvUokULm/PGjRunatWqacmSJZo3b56ysrJUr149zZ07V126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U1hYmAYOHKjt27cXqYYkjR49WvXq1dM///nPIs8FAAAAjGZ3KG/btq1WrVpVYDA/duyYYmJi1LZt2yJdfPLkyVq8eLF69eqlV199VS4uLho9erT27dtnd43//Oc/+vHHH4t0XQAAAOBuYveWiOPGjdOmTZsUERGh/v37q379+pKkxMRExcTEyN3dXc8//7zdF05ISNC6des0ZcoUjRgxQpLUp08f9ejRQzNnzrS508tNWVlZmjp1qp555hk+TRQAAAD3LLtDeXBwsD799FNNmTJFn332Wb5jdevW1VtvvaWaNWvafeENGzbI3d1dAwYMyBvz9PRURESE3n33XZ0/f15BQUE2ayxZskSZmZmEcgAAANzTivThQY0bN9batWuVmJiokydPSpJq1aql0NDQIl84MTFRtWrVko+PT77xsLAwWSwWJSYm2gzlZrNZ77//vl5//XWVK1euyNcHAAAA7hZF/kRPSapfv37e8pXiMpvNqly5stV4YGCgJOn8+fM258+aNUu1atVS7969S9QHAAAAYLRihXJJSkpK0rp163Tu3DnVqVNH/fv3l5eXl93zMzMz5e7ubjXu6ekpSbp27VqhcxMSErR69WpFR0fLZDIVvfkCBAT4OqSOJAUGlndYrbJe817okZrUpGbZqXkv9EhNalLz7qx5u3o2Q/nKlSsVHR2tRYsWKSAgIG9869atmjBhgjIzM2WxWGQymbR8+XItX77cajlKYby8vJSdnW01fjOM3wznt7JYLPrnP/+prl27qmXLlnZdyx4XLqQ5LJibzVfy/u6oJ7Ss1vxjvbJc8259fqhJzbJWk9cPalKTmiWp5+JiKjRv2twS8T//+Y98fHzyBXKLxaLXX39dmZmZGjNmjD744AP17dtXR48e1aeffmp3Y4GBgQUuUTGbzZJU6Hryr776SgkJCRo8eLDOnDmT90eS0tLSdObMGWVmZtrdBwAAAGA0m3fKDx8+rG7duuUb27t3r86ePas+ffpo4sSJkqSOHTvq7Nmz2rJli8aPH2/XhUNDQxUdHa309PR8d9f379+fd7wgycnJys3N1fDhw62OxcbGKjY2VgsXLtSjjz5qVx8AAACA0WyG8osXL6p69er5xvbu3SuTyWQV1jt06KB58+bZfeHw8HB98sknWrlyZd4+5VlZWYqNjVXz5s3z3gSanJysq1evqnbt2pKk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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "flat_predictions = np.concatenate(predictions, axis=0)\n", + "\n", + "flat_predictions = np.argmax(flat_predictions, axis=1).flatten()\n", + "flat_true_labels = np.concatenate(true_labels, axis=0)\n", + "\n", + "mcc = matthews_corrcoef(flat_true_labels, flat_predictions)\n", + "\n", + "print('Total MCC: %.3f' % mcc)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vx_SM19o_XqD", + "outputId": "a37b67e7-4b48-4c69-cef1-21dbb0513829" + }, + "execution_count": 24, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Total MCC: 0.973\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Save model" + ], + "metadata": { + "id": "ZE7xxmFJ-oBM" + } + }, + { + "cell_type": "code", + "source": [ + "from google.colab import drive\n", + "\n", + "drive.mount('/content/gdrive/', force_remount=True)\n", + "\n", + "output_dir = '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/BERT_Model'\n", + "print(\"Saving model to %s\" % output_dir)\n", + "\n", + "model_to_save = model.module if hasattr(model, 'module') else model\n", + "model_to_save.save_pretrained(output_dir)\n", + "tokenizer.save_pretrained(output_dir)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fJAqcU8F-p2Z", + "outputId": "329483d2-97dd-4f1e-ee10-b94869c8e5ac" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/gdrive/\n", + "Saving model to /content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/BERT_Model\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "('/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/BERT_Model/tokenizer_config.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/BERT_Model/special_tokens_map.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/BERT_Model/vocab.txt',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/BERT_Model/added_tokens.json')" + ] + }, + "metadata": {}, + "execution_count": 25 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Bibliografia\n", + "https://mccormickml.com/2019/07/22/BERT-fine-tuning/#a1-saving--loading-fine-tuned-model" + ], + "metadata": { + "id": "6pFz8n_aHca9" + } + } + ] +} \ No newline at end of file diff --git a/projekt/FLAN_T5_sms_spam.ipynb b/projekt/FLAN_T5_sms_spam.ipynb new file mode 100644 index 0000000..68423c7 --- /dev/null +++ b/projekt/FLAN_T5_sms_spam.ipynb @@ -0,0 +1,7156 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "gpuClass": "standard", + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "e4bb6f2f32de48d4b1f6d7ecf97ce376": { + "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_3305b30f1bfa48e9b0c1ba3add06094e", + "IPY_MODEL_a343619acbb745baa6aa561271ec8815", + "IPY_MODEL_c493fc54d9eb421f96d6e8519c8a1b0e" + ], + "layout": "IPY_MODEL_12fd6daa8e604ecd9ad731b6296815da" + } + }, + "3305b30f1bfa48e9b0c1ba3add06094e": { + "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_805f497aa3304353a1be8b4cc87bfb54", + "placeholder": "​", + "style": "IPY_MODEL_594a6d13f81f479eb00fa45fd4094146", + "value": "Downloading builder script: 100%" + } + }, + "a343619acbb745baa6aa561271ec8815": { + "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_236979048eb8461f9b7d8c4103905eed", + "max": 3208, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4620faf461ca449a88de45e86467e265", + "value": 3208 + } + }, + "c493fc54d9eb421f96d6e8519c8a1b0e": { + "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_8dc2f0f2e66741edbccab7abaaf634ce", + "placeholder": "​", + "style": "IPY_MODEL_0d49bfb55dfd4090ba57c544eaa97902", + "value": " 3.21k/3.21k [00:00<00:00, 139kB/s]" + } + }, + "12fd6daa8e604ecd9ad731b6296815da": { + "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 + } + }, + "805f497aa3304353a1be8b4cc87bfb54": { + "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 + } + }, + "594a6d13f81f479eb00fa45fd4094146": { + "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": "" + } + }, + "236979048eb8461f9b7d8c4103905eed": { + "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 + } + }, + "4620faf461ca449a88de45e86467e265": { + "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": "" + } + }, + "8dc2f0f2e66741edbccab7abaaf634ce": { + "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 + } + }, + "0d49bfb55dfd4090ba57c544eaa97902": { + "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": "" + } + }, + "4084f218fca64fc9b765e04d0cc073ac": { + "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_fec67d95a5904ac199f6648a34ef1ff9", + "IPY_MODEL_a734d44f6baf4a5f8dfda576c09fffca", + "IPY_MODEL_3fc2d009da594365854aa11be804b388" + ], + "layout": "IPY_MODEL_45c7d35932ec44bcb2ccdc73f0ae6b46" + } + }, + "fec67d95a5904ac199f6648a34ef1ff9": { + "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_0c1c3db046f24599b27daa44217f48d2", + "placeholder": "​", + "style": "IPY_MODEL_c3f9ed611a154e22b875d0696ef6022d", + "value": "Downloading metadata: 100%" + } + }, + "a734d44f6baf4a5f8dfda576c09fffca": { + "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_7fd51c34909b41a8884fa358cccdbf48", + "max": 1687, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9d9edc5471de40c2b7c2b9156637997d", + "value": 1687 + } + }, + "3fc2d009da594365854aa11be804b388": { + "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_02c64bf3ff95438cb43c7dc52034cc43", + "placeholder": "​", + "style": "IPY_MODEL_f0b71ecb6b1c4d1190ca899af7d3e82c", + "value": " 1.69k/1.69k [00:00<00:00, 37.7kB/s]" + } + }, + "45c7d35932ec44bcb2ccdc73f0ae6b46": { + "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 + } + }, + "0c1c3db046f24599b27daa44217f48d2": { + "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 + } + }, + "c3f9ed611a154e22b875d0696ef6022d": { + "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": "" + } + }, + "7fd51c34909b41a8884fa358cccdbf48": { + "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 + } + }, + "9d9edc5471de40c2b7c2b9156637997d": { + "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": "" + } + }, + "02c64bf3ff95438cb43c7dc52034cc43": { + "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 + } + }, + "f0b71ecb6b1c4d1190ca899af7d3e82c": { + "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": "" + } + }, + "8cae9c49e18f43248072b5e059429f6d": { + "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_88c8adca128b44c1bbbec437630c2074", + "IPY_MODEL_0f73f5e2c8af41eaae5f1c27f212da8b", + "IPY_MODEL_255b4480e11f4b3e892a5d2dc6abfd4b" + ], + "layout": "IPY_MODEL_a96eab6312f6447b9eff3f914c5a6827" + } + }, + "88c8adca128b44c1bbbec437630c2074": { + "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_063059d53dc942d1aee9e3fe2f27687d", + "placeholder": "​", + "style": "IPY_MODEL_ca50704df2cc430fae6b5902c5399414", + "value": "Downloading readme: 100%" + } + }, + "0f73f5e2c8af41eaae5f1c27f212da8b": { + "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_64f5cdd8d1c14be79278ee4de89993d1", + "max": 4872, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f065dcd7d1d34cb6806f2eb28bb3cd6f", + "value": 4872 + } + }, + "255b4480e11f4b3e892a5d2dc6abfd4b": { + "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_67663505c87640b58e04d3ce028537ea", + "placeholder": "​", + "style": "IPY_MODEL_f5a17bc6f9f94b2ca119528b0ca2d456", + "value": " 4.87k/4.87k [00:00<00:00, 116kB/s]" + } + }, + "a96eab6312f6447b9eff3f914c5a6827": { + "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 + } + }, + "063059d53dc942d1aee9e3fe2f27687d": { + "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 + } + }, + "ca50704df2cc430fae6b5902c5399414": { + "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": "" + } + }, + "64f5cdd8d1c14be79278ee4de89993d1": { + "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 + } + }, + "f065dcd7d1d34cb6806f2eb28bb3cd6f": { + "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": "" + } + }, + "67663505c87640b58e04d3ce028537ea": { + "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 + } + }, + "f5a17bc6f9f94b2ca119528b0ca2d456": { + "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": "" + } + }, + "ec0f16c3cbb14d9287e148887127219b": { + "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_ba832204e1d4413f8b8a15e10bac7d95", + "IPY_MODEL_8179dbec98b7466ea2195affb0568498", + "IPY_MODEL_7e9abda7b55c459b8a9888edaf1cc116" + ], + "layout": "IPY_MODEL_64c8860ae16848af9b04bb41955a8446" + } + }, + "ba832204e1d4413f8b8a15e10bac7d95": { + "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_64fe250082bf4d4fb126a319920d2f0a", + "placeholder": "​", + "style": "IPY_MODEL_0b278b6f5da94921afbacb873c15d9c9", + "value": "Downloading data: 100%" + } + }, + "8179dbec98b7466ea2195affb0568498": { + "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_b688bc7f34e941488831da5d4aed9396", + "max": 203415, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_44cec66cbaeb49abb26dbfc5420ceacb", + "value": 203415 + } + }, + "7e9abda7b55c459b8a9888edaf1cc116": { + "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_67a750dcfa8b44499956572fda3dbacf", + "placeholder": "​", + "style": "IPY_MODEL_edad6f2eb6704468bd06006c50697f86", + "value": " 203k/203k [00:00<00:00, 171kB/s]" + } + }, + "64c8860ae16848af9b04bb41955a8446": { + "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 + } + }, + "64fe250082bf4d4fb126a319920d2f0a": { + "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 + } + }, + "0b278b6f5da94921afbacb873c15d9c9": { + "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": "" + } + }, + "b688bc7f34e941488831da5d4aed9396": { + "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 + } + }, + "44cec66cbaeb49abb26dbfc5420ceacb": { + "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": "" + } + }, + "67a750dcfa8b44499956572fda3dbacf": { + "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 + } + }, + "edad6f2eb6704468bd06006c50697f86": { + "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": "" + } + }, + "699a1bdf38ca48e2affc3c6bd771852f": { + "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_4e5a92d4acdc43d487290ffd8a842ea5", + "IPY_MODEL_8bc8c44b6324478a8209094f9b7e9ccd", + "IPY_MODEL_e95f31e693674a0aae8de0e167a49daf" + ], + "layout": "IPY_MODEL_069a68aed2bb4d37a00c9c0feedd3e17" + } + }, + "4e5a92d4acdc43d487290ffd8a842ea5": { + "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_9930f171a6db47939e996016cb49fe20", + "placeholder": "​", + "style": "IPY_MODEL_ddd0c0abba074aa7a33b5c825ccf8760", + "value": "Generating train split: 100%" + } + }, + "8bc8c44b6324478a8209094f9b7e9ccd": { + "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_8bbb7307312648b0afb901f701a4e466", + "max": 5574, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4a2eb48d3583446598fdd1b7175c96fd", + "value": 5574 + } + }, + "e95f31e693674a0aae8de0e167a49daf": { + "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_b3eae90c5aea409ab1a2c541948658f8", + "placeholder": "​", + "style": "IPY_MODEL_41b5186c2e194402a1e18f1c1a9f18a4", + "value": " 5574/5574 [00:12<00:00, 7617.98 examples/s]" + } + }, + "069a68aed2bb4d37a00c9c0feedd3e17": { + "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": "hidden", + "width": null + } + }, + "9930f171a6db47939e996016cb49fe20": { + "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 + } + }, + "ddd0c0abba074aa7a33b5c825ccf8760": { + "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": "" + } + }, + "8bbb7307312648b0afb901f701a4e466": { + "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 + } + }, + "4a2eb48d3583446598fdd1b7175c96fd": { + "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": "" + } + }, + "b3eae90c5aea409ab1a2c541948658f8": { + "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 + } + }, + "41b5186c2e194402a1e18f1c1a9f18a4": { + "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": "" + } + }, + "3c84850ebe3e45d297d3bfa8a12f1b86": { + "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_8a5f71a073ca4b0cb929ba3cf31fd296", + "IPY_MODEL_b5be73849b61415fb9187d011261be1e", + "IPY_MODEL_46a51fbd984344b1958889c608ea04ed" + ], + "layout": "IPY_MODEL_0d25092adebd4f94b1799df263ccaf55" + } + }, + "8a5f71a073ca4b0cb929ba3cf31fd296": { + "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_e4814d2ee2df4f6a9f411b134ebca546", + "placeholder": "​", + "style": "IPY_MODEL_09669f6ac72b45689e082b4fb489a23f", + "value": "100%" + } + }, + "b5be73849b61415fb9187d011261be1e": { + "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_7afda94f85794acf882856b760a3eb63", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a70df5e47adb4a4d8b80a543dedfd708", + "value": 1 + } + }, + "46a51fbd984344b1958889c608ea04ed": { + "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_140058b69379422797bdc22374192bd6", + "placeholder": "​", + "style": "IPY_MODEL_8aabd23e2fa242e4b8cf4ef43fbebe2e", + "value": " 1/1 [00:00<00:00, 13.35it/s]" + } + }, + "0d25092adebd4f94b1799df263ccaf55": { + "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 + } + }, + "e4814d2ee2df4f6a9f411b134ebca546": { + "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 + } + }, + "09669f6ac72b45689e082b4fb489a23f": { + "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": "" + } + }, + "7afda94f85794acf882856b760a3eb63": { + "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 + } + }, + "a70df5e47adb4a4d8b80a543dedfd708": { + "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": "" + } + }, + "140058b69379422797bdc22374192bd6": { + "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 + } + }, + "8aabd23e2fa242e4b8cf4ef43fbebe2e": { + "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": "" + } + }, + "040698c1b4be4adebfe751751a64c11d": { + "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_11b4ddede4494fe093329c50097b7df5", + "IPY_MODEL_7986c625c9c34d039fad240333d0da08", + "IPY_MODEL_b35a6f8e81184f81990a0111cc5c6ca8" + ], + "layout": "IPY_MODEL_2968992398a94adeb626eec2f45a8699" + } + }, + "11b4ddede4494fe093329c50097b7df5": { + "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_c9f8f67483fb45c8a6b59fceae40fe42", + "placeholder": "​", + "style": "IPY_MODEL_c5a862e7d71c430c865fa87dc21b1f6d", + "value": "Downloading (…)okenizer_config.json: 100%" + } + }, + "7986c625c9c34d039fad240333d0da08": { + "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_d69171bdd6544c8ab9e96f3f3dfe7f92", + "max": 2537, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9cca59c67c5f452eb1d9e8dd22296968", + "value": 2537 + } + }, + "b35a6f8e81184f81990a0111cc5c6ca8": { + "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_0f18ab0690ce4bc3b9b7c2f4d10c2049", + "placeholder": "​", + "style": "IPY_MODEL_af26b98c1e3440daa11e104ed1c8b7e4", + "value": " 2.54k/2.54k [00:00<00:00, 97.2kB/s]" + } + }, + "2968992398a94adeb626eec2f45a8699": { + "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 + } + }, + "c9f8f67483fb45c8a6b59fceae40fe42": { + "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 + } + }, + "c5a862e7d71c430c865fa87dc21b1f6d": { + "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": "" + } + }, + "d69171bdd6544c8ab9e96f3f3dfe7f92": { + "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 + } + }, + "9cca59c67c5f452eb1d9e8dd22296968": { + "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": "" + } + }, + "0f18ab0690ce4bc3b9b7c2f4d10c2049": { + "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 + } + }, + "af26b98c1e3440daa11e104ed1c8b7e4": { + "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": "" + } + }, + "be9060616d68475ea2e4674f7e460566": { + "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_264afd978de54dbeaa1b711e4c0b1c07", + "IPY_MODEL_bbcefda6eea74b8ea8313e4f7167df65", + "IPY_MODEL_68d85f6957ea4807a1fe7c82c9a7bc06" + ], + "layout": "IPY_MODEL_cdfaf060f34a4d23afe97243d5f4c709" + } + }, + "264afd978de54dbeaa1b711e4c0b1c07": { + "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_9411023294ab44b284894aebf3f8f589", + "placeholder": "​", + "style": "IPY_MODEL_d8bf78a3d7ea47a9824d6e01e70b0237", + "value": "Downloading (…)"spiece.model";: 100%" + } + }, + "bbcefda6eea74b8ea8313e4f7167df65": { + "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_b95ece9507db467fad710338bdf29177", + "max": 791656, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_34a31746a99c4916b1402a2829e71a98", + "value": 791656 + } + }, + "68d85f6957ea4807a1fe7c82c9a7bc06": { + "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_29b2a7a233a9484c92056034cc70b8ca", + "placeholder": "​", + "style": "IPY_MODEL_c9a72e2599e94e9e9bc2b4912d25877b", + "value": " 792k/792k [00:00<00:00, 19.7MB/s]" + } + }, + "cdfaf060f34a4d23afe97243d5f4c709": { + "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 + } + }, + "9411023294ab44b284894aebf3f8f589": { + "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 + } + }, + "d8bf78a3d7ea47a9824d6e01e70b0237": { + "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": "" + } + }, + "b95ece9507db467fad710338bdf29177": { + "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 + } + }, + "34a31746a99c4916b1402a2829e71a98": { + "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": "" + } + }, + "29b2a7a233a9484c92056034cc70b8ca": { + "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 + } + }, + "c9a72e2599e94e9e9bc2b4912d25877b": { + "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": "" + } + }, + "2c24af439f3e45db8a0e004686e912ed": { + "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_dcb13b35232145fd85be1b6e4442cc5a", + "IPY_MODEL_58037f9984bb414a9c6e56337d86215c", + "IPY_MODEL_6e9379baaf2049658790e176ca279531" + ], + "layout": "IPY_MODEL_772e39d516cf43fdbb1b3db001d53d77" + } + }, + "dcb13b35232145fd85be1b6e4442cc5a": { + "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_c08c1e0783324c53b7fc02912fa14af9", + "placeholder": "​", + "style": "IPY_MODEL_9bcdda510c0147178f651b66450b48ac", + "value": "Downloading (…)/main/tokenizer.json: 100%" + } + }, + "58037f9984bb414a9c6e56337d86215c": { + "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_18ab5e8088e04cdca93df7519156a59f", + "max": 2424064, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f502a26154d840b89b5c61a2aae4f827", + "value": 2424064 + } + }, + "6e9379baaf2049658790e176ca279531": { + "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_7beb993a979443dcb93d26ec6e6718c3", + "placeholder": "​", + "style": "IPY_MODEL_62e60fc862054e4d8d0d18cb1957cf6d", + "value": " 2.42M/2.42M [00:01<00:00, 1.56MB/s]" + } + }, + "772e39d516cf43fdbb1b3db001d53d77": { + "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 + } + }, + "c08c1e0783324c53b7fc02912fa14af9": { + "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 + } + }, + "9bcdda510c0147178f651b66450b48ac": { + "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": "" + } + }, + "18ab5e8088e04cdca93df7519156a59f": { + "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 + } + }, + "f502a26154d840b89b5c61a2aae4f827": { + "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": "" + } + }, + "7beb993a979443dcb93d26ec6e6718c3": { + "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 + } + }, + "62e60fc862054e4d8d0d18cb1957cf6d": { + "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": "" + } + }, + "bd697213d4fa4c1d9119657c537e78fe": { + "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_67f9f97815354675bf3bd435f2ed0436", + "IPY_MODEL_27bd6c78e7f74ff385509e9856c2b8d0", + "IPY_MODEL_34f670acaa3542eebc8c19018e900ce3" + ], + "layout": "IPY_MODEL_ec2d082874844b6daf8542824bfde1a0" + } + }, + "67f9f97815354675bf3bd435f2ed0436": { + "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_b9df5fc8959447449d873bd17e6696f7", + "placeholder": "​", + "style": "IPY_MODEL_f8489ecaa1a844369bcb427c5f4c95e6", + "value": "Downloading (…)cial_tokens_map.json: 100%" + } + }, + "27bd6c78e7f74ff385509e9856c2b8d0": { + "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_b21e65a9dff040f4a045580d9989ac20", + "max": 2201, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0efa19170c9e4de891e328365543c916", + "value": 2201 + } + }, + "34f670acaa3542eebc8c19018e900ce3": { + "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_8c6fa802ddd5491581c092e5422bfeab", + "placeholder": "​", + "style": "IPY_MODEL_42cfc2ada7ac408fab39251add66f6ef", + "value": " 2.20k/2.20k [00:00<00:00, 67.2kB/s]" + } + }, + "ec2d082874844b6daf8542824bfde1a0": { + "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 + } + }, + "b9df5fc8959447449d873bd17e6696f7": { + "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 + } + }, + "f8489ecaa1a844369bcb427c5f4c95e6": { + "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": "" + } + }, + "b21e65a9dff040f4a045580d9989ac20": { + "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 + } + }, + "0efa19170c9e4de891e328365543c916": { + "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": "" + } + }, + "8c6fa802ddd5491581c092e5422bfeab": { + "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 + } + }, + "42cfc2ada7ac408fab39251add66f6ef": { + "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": "" + } + }, + "3747d0aa68d642449ff32b7efd47d497": { + "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_2a84ccf3660a4e24b37bfc1d952f06d9", + "IPY_MODEL_43b98452768846eb9b773839a4681cc6", + "IPY_MODEL_2dfbcef644a84b558ce99b2ddaf091b6" + ], + "layout": "IPY_MODEL_9dd02373a1994433a49e0015b76dd858" + } + }, + "2a84ccf3660a4e24b37bfc1d952f06d9": { + "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_42a620dfccb4416c95fbd7a76637dc73", + "placeholder": "​", + "style": "IPY_MODEL_9d953b41e24c4263b18e1ff2174eb797", + "value": "Downloading (…)lve/main/config.json: 100%" + } + }, + "43b98452768846eb9b773839a4681cc6": { + "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_cb409960af114fa690bac72c1d51d2ab", + "max": 1404, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_995a94c35b4c441b86598d1976281711", + "value": 1404 + } + }, + "2dfbcef644a84b558ce99b2ddaf091b6": { + "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_4ea2ccb5fa264dd5a042f570c22db7de", + "placeholder": "​", + "style": "IPY_MODEL_4d5668e5b66d4993b935b077a1dc281c", + "value": " 1.40k/1.40k [00:00<00:00, 54.0kB/s]" + } + }, + "9dd02373a1994433a49e0015b76dd858": { + "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 + } + }, + "42a620dfccb4416c95fbd7a76637dc73": { + "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 + } + }, + "9d953b41e24c4263b18e1ff2174eb797": { + "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": "" + } + }, + "cb409960af114fa690bac72c1d51d2ab": { + "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 + } + }, + "995a94c35b4c441b86598d1976281711": { + "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": "" + } + }, + "4ea2ccb5fa264dd5a042f570c22db7de": { + "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 + } + }, + "4d5668e5b66d4993b935b077a1dc281c": { + "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": "" + } + }, + "cf36c750119449e8a16aa97a9b66a124": { + "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_0de691bf20804830ba5e6710c205c9ac", + "IPY_MODEL_7ee532c002784554b12fede964c6c05a", + "IPY_MODEL_25e5c76c84a8414495b61663250825aa" + ], + "layout": "IPY_MODEL_12bd0cd379754967bfd5481d5836b7a4" + } + }, + "0de691bf20804830ba5e6710c205c9ac": { + "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_d55d326ffbdc420da0a399c141f7fb56", + "placeholder": "​", + "style": "IPY_MODEL_092323b59b734eada8d88197d9f0eb72", + "value": "Downloading (…)"pytorch_model.bin";: 100%" + } + }, + "7ee532c002784554b12fede964c6c05a": { + "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_622df288b2ae4f62b776cb101de18b9f", + "max": 990402637, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c72abd216b9444ef9bdb0f8a0a6771b0", + "value": 990402637 + } + }, + "25e5c76c84a8414495b61663250825aa": { + "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_03d5f2402e464b7cb5244db0f824df1d", + "placeholder": "​", + "style": "IPY_MODEL_4a6e196f590d4b329e0edefc910d4730", + "value": " 990M/990M [00:09<00:00, 135MB/s]" + } + }, + "12bd0cd379754967bfd5481d5836b7a4": { + "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 + } + }, + "d55d326ffbdc420da0a399c141f7fb56": { + "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 + } + }, + "092323b59b734eada8d88197d9f0eb72": { + "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": "" + } + }, + "622df288b2ae4f62b776cb101de18b9f": { + "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 + } + }, + "c72abd216b9444ef9bdb0f8a0a6771b0": { + "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": "" + } + }, + "03d5f2402e464b7cb5244db0f824df1d": { + "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 + } + }, + "4a6e196f590d4b329e0edefc910d4730": { + "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": "" + } + }, + "9a04f6723e2a40288eb42eea0134dfaf": { + "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_4065d0eed87e4d268de8f4536287e225", + "IPY_MODEL_bebca147a83446abaf19c3e3db11744e", + "IPY_MODEL_cf525a599ca245b19204bfff3fa1bd11" + ], + "layout": "IPY_MODEL_b60759f0730343849ef3e51d2c8be38c" + } + }, + "4065d0eed87e4d268de8f4536287e225": { + "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_dcc795e3fac0401b9a4d2aac3bd6e8cc", + "placeholder": "​", + "style": "IPY_MODEL_ed7ca6da408842b38a466097ec9d4616", + "value": "Downloading (…)neration_config.json: 100%" + } + }, + "bebca147a83446abaf19c3e3db11744e": { + "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_0335f29f40564adf9b577707dfb40aa9", + "max": 147, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a200da1478fa46a19695a5b2f2c77fd1", + "value": 147 + } + }, + "cf525a599ca245b19204bfff3fa1bd11": { + "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_e21e75bbbc4149b4ac85fece44aee355", + "placeholder": "​", + "style": "IPY_MODEL_c014c271cd374f62a0d113efca14001a", + "value": " 147/147 [00:00<00:00, 6.16kB/s]" + } + }, + "b60759f0730343849ef3e51d2c8be38c": { + "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 + } + }, + "dcc795e3fac0401b9a4d2aac3bd6e8cc": { + "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 + } + }, + "ed7ca6da408842b38a466097ec9d4616": { + "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": "" + } + }, + "0335f29f40564adf9b577707dfb40aa9": { + "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 + } + }, + "a200da1478fa46a19695a5b2f2c77fd1": { + "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": "" + } + }, + "e21e75bbbc4149b4ac85fece44aee355": { + "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 + } + }, + "c014c271cd374f62a0d113efca14001a": { + "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": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Instalacja pakietów" + ], + "metadata": { + "id": "ZXsOR6oJOJbd" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8l0hzptKNiZS", + "outputId": "6ebbbe8e-00ec-4108-d209-e7dd267f6d1e" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting transformers\n", + " Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m47.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting datasets\n", + " Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m22.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n", + "Collecting sentencepiece\n", + " Downloading sentencepiece-0.1.97-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m15.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", + "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", + "Collecting huggingface-hub<1.0,>=0.11.0\n", + " Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m13.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting tokenizers!=0.11.3,<0.14,>=0.11.1\n", + " Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m56.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", + "Collecting multiprocess\n", + " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m4.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", + "Collecting xxhash\n", + " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Collecting responses<0.19\n", + " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", + "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", + "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", + "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", + "Collecting urllib3<1.27,>=1.21.1\n", + " Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", + "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", + "Installing collected packages: tokenizers, sentencepiece, xxhash, urllib3, multiprocess, responses, huggingface-hub, transformers, datasets\n", + " Attempting uninstall: urllib3\n", + " Found existing installation: urllib3 1.24.3\n", + " Uninstalling urllib3-1.24.3:\n", + " Successfully uninstalled urllib3-1.24.3\n", + "Successfully installed datasets-2.9.0 huggingface-hub-0.12.0 multiprocess-0.70.14 responses-0.18.0 sentencepiece-0.1.97 tokenizers-0.13.2 transformers-4.26.1 urllib3-1.26.14 xxhash-3.2.0\n" + ] + } + ], + "source": [ + "!pip install transformers datasets torch sentencepiece" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Załadowanie datasetu" + ], + "metadata": { + "id": "dhN0rmb5Oi3d" + } + }, + { + "cell_type": "code", + "source": [ + "from datasets import load_dataset" + ], + "metadata": { + "id": "tnaDkwZ2Pbnn" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "dataset = load_dataset(\"sms_spam\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 244, + "referenced_widgets": [ + "e4bb6f2f32de48d4b1f6d7ecf97ce376", + "3305b30f1bfa48e9b0c1ba3add06094e", + "a343619acbb745baa6aa561271ec8815", + "c493fc54d9eb421f96d6e8519c8a1b0e", + "12fd6daa8e604ecd9ad731b6296815da", + "805f497aa3304353a1be8b4cc87bfb54", + "594a6d13f81f479eb00fa45fd4094146", + "236979048eb8461f9b7d8c4103905eed", + "4620faf461ca449a88de45e86467e265", + "8dc2f0f2e66741edbccab7abaaf634ce", + "0d49bfb55dfd4090ba57c544eaa97902", + "4084f218fca64fc9b765e04d0cc073ac", + "fec67d95a5904ac199f6648a34ef1ff9", + "a734d44f6baf4a5f8dfda576c09fffca", + "3fc2d009da594365854aa11be804b388", + "45c7d35932ec44bcb2ccdc73f0ae6b46", + "0c1c3db046f24599b27daa44217f48d2", + "c3f9ed611a154e22b875d0696ef6022d", + "7fd51c34909b41a8884fa358cccdbf48", + "9d9edc5471de40c2b7c2b9156637997d", + "02c64bf3ff95438cb43c7dc52034cc43", + "f0b71ecb6b1c4d1190ca899af7d3e82c", + "8cae9c49e18f43248072b5e059429f6d", + "88c8adca128b44c1bbbec437630c2074", + "0f73f5e2c8af41eaae5f1c27f212da8b", + "255b4480e11f4b3e892a5d2dc6abfd4b", + "a96eab6312f6447b9eff3f914c5a6827", + "063059d53dc942d1aee9e3fe2f27687d", + "ca50704df2cc430fae6b5902c5399414", + "64f5cdd8d1c14be79278ee4de89993d1", + "f065dcd7d1d34cb6806f2eb28bb3cd6f", + "67663505c87640b58e04d3ce028537ea", + "f5a17bc6f9f94b2ca119528b0ca2d456", + "ec0f16c3cbb14d9287e148887127219b", + "ba832204e1d4413f8b8a15e10bac7d95", + "8179dbec98b7466ea2195affb0568498", + "7e9abda7b55c459b8a9888edaf1cc116", + "64c8860ae16848af9b04bb41955a8446", + "64fe250082bf4d4fb126a319920d2f0a", + "0b278b6f5da94921afbacb873c15d9c9", + "b688bc7f34e941488831da5d4aed9396", + "44cec66cbaeb49abb26dbfc5420ceacb", + "67a750dcfa8b44499956572fda3dbacf", + "edad6f2eb6704468bd06006c50697f86", + "699a1bdf38ca48e2affc3c6bd771852f", + "4e5a92d4acdc43d487290ffd8a842ea5", + "8bc8c44b6324478a8209094f9b7e9ccd", + "e95f31e693674a0aae8de0e167a49daf", + "069a68aed2bb4d37a00c9c0feedd3e17", + "9930f171a6db47939e996016cb49fe20", + "ddd0c0abba074aa7a33b5c825ccf8760", + "8bbb7307312648b0afb901f701a4e466", + "4a2eb48d3583446598fdd1b7175c96fd", + "b3eae90c5aea409ab1a2c541948658f8", + "41b5186c2e194402a1e18f1c1a9f18a4", + "3c84850ebe3e45d297d3bfa8a12f1b86", + "8a5f71a073ca4b0cb929ba3cf31fd296", + "b5be73849b61415fb9187d011261be1e", + "46a51fbd984344b1958889c608ea04ed", + "0d25092adebd4f94b1799df263ccaf55", + "e4814d2ee2df4f6a9f411b134ebca546", + "09669f6ac72b45689e082b4fb489a23f", + "7afda94f85794acf882856b760a3eb63", + "a70df5e47adb4a4d8b80a543dedfd708", + "140058b69379422797bdc22374192bd6", + "8aabd23e2fa242e4b8cf4ef43fbebe2e" + ] + }, + "id": "cCiAuRqrOkvV", + "outputId": "394df630-e545-4005-b3a4-82b0341b210b" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading builder script: 0%| | 0.00/3.21k [00:005,} test samples'.format(test_size))\n", + "print('{:>5,} training samples'.format(train_size))\n", + "print('{:>5,} validation samples'.format(val_size))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Mm6vc6lLVW3l", + "outputId": "023efb5b-eab3-4675-9900-3918aedae90f" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1,000 test samples\n", + "4,116 training samples\n", + " 458 validation samples\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create train and validation loaders" + ], + "metadata": { + "id": "bmgQOP4EVfA1" + } + }, + { + "cell_type": "code", + "source": [ + "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler" + ], + "metadata": { + "id": "CxnQ3cmIVlNh" + }, + "execution_count": 17, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "batch_size = 8\n", + "\n", + "train_dataloader = DataLoader(\n", + " train_dataset,\n", + " sampler = RandomSampler(train_dataset),\n", + " batch_size = batch_size\n", + " )\n", + "\n", + "validation_dataloader = DataLoader(\n", + " val_dataset,\n", + " sampler = SequentialSampler(val_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "0hcpO_onVjEC" + }, + "execution_count": 18, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Device check" + ], + "metadata": { + "id": "efwhqLyyVu9z" + } + }, + { + "cell_type": "code", + "source": [ + "if torch.cuda.is_available(): \n", + " device = torch.device(\"cuda\")\n", + "\n", + " print('There are %d GPU(s) available.' % torch.cuda.device_count())\n", + " print('We will use the GPU:', torch.cuda.get_device_name(0))\n", + "\n", + "else:\n", + " print('No GPU available, using the CPU instead.')\n", + " device = torch.device(\"cpu\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ANBCfNGnVwVk", + "outputId": "6192e88f-5e61-4de6-b476-de9a6e3a59a6" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "There are 1 GPU(s) available.\n", + "We will use the GPU: Tesla T4\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Load FLAN-T5 model" + ], + "metadata": { + "id": "okTx_ynMV0rH" + } + }, + { + "cell_type": "code", + "source": [ + "from transformers import AutoModelForSeq2SeqLM" + ], + "metadata": { + "id": "Eu-7Eed8WgN0" + }, + "execution_count": 20, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "model = AutoModelForSeq2SeqLM.from_pretrained('google/flan-t5-base')\n", + "\n", + "model.cuda()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "3747d0aa68d642449ff32b7efd47d497", + "2a84ccf3660a4e24b37bfc1d952f06d9", + "43b98452768846eb9b773839a4681cc6", + "2dfbcef644a84b558ce99b2ddaf091b6", + "9dd02373a1994433a49e0015b76dd858", + "42a620dfccb4416c95fbd7a76637dc73", + "9d953b41e24c4263b18e1ff2174eb797", + "cb409960af114fa690bac72c1d51d2ab", + "995a94c35b4c441b86598d1976281711", + "4ea2ccb5fa264dd5a042f570c22db7de", + "4d5668e5b66d4993b935b077a1dc281c", + "cf36c750119449e8a16aa97a9b66a124", + "0de691bf20804830ba5e6710c205c9ac", + "7ee532c002784554b12fede964c6c05a", + "25e5c76c84a8414495b61663250825aa", + "12bd0cd379754967bfd5481d5836b7a4", + "d55d326ffbdc420da0a399c141f7fb56", + "092323b59b734eada8d88197d9f0eb72", + "622df288b2ae4f62b776cb101de18b9f", + "c72abd216b9444ef9bdb0f8a0a6771b0", + "03d5f2402e464b7cb5244db0f824df1d", + "4a6e196f590d4b329e0edefc910d4730", + "9a04f6723e2a40288eb42eea0134dfaf", + "4065d0eed87e4d268de8f4536287e225", + "bebca147a83446abaf19c3e3db11744e", + "cf525a599ca245b19204bfff3fa1bd11", + "b60759f0730343849ef3e51d2c8be38c", + "dcc795e3fac0401b9a4d2aac3bd6e8cc", + "ed7ca6da408842b38a466097ec9d4616", + "0335f29f40564adf9b577707dfb40aa9", + "a200da1478fa46a19695a5b2f2c77fd1", + "e21e75bbbc4149b4ac85fece44aee355", + "c014c271cd374f62a0d113efca14001a" + ] + }, + "id": "JKv9O8kfV2zZ", + "outputId": "6893e79a-48f7-4713-c4a4-a9558acbcf7c" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading (…)lve/main/config.json: 0%| | 0.00/1.40k [00:005,} of {:>5,}. Elapsed: {:}.'.format(step, len(train_dataloader), elapsed))\n", + "\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + "\n", + " y = batch[2].to(device)\n", + " y_ids = y[:, :-1].contiguous()\n", + " lm_labels = y[:, 1:].clone().detach()\n", + " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", + "\n", + " model.zero_grad() \n", + "\n", + " outputs = model(\n", + " input_ids=b_input_ids,\n", + " attention_mask=b_input_mask,\n", + " decoder_input_ids=y_ids,\n", + " labels=lm_labels\n", + " )\n", + "\n", + " generated_ids = model.generate(\n", + " input_ids = b_input_ids,\n", + " attention_mask = b_input_mask, \n", + " max_length=2, \n", + " num_beams=2,\n", + " repetition_penalty=2.5, \n", + " length_penalty=1.0, \n", + " early_stopping=True\n", + " )\n", + "\n", + " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", + " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", + " total_train_acc += calculate_accuracy(preds, target) \n", + "\n", + " loss = outputs['loss']\n", + " total_train_loss += loss.item()\n", + "\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n", + "\n", + " optimizer.step()\n", + " scheduler.step()\n", + "\n", + " avg_train_loss = total_train_loss / len(train_dataloader) \n", + " avg_train_acc = total_train_acc / len(train_dataloader) \n", + " \n", + " training_time = format_time(time.time() - t0)\n", + "\n", + " print(\"\")\n", + " print(\" Average training loss: {0:.2f}\".format(avg_train_loss))\n", + " print(\" Average training acc: {0:.2f}\".format(avg_train_acc))\n", + " print(\" Training epcoh took: {:}\".format(training_time))\n", + " \n", + " # ========================================\n", + " # Validation\n", + " # ========================================\n", + "\n", + " print(\"\")\n", + " print(\"Running Validation...\")\n", + "\n", + " t0 = time.time()\n", + " model.eval()\n", + "\n", + " total_eval_loss = 0\n", + " total_eval_accuracy = 0\n", + "\n", + " for batch in validation_dataloader:\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + "\n", + " y = batch[2].to(device)\n", + " y_ids = y[:, :-1].contiguous()\n", + " lm_labels = y[:, 1:].clone().detach()\n", + " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", + " \n", + " with torch.no_grad(): \n", + "\n", + " outputs = model(\n", + " input_ids=b_input_ids,\n", + " attention_mask=b_input_mask,\n", + " decoder_input_ids=y_ids,\n", + " labels=lm_labels\n", + " )\n", + "\n", + " loss = outputs['loss']\n", + " total_eval_loss += loss.item()\n", + "\n", + " generated_ids = model.generate(\n", + " input_ids = b_input_ids,\n", + " attention_mask = b_input_mask, \n", + " max_length=2, \n", + " num_beams=2,\n", + " repetition_penalty=2.5, \n", + " length_penalty=1.0, \n", + " early_stopping=True\n", + " )\n", + "\n", + " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", + " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", + " total_eval_accuracy += calculate_accuracy(preds, target) \n", + "\n", + " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", + "\n", + " avg_val_accuracy = total_eval_accuracy / len(validation_dataloader)\n", + " print(\" Accuracy: {0:.2f}\".format(avg_val_accuracy))\n", + " \n", + " validation_time = format_time(time.time() - t0)\n", + " print(\" Validation took: {:}\".format(validation_time))\n", + " print(\" Validation Loss: {0:.2f}\".format(avg_val_loss))\n", + "\n", + " training_stats.append(\n", + " {\n", + " 'epoch': epoch_i + 1,\n", + " 'Training Loss': avg_train_loss,\n", + " 'Training Accur.': avg_train_acc,\n", + " 'Valid. Loss': avg_val_loss,\n", + " 'Valid. Accur.': avg_val_accuracy,\n", + " 'Training Time': training_time,\n", + " 'Validation Time': validation_time\n", + " }\n", + " )\n", + "\n", + "print(\"\")\n", + "print(\"Training complete!\")\n", + "\n", + "print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xsHxfslka1u5", + "outputId": "28c30ee0-6f41-4ede-eb3a-eebd4269c332" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "======== Epoch 1 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:46.\n", + " Batch 80 of 515. Elapsed: 0:01:30.\n", + " Batch 120 of 515. Elapsed: 0:02:14.\n", + " Batch 160 of 515. Elapsed: 0:02:59.\n", + " Batch 200 of 515. Elapsed: 0:03:44.\n", + " Batch 240 of 515. Elapsed: 0:04:28.\n", + " Batch 280 of 515. Elapsed: 0:05:13.\n", + " Batch 320 of 515. Elapsed: 0:05:57.\n", + " Batch 360 of 515. Elapsed: 0:06:42.\n", + " Batch 400 of 515. Elapsed: 0:07:26.\n", + " Batch 440 of 515. Elapsed: 0:08:11.\n", + " Batch 480 of 515. Elapsed: 0:08:55.\n", + "\n", + " Average training loss: 0.01\n", + " Average training acc: 0.59\n", + " Training epcoh took: 0:09:34\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.47\n", + " Validation took: 0:00:31\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 2 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:44.\n", + " Batch 80 of 515. Elapsed: 0:01:29.\n", + " Batch 120 of 515. Elapsed: 0:02:13.\n", + " Batch 160 of 515. Elapsed: 0:02:58.\n", + " Batch 200 of 515. Elapsed: 0:03:42.\n", + " Batch 240 of 515. Elapsed: 0:04:27.\n", + " Batch 280 of 515. Elapsed: 0:05:11.\n", + " Batch 320 of 515. Elapsed: 0:05:56.\n", + " Batch 360 of 515. Elapsed: 0:06:40.\n", + " Batch 400 of 515. Elapsed: 0:07:25.\n", + " Batch 440 of 515. Elapsed: 0:08:09.\n", + " Batch 480 of 515. Elapsed: 0:08:54.\n", + "\n", + " Average training loss: 0.00\n", + " Average training acc: 0.59\n", + " Training epcoh took: 0:09:32\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.46\n", + " Validation took: 0:00:31\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 3 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:44.\n", + " Batch 80 of 515. Elapsed: 0:01:34.\n", + " Batch 120 of 515. Elapsed: 0:02:20.\n", + " Batch 160 of 515. Elapsed: 0:03:05.\n", + " Batch 200 of 515. Elapsed: 0:03:49.\n", + " Batch 240 of 515. Elapsed: 0:04:34.\n", + " Batch 280 of 515. Elapsed: 0:05:18.\n", + " Batch 320 of 515. Elapsed: 0:06:03.\n", + " Batch 360 of 515. Elapsed: 0:06:47.\n", + " Batch 400 of 515. Elapsed: 0:07:32.\n", + " Batch 440 of 515. Elapsed: 0:08:16.\n", + " Batch 480 of 515. Elapsed: 0:09:00.\n", + "\n", + " Average training loss: 0.00\n", + " Average training acc: 0.59\n", + " Training epcoh took: 0:09:39\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.46\n", + " Validation took: 0:00:31\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 4 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:45.\n", + " Batch 80 of 515. Elapsed: 0:01:29.\n", + " Batch 120 of 515. Elapsed: 0:02:14.\n", + " Batch 160 of 515. Elapsed: 0:02:58.\n", + " Batch 200 of 515. Elapsed: 0:03:42.\n", + " Batch 240 of 515. Elapsed: 0:04:27.\n", + " Batch 280 of 515. Elapsed: 0:05:11.\n", + " Batch 320 of 515. Elapsed: 0:05:56.\n", + " Batch 360 of 515. Elapsed: 0:06:40.\n", + " Batch 400 of 515. Elapsed: 0:07:24.\n", + " Batch 440 of 515. Elapsed: 0:08:09.\n", + " Batch 480 of 515. Elapsed: 0:08:53.\n", + "\n", + " Average training loss: 0.00\n", + " Average training acc: 0.58\n", + " Training epcoh took: 0:09:32\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.46\n", + " Validation took: 0:00:31\n", + " Validation Loss: 0.00\n", + "\n", + "Training complete!\n", + "Total training took 0:40:22 (h:mm:ss)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Train summary" + ], + "metadata": { + "id": "xIpFPoRb91Or" + } + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "pd.set_option('precision', 2)\n", + "df_stats = pd.DataFrame(data=training_stats)\n", + "\n", + "df_stats = df_stats.set_index('epoch')\n", + "df_stats" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "GjYqBrrO93Oh", + "outputId": "0087ee68-c017-41fd-db84-ca6e0d25fb12" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Training Loss Training Accur. Valid. Loss Valid. Accur. \\\n", + "epoch \n", + "1 5.27e-03 0.59 0.0 0.47 \n", + "2 2.74e-08 0.59 0.0 0.46 \n", + "3 1.58e-08 0.59 0.0 0.46 \n", + "4 1.55e-08 0.58 0.0 0.46 \n", + "\n", + " Training Time Validation Time \n", + "epoch \n", + "1 0:09:34 0:00:31 \n", + "2 0:09:32 0:00:31 \n", + "3 0:09:39 0:00:31 \n", + "4 0:09:32 0:00:31 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Training LossTraining Accur.Valid. LossValid. Accur.Training TimeValidation Time
epoch
15.27e-030.590.00.470:09:340:00:31
22.74e-080.590.00.460:09:320:00:31
31.58e-080.590.00.460:09:390:00:31
41.55e-080.580.00.460:09:320:00:31
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 28 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import seaborn as sns\n", + "\n", + "sns.set(style='darkgrid')\n", + "\n", + "sns.set(font_scale=1.5)\n", + "plt.rcParams[\"figure.figsize\"] = (12,6)\n", + "\n", + "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", + "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", + "\n", + "plt.title(\"Training & Validation Loss\")\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.legend()\n", + "plt.xticks([1, 2, 3, 4])\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "Xk3gzkeU96v3", + "outputId": "aa447af5-09f3-4bc2-e234-8a74bba87c05" + }, + "execution_count": 29, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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yxa9/PLLysnJ0fz5891zCwoK9Mtf/lKFhYUaMWKEOnTooNLSUh04cEDbt29X79693XMvXbqkcePGqVOnTvrNb36jgoICLVu2TNOnT1d6err8/Pxu0p8QAHgPij4AwGOvv/66Xn/99Wrj/fv315tvvun+OScnR2vWrFH79u0lSePGjdMTTzyhtWvXavTo0ercubMk6S9/+YscDodWrVqluLg499xZs2YpPT1djzzyiHr27ClJeu6553TmzBktWrRI99xzT5XrO53OKj+fP39ekydP1tSpU91jTZs21bx587R9+/Zq6wHAF1H0AQAeGz16tJKTk6uNN23atMrPvXr1cpd8STKZTJoyZYo+/fRTffLJJ+rcubMKCwu1b98+3Xfffe6SXzn3V7/6lTZs2KBPPvlEPXv2lN1u17///W/dc889NZb0qz8MbDabq90l6O6775YkHT16lKIPoEGg6AMAPBYdHa1evXr96Lx27dpVG7vjjjskScePH5f0/VGcH47/UNu2bWU2m91zjx07JpfLpYSEBI9yRkZGKjAwsMpYWFiYJMlut3v0HABQ3/FhXACAz7nWGXyXy1WHSQDAOBR9AMANl5eXV23s0KFDkqSoqChJ0u23315l/IcOHz4sp9PpntuqVSuZTCZlZ2ffrMgA4HMo+gCAG2779u365ptv3D+7XC4tWrRIkjRo0CBJUkREhLp06aItW7bo4MGDVeb+61//kiTdd999kr4/dtO3b19t3bpV27dvr3Y93qUHgOo4ow8A8FhWVpbS0tJqfKyywEtSXFycHnvsMY0dO1ZWq1WbNm3S9u3bNWLECHXp0sU9b86cOUpNTdXYsWM1ZswYWa1WbdmyRV988YVSUlLcd9yRpGeffVZZWVmaOnWqHnzwQbVv317l5eU6cOCAbrvtNv3nf/7nzXvhAFAPUfQBAB5LT09Xenp6jY99/PHH7rPxAwYMUJs2bfTmm28qPz9fERERmj59uqZPn15lTWJiolatWqW///3vWrlypS5duqSoqCjNnj1bkyZNqjI3KipK7777rv7xj39o69atSktL0y233KK4uDiNHj365rxgAKjHTC5+3wkAuEEKCgo0cOBAPfHEE3ryySeNjgMADRpn9AEAAAAfRNEHAAAAfBBFHwAAAPBBnNEHAAAAfBDv6AMAAAA+iKIPAAAA+CCKPgAAAOCDKPoAAACAD6LoAwAAAD6Iog8AAAD4oP8PNVsOiJSeSu0AAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create test loader" + ], + "metadata": { + "id": "UJlKxl0r-W-m" + } + }, + { + "cell_type": "code", + "source": [ + "prediction_dataloader = DataLoader(\n", + " test_dataset,\n", + " sampler = SequentialSampler(test_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "eQGsEEDh-YxG" + }, + "execution_count": 30, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Evaluate on test dataset" + ], + "metadata": { + "id": "gHSDNWvA-aq9" + } + }, + { + "cell_type": "code", + "source": [ + "print('Predicting labels for {:,} test sentences...'.format(len(test_dataset)))\n", + "\n", + "model.eval()\n", + "predictions , true_labels = [], []\n", + "\n", + "for batch in prediction_dataloader:\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + " y = batch[2].to(device)\n", + " \n", + " with torch.no_grad(): \n", + "\n", + " generated_ids = model.generate(\n", + " input_ids = b_input_ids,\n", + " attention_mask = b_input_mask, \n", + " max_length=2, \n", + " num_beams=2,\n", + " repetition_penalty=2.5, \n", + " length_penalty=1.0, \n", + " early_stopping=True\n", + " )\n", + " \n", + " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", + " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", + "\n", + " predictions.append(preds)\n", + " true_labels.append(target)\n", + "\n", + "print(' DONE.')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OPcQkHnJ-c9A", + "outputId": "768230ca-117a-423c-9e5d-058a63fa8838" + }, + "execution_count": 31, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Predicting labels for 1,000 test sentences...\n", + " DONE.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "results_ok = 0\n", + "results_false = 0\n", + "for idx, true_labels_batch in enumerate(true_labels):\n", + " for bidx, true_label in enumerate(true_labels_batch):\n", + " if true_label == predictions[idx][bidx]:\n", + " results_ok += 1\n", + " else:\n", + " results_false += 1\n", + "\n", + "print(\"Correct predictions: {}, incorrect results: {}, accuracy: {}\".format(results_ok, results_false, float(results_ok) / (results_ok + results_false)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ifz56jYW-zBN", + "outputId": "0d8585e1-c0d7-4cca-a0d9-2f1c0f3dd1a9" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Correct predictions: 431, incorrect results: 569, accuracy: 0.431\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(\"Sample prediction: {}, expected: {}\".format(predictions[2][0], true_labels[2][0]))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1LqVo4wW-2g-", + "outputId": "f777b5ba-8c10-466b-c9be-d61382478d77" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Sample prediction: I, expected: true\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# MCC Score" + ], + "metadata": { + "id": "dLYc9WXz_B1o" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "matthews_set = []\n", + "print('Calculating Matthews Corr. Coef. for each batch...')\n", + "\n", + "for i in range(len(true_labels)):\n", + " matthews = matthews_corrcoef(true_labels[i], predictions[i]) \n", + " matthews_set.append(matthews)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hPEPpXXX_DXR", + "outputId": "215f4970-5e0d-4477-cf5b-95ec1b27317f" + }, + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Calculating Matthews Corr. Coef. for each batch...\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "ax = sns.barplot(x=list(range(len(matthews_set))), y=matthews_set, ci=None)\n", + "\n", + "plt.title('MCC Score per Batch')\n", + "plt.ylabel('MCC Score (-1 to +1)')\n", + "plt.xlabel('Batch #')\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "qjtAYcme_EyM", + "outputId": "00d36441-d6fb-4398-dad1-dfed14b8c7e6" + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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uHXrFo4cOYLp06dbLloiIiIiIqoWo78A5OXloVGjRjp1P//8M0QikV5i0LNnT1y/ft38ERIRERERkdkYTQBcXFygVqt16n755RcAQNu2bXXqvb29oVKpzBweERERERGZk9EEwM/PDxkZGdpyWVkZzp49i4CAAHh5eem0VSgU8PHxsUyURERERERkFkbXAISGhmLlypVo164dunTpgqSkJOTl5SEyMlKvbWZmJho2bGixQImIiIiIqPqMJgAxMTFITU3F/PnzATx6AlCDBg0wYcIEnXaFhYX4/vvvERsba7FAybAylQr13nxPp0zWpVaVImpCml6dWOJaI+dXqZWIiz6oV0fWpVSr8O3w/9MpExGR4yhTPYTv9GE6ZWfJM2/JVS1Gz+rh4YGkpCTs3LkT169fh7+/P0aMGIHatWvrtMvOzkZERAQGDRpk0WBJX15BKYBSa4dBT1AUqADof7iTyWomAShQqAGoK21HNatQUYpC/q0SETmsvIIHenUymacVIjFhJ2APDw9MnDjRaJu2bdvqLQomIiIiIiLbY3QRMBERERERPV+YABARERERORAmAEREREREDoQJABERERGRA2ECQERERETkQJgAEBERERE5EKMJQFlZGRYvXoxt27YZHWTr1q34/PPPIQiCWYMjIiIiIiLzMpoAfPPNN1i3bh2Cg4ONDhISEoK1a9di3759Zg2OiIiIiIjMy2gCcODAAXTr1g2tW7c2Okjr1q3RvXt37N+/36zBERERERGReRlNAH799Vd07drVpIE6d+6M8+fPmyUoIiIiIiKyDKMJQEFBAerWrWvSQHXq1IFCoTBLUEREREREZBlGEwB3d3fk5+ebNJBCoYC7u7tZgiIiIiIiIsswmgA0bdoUR48eNWmgo0ePomnTpmYJioiIiIiILMNoAtCvXz8cO3YM6enpRgc5cuQIjh07htDQULMGR0RERERE5mU0ARg9ejT8/f3x9ttv44svvkBOTo7O8ZycHHzxxRd4++238dJLL2H06NEWDZaIiIiIiKrHxdhBqVSKNWvWYOrUqVi9ejXWrFkDDw8PuLu7o7i4GEVFRRAEAY0bN8bq1avh6upaI0Hfv38fn376KQ4fPgylUomQkBDMnTsXLVq0qNI4ZWVlGDZsGC5fvoy5c+ciNjbWMgETEREREdkIowkAAAQEBCA1NRU7d+7EwYMH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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "flat_predictions = np.concatenate(predictions, axis=0)\n", + "flat_true_labels = np.concatenate(true_labels, axis=0)\n", + "\n", + "mcc = matthews_corrcoef(flat_true_labels, flat_predictions)\n", + "print('Total MCC: %.3f' % mcc)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rkonN244_HPz", + "outputId": "cbf3d43c-f453-4146-ee38-58e45475aeb2" + }, + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Total MCC: -0.033\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Save model" + ], + "metadata": { + "id": "GPhCp068_Iwq" + } + }, + { + "cell_type": "code", + "source": [ + "from google.colab import drive\n", + "\n", + "drive.mount('/content/gdrive/', force_remount=True)\n", + "\n", + "output_dir = '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model'\n", + "print(\"Saving model to %s\" % output_dir)\n", + "\n", + "model_to_save = model.module if hasattr(model, 'module') else model\n", + "model_to_save.save_pretrained(output_dir)\n", + "tokenizer.save_pretrained(output_dir)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "avafCMoS_KDF", + "outputId": "c1148369-1c8e-4448-de94-af6ea058c171" + }, + "execution_count": 36, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/gdrive/\n", + "Saving model to /content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "('/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model/tokenizer_config.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model/special_tokens_map.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model/spiece.model',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model/added_tokens.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/FLAN-T5_Model/tokenizer.json')" + ] + }, + "metadata": {}, + "execution_count": 36 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Bibliografia\n", + "- https://huggingface.co/docs/transformers/main/en/model_doc/flan-t5\n", + "- https://mccormickml.com/2019/07/22/BERT-fine-tuning/#a1-saving--loading-fine-tuned-model\n", + "- https://huggingface.co/docs/transformers/model_doc/t5#training" + ], + "metadata": { + "id": "wHzm2_nDA6i-" + } + } + ] +} \ No newline at end of file diff --git a/projekt/GPT2_sms_spam.ipynb b/projekt/GPT2_sms_spam.ipynb new file mode 100644 index 0000000..0165961 --- /dev/null +++ b/projekt/GPT2_sms_spam.ipynb @@ -0,0 +1,5277 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "gpuClass": "standard", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "4d28a819f7744b4ebcc6ff7da5438505": { + "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_f2923388d9fd4a819dab9e6294e8e663", + "IPY_MODEL_0660419f21e44cbd9d2a410b55412a8d", + "IPY_MODEL_670ac47a54c04b97beae23d43266a78f" + ], + "layout": "IPY_MODEL_ba12be10705041c39f87cfb2151df859" + } + }, + "f2923388d9fd4a819dab9e6294e8e663": { + "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_c9d3ee38f1dc42c5b688b06e98cfc751", + "placeholder": "​", + "style": "IPY_MODEL_422332e84b4e4ce88eb8eae5a927f855", + "value": "Downloading builder script: 100%" + } + }, + "0660419f21e44cbd9d2a410b55412a8d": { + "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_ab1d5c664cb64ae3b5cdd27c6f8a6ecf", + "max": 3208, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_5377f59cde4945a7b1b58f756a86b331", + "value": 3208 + } + }, + "670ac47a54c04b97beae23d43266a78f": { + "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_d520817cd13c4e778d402fd26eca64af", + "placeholder": "​", + "style": "IPY_MODEL_287518f909c045fbb8bb273e90299ff4", + "value": " 3.21k/3.21k [00:00<00:00, 127kB/s]" + } + }, + "ba12be10705041c39f87cfb2151df859": { + "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 + } + }, + "c9d3ee38f1dc42c5b688b06e98cfc751": { + "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 + } + }, + "422332e84b4e4ce88eb8eae5a927f855": { + "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": "" + } + }, + "ab1d5c664cb64ae3b5cdd27c6f8a6ecf": { + "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 + } + }, + "5377f59cde4945a7b1b58f756a86b331": { + "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": "" + } + }, + "d520817cd13c4e778d402fd26eca64af": { + "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 + } + }, + "287518f909c045fbb8bb273e90299ff4": { + "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": "" + } + }, + "a08b97bcaed348d6a719270ce42bce82": { + "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_f77d5fb080a34d3bae60e717963f7375", + "IPY_MODEL_f662c61ed7ab49cca8f49e787243c2a9", + "IPY_MODEL_9eb069bc0e66466fa235389126436554" + ], + "layout": "IPY_MODEL_6cc13ab8ebb2457c9180ceecaa8305a1" + } + }, + "f77d5fb080a34d3bae60e717963f7375": { + "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_75924d8d3e6149488908fe85885c1632", + "placeholder": "​", + "style": "IPY_MODEL_f5cfc5a4de0c41148d8395c8b5825f1a", + "value": "Downloading metadata: 100%" + } + }, + "f662c61ed7ab49cca8f49e787243c2a9": { + "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_2ace0a0212e3420f8a7de04e70ecf6d1", + "max": 1687, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9e17280369874a82bfd83605d1938353", + "value": 1687 + } + }, + "9eb069bc0e66466fa235389126436554": { + "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_c517ff5a95c941159950d5ff4f840b46", + "placeholder": "​", + "style": "IPY_MODEL_c266cdb1e36f49899f59b18d760e86b3", + "value": " 1.69k/1.69k [00:00<00:00, 115kB/s]" + } + }, + "6cc13ab8ebb2457c9180ceecaa8305a1": { + "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 + } + }, + "75924d8d3e6149488908fe85885c1632": { + "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 + } + }, + "f5cfc5a4de0c41148d8395c8b5825f1a": { + "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": "" + } + }, + "2ace0a0212e3420f8a7de04e70ecf6d1": { + "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 + } + }, + "9e17280369874a82bfd83605d1938353": { + "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": "" + } + }, + "c517ff5a95c941159950d5ff4f840b46": { + "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 + } + }, + "c266cdb1e36f49899f59b18d760e86b3": { + "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": "" + } + }, + "efb039646ac446448b73f9b110f078bc": { + "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_f1ff9911df224a409eb4dcd077105602", + "IPY_MODEL_601286de01af431cb06a95b3c52c1297", + "IPY_MODEL_82029075990a46549c287f70d96fb241" + ], + "layout": "IPY_MODEL_9d92880154284cfabd34fdd2a879557e" + } + }, + "f1ff9911df224a409eb4dcd077105602": { + "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_a902ce551fbf4d269f0af48e8d999456", + "placeholder": "​", + "style": "IPY_MODEL_44d21dcb05e5432395b1571269ae3e3e", + "value": "Downloading readme: 100%" + } + }, + "601286de01af431cb06a95b3c52c1297": { + "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_6205009e4b634c5aba94decb5f0737d9", + "max": 4872, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_fd09d4a2d52d43bb8dcb2ca277734d63", + "value": 4872 + } + }, + "82029075990a46549c287f70d96fb241": { + "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_b95e543b05f54ab69eebb5accf5f16f1", + "placeholder": "​", + "style": "IPY_MODEL_58d38196f2cc4c71939c3023b86b8f66", + "value": " 4.87k/4.87k [00:00<00:00, 165kB/s]" + } + }, + "9d92880154284cfabd34fdd2a879557e": { + "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 + } + }, + "a902ce551fbf4d269f0af48e8d999456": { + "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 + } + }, + "44d21dcb05e5432395b1571269ae3e3e": { + "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": "" + } + }, + "6205009e4b634c5aba94decb5f0737d9": { + "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 + } + }, + "fd09d4a2d52d43bb8dcb2ca277734d63": { + "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": "" + } + }, + "b95e543b05f54ab69eebb5accf5f16f1": { + "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 + } + }, + "58d38196f2cc4c71939c3023b86b8f66": { + "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": "" + } + }, + "48e5b14d12c349d8971629d44439ba90": { + "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_3638a8adbb614c019bee2d196178300f", + "IPY_MODEL_939899827f79406abfebd4eb924a1f28", + "IPY_MODEL_0cec573cacdf4ce7abffb6b23530912a" + ], + "layout": "IPY_MODEL_1b2509bf126a4b1995d3ce34bdff94bb" + } + }, + "3638a8adbb614c019bee2d196178300f": { + "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_725100fe32924048bd546b35c4c7e97b", + "placeholder": "​", + "style": "IPY_MODEL_08532fee0806449b852d2abb6dcc800f", + "value": "Downloading data: 100%" + } + }, + "939899827f79406abfebd4eb924a1f28": { + "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_7e13a9bc11754d81a1767648fba9bddd", + "max": 203415, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_cc2a4f6dfbfd4d6b9b50c88007e8acb1", + "value": 203415 + } + }, + "0cec573cacdf4ce7abffb6b23530912a": { + "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_36680638abcb432eaba702e0812e13b0", + "placeholder": "​", + "style": "IPY_MODEL_98629adb6fe243f4a93d32feb910fe4a", + "value": " 203k/203k [00:00<00:00, 336kB/s]" + } + }, + "1b2509bf126a4b1995d3ce34bdff94bb": { + "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 + } + }, + "725100fe32924048bd546b35c4c7e97b": { + "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 + } + }, + "08532fee0806449b852d2abb6dcc800f": { + "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": "" + } + }, + "7e13a9bc11754d81a1767648fba9bddd": { + "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 + } + }, + "cc2a4f6dfbfd4d6b9b50c88007e8acb1": { + "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": "" + } + }, + "36680638abcb432eaba702e0812e13b0": { + "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 + } + }, + "98629adb6fe243f4a93d32feb910fe4a": { + "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": "" + } + }, + "ad8aba6ae12b442d8f565736306f629d": { + "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_fbc3e452aaef4d9e8276672d79a16a26", + "IPY_MODEL_91df8c29dc38436a997b8699bf7529d5", + "IPY_MODEL_e318a73994954820bf4bf1605b85224e" + ], + "layout": "IPY_MODEL_2ee14bfa717540979e2d96d3dfc38b3a" + } + }, + "fbc3e452aaef4d9e8276672d79a16a26": { + "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_3fd4cd502bc248cb93bb0edbd0d976d7", + "placeholder": "​", + "style": "IPY_MODEL_cf583a214c4549ebb58e82cf82f7df75", + "value": "Generating train split: 100%" + } + }, + "91df8c29dc38436a997b8699bf7529d5": { + "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_c24292f39f674a7ea0ecc2f955c2392c", + "max": 5574, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b2b9b9ef25d442db90aa7b48002de18e", + "value": 5574 + } + }, + "e318a73994954820bf4bf1605b85224e": { + "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_876ccb2fe56644609ad3028e8cc93909", + "placeholder": "​", + "style": "IPY_MODEL_b96fae3e626f4d1a9977ae67bffde0a8", + "value": " 5574/5574 [00:13<00:00, 15906.55 examples/s]" + } + }, + "2ee14bfa717540979e2d96d3dfc38b3a": { + "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 + } + }, + "3fd4cd502bc248cb93bb0edbd0d976d7": { + "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 + } + }, + "cf583a214c4549ebb58e82cf82f7df75": { + "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": "" + } + }, + "c24292f39f674a7ea0ecc2f955c2392c": { + "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 + } + }, + "b2b9b9ef25d442db90aa7b48002de18e": { + "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": "" + } + }, + "876ccb2fe56644609ad3028e8cc93909": { + "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 + } + }, + "b96fae3e626f4d1a9977ae67bffde0a8": { + "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": "" + } + }, + "5e0f638e84434178bf5f67ad2ebfece8": { + "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_cdadce8864194006ad83327ad98e18f7", + "IPY_MODEL_fff9b08154f54f98a4755e35dfb3fbb0", + "IPY_MODEL_b57ec86fc53242aca985994838c31489" + ], + "layout": "IPY_MODEL_8be5e673687543fd9086c7ef58d903d0" + } + }, + "cdadce8864194006ad83327ad98e18f7": { + "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_0b772ad96256464fb253a9417beb153b", + "placeholder": "​", + "style": "IPY_MODEL_84806612e351433e8b05541d7d846e59", + "value": "100%" + } + }, + "fff9b08154f54f98a4755e35dfb3fbb0": { + "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_8371b9441c7445049622c24a150170cb", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_262e1abb42814751833ca2de1c2b8c9d", + "value": 1 + } + }, + "b57ec86fc53242aca985994838c31489": { + "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_7f16ec94084242db87907309d3b5ec4a", + "placeholder": "​", + "style": "IPY_MODEL_f9c48d37ee844fa0872ab6315a8ee387", + "value": " 1/1 [00:00<00:00, 19.88it/s]" + } + }, + "8be5e673687543fd9086c7ef58d903d0": { + "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 + } + }, + "0b772ad96256464fb253a9417beb153b": { + "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 + } + }, + "84806612e351433e8b05541d7d846e59": { + "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": "" + } + }, + "8371b9441c7445049622c24a150170cb": { + "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 + } + }, + "262e1abb42814751833ca2de1c2b8c9d": { + "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": "" + } + }, + "7f16ec94084242db87907309d3b5ec4a": { + "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 + } + }, + "f9c48d37ee844fa0872ab6315a8ee387": { + "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": "" + } + }, + "c66f887ac2b347f790613aad99628ddd": { + "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_48d2febefb344765ba898f66631a20b5", + "IPY_MODEL_ddff15d28609430e9901c59405a081f8", + "IPY_MODEL_f3419ef8f62d4229a001e085c02af151" + ], + "layout": "IPY_MODEL_d08b4d68348c464cbc9b14d747786fde" + } + }, + "48d2febefb344765ba898f66631a20b5": { + "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_ea925b20bb6442bcb126a4c152c46c44", + "placeholder": "​", + "style": "IPY_MODEL_b2df53a7ccb845d6bb9319daecc1a475", + "value": "Downloading (…)olve/main/vocab.json: 100%" + } + }, + "ddff15d28609430e9901c59405a081f8": { + "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_ee7bf6b4fbdd44ec99028b45184b9c31", + "max": 1042301, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ac3375bb5681453d8d5d711fbefd4455", + "value": 1042301 + } + }, + "f3419ef8f62d4229a001e085c02af151": { + "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_39e1df93a3e04d949432e0f12e67bb53", + "placeholder": "​", + "style": "IPY_MODEL_0257dac8f585464daf84fc253f00a156", + "value": " 1.04M/1.04M [00:01<00:00, 786kB/s]" + } + }, + "d08b4d68348c464cbc9b14d747786fde": { + "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 + } + }, + "ea925b20bb6442bcb126a4c152c46c44": { + "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 + } + }, + "b2df53a7ccb845d6bb9319daecc1a475": { + "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": "" + } + }, + "ee7bf6b4fbdd44ec99028b45184b9c31": { + "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 + } + }, + "ac3375bb5681453d8d5d711fbefd4455": { + "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": "" + } + }, + "39e1df93a3e04d949432e0f12e67bb53": { + "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 + } + }, + "0257dac8f585464daf84fc253f00a156": { + "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": "" + } + }, + "e13ede98e6d84b3db1ffed7075db1833": { + "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_99c7e79fb47b46bd94532cd4fe31a154", + "IPY_MODEL_344ea5fcf09c4c6992e7fd875a24d468", + "IPY_MODEL_2250f533e2914c52827ba6eca0920c97" + ], + "layout": "IPY_MODEL_94e6951304cc4f74bdfb53b77ba02308" + } + }, + "99c7e79fb47b46bd94532cd4fe31a154": { + "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_a3329ed7cefd4376956e44c7e04de4d5", + "placeholder": "​", + "style": "IPY_MODEL_a55ce911dc3b43c1bfc830496f1cb6d4", + "value": "Downloading (…)olve/main/merges.txt: 100%" + } + }, + "344ea5fcf09c4c6992e7fd875a24d468": { + "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_ae46982104714a43ba1bd2c5c6a76ff8", + "max": 456318, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ec15d18ce87a4a7682772debeb9a37ae", + "value": 456318 + } + }, + "2250f533e2914c52827ba6eca0920c97": { + "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_b6a13356c2fc4ba09e599d6038625f80", + "placeholder": "​", + "style": "IPY_MODEL_2b24cf0161df478d91710a61af75aab9", + "value": " 456k/456k [00:01<00:00, 411kB/s]" + } + }, + "94e6951304cc4f74bdfb53b77ba02308": { + "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 + } + }, + "a3329ed7cefd4376956e44c7e04de4d5": { + "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 + } + }, + "a55ce911dc3b43c1bfc830496f1cb6d4": { + "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": "" + } + }, + "ae46982104714a43ba1bd2c5c6a76ff8": { + "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 + } + }, + "ec15d18ce87a4a7682772debeb9a37ae": { + "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": "" + } + }, + "b6a13356c2fc4ba09e599d6038625f80": { + "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 + } + }, + "2b24cf0161df478d91710a61af75aab9": { + "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": "" + } + }, + "1c8e2e670fe94e11905fdb82d5c28aef": { + "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_88d4f4991f5846639b9216163cf928d7", + "IPY_MODEL_5d13be7e7854411b84110c6c6aaf6aa7", + "IPY_MODEL_f1adbed46a7d458ba893ca4e3620b275" + ], + "layout": "IPY_MODEL_72882edb5601464f8c3b6a76fd1c10d7" + } + }, + "88d4f4991f5846639b9216163cf928d7": { + "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_f27b9257a51f44a1aa816f88e407323b", + "placeholder": "​", + "style": "IPY_MODEL_124f164056d542f2820c1ebb99faeb18", + "value": "Downloading (…)lve/main/config.json: 100%" + } + }, + "5d13be7e7854411b84110c6c6aaf6aa7": { + "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_ed544ca048f34d01bffd01109a2dd3e5", + "max": 665, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_904ac8e80dae40f1a4f344a3c32f98cb", + "value": 665 + } + }, + "f1adbed46a7d458ba893ca4e3620b275": { + "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_e8fbe6c23d84418eb265ebd38dd43007", + "placeholder": "​", + "style": "IPY_MODEL_3e98702f338c4c7ea96ce4fc466e6c52", + "value": " 665/665 [00:00<00:00, 11.0kB/s]" + } + }, + "72882edb5601464f8c3b6a76fd1c10d7": { + "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 + } + }, + "f27b9257a51f44a1aa816f88e407323b": { + "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 + } + }, + "124f164056d542f2820c1ebb99faeb18": { + "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": "" + } + }, + "ed544ca048f34d01bffd01109a2dd3e5": { + "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 + } + }, + "904ac8e80dae40f1a4f344a3c32f98cb": { + "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": "" + } + }, + "e8fbe6c23d84418eb265ebd38dd43007": { + "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 + } + }, + "3e98702f338c4c7ea96ce4fc466e6c52": { + "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": "" + } + }, + "54a468d755ee4d398517315461829a70": { + "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_7d9cfb12850a48c1a9cfde1118adc2ea", + "IPY_MODEL_2534269fcfad4bc78214a4a606842072", + "IPY_MODEL_b1e3f817928c42e9b69db75289a9d30a" + ], + "layout": "IPY_MODEL_91fd0a3f735a4d35a040f7bba80d3e24" + } + }, + "7d9cfb12850a48c1a9cfde1118adc2ea": { + "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_0ea13a9834954df78af18a82ac52593a", + "placeholder": "​", + "style": "IPY_MODEL_65da66d6460c4973a5cf76d626105013", + "value": "Downloading (…)"pytorch_model.bin";: 100%" + } + }, + "2534269fcfad4bc78214a4a606842072": { + "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_1fc49833bbb74b358896cddf45f76efe", + "max": 548118077, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2b5f3b65686a4794a54a96f48c03902c", + "value": 548118077 + } + }, + "b1e3f817928c42e9b69db75289a9d30a": { + "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_f009b8b012b24afab7b485ebb31129a5", + "placeholder": "​", + "style": "IPY_MODEL_2efae8e22a294bc5a29abedeb136f909", + "value": " 548M/548M [00:07<00:00, 81.8MB/s]" + } + }, + "91fd0a3f735a4d35a040f7bba80d3e24": { + "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 + } + }, + "0ea13a9834954df78af18a82ac52593a": { + "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 + } + }, + "65da66d6460c4973a5cf76d626105013": { + "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": "" + } + }, + "1fc49833bbb74b358896cddf45f76efe": { + "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 + } + }, + "2b5f3b65686a4794a54a96f48c03902c": { + "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": "" + } + }, + "f009b8b012b24afab7b485ebb31129a5": { + "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 + } + }, + "2efae8e22a294bc5a29abedeb136f909": { + "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": "" + } + } + } + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Instalacja pakietów" + ], + "metadata": { + "id": "t2xXKpOpcZg_" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fdpN7ugfauLD", + "outputId": "e16a56fb-980a-4b83-c12a-4231d68d9af2" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting transformers\n", + " Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m71.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting datasets\n", + " Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m18.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", + "Collecting huggingface-hub<1.0,>=0.11.0\n", + " Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m24.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", + "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\n", + " Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m105.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", + "Requirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", + "Collecting multiprocess\n", + " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m13.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting xxhash\n", + " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m24.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", + "Collecting responses<0.19\n", + " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", + "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", + "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", + "Collecting urllib3<1.27,>=1.21.1\n", + " Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m13.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", + "Installing collected packages: tokenizers, xxhash, urllib3, multiprocess, responses, huggingface-hub, transformers, datasets\n", + " Attempting uninstall: urllib3\n", + " Found existing installation: urllib3 1.24.3\n", + " Uninstalling urllib3-1.24.3:\n", + " Successfully uninstalled urllib3-1.24.3\n", + "Successfully installed datasets-2.9.0 huggingface-hub-0.12.0 multiprocess-0.70.14 responses-0.18.0 tokenizers-0.13.2 transformers-4.26.1 urllib3-1.26.14 xxhash-3.2.0\n" + ] + } + ], + "source": [ + "!pip install transformers datasets torch" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Załadowanie pakietów" + ], + "metadata": { + "id": "s8cfdy_6ldCn" + } + }, + { + "cell_type": "code", + "source": [ + "from datasets import load_dataset\n", + "from transformers import GPT2Tokenizer\n", + "import torch\n", + "from torch.utils.data import TensorDataset, random_split\n", + "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler\n", + "from transformers import GPT2ForSequenceClassification, GPT2Config\n", + "from transformers import get_linear_schedule_with_warmup\n", + "import numpy as np\n", + "import time\n", + "import datetime\n", + "import random" + ], + "metadata": { + "id": "yLS_x9DIlgSs" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Załadowanie datasetu\n", + "sms_spam" + ], + "metadata": { + "id": "fPwDyJd5cdaE" + } + }, + { + "cell_type": "code", + "source": [ + "dataset = load_dataset(\"sms_spam\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 244, + "referenced_widgets": [ + "4d28a819f7744b4ebcc6ff7da5438505", + "f2923388d9fd4a819dab9e6294e8e663", + "0660419f21e44cbd9d2a410b55412a8d", + "670ac47a54c04b97beae23d43266a78f", + "ba12be10705041c39f87cfb2151df859", + "c9d3ee38f1dc42c5b688b06e98cfc751", + "422332e84b4e4ce88eb8eae5a927f855", + "ab1d5c664cb64ae3b5cdd27c6f8a6ecf", + "5377f59cde4945a7b1b58f756a86b331", + "d520817cd13c4e778d402fd26eca64af", + "287518f909c045fbb8bb273e90299ff4", + "a08b97bcaed348d6a719270ce42bce82", + "f77d5fb080a34d3bae60e717963f7375", + "f662c61ed7ab49cca8f49e787243c2a9", + "9eb069bc0e66466fa235389126436554", + "6cc13ab8ebb2457c9180ceecaa8305a1", + "75924d8d3e6149488908fe85885c1632", + "f5cfc5a4de0c41148d8395c8b5825f1a", + "2ace0a0212e3420f8a7de04e70ecf6d1", + "9e17280369874a82bfd83605d1938353", + "c517ff5a95c941159950d5ff4f840b46", + "c266cdb1e36f49899f59b18d760e86b3", + "efb039646ac446448b73f9b110f078bc", + "f1ff9911df224a409eb4dcd077105602", + "601286de01af431cb06a95b3c52c1297", + "82029075990a46549c287f70d96fb241", + "9d92880154284cfabd34fdd2a879557e", + "a902ce551fbf4d269f0af48e8d999456", + "44d21dcb05e5432395b1571269ae3e3e", + "6205009e4b634c5aba94decb5f0737d9", + "fd09d4a2d52d43bb8dcb2ca277734d63", + "b95e543b05f54ab69eebb5accf5f16f1", + "58d38196f2cc4c71939c3023b86b8f66", + "48e5b14d12c349d8971629d44439ba90", + "3638a8adbb614c019bee2d196178300f", + "939899827f79406abfebd4eb924a1f28", + "0cec573cacdf4ce7abffb6b23530912a", + "1b2509bf126a4b1995d3ce34bdff94bb", + "725100fe32924048bd546b35c4c7e97b", + "08532fee0806449b852d2abb6dcc800f", + "7e13a9bc11754d81a1767648fba9bddd", + "cc2a4f6dfbfd4d6b9b50c88007e8acb1", + "36680638abcb432eaba702e0812e13b0", + "98629adb6fe243f4a93d32feb910fe4a", + "ad8aba6ae12b442d8f565736306f629d", + "fbc3e452aaef4d9e8276672d79a16a26", + "91df8c29dc38436a997b8699bf7529d5", + "e318a73994954820bf4bf1605b85224e", + "2ee14bfa717540979e2d96d3dfc38b3a", + "3fd4cd502bc248cb93bb0edbd0d976d7", + "cf583a214c4549ebb58e82cf82f7df75", + "c24292f39f674a7ea0ecc2f955c2392c", + "b2b9b9ef25d442db90aa7b48002de18e", + "876ccb2fe56644609ad3028e8cc93909", + "b96fae3e626f4d1a9977ae67bffde0a8", + "5e0f638e84434178bf5f67ad2ebfece8", + "cdadce8864194006ad83327ad98e18f7", + "fff9b08154f54f98a4755e35dfb3fbb0", + "b57ec86fc53242aca985994838c31489", + "8be5e673687543fd9086c7ef58d903d0", + "0b772ad96256464fb253a9417beb153b", + "84806612e351433e8b05541d7d846e59", + "8371b9441c7445049622c24a150170cb", + "262e1abb42814751833ca2de1c2b8c9d", + "7f16ec94084242db87907309d3b5ec4a", + "f9c48d37ee844fa0872ab6315a8ee387" + ] + }, + "id": "N1EWeM0KcYtO", + "outputId": "79479873-3ccf-40a2-d8ec-77c486864036" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading builder script: 0%| | 0.00/3.21k [00:005,} test samples'.format(test_size))\n", + "print('{:>5,} training samples'.format(train_size))\n", + "print('{:>5,} validation samples'.format(val_size))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vH3yXhA0hT3n", + "outputId": "fd6c0545-d91a-4920-f961-d758cde83911" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1,000 test samples\n", + "4,116 training samples\n", + " 458 validation samples\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create train and validation loaders" + ], + "metadata": { + "id": "z1hVsejihpO2" + } + }, + { + "cell_type": "code", + "source": [ + "batch_size = 8\n", + "\n", + "train_dataloader = DataLoader(\n", + " train_dataset,\n", + " sampler = RandomSampler(train_dataset),\n", + " batch_size = batch_size\n", + " )\n", + "\n", + "validation_dataloader = DataLoader(\n", + " val_dataset,\n", + " sampler = SequentialSampler(val_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "k4pXght6hre3" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Device check" + ], + "metadata": { + "id": "MnErwHAbl_rF" + } + }, + { + "cell_type": "code", + "source": [ + "if torch.cuda.is_available(): \n", + " device = torch.device(\"cuda\")\n", + "\n", + " print('There are %d GPU(s) available.' % torch.cuda.device_count())\n", + " print('We will use the GPU:', torch.cuda.get_device_name(0))\n", + "\n", + "else:\n", + " print('No GPU available, using the CPU instead.')\n", + " device = torch.device(\"cpu\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "aUvyBFxzmBUy", + "outputId": "04bc746e-0d7a-443f-dfd2-df757b49cc04" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "There are 1 GPU(s) available.\n", + "We will use the GPU: Tesla T4\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Load GPT2 model" + ], + "metadata": { + "id": "o-YrojT-iIfY" + } + }, + { + "cell_type": "code", + "source": [ + "model = GPT2ForSequenceClassification.from_pretrained(\n", + " 'gpt2',\n", + " num_labels = 2,\n", + ")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 84, + "referenced_widgets": [ + "54a468d755ee4d398517315461829a70", + "7d9cfb12850a48c1a9cfde1118adc2ea", + "2534269fcfad4bc78214a4a606842072", + "b1e3f817928c42e9b69db75289a9d30a", + "91fd0a3f735a4d35a040f7bba80d3e24", + "0ea13a9834954df78af18a82ac52593a", + "65da66d6460c4973a5cf76d626105013", + "1fc49833bbb74b358896cddf45f76efe", + "2b5f3b65686a4794a54a96f48c03902c", + "f009b8b012b24afab7b485ebb31129a5", + "2efae8e22a294bc5a29abedeb136f909" + ] + }, + "id": "sIP3VGZmiK9s", + "outputId": "ebac6f6b-b0c4-49a3-8da7-2c98fe1bbbf1" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading (…)\"pytorch_model.bin\";: 0%| | 0.00/548M [00:005,} of {:>5,}. Elapsed: {:}.'.format(step, len(train_dataloader), elapsed))\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + " b_labels = batch[2].to(device)\n", + "\n", + " model.zero_grad() \n", + "\n", + " outputs = model(b_input_ids, \n", + " token_type_ids=None, \n", + " attention_mask=b_input_mask, \n", + " labels=b_labels)\n", + "\n", + " loss = outputs['loss']\n", + " total_train_loss += loss.item()\n", + "\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n", + "\n", + " optimizer.step()\n", + " scheduler.step()\n", + "\n", + " avg_train_loss = total_train_loss / len(train_dataloader) \n", + " training_time = format_time(time.time() - t0)\n", + "\n", + " print(\"\")\n", + " print(\" Average training loss: {0:.2f}\".format(avg_train_loss))\n", + " print(\" Training epcoh took: {:}\".format(training_time))\n", + " \n", + " # ========================================\n", + " # Validation\n", + " # ========================================\n", + "\n", + " print(\"\")\n", + " print(\"Running Validation...\")\n", + "\n", + " t0 = time.time()\n", + " model.eval()\n", + "\n", + " total_eval_accuracy = 0\n", + " total_eval_loss = 0\n", + " nb_eval_steps = 0\n", + "\n", + " for batch in validation_dataloader:\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + " b_labels = batch[2].to(device)\n", + " \n", + " with torch.no_grad(): \n", + " outputs = model(b_input_ids, \n", + " token_type_ids=None, \n", + " attention_mask=b_input_mask,\n", + " labels=b_labels)\n", + " loss = outputs['loss']\n", + " logits = outputs['logits']\n", + " \n", + " total_eval_loss += loss.item()\n", + "\n", + " logits = logits.detach().cpu().numpy()\n", + " label_ids = b_labels.to('cpu').numpy()\n", + "\n", + " total_eval_accuracy += flat_accuracy(logits, label_ids)\n", + " \n", + " avg_val_accuracy = total_eval_accuracy / len(validation_dataloader)\n", + " print(\" Accuracy: {0:.2f}\".format(avg_val_accuracy))\n", + "\n", + " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", + " validation_time = format_time(time.time() - t0)\n", + " \n", + " print(\" Validation Loss: {0:.2f}\".format(avg_val_loss))\n", + " print(\" Validation took: {:}\".format(validation_time))\n", + "\n", + " training_stats.append(\n", + " {\n", + " 'epoch': epoch_i + 1,\n", + " 'Training Loss': avg_train_loss,\n", + " 'Valid. Loss': avg_val_loss,\n", + " 'Valid. Accur.': avg_val_accuracy,\n", + " 'Training Time': training_time,\n", + " 'Validation Time': validation_time\n", + " }\n", + " )\n", + "\n", + "print(\"\")\n", + "print(\"Training complete!\")\n", + "\n", + "print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hnq-2iztdYie", + "outputId": "f2cf6703-9ab8-4dbf-e5d4-22f899a28776" + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "======== Epoch 1 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:19.\n", + " Batch 80 of 515. Elapsed: 0:00:35.\n", + " Batch 120 of 515. Elapsed: 0:00:52.\n", + " Batch 160 of 515. Elapsed: 0:01:08.\n", + " Batch 200 of 515. Elapsed: 0:01:25.\n", + " Batch 240 of 515. Elapsed: 0:01:42.\n", + " Batch 280 of 515. Elapsed: 0:01:58.\n", + " Batch 320 of 515. Elapsed: 0:02:15.\n", + " Batch 360 of 515. Elapsed: 0:02:32.\n", + " Batch 400 of 515. Elapsed: 0:02:49.\n", + " Batch 440 of 515. Elapsed: 0:03:06.\n", + " Batch 480 of 515. Elapsed: 0:03:24.\n", + "\n", + " Average training loss: 0.14\n", + " Training epcoh took: 0:03:38\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.97\n", + " Validation Loss: 0.21\n", + " Validation took: 0:00:08\n", + "\n", + "======== Epoch 2 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:17.\n", + " Batch 80 of 515. Elapsed: 0:00:35.\n", + " Batch 120 of 515. Elapsed: 0:00:52.\n", + " Batch 160 of 515. Elapsed: 0:01:09.\n", + " Batch 200 of 515. Elapsed: 0:01:27.\n", + " Batch 240 of 515. Elapsed: 0:01:44.\n", + " Batch 280 of 515. Elapsed: 0:02:01.\n", + " Batch 320 of 515. Elapsed: 0:02:19.\n", + " Batch 360 of 515. Elapsed: 0:02:36.\n", + " Batch 400 of 515. Elapsed: 0:02:54.\n", + " Batch 440 of 515. Elapsed: 0:03:11.\n", + " Batch 480 of 515. Elapsed: 0:03:29.\n", + "\n", + " Average training loss: 0.04\n", + " Training epcoh took: 0:03:44\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.97\n", + " Validation Loss: 0.19\n", + " Validation took: 0:00:08\n", + "\n", + "======== Epoch 3 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:17.\n", + " Batch 80 of 515. Elapsed: 0:00:35.\n", + " Batch 120 of 515. Elapsed: 0:00:52.\n", + " Batch 160 of 515. Elapsed: 0:01:10.\n", + " Batch 200 of 515. Elapsed: 0:01:27.\n", + " Batch 240 of 515. Elapsed: 0:01:45.\n", + " Batch 280 of 515. Elapsed: 0:02:02.\n", + " Batch 320 of 515. Elapsed: 0:02:20.\n", + " Batch 360 of 515. Elapsed: 0:02:37.\n", + " Batch 400 of 515. Elapsed: 0:02:55.\n", + " Batch 440 of 515. Elapsed: 0:03:12.\n", + " Batch 480 of 515. Elapsed: 0:03:30.\n", + "\n", + " Average training loss: 0.03\n", + " Training epcoh took: 0:03:45\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.97\n", + " Validation Loss: 0.16\n", + " Validation took: 0:00:08\n", + "\n", + "======== Epoch 4 / 4 ========\n", + "Training...\n", + " Batch 40 of 515. Elapsed: 0:00:17.\n", + " Batch 80 of 515. Elapsed: 0:00:35.\n", + " Batch 120 of 515. Elapsed: 0:00:52.\n", + " Batch 160 of 515. Elapsed: 0:01:10.\n", + " Batch 200 of 515. Elapsed: 0:01:27.\n", + " Batch 240 of 515. Elapsed: 0:01:45.\n", + " Batch 280 of 515. Elapsed: 0:02:02.\n", + " Batch 320 of 515. Elapsed: 0:02:20.\n", + " Batch 360 of 515. Elapsed: 0:02:37.\n", + " Batch 400 of 515. Elapsed: 0:02:55.\n", + " Batch 440 of 515. Elapsed: 0:03:12.\n", + " Batch 480 of 515. Elapsed: 0:03:30.\n", + "\n", + " Average training loss: 0.01\n", + " Training epcoh took: 0:03:45\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.98\n", + " Validation Loss: 0.11\n", + " Validation took: 0:00:08\n", + "\n", + "Training complete!\n", + "Total training took 0:15:24 (h:mm:ss)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Train summary" + ], + "metadata": { + "id": "z3nngo5DgZe4" + } + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "pd.set_option('precision', 2)\n", + "df_stats = pd.DataFrame(data=training_stats)\n", + "\n", + "df_stats = df_stats.set_index('epoch')\n", + "df_stats" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "qVSGSZ5-gbnV", + "outputId": "b6e5d689-6748-4e0d-a43d-0484de05129d" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Training Loss Valid. Loss Valid. Accur. Training Time Validation Time\n", + "epoch \n", + "1 0.14 0.21 0.97 0:03:38 0:00:08\n", + "2 0.04 0.19 0.97 0:03:44 0:00:08\n", + "3 0.03 0.16 0.97 0:03:45 0:00:08\n", + "4 0.01 0.11 0.98 0:03:45 0:00:08" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Training LossValid. LossValid. Accur.Training TimeValidation Time
epoch
10.140.210.970:03:380:00:08
20.040.190.970:03:440:00:08
30.030.160.970:03:450:00:08
40.010.110.980:03:450:00:08
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import seaborn as sns\n", + "\n", + "sns.set(style='darkgrid')\n", + "\n", + "sns.set(font_scale=1.5)\n", + "plt.rcParams[\"figure.figsize\"] = (12,6)\n", + "\n", + "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", + "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", + "\n", + "plt.title(\"Training & Validation Loss\")\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.legend()\n", + "plt.xticks([1, 2, 3, 4])\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "qhDALEePhHp1", + "outputId": "ddcab2bb-da52-4647-8d04-167993f6c98f" + }, + "execution_count": 18, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create test loader" + ], + "metadata": { + "id": "7gwWvjFwhJen" + } + }, + { + "cell_type": "code", + "source": [ + "prediction_dataloader = DataLoader(\n", + " test_dataset,\n", + " sampler = SequentialSampler(test_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "du6qCdHyhMms" + }, + "execution_count": 19, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Evaluate on test dataset" + ], + "metadata": { + "id": "n9E84sH2hOt7" + } + }, + { + "cell_type": "code", + "source": [ + "print('Predicting labels for {:,} test sentences...'.format(len(test_dataset)))\n", + "\n", + "model.eval()\n", + "predictions , true_labels = [], []\n", + "\n", + "for batch in prediction_dataloader:\n", + " batch = tuple(t.to(device) for t in batch)\n", + " \n", + " b_input_ids, b_input_mask, b_labels = batch\n", + " \n", + " with torch.no_grad():\n", + " outputs = model(b_input_ids, token_type_ids=None, \n", + " attention_mask=b_input_mask)\n", + "\n", + " logits = outputs['logits']\n", + "\n", + " logits = logits.detach().cpu().numpy()\n", + " label_ids = b_labels.to('cpu').numpy()\n", + "\n", + " predictions.append(logits)\n", + " true_labels.append(label_ids)\n", + "\n", + "print(' DONE.')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "s3nFSXgbhRs1", + "outputId": "39a16e42-8d7e-4e31-95f1-e29118ce62f3" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Predicting labels for 1,000 test sentences...\n", + " DONE.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "results_ok = 0\n", + "results_false = 0\n", + "for idx, true_labels_batch in enumerate(true_labels):\n", + " predictions_i = np.argmax(predictions[idx], axis=1).flatten()\n", + " for bidx, true_label in enumerate(true_labels_batch):\n", + " if true_label == predictions_i[bidx]:\n", + " results_ok += 1\n", + " else:\n", + " results_false += 1\n", + "\n", + "print(\"Correct predictions: {}, incorrect results: {}, accuracy: {}\".format(results_ok, results_false, float(results_ok) / (results_ok + results_false)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "eNMYIt7RhWYM", + "outputId": "7257f066-6539-4e42-d0ae-e6c5609f1812" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Correct predictions: 990, incorrect results: 10, accuracy: 0.99\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# MCC Score" + ], + "metadata": { + "id": "SwHJwpqKhZ51" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "matthews_set = []\n", + "print('Calculating Matthews Corr. Coef. for each batch...')\n", + "\n", + "for i in range(len(true_labels)):\n", + " pred_labels_i = np.argmax(predictions[i], axis=1).flatten()\n", + " \n", + " matthews = matthews_corrcoef(true_labels[i], pred_labels_i) \n", + " matthews_set.append(matthews)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "oqfHjUXThb2J", + "outputId": "2bbfcaeb-5ea8-498e-a5a0-8f2fac83feea" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Calculating Matthews Corr. Coef. for each batch...\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "ax = sns.barplot(x=list(range(len(matthews_set))), y=matthews_set, ci=None)\n", + "\n", + "plt.title('MCC Score per Batch')\n", + "plt.ylabel('MCC Score (-1 to +1)')\n", + "plt.xlabel('Batch #')\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "JJoRzvr0hePf", + "outputId": "ebc78102-65e6-4847-d3c0-d3825870dc78" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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PCUnJzsdbzKZNGLEiJLuEQAAAEAhRW6tycnJ0bp167Ru3boiJyPIAwAAAKXDZZBfsmRJafUBAAAAwAMug3zr1q29unhubq7eeustpaSk6OzZs6pfv74mTpyoNm3auDxv8+bN+ve//63U1FT99ttvqlatmjp27Kjx48crLCzMqz0DAAAANwKPryNfkiZPnqzNmzcrLi5ONWvWVHJyskaPHq2EhAQ1b97c6XnPP/+8IiMj1bt3b916663av3+/EhIS9MUXXygxMVGBgYGleC8AAACA0ldmQT41NVXr16/XlClTrPvq+/Tpox49emj69OlatmyZ03P/9a9/6a677rKpNW7cWPHx8Vq/fr369evnzdYBAACAMldmF4HfuHGj/P39NWDAAGstMDBQsbGx2r17t06ePOn03MIhXpI6d+4sSTp06FDJNwsAAADcYMosyKelpalWrVoKCQmxqcfExMhisSgtLc2j+X799VdJUsWKFUusRwAAAOBGVWZB3mw2KzIy0q4eEREhSS4/kXdk/vz58vX1VdeuXUukPwAAAOBGVmZ75HNycuTv729Xv/JF1YsXL7o919q1a7V69WqNHTtWUVFRJdajuyIiHF8px1m9uGPLUnH7LM37afS1vNX/zfgcGuX1UxJuxufvRl2/JN7bi7uWNxip/7L+GfIGIz1WRv+5/COsVWZBPigoSJcuXbKrXwnw7l555uuvv9Zzzz2n++67T0899VSJ9ugus/mcwyfKbD5nV3P2hHoytiw56tMZdx8TZ2OLq7i9Fnctb8zpzXndXas0f1bdXcvZa/BmVBLPX2k9VqX5evfG+p68tzvjyVrF4clj6q3+jf4+XlqM9FiV9d+jnijua6C0/h7z8TGpcuXQEpu/zLbWREREONw+YzabJcnhtpvC9u3bp3HjxqlevXp688035evrW+J9AgAAADeiMgvy9evX1+HDh5WdnW1T//bbb63HXTl69Kgee+wxVapUSXPnzlVwcLDXegUAAABuNGUW5Lt166ZLly5p1apV1lpubq6SkpLUokULValSRZKUkZFhd0lJs9msUaNGyWQyacGCBapUqVKp9g4AAACUtTLbI9+0aVN169ZN06dPl9lsVlRUlJKTk5WRkaGpU6dax8XHx2vnzp3av3+/tfbYY48pPT1djz32mHbv3q3du3dbj0VFRbn8rbAAAADAzaDM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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "flat_predictions = np.concatenate(predictions, axis=0)\n", + "flat_predictions = np.argmax(flat_predictions, axis=1).flatten()\n", + "\n", + "flat_true_labels = np.concatenate(true_labels, axis=0)\n", + "\n", + "mcc = matthews_corrcoef(flat_true_labels, flat_predictions)\n", + "\n", + "print('Total MCC: %.3f' % mcc)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8XER3sOFhfny", + "outputId": "77ec6114-8ab3-4abd-c7b7-de95528a2bef" + }, + "execution_count": 24, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Total MCC: 0.960\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Save model" + ], + "metadata": { + "id": "ZTd3f1yKhhkP" + } + }, + { + "cell_type": "code", + "source": [ + "from google.colab import drive\n", + "\n", + "drive.mount('/content/gdrive/', force_remount=True)\n", + "\n", + "output_dir = '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model'\n", + "print(\"Saving model to %s\" % output_dir)\n", + "\n", + "model_to_save = model.module if hasattr(model, 'module') else model\n", + "model_to_save.save_pretrained(output_dir)\n", + "tokenizer.save_pretrained(output_dir)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gqSUWqCqhizx", + "outputId": "76d1febd-031d-456a-b108-7b664b2b5729" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/gdrive/\n", + "Saving model to /content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "('/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model/tokenizer_config.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model/special_tokens_map.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model/vocab.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model/merges.txt',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/GPT2_Model/added_tokens.json')" + ] + }, + "metadata": {}, + "execution_count": 25 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Bibliografia\n", + "- https://gmihaila.github.io/tutorial_notebooks/gpt2_finetune_classification/\n", + "- https://mccormickml.com/2019/07/22/BERT-fine-tuning/#a1-saving--loading-fine-tuned-model" + ], + "metadata": { + "id": "Er-thm7dkbIW" + } + } + ] +} \ No newline at end of file diff --git a/projekt/README.md b/projekt/README.md new file mode 100644 index 0000000..92e3f4a --- /dev/null +++ b/projekt/README.md @@ -0,0 +1,73 @@ +# Projekt +Wykrywanie czy podany SMS to spam - klasyfikacja. + +## Zbiór danych +Wykorzystaliśmy zbiór danych [sms spam](https://huggingface.co/datasets/sms_spam). Dataset posiada tylko zbiór treningowy dlatego w trakcie uczenia modeli podzielilśmy go losowo na 3 podzbiory: +- zbiór testowy 1 000 przykładów +- zbiór treningowy 4 116 przykładów +- zbiór walidacyjny 458 przykładów + +## Ewaluacja +Ewaluacja modeli występuje po etapie trenowania na zbiorze testowym. Metryki: +- accuracy 0-100% +- Matthews’s correlation coefficient - w skrócie accuracy, tylko bierze pod uwagę zbalansowanie zbioru, wyniki: -1 przeciwne predykcje, 0 losowe, 1 100% dokładności. + +## Rozwiązania +Wykorzystaliśmy 4 modele - BERT, GPT2, T5 oraz FLAN-T5 + +### Transformer Encoder - BERT +Najważniejsze cechy: +- wytrenowany model: bert-base-uncased +- typ modelu transformers.BertForSequenceClassification +- input modelu - treść smsa +- output modelu - klasa 1 lub 2 +- finetuning na zbiorze treningowym + - adamW optimizer + - learning rade 2e-5 + - 32 batch size + - 4 epoch +- Accuracy: 99% +- MCC: 0.973 + +### Transformer Decoder - GPT2 +Najważniejsze cechy: +- wytrenowany model gpt2 +- typ modelu transformers.GPT2ForSequenceClassification +- input modelu - treść smsa +- output modelu - klasa 1 lub 2 +- finetuning na zbiorze treningowym + - adamW optimizer + - learning rate 2e-5 + - 8 batch size (because of OOM) + - 4 epoch +- Accuracy: 99% +- MCC: 0.960 + +### Transformer Encoder-Decoder - T5 +Najważniejsze cechy: +- wytrenowany model t5-base +- typ modelu transformers.T5ForConditionalGeneration +- input modelu - treść smsa +- output modelu - tekstowo klasa 1 'conversation' lub klasa 2 'advertising' +- finetuning na zbiorze treningowym + - adamW optimizer + - learning rate 3e-4 + - 16 batch size + - 4 epoch +- Accuracy: 0% +- MCC: 0 + +### Zero-shot Transformer Encoder-Decoder - FLAN-T5 +Najważniejsze cechy: +- wytrenowany model google/flan-t5-base +- typ modelu transformers.AutoModelForSeq2SeqLM +- input modelu - Opis zadania + treść smsa + - Przykład: "Answer the question in one word - true if provided text is spam or false, if provided text is not spam. \nQ: Is this text spam? \nText: treść smsa \nA:" +- output modelu - tekstowo klasa 1 'true' lub klasa 2 'false' +- finetuning na zbiorze treningowym + - adamW optimizer + - learning rate 3e-4 + - 8 batch size + - 4 epoch +- Accauracy: 43% +- MCC: -0.033 \ No newline at end of file diff --git a/projekt/T5_sms_spam.ipynb b/projekt/T5_sms_spam.ipynb new file mode 100644 index 0000000..ecafe51 --- /dev/null +++ b/projekt/T5_sms_spam.ipynb @@ -0,0 +1,5972 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "gpuClass": "standard", + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "99a8b62c0eb9498a801d33b890ff7bed": { + "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_c359659559d34001a3c5efe76f537f02", + "IPY_MODEL_6f0e3b497e0841d685447d55249c7090", + "IPY_MODEL_0706cf17204148fd984f48cd67918fc1" + ], + "layout": "IPY_MODEL_eef03577efaa4c059c19ef479dbfd01d" + } + }, + "c359659559d34001a3c5efe76f537f02": { + "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_818c520b7deb43ac943c43db903684b2", + "placeholder": "​", + "style": "IPY_MODEL_24844abb6eff439aa39fa21170215d62", + "value": "Downloading builder script: 100%" + } + }, + "6f0e3b497e0841d685447d55249c7090": { + "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_91ad4f75ac8d45e1b351ca8ae14b6622", + "max": 3208, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ab3de39e3f5c4b7ca46d8951ae66dc2b", + "value": 3208 + } + }, + "0706cf17204148fd984f48cd67918fc1": { + "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_23aefac177cb4da1a9185f9cec04389c", + "placeholder": "​", + "style": "IPY_MODEL_0c7bf18286b4482d88e1fa60d592a41d", + "value": " 3.21k/3.21k [00:00<00:00, 39.6kB/s]" + } + }, + "eef03577efaa4c059c19ef479dbfd01d": { + "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 + } + }, + "818c520b7deb43ac943c43db903684b2": { + "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 + } + }, + "24844abb6eff439aa39fa21170215d62": { + "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": "" + } + }, + "91ad4f75ac8d45e1b351ca8ae14b6622": { + "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 + } + }, + "ab3de39e3f5c4b7ca46d8951ae66dc2b": { + "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": "" + } + }, + "23aefac177cb4da1a9185f9cec04389c": { + "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 + } + }, + "0c7bf18286b4482d88e1fa60d592a41d": { + "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": "" + } + }, + "0b9435ced6e64d5b9a8817c10800df73": { + "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_d93e145562a049b5b78939ddc21deca7", + "IPY_MODEL_a6ee0f4a0dfd4db892b7507b613413a2", + "IPY_MODEL_b474c2802a5e47b4a64e39caf3d27b49" + ], + "layout": "IPY_MODEL_ef716218f5584978921c4e60778be480" + } + }, + "d93e145562a049b5b78939ddc21deca7": { + "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_a007cf844ba149e79da42ebb2a8b6919", + "placeholder": "​", + "style": "IPY_MODEL_eea5d45eb9da447dbfbed71fb2cc98f3", + "value": "Downloading metadata: 100%" + } + }, + "a6ee0f4a0dfd4db892b7507b613413a2": { + "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_48d02bab11db43b38d4210896e55499f", + "max": 1687, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3c9d0bf719e74eb28af657c968b2c20d", + "value": 1687 + } + }, + "b474c2802a5e47b4a64e39caf3d27b49": { + "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_f8b75f9fd51a4f199c885fbcaaa34acb", + "placeholder": "​", + "style": "IPY_MODEL_313893adfed344e89b8e5ce0d7188c5c", + "value": " 1.69k/1.69k [00:00<00:00, 39.4kB/s]" + } + }, + "ef716218f5584978921c4e60778be480": { + "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 + } + }, + "a007cf844ba149e79da42ebb2a8b6919": { + "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 + } + }, + "eea5d45eb9da447dbfbed71fb2cc98f3": { + "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": "" + } + }, + "48d02bab11db43b38d4210896e55499f": { + "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 + } + }, + "3c9d0bf719e74eb28af657c968b2c20d": { + "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": "" + } + }, + "f8b75f9fd51a4f199c885fbcaaa34acb": { + "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 + } + }, + "313893adfed344e89b8e5ce0d7188c5c": { + "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": "" + } + }, + "748c273b887042158812dc3ac1491537": { + "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_e2d26ca9cae643fb802d39868c7ad23e", + "IPY_MODEL_da93abb3b0874f898e937429e191d9ce", + "IPY_MODEL_de3099d6ed254becb67a1b8747b2be25" + ], + "layout": "IPY_MODEL_2594eae8ea92443c9333ccea900184d4" + } + }, + "e2d26ca9cae643fb802d39868c7ad23e": { + "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_a5fe8d1749db4d78841d39577586b63c", + "placeholder": "​", + "style": "IPY_MODEL_916ff262c78b4bd1b47509906c41e4ac", + "value": "Downloading readme: 100%" + } + }, + "da93abb3b0874f898e937429e191d9ce": { + "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_00b3561bf5414672985d67071613aa6b", + "max": 4872, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_707f3adc572043449c373bcb6502772f", + "value": 4872 + } + }, + "de3099d6ed254becb67a1b8747b2be25": { + "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_14eda3a4a8824614aca869bb533ba431", + "placeholder": "​", + "style": "IPY_MODEL_2f84d24236d144c09a04d3a0027d8c51", + "value": " 4.87k/4.87k [00:00<00:00, 157kB/s]" + } + }, + "2594eae8ea92443c9333ccea900184d4": { + "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 + } + }, + "a5fe8d1749db4d78841d39577586b63c": { + "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 + } + }, + "916ff262c78b4bd1b47509906c41e4ac": { + "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": "" + } + }, + "00b3561bf5414672985d67071613aa6b": { + "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 + } + }, + "707f3adc572043449c373bcb6502772f": { + "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": "" + } + }, + "14eda3a4a8824614aca869bb533ba431": { + "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 + } + }, + "2f84d24236d144c09a04d3a0027d8c51": { + "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": "" + } + }, + "c3f39c4d26334407bf94756b5111bafa": { + "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_3587423fd6034d3598379e602dc52357", + "IPY_MODEL_9c9c2fc4d6164af4ae61e863818b7196", + "IPY_MODEL_e46bea8d3b7343b9b7f2393339ed2136" + ], + "layout": "IPY_MODEL_fb5ed36fc0514b5ea9b616cccfebeaf1" + } + }, + "3587423fd6034d3598379e602dc52357": { + "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_3a8cf73db8db4cff8064fec8c59462a1", + "placeholder": "​", + "style": "IPY_MODEL_c169b6b6b7fc4a11b278650b5894137e", + "value": "Downloading data: 100%" + } + }, + "9c9c2fc4d6164af4ae61e863818b7196": { + "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_4bd75cd381894b0bb7ef12f91430337c", + "max": 203415, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_a1e8db856f0e4761a9f4068650770795", + "value": 203415 + } + }, + "e46bea8d3b7343b9b7f2393339ed2136": { + "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_11b23310fcfa4ea68fb0bbc3715bea2e", + "placeholder": "​", + "style": "IPY_MODEL_3bf1c3b1c051424988978fff264d0f16", + "value": " 203k/203k [00:00<00:00, 1.02MB/s]" + } + }, + "fb5ed36fc0514b5ea9b616cccfebeaf1": { + "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 + } + }, + "3a8cf73db8db4cff8064fec8c59462a1": { + "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 + } + }, + "c169b6b6b7fc4a11b278650b5894137e": { + "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": "" + } + }, + "4bd75cd381894b0bb7ef12f91430337c": { + "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 + } + }, + "a1e8db856f0e4761a9f4068650770795": { + "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": "" + } + }, + "11b23310fcfa4ea68fb0bbc3715bea2e": { + "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 + } + }, + "3bf1c3b1c051424988978fff264d0f16": { + "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": "" + } + }, + "52eb6c7623a34694a19e12a88cff244e": { + "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_fef4864729494b99aec966647293a982", + "IPY_MODEL_d95d028c83f04010a6812f5457af4539", + "IPY_MODEL_60c3df4304814cce8048cb2ceedfabe0" + ], + "layout": "IPY_MODEL_b3dbe2a8f3d14ccc8bc14eb0c929281f" + } + }, + "fef4864729494b99aec966647293a982": { + "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_f12364f248b249f6bd6daddea22e8c4e", + "placeholder": "​", + "style": "IPY_MODEL_6a37560f11bc47c68b286a27839d7ca7", + "value": "Generating train split: 92%" + } + }, + "d95d028c83f04010a6812f5457af4539": { + "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_53e7e18723b942d5a48da59242720c8e", + "max": 5574, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b18c24667e4348389bd0abfbbb84747b", + "value": 5574 + } + }, + "60c3df4304814cce8048cb2ceedfabe0": { + "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_3e95b7edd1704ed1b28245c560035492", + "placeholder": "​", + "style": "IPY_MODEL_ebfffc894e774299b9870c67df0dca0f", + "value": " 5119/5574 [00:00<00:00, 8533.09 examples/s]" + } + }, + "b3dbe2a8f3d14ccc8bc14eb0c929281f": { + "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": "hidden", + "width": null + } + }, + "f12364f248b249f6bd6daddea22e8c4e": { + "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 + } + }, + "6a37560f11bc47c68b286a27839d7ca7": { + "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": "" + } + }, + "53e7e18723b942d5a48da59242720c8e": { + "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 + } + }, + "b18c24667e4348389bd0abfbbb84747b": { + "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": "" + } + }, + "3e95b7edd1704ed1b28245c560035492": { + "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 + } + }, + "ebfffc894e774299b9870c67df0dca0f": { + "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": "" + } + }, + "dcd34a760b324e6a94e219a9e10e557b": { + "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_b20d9f84deb5440698b832c8af79d148", + "IPY_MODEL_2a561a1680364ab9b7bd4221ff30f98f", + "IPY_MODEL_e2ba3f5319a14d65b28d2a401610eee2" + ], + "layout": "IPY_MODEL_eb1ebdb33f8748b797f45dc6c839ad44" + } + }, + "b20d9f84deb5440698b832c8af79d148": { + "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_481f3e3471a04dc692116ff3eac472b9", + "placeholder": "​", + "style": "IPY_MODEL_1d3326424eda448a969a913526ff138b", + "value": "100%" + } + }, + "2a561a1680364ab9b7bd4221ff30f98f": { + "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_f71bbb5a6ec94d05a55bca2c8d9609e6", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_d5901c24329f41f99a7b6ac4901a08c5", + "value": 1 + } + }, + "e2ba3f5319a14d65b28d2a401610eee2": { + "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_667aeb90d1be422f991d1a689be3d69e", + "placeholder": "​", + "style": "IPY_MODEL_6f721a22c07342bc9e9ba850d3bfa261", + "value": " 1/1 [00:00<00:00, 24.39it/s]" + } + }, + "eb1ebdb33f8748b797f45dc6c839ad44": { + "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 + } + }, + "481f3e3471a04dc692116ff3eac472b9": { + "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 + } + }, + "1d3326424eda448a969a913526ff138b": { + "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": "" + } + }, + "f71bbb5a6ec94d05a55bca2c8d9609e6": { + "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 + } + }, + "d5901c24329f41f99a7b6ac4901a08c5": { + "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": "" + } + }, + "667aeb90d1be422f991d1a689be3d69e": { + "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 + } + }, + "6f721a22c07342bc9e9ba850d3bfa261": { + "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": "" + } + }, + "54ce84849a974330a66e1100086a8fed": { + "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_4efdba3661464381a034ba90eed898dc", + "IPY_MODEL_d6e70f45ef8f426e8a9f1646e4bfdb2f", + "IPY_MODEL_a6b434b5186341bbb2e3a6b5772f307f" + ], + "layout": "IPY_MODEL_eb2079320deb4ef5aa5624e164689b4e" + } + }, + "4efdba3661464381a034ba90eed898dc": { + "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_88f741767e6845dda901e2f17fd978e1", + "placeholder": "​", + "style": "IPY_MODEL_d8bd3441499c405cbea7b6b61f7636ad", + "value": "Downloading (…)ve/main/spiece.model: 100%" + } + }, + "d6e70f45ef8f426e8a9f1646e4bfdb2f": { + "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_af6d44105eb8435cbc34fa902e4303b9", + "max": 791656, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e5dc73086a7d48a5a75274ecf7e1e83e", + "value": 791656 + } + }, + "a6b434b5186341bbb2e3a6b5772f307f": { + "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_7bad80b954c74f8995f9c572a2831b6f", + "placeholder": "​", + "style": "IPY_MODEL_6358c42c34a74dfc8df0101076eb2274", + "value": " 792k/792k [00:00<00:00, 2.55MB/s]" + } + }, + "eb2079320deb4ef5aa5624e164689b4e": { + "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 + } + }, + "88f741767e6845dda901e2f17fd978e1": { + "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 + } + }, + "d8bd3441499c405cbea7b6b61f7636ad": { + "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": "" + } + }, + "af6d44105eb8435cbc34fa902e4303b9": { + "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 + } + }, + "e5dc73086a7d48a5a75274ecf7e1e83e": { + "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": "" + } + }, + "7bad80b954c74f8995f9c572a2831b6f": { + "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 + } + }, + "6358c42c34a74dfc8df0101076eb2274": { + "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": "" + } + }, + "3806842991b04a19a315223c4f0d05b0": { + "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_0f9e34991e634982a37ed4474939a614", + "IPY_MODEL_6fd3d1538419439db78ae1940e6ecd95", + "IPY_MODEL_968e624fbe4b49d8b22ba35237f29f04" + ], + "layout": "IPY_MODEL_490d54e698024024a0376e0c5aa57afa" + } + }, + "0f9e34991e634982a37ed4474939a614": { + "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_9c921a01f9f44ef6b6b0867fbce29d4e", + "placeholder": "​", + "style": "IPY_MODEL_d932c14e5642431da3490fda711b855a", + "value": "Downloading (…)lve/main/config.json: 100%" + } + }, + "6fd3d1538419439db78ae1940e6ecd95": { + "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_e66eea96fb8d467085ff05b14cef41f5", + "max": 1208, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8ff90b6f1b204ceaa41c09c48bdb4a95", + "value": 1208 + } + }, + "968e624fbe4b49d8b22ba35237f29f04": { + "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_1c3c1fd4ebbf4363aa9c7b7df4fb96a7", + "placeholder": "​", + "style": "IPY_MODEL_7febee22767b48ed8ffb31b2e86e2bde", + "value": " 1.21k/1.21k [00:00<00:00, 24.3kB/s]" + } + }, + "490d54e698024024a0376e0c5aa57afa": { + "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 + } + }, + "9c921a01f9f44ef6b6b0867fbce29d4e": { + "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 + } + }, + "d932c14e5642431da3490fda711b855a": { + "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": "" + } + }, + "e66eea96fb8d467085ff05b14cef41f5": { + "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 + } + }, + "8ff90b6f1b204ceaa41c09c48bdb4a95": { + "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": "" + } + }, + "1c3c1fd4ebbf4363aa9c7b7df4fb96a7": { + "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 + } + }, + "7febee22767b48ed8ffb31b2e86e2bde": { + "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": "" + } + }, + "c4238a30a23f4a4995a64596a076f639": { + "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_7008395271204caba9d2a70e886f3fb7", + "IPY_MODEL_91fe75c3703e49e2b9200eb32465979a", + "IPY_MODEL_605fe093ee154e1eafda5f92c07712ef" + ], + "layout": "IPY_MODEL_63343a6f0a2a4f66b878afc18d408c1c" + } + }, + "7008395271204caba9d2a70e886f3fb7": { + "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_fc24763fbd70457fbb2a67883ec38a67", + "placeholder": "​", + "style": "IPY_MODEL_7ba8e63a4e1645ebad9829af1706fb1d", + "value": "Downloading (…)"pytorch_model.bin";: 100%" + } + }, + "91fe75c3703e49e2b9200eb32465979a": { + "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_1aeec94f6aed4d6fa9ef94b5e8011f95", + "max": 891691430, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7ab80f2dc4bd4bc4b4d28bff719068e2", + "value": 891691430 + } + }, + "605fe093ee154e1eafda5f92c07712ef": { + "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_ab5aa9e15b894bf6aec2ed8d7949d4fb", + "placeholder": "​", + "style": "IPY_MODEL_5aff4f72159e4187adf00959d8863017", + "value": " 892M/892M [00:04<00:00, 219MB/s]" + } + }, + "63343a6f0a2a4f66b878afc18d408c1c": { + "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 + } + }, + "fc24763fbd70457fbb2a67883ec38a67": { + "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 + } + }, + "7ba8e63a4e1645ebad9829af1706fb1d": { + "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": "" + } + }, + "1aeec94f6aed4d6fa9ef94b5e8011f95": { + "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 + } + }, + "7ab80f2dc4bd4bc4b4d28bff719068e2": { + "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": "" + } + }, + "ab5aa9e15b894bf6aec2ed8d7949d4fb": { + "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 + } + }, + "5aff4f72159e4187adf00959d8863017": { + "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": "" + } + }, + "52e83e2e748f4c79b789d0354f4e941b": { + "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_ef0f5971cb444d8f8c5c1ace4d8ebe81", + "IPY_MODEL_64885f8157264a1297bab372bf8a7fb5", + "IPY_MODEL_6b3444ddd6d24f448631e3e86d992241" + ], + "layout": "IPY_MODEL_7e0aaf3e4b5b4bbc9c8120d9e5c00d8d" + } + }, + "ef0f5971cb444d8f8c5c1ace4d8ebe81": { + "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_51c2d890c6874141a0d5ecc0eb89a282", + "placeholder": "​", + "style": "IPY_MODEL_1ec01f40f98f47e3aae79a9f871d9df1", + "value": "Downloading (…)neration_config.json: 100%" + } + }, + "64885f8157264a1297bab372bf8a7fb5": { + "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_f208555568824dd9a800555cc17182be", + "max": 147, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_5fd3c6d56ef644ebaff4da4bffa470a5", + "value": 147 + } + }, + "6b3444ddd6d24f448631e3e86d992241": { + "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_5167e08d346f47468249d2f40b262792", + "placeholder": "​", + "style": "IPY_MODEL_904d0e8e3a2b443f9e90652d78ecff95", + "value": " 147/147 [00:00<00:00, 5.66kB/s]" + } + }, + "7e0aaf3e4b5b4bbc9c8120d9e5c00d8d": { + "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 + } + }, + "51c2d890c6874141a0d5ecc0eb89a282": { + "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 + } + }, + "1ec01f40f98f47e3aae79a9f871d9df1": { + "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": "" + } + }, + "f208555568824dd9a800555cc17182be": { + "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 + } + }, + "5fd3c6d56ef644ebaff4da4bffa470a5": { + "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": "" + } + }, + "5167e08d346f47468249d2f40b262792": { + "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 + } + }, + "904d0e8e3a2b443f9e90652d78ecff95": { + "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": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Instalacja pakietów" + ], + "metadata": { + "id": "ZXsOR6oJOJbd" + } + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8l0hzptKNiZS", + "outputId": "6d11f1ae-5b12-4e44-b20b-19400c918c5a" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting transformers\n", + " Downloading transformers-4.26.1-py3-none-any.whl (6.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m18.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting datasets\n", + " Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m27.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n", + "Collecting sentencepiece\n", + " Downloading sentencepiece-0.1.97-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting huggingface-hub<1.0,>=0.11.0\n", + " Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m12.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n", + "Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\n", + " Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m28.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n", + "Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n", + "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n", + "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n", + "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n", + "Requirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n", + "Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n", + "Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n", + "Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n", + "Collecting multiprocess\n", + " Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting responses<0.19\n", + " Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n", + "Collecting xxhash\n", + " Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m12.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n", + "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n", + "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n", + "Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n", + "Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n", + "Collecting urllib3<1.27,>=1.21.1\n", + " Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m7.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n", + "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n", + "Installing collected packages: tokenizers, sentencepiece, xxhash, urllib3, multiprocess, responses, huggingface-hub, transformers, datasets\n", + " Attempting uninstall: urllib3\n", + " Found existing installation: urllib3 1.24.3\n", + " Uninstalling urllib3-1.24.3:\n", + " Successfully uninstalled urllib3-1.24.3\n", + "Successfully installed datasets-2.9.0 huggingface-hub-0.12.0 multiprocess-0.70.14 responses-0.18.0 sentencepiece-0.1.97 tokenizers-0.13.2 transformers-4.26.1 urllib3-1.26.14 xxhash-3.2.0\n" + ] + } + ], + "source": [ + "!pip install transformers datasets torch sentencepiece" + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Załadowanie datasetu" + ], + "metadata": { + "id": "dhN0rmb5Oi3d" + } + }, + { + "cell_type": "code", + "source": [ + "from datasets import load_dataset" + ], + "metadata": { + "id": "tnaDkwZ2Pbnn" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "dataset = load_dataset(\"sms_spam\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 212, + "referenced_widgets": [ + "99a8b62c0eb9498a801d33b890ff7bed", + "c359659559d34001a3c5efe76f537f02", + "6f0e3b497e0841d685447d55249c7090", + "0706cf17204148fd984f48cd67918fc1", + "eef03577efaa4c059c19ef479dbfd01d", + "818c520b7deb43ac943c43db903684b2", + "24844abb6eff439aa39fa21170215d62", + "91ad4f75ac8d45e1b351ca8ae14b6622", + "ab3de39e3f5c4b7ca46d8951ae66dc2b", + "23aefac177cb4da1a9185f9cec04389c", + "0c7bf18286b4482d88e1fa60d592a41d", + "0b9435ced6e64d5b9a8817c10800df73", + "d93e145562a049b5b78939ddc21deca7", + "a6ee0f4a0dfd4db892b7507b613413a2", + "b474c2802a5e47b4a64e39caf3d27b49", + "ef716218f5584978921c4e60778be480", + "a007cf844ba149e79da42ebb2a8b6919", + "eea5d45eb9da447dbfbed71fb2cc98f3", + "48d02bab11db43b38d4210896e55499f", + "3c9d0bf719e74eb28af657c968b2c20d", + "f8b75f9fd51a4f199c885fbcaaa34acb", + "313893adfed344e89b8e5ce0d7188c5c", + "748c273b887042158812dc3ac1491537", + "e2d26ca9cae643fb802d39868c7ad23e", + "da93abb3b0874f898e937429e191d9ce", + "de3099d6ed254becb67a1b8747b2be25", + "2594eae8ea92443c9333ccea900184d4", + "a5fe8d1749db4d78841d39577586b63c", + "916ff262c78b4bd1b47509906c41e4ac", + "00b3561bf5414672985d67071613aa6b", + "707f3adc572043449c373bcb6502772f", + "14eda3a4a8824614aca869bb533ba431", + "2f84d24236d144c09a04d3a0027d8c51", + "c3f39c4d26334407bf94756b5111bafa", + "3587423fd6034d3598379e602dc52357", + "9c9c2fc4d6164af4ae61e863818b7196", + "e46bea8d3b7343b9b7f2393339ed2136", + "fb5ed36fc0514b5ea9b616cccfebeaf1", + "3a8cf73db8db4cff8064fec8c59462a1", + "c169b6b6b7fc4a11b278650b5894137e", + "4bd75cd381894b0bb7ef12f91430337c", + "a1e8db856f0e4761a9f4068650770795", + "11b23310fcfa4ea68fb0bbc3715bea2e", + "3bf1c3b1c051424988978fff264d0f16", + "52eb6c7623a34694a19e12a88cff244e", + "fef4864729494b99aec966647293a982", + "d95d028c83f04010a6812f5457af4539", + "60c3df4304814cce8048cb2ceedfabe0", + "b3dbe2a8f3d14ccc8bc14eb0c929281f", + "f12364f248b249f6bd6daddea22e8c4e", + "6a37560f11bc47c68b286a27839d7ca7", + "53e7e18723b942d5a48da59242720c8e", + "b18c24667e4348389bd0abfbbb84747b", + "3e95b7edd1704ed1b28245c560035492", + "ebfffc894e774299b9870c67df0dca0f", + "dcd34a760b324e6a94e219a9e10e557b", + "b20d9f84deb5440698b832c8af79d148", + "2a561a1680364ab9b7bd4221ff30f98f", + "e2ba3f5319a14d65b28d2a401610eee2", + "eb1ebdb33f8748b797f45dc6c839ad44", + "481f3e3471a04dc692116ff3eac472b9", + "1d3326424eda448a969a913526ff138b", + "f71bbb5a6ec94d05a55bca2c8d9609e6", + "d5901c24329f41f99a7b6ac4901a08c5", + "667aeb90d1be422f991d1a689be3d69e", + "6f721a22c07342bc9e9ba850d3bfa261" + ] + }, + "id": "cCiAuRqrOkvV", + "outputId": "87f24c1e-cb25-4b5a-b786-6f3bcbc0b96f" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading builder script: 0%| | 0.00/3.21k [00:005,} test samples'.format(test_size))\n", + "print('{:>5,} training samples'.format(train_size))\n", + "print('{:>5,} validation samples'.format(val_size))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Mm6vc6lLVW3l", + "outputId": "cfb15fb6-1daa-4b3c-df1b-5d0c862e8821" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1,000 test samples\n", + "4,116 training samples\n", + " 458 validation samples\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create train and validation loaders" + ], + "metadata": { + "id": "bmgQOP4EVfA1" + } + }, + { + "cell_type": "code", + "source": [ + "from torch.utils.data import DataLoader, RandomSampler, SequentialSampler" + ], + "metadata": { + "id": "CxnQ3cmIVlNh" + }, + "execution_count": 15, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "batch_size = 16\n", + "\n", + "train_dataloader = DataLoader(\n", + " train_dataset,\n", + " sampler = RandomSampler(train_dataset),\n", + " batch_size = batch_size\n", + " )\n", + "\n", + "validation_dataloader = DataLoader(\n", + " val_dataset,\n", + " sampler = SequentialSampler(val_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "0hcpO_onVjEC" + }, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Device check" + ], + "metadata": { + "id": "efwhqLyyVu9z" + } + }, + { + "cell_type": "code", + "source": [ + "if torch.cuda.is_available(): \n", + " device = torch.device(\"cuda\")\n", + "\n", + " print('There are %d GPU(s) available.' % torch.cuda.device_count())\n", + " print('We will use the GPU:', torch.cuda.get_device_name(0))\n", + "\n", + "else:\n", + " print('No GPU available, using the CPU instead.')\n", + " device = torch.device(\"cpu\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ANBCfNGnVwVk", + "outputId": "8db82471-22b2-450d-cb9d-ba86ce765fa2" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "There are 1 GPU(s) available.\n", + "We will use the GPU: Tesla T4\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Load T5 model" + ], + "metadata": { + "id": "okTx_ynMV0rH" + } + }, + { + "cell_type": "code", + "source": [ + "from transformers import T5ForConditionalGeneration" + ], + "metadata": { + "id": "Eu-7Eed8WgN0" + }, + "execution_count": 18, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "model = T5ForConditionalGeneration.from_pretrained('t5-base')\n", + "\n", + "model.cuda()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "c4238a30a23f4a4995a64596a076f639", + "7008395271204caba9d2a70e886f3fb7", + "91fe75c3703e49e2b9200eb32465979a", + "605fe093ee154e1eafda5f92c07712ef", + "63343a6f0a2a4f66b878afc18d408c1c", + "fc24763fbd70457fbb2a67883ec38a67", + "7ba8e63a4e1645ebad9829af1706fb1d", + "1aeec94f6aed4d6fa9ef94b5e8011f95", + "7ab80f2dc4bd4bc4b4d28bff719068e2", + "ab5aa9e15b894bf6aec2ed8d7949d4fb", + "5aff4f72159e4187adf00959d8863017", + "52e83e2e748f4c79b789d0354f4e941b", + "ef0f5971cb444d8f8c5c1ace4d8ebe81", + "64885f8157264a1297bab372bf8a7fb5", + "6b3444ddd6d24f448631e3e86d992241", + "7e0aaf3e4b5b4bbc9c8120d9e5c00d8d", + "51c2d890c6874141a0d5ecc0eb89a282", + "1ec01f40f98f47e3aae79a9f871d9df1", + "f208555568824dd9a800555cc17182be", + "5fd3c6d56ef644ebaff4da4bffa470a5", + "5167e08d346f47468249d2f40b262792", + "904d0e8e3a2b443f9e90652d78ecff95" + ] + }, + "id": "JKv9O8kfV2zZ", + "outputId": "0d41faa2-6857-4a67-d581-41383ffc0378" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Downloading (…)\"pytorch_model.bin\";: 0%| | 0.00/892M [00:005,} of {:>5,}. Elapsed: {:}.'.format(step, len(train_dataloader), elapsed))\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + "\n", + " y = batch[2].to(device)\n", + " y_ids = y[:, :-1].contiguous()\n", + " lm_labels = y[:, 1:].clone().detach()\n", + " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", + "\n", + " model.zero_grad() \n", + "\n", + " outputs = model(\n", + " input_ids=b_input_ids,\n", + " attention_mask=b_input_mask,\n", + " decoder_input_ids=y_ids,\n", + " labels=lm_labels\n", + " )\n", + "\n", + " loss = outputs['loss']\n", + " total_train_loss += loss.item()\n", + "\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)\n", + "\n", + " optimizer.step()\n", + " scheduler.step()\n", + "\n", + " avg_train_loss = total_train_loss / len(train_dataloader) \n", + " training_time = format_time(time.time() - t0)\n", + "\n", + " print(\"\")\n", + " print(\" Average training loss: {0:.2f}\".format(avg_train_loss))\n", + " print(\" Training epcoh took: {:}\".format(training_time))\n", + " \n", + " # ========================================\n", + " # Validation\n", + " # ========================================\n", + "\n", + " print(\"\")\n", + " print(\"Running Validation...\")\n", + "\n", + " t0 = time.time()\n", + " model.eval()\n", + "\n", + " total_eval_loss = 0\n", + " total_eval_accuracy = 0\n", + "\n", + " for batch in validation_dataloader:\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + "\n", + " y = batch[2].to(device)\n", + " y_ids = y[:, :-1].contiguous()\n", + " lm_labels = y[:, 1:].clone().detach()\n", + " lm_labels[y[:, 1:] == tokenizer.pad_token_id] = -100\n", + " \n", + " with torch.no_grad(): \n", + "\n", + " outputs = model(\n", + " input_ids=b_input_ids,\n", + " attention_mask=b_input_mask,\n", + " decoder_input_ids=y_ids,\n", + " labels=lm_labels\n", + " )\n", + "\n", + " loss = outputs['loss']\n", + " total_eval_loss += loss.item()\n", + "\n", + " generated_ids = model.generate(\n", + " input_ids = b_input_ids,\n", + " attention_mask = b_input_mask, \n", + " max_length=2, \n", + " num_beams=2,\n", + " repetition_penalty=2.5, \n", + " length_penalty=1.0, \n", + " early_stopping=True\n", + " )\n", + "\n", + " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", + " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", + " total_eval_accuracy += calculate_accuracy(preds, target) \n", + "\n", + " avg_val_loss = total_eval_loss / len(validation_dataloader)\n", + "\n", + " avg_val_accuracy = total_eval_accuracy / len(validation_dataloader)\n", + " print(\" Accuracy: {0:.2f}\".format(avg_val_accuracy))\n", + " \n", + " validation_time = format_time(time.time() - t0)\n", + " print(\" Validation took: {:}\".format(validation_time))\n", + " print(\" Validation Loss: {0:.2f}\".format(avg_val_loss))\n", + "\n", + " training_stats.append(\n", + " {\n", + " 'epoch': epoch_i + 1,\n", + " 'Training Loss': avg_train_loss,\n", + " 'Valid. Loss': avg_val_loss,\n", + " 'Valid. Accur.': avg_val_accuracy,\n", + " 'Training Time': training_time,\n", + " 'Validation Time': validation_time\n", + " }\n", + " )\n", + "\n", + "print(\"\")\n", + "print(\"Training complete!\")\n", + "\n", + "print(\"Total training took {:} (h:mm:ss)\".format(format_time(time.time()-total_t0)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xsHxfslka1u5", + "outputId": "c1d90548-6d70-4172-e0e2-e916eea141a6" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "======== Epoch 1 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:00:46.\n", + " Batch 80 of 258. Elapsed: 0:01:32.\n", + " Batch 120 of 258. Elapsed: 0:02:17.\n", + " Batch 160 of 258. Elapsed: 0:03:02.\n", + " Batch 200 of 258. Elapsed: 0:03:47.\n", + " Batch 240 of 258. Elapsed: 0:04:33.\n", + "\n", + " Average training loss: 0.02\n", + " Training epcoh took: 0:04:52\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.00\n", + " Validation took: 0:00:24\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 2 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:00:45.\n", + " Batch 80 of 258. Elapsed: 0:01:31.\n", + " Batch 120 of 258. Elapsed: 0:02:16.\n", + " Batch 160 of 258. Elapsed: 0:03:01.\n", + " Batch 200 of 258. Elapsed: 0:03:46.\n", + " Batch 240 of 258. Elapsed: 0:04:32.\n", + "\n", + " Average training loss: 0.00\n", + " Training epcoh took: 0:04:52\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.00\n", + " Validation took: 0:00:24\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 3 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:00:45.\n", + " Batch 80 of 258. Elapsed: 0:01:30.\n", + " Batch 120 of 258. Elapsed: 0:02:15.\n", + " Batch 160 of 258. Elapsed: 0:03:01.\n", + " Batch 200 of 258. Elapsed: 0:03:46.\n", + " Batch 240 of 258. Elapsed: 0:04:31.\n", + "\n", + " Average training loss: 0.00\n", + " Training epcoh took: 0:04:51\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.00\n", + " Validation took: 0:00:24\n", + " Validation Loss: 0.00\n", + "\n", + "======== Epoch 4 / 4 ========\n", + "Training...\n", + " Batch 40 of 258. Elapsed: 0:00:45.\n", + " Batch 80 of 258. Elapsed: 0:01:30.\n", + " Batch 120 of 258. Elapsed: 0:02:16.\n", + " Batch 160 of 258. Elapsed: 0:03:01.\n", + " Batch 200 of 258. Elapsed: 0:03:46.\n", + " Batch 240 of 258. Elapsed: 0:04:31.\n", + "\n", + " Average training loss: 0.00\n", + " Training epcoh took: 0:04:51\n", + "\n", + "Running Validation...\n", + " Accuracy: 0.00\n", + " Validation took: 0:00:24\n", + " Validation Loss: 0.00\n", + "\n", + "Training complete!\n", + "Total training took 0:21:01 (h:mm:ss)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Train summary" + ], + "metadata": { + "id": "xIpFPoRb91Or" + } + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "pd.set_option('precision', 2)\n", + "df_stats = pd.DataFrame(data=training_stats)\n", + "\n", + "df_stats = df_stats.set_index('epoch')\n", + "df_stats" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "GjYqBrrO93Oh", + "outputId": "4a9cd46d-4c7c-447e-f98d-21f3cdd66c34" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Training Loss Valid. Loss Valid. Accur. Training Time Validation Time\n", + "epoch \n", + "1 1.84e-02 0.0 0.0 0:04:52 0:00:24\n", + "2 1.49e-06 0.0 0.0 0:04:52 0:00:24\n", + "3 4.64e-07 0.0 0.0 0:04:51 0:00:24\n", + "4 1.43e-07 0.0 0.0 0:04:51 0:00:24" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Training LossValid. LossValid. Accur.Training TimeValidation Time
epoch
11.84e-020.00.00:04:520:00:24
21.49e-060.00.00:04:520:00:24
34.64e-070.00.00:04:510:00:24
41.43e-070.00.00:04:510:00:24
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ] + }, + "metadata": {}, + "execution_count": 26 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import seaborn as sns\n", + "\n", + "sns.set(style='darkgrid')\n", + "\n", + "sns.set(font_scale=1.5)\n", + "plt.rcParams[\"figure.figsize\"] = (12,6)\n", + "\n", + "plt.plot(df_stats['Training Loss'], 'b-o', label=\"Training\")\n", + "plt.plot(df_stats['Valid. Loss'], 'g-o', label=\"Validation\")\n", + "\n", + "plt.title(\"Training & Validation Loss\")\n", + "plt.xlabel(\"Epoch\")\n", + "plt.ylabel(\"Loss\")\n", + "plt.legend()\n", + "plt.xticks([1, 2, 3, 4])\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "Xk3gzkeU96v3", + "outputId": "fce44153-ea42-4563-e704-d44c8693422d" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Create test loader" + ], + "metadata": { + "id": "UJlKxl0r-W-m" + } + }, + { + "cell_type": "code", + "source": [ + "prediction_dataloader = DataLoader(\n", + " test_dataset,\n", + " sampler = SequentialSampler(test_dataset),\n", + " batch_size = batch_size\n", + " )" + ], + "metadata": { + "id": "eQGsEEDh-YxG" + }, + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Evaluate on test dataset" + ], + "metadata": { + "id": "gHSDNWvA-aq9" + } + }, + { + "cell_type": "code", + "source": [ + "print('Predicting labels for {:,} test sentences...'.format(len(test_dataset)))\n", + "\n", + "model.eval()\n", + "predictions , true_labels = [], []\n", + "\n", + "for batch in prediction_dataloader:\n", + "\n", + " b_input_ids = batch[0].to(device)\n", + " b_input_mask = batch[1].to(device)\n", + " y = batch[2].to(device)\n", + " \n", + " with torch.no_grad(): \n", + "\n", + " generated_ids = model.generate(\n", + " input_ids = b_input_ids,\n", + " attention_mask = b_input_mask, \n", + " max_length=2, \n", + " num_beams=2,\n", + " repetition_penalty=2.5, \n", + " length_penalty=1.0, \n", + " early_stopping=True\n", + " )\n", + " \n", + " preds = [tokenizer.decode(g, skip_special_tokens=True, clean_up_tokenization_spaces=True) for g in generated_ids]\n", + " target = [tokenizer.decode(t, skip_special_tokens=True, clean_up_tokenization_spaces=True) for t in y]\n", + "\n", + " predictions.append(preds)\n", + " true_labels.append(target)\n", + "\n", + "print(' DONE.')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OPcQkHnJ-c9A", + "outputId": "9e25d954-7dd6-416a-f350-a06b7a6f6453" + }, + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Predicting labels for 1,000 test sentences...\n", + " DONE.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "results_ok = 0\n", + "results_false = 0\n", + "for idx, true_labels_batch in enumerate(true_labels):\n", + " for bidx, true_label in enumerate(true_labels_batch):\n", + " if true_label == predictions[idx][bidx]:\n", + " results_ok += 1\n", + " else:\n", + " results_false += 1\n", + "\n", + "print(\"Correct predictions: {}, incorrect results: {}, accuracy: {}\".format(results_ok, results_false, float(results_ok) / (results_ok + results_false)))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ifz56jYW-zBN", + "outputId": "0fd7d84a-7f00-4c0a-f125-e4e3f94ac230" + }, + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Correct predictions: 0, incorrect results: 1000, accuracy: 0.0\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(\"Sample prediction: {}, expected: {}\".format(predictions[2][0], true_labels[2][0]))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1LqVo4wW-2g-", + "outputId": "0ac57805-e5d3-473d-a679-da032a7016f4" + }, + "execution_count": 31, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Sample prediction: how, expected: conversation\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# MCC Score" + ], + "metadata": { + "id": "dLYc9WXz_B1o" + } + }, + { + "cell_type": "code", + "source": [ + "from sklearn.metrics import matthews_corrcoef\n", + "\n", + "matthews_set = []\n", + "print('Calculating Matthews Corr. Coef. for each batch...')\n", + "\n", + "for i in range(len(true_labels)):\n", + " matthews = matthews_corrcoef(true_labels[i], predictions[i]) \n", + " matthews_set.append(matthews)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hPEPpXXX_DXR", + "outputId": "f44695cb-0c76-4373-c8c2-a7c6ce375496" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Calculating Matthews Corr. Coef. for each batch...\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "ax = sns.barplot(x=list(range(len(matthews_set))), y=matthews_set, ci=None)\n", + "\n", + "plt.title('MCC Score per Batch')\n", + "plt.ylabel('MCC Score (-1 to +1)')\n", + "plt.xlabel('Batch #')\n", + "\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 427 + }, + "id": "qjtAYcme_EyM", + "outputId": "4f105d74-f50e-4b33-ba55-35c2411cbdef" + }, + "execution_count": 33, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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cOGCDh48aK/pAAAAADgYy4QAAAAAJ1XT1sF+/fpVeKKcnJybLgYAAADArWMzDJw/f15169aVv7//DScqKCiwW1EAAAAAHM9mGLjnnnsUEBCgZcuW3XCiJUuWaOHChXYrDAAAAIBj2dwz0K5dO/3www8VmshkMtmlIAAAAAC3hs0w0LZtW2VlZSklJeWGE919993q0qWL3QoDAAAA4FgmwzCM212EM0hPz1FJCb9qAAAAOIaLi0n163tXboyDagEAAABwh6tyGCgpKdGFCxdUVFRkz3oAAAAA3CJVDgMZGRnq16+fDh8+bM96AAAAANhIYKwAACAASURBVNwiN7VMiO0GAAAAQPXFngEAAADASREGAAAAACdV5TDg4eGhYcOGyd/f3571AAAAALhFeM/ALcJ7BgAAAOBIvGcAAAAAQIWVGwbGjh2rgwcPVnrCvXv3asyYMTdVFAAAAADHq1neAX9/f0VERKht27YaOnSo7r//fjVt2rTMvqdOndJXX32lzZs3KzExUYMHD3ZUvQAAAADsxOaegcOHD2vJkiXas2ePJKlOnTpq1KiRfHx8ZBiGsrOzde7cOeXm5spkMql3796aMmWKOnTocMsuoLpgzwAAAAAcqSp7Biq0gfjcuXPaunWrDh48qKSkJGVkZMhkMsnX11eBgYHq1q2bBgwYoHvuuafKxf/WEQYAAADgSA4LA7h5hAEAAAA4Ek8TAgAAAFBh1TIMFBUVad68eerdu7dCQ0P1yCOPaO/evRUam5qaqmnTpqlLly7q1KmTpkyZouTk5DL7btiwQYMGDVJISIgGDhyoNWvW2PMyAAAAgNuqWi4Tev7557V9+3ZFRkYqICBAsbGxio+PV1RUlDp27FjuuNzcXA0fPly5ubkaP368atasqZUrV8pkMmnTpk2qW7euue+6dev00ksvKTw8XPfee68OHTqkzZs3a+bMmZo4cWKla2aZEAAAABzJKfYMxMXFadSoUZo9e7bGjx8vSSosLNSDDz4of39/m9/ev/fee3rzzTcVExOjtm3bSpKSkpL00EMPafLkyZo2bZokqaCgQH369FHnzp21ZMkS8/gZM2boyy+/1FdffaXatWtXqm7CAAAAABzJKfYMbN26Va6urho1apS5zd3dXSNHjtThw4d18eLFcsdu27ZNHTp0MAcBSWrRooV69uypLVu2mNv279+vrKwsjR071mL8uHHjlJubq127dtnxigAAAIDbo9qFgYSEBDVr1kxeXl4W7aGhoTIMQwkJCWWOKykp0YkTJxQcHGx1LCQkRGfOnFF+fr4k6dixY5Jk1bddu3ZycXExHwcAAACqs2oXBtLS0uTv72/V7ufnJ0nl3hnIyspSUVGRud+vxxqGobS0NPM53Nzc5OPjY9GvtM3W3QcAAACguqhZmc7FxcX65JNP9M033yg9PV0vvPCC2rZtq+zsbP373/9Wz5491aBBA0fVKun6en5XV1erdnd3d0nX9w+UpbTdzc2t3LEFBQU2z1Hat7xz2FLZ9VsAAACAo1U4DOTn52vixIk6cuSIatWqpYKCAmVnZ0uSvL29NX/+fI0YMULTp093WLGS5OHhoatXr1q1l35AL/1g/2ul7UVFReWO9fDwMP9nWf1K+5Z3DlvYQAwAAABHcugG4oULFyo+Pl6LFi3Szp079cuHENWoUUMDBgzQN998U6mTV4Wfn1+Zy3RKl/iUtYRIknx8fOTm5mbu9+uxJpPJvITIz89PV69eVVZWlkW/oqIiZWVllXsOAAAAoDqpcBjYunWrHn30UfXv318mk8nqeJMmTXT+/Hm7FleWoKAgnT59Wrm5uRbt33//vfl4WVxcXBQYGKj4+HirY3FxcQoICFCtWrUkSW3atJEkq77x8fEqKSkxHwcAAACqswqHgYsXL6p169blHq9Vq5bVB3RHCA8P19WrV7VhwwZzW1FRkWJiYtSpUyfznoULFy4oKSnJYuzAgQP13XffWTwN6Mcff9S+ffsUHh5ubuvRo4d8fHy0du1ai/EffvihPD09df/99zvi0gAAAIBbqsJ7Bnx8fJSamlru8cTExFuyfKZ9+/YKDw/X/PnzlZaWpiZNmig2NlYXLlzQ66+/bu43c+ZMHThwQCdOnDC3jR07Vhs2bNCkSZM0YcIE1ahRQytXrpSfn5/5BWbS9T0Df/rTn/TKK69o2rRp6t27tw4dOqSPP/5YM2bMUJ06dRx+nQAAAICjVTgM9OzZUzExMXriiSesjiUnJys6OlpDhgyxa3HlmTt3rhYsWKDNmzcrOztbrVu31rvvvqvOnTvbHOft7a2oqCi99tprWrJkiUpKStS9e3e9+OKL8vX1teg7btw4ubq6avny5dq5c6caNmyoF198UZGRkY68NAAAAOCWMRm/3Alsw9mzZzVixAg1aNBADzzwgBYuXGj+dn3dunVycXHRpk2b1LBhQ0fXXC3xNCEAAAA4UlWeJlThMCBd30D717/+VSdPnrRob9WqlebNm1fu5l0QBgAAAOBYDg8DpU6ePKmkpCQZhqGmTZuqbdu2lZ3C6RAGAAAA4EgOCwO5ubkaMmSIHnvsMYuNtqg4wgAAAAAcyWEvHfPy8lJWVpa8vLyqVBgAAACAO0+F3zPQvn17HT161JG1AAAAALiFKhwGZsyYoa1btyo6OlpV2GYAAAAA4A5T4Q3EkZGRunDhgs6fP6+6deuqSZMm8vDwsJzMZNKqVascUmh1x54BAAAAOFJV9gxU+KVjKSkpkmR+j8ClS5cqdSIAAAAAd5YqPVoUlcedAQAAADiSw54mBAAAAOC3p8LLhErl5ORoz549Sk5OliQ1btxYvXr1krd35VIIAAAAgNurUmFgw4YNeuONN5SXl2d+opDJZJKnp6dmzZqlUaNGOaRIAAAAAPZX4T0DO3fu1DPPPKPGjRsrIiJCrVq1kiQlJibqgw8+UHJyshYvXqywsDCHFlxdsWcAAAAAjlSVPQMVDgNjxozR5cuXtX79eqs3Eefk5OjRRx9VnTp19OGHH1aqAGdBGAAAAIAjOXQD8fHjxzVs2DCrICBJ3t7eGjp0qI4fP16pkwMAAAC4fez2NCGTyWSvqQAAAADcAhUOA61bt1ZsbKzy8vKsjuXm5io2NlZBQUF2LQ4AAACA41T4aUJPPvmkpk6dqmHDhikyMlItWrSQJJ06dUpRUVE6d+6cFi5c6LBCAQAAANhXpd5AvGbNGs2fP1/5+fnmZUGGYahWrVp64YUXNHbsWIcVWt2xgRgAAACO5NCnCZW6fPmydu/erZSUFEnXXzp27733qnbt2pU6sbMhDAAAAMCRbkkYQNUQBgAAAOBIDn206LFjx7RmzZpyj69Zs0YJCQmVOjkAAACA26fCYWDRokX6z3/+U+7xXbt2afHixfaoCQAAAMAtUOEwcPToUXXt2rXc4127dlVcXJxdigIAAADgeBUOA5mZmfLx8Sn3eJ06dZSZmWmXogAAAAA4XoXDQP369ZWYmFju8ZMnT6pu3bp2KQoAAACA41U4DPTq1UsbN24sMxCcOnVK0dHR6tWrl12LAwAAAOA4FX606Llz5zRs2DBdu3ZNI0aMUJs2bSRJCQkJio6OlqurqzZu3KimTZs6st5qi0eLAgAAwJEc/p6Bo0ePavbs2Tp16pRFe6tWrfTaa68pJCSkUid3JoQBAAAAONIte+lYQkKCzpw5I0lq1qyZgoKCKjuF0yEMAAAAwJF4A/EdjDAAAAAAR6pKGKhZ1ZMlJyfrs88+U2pqqlq2bKkRI0bIw8OjqtMBAAAAuMVs3hnYsGGDoqKitGLFCtWvX9/cvnv3bk2dOlUFBQUyDEMmk0ktW7bUunXr5OXldUsKr264MwAAAABHqsqdAZuPFv3Pf/4jLy8viyBgGIb+/ve/q6CgQJMmTdK//vUvDRs2TImJiVq5cmWVCgcAAABw69lcJnT8+HENGjTIou3bb7/V+fPnNXToUE2fPl2S1LdvX50/f147d+7UM88847hqAQAAANiNzTsDGRkZaty4sUXbt99+K5PJZBUS+vTpo7Nnz9q/QgAAAAAOYTMM1KxZU1evXrVoO3r0qCSpQ4cOFu0+Pj4qKiqyc3kAAAAAHMVmGGjUqJGOHDli/rm4uFiHDx9WQECA6tata9E3KytLvr6+jqkSAAAAgN3Z3DMwYMAALVmyRB07dlSPHj0UHR2tjIwMjRgxwqpvXFyc7rnnHocVCgAAAMC+bD5aNCcnRyNGjNC5c+ckXX+SUMOGDRUTE2NxF+DKlSu6//77NX78eE2bNs3xVVdDPFoUAAAAjmT3l455e3srOjpa69ev19mzZ9WkSRONGjVKderUseiXlJSk4cOH64EHHqh81QAAAABuC5t3BmA/3BkAAACAI9n9pWMAAAAAfrsIAwAAAICTIgwAAAAAToowAAAAADipahkGLl++rL/97W/q0aOHOnTooMjISCUkJFR4fFJSkp544gl17NhR3bp108yZM5WRkWHVZ+7cuRoyZIg6duyo3r17a/Lkyfrhhx/sfTkAAADAbVHtniZUUlKisWPH6uTJk5o4caJ8fX21du1apaamKiYmRk2aNLE5/ueff9bQoUNVp04dPfbYY8rLy9Py5cvVqFEjrV+/Xq6urpKkOXPmaOPGjRowYIBCQ0N15coVffTRR7pw4YKWLVumHj16VKpuniYEAAAAR6rK04RshoHi4mK9/fbbatSokcaMGVPuJGvXrtXPP/+s6dOny2QyVaqAyvr88881ffp0LV68WP3795ckZWRkaODAgerbt6/mzp1rc/zLL7+szZs3a+vWrWrQoIEkac+ePZowYYL+53/+RyNHjpQkxcfHq1mzZvLy8jKPzczM1ODBg9WyZUtFRUVVqm7CAAAAABzJ7o8W/fjjj7Vs2TKFhITYnCQ0NFTvvfeePv3000qdvCq2bdsmf39/9evXz9xWr149DRo0SDt27NDVq1dtjt++fbvCwsLMQUCSevXqpaZNm2rLli3mtuDgYIsgIEm+vr7q0qWLkpKS7HQ1AAAAwO1jMwxs2bJFvXr1UnBwsM1JgoOD1bt3b3322Wd2La4sCQkJateundUdiJCQEOXm5urcuXPljk1NTVV6enqZ1xMaGlqhfQdpaWny9fWtfOEAAADAHcZmGPjhhx/Us2fPCk3UvXt3xcfH26UoW9LS0uTv72/VXtp28eLFcseWHvPz87M65ufnp/T0dBUXF5c7/tChQ/ruu+80aNCgypYNAAAA3HFq2jqYnZ2t+vXrV2iievXqKSsrq1InLykpueGynlLu7u6SpIKCArm5uVkdL20rKCgod47CwkKLvuXN/+vlQZKUnp6uP//5z2rSpIkmTpxYoZp/qbLrtwAAAABHsxkGvLy8lJmZWaGJsrKyyvwQbcvBgwcVGRlZob579+5VvXr15OHhoaKiIqvjpW0eHh7lzlH6gb+s8aVBoazxeXl5mjx5svLz87Vs2TJ5enpWqOZfYgMxAAAAHKkqG4hthoGWLVtq9+7dFfomfPfu3WrZsmWlTt68eXO9/vrrFerr7X39wvz8/MpcClTaVtYSolKlx9LS0qyOpaWlqX79+qpRo4ZFe1FRkZ599lmdPHlSy5cvr/Q1AgAAAHcqm2HgD3/4g+bMmaMdO3aYH+NZlp07d2rPnj2aNWtWpU7u5+en4cOHV2pMUFCQjhw5IsMwLDYRx8XFydPT0+Z7Bho0aKB69eqVubchLi5Obdq0sWgrKSnRzJkztXfvXv3zn/9Uly5dKlUrAAAAcCezuYF49OjRatKkiZ577jm9/fbbSklJsTiekpKit99+W88995yaNm2q0aNHO7RYSQoPD9fFixe1c+dOc1tGRoa2bt2qfv36mV8aJknnzp2zerrQgAED9OWXXyo1NdXctnfvXp05c0bh4eEWff/7v/9bn3/+uV566SWbYQgAAACojm74BuKzZ89q8uTJOnPmjEwmk7y9veXl5aXc3Fzl5OTIMAw1a9ZMS5cuveHbf+2huLhYY8eOVWJiovkNxB9++KF++uknxcTEKCAgwNw3LCxMkvTll1+a23766ScNHTpUPj4+5jcQL1u2TA0bNtSGDRvMm4tXrlyp119/XR07dizzhWtDhgypVN3sGQAAAIAj2f0NxKUKCwu1fv16bdu2TYmJicrNzZWXl5cCAwM1YMAAjRo1yubGXXvLzs7W3LlztWPHDhUWFiokJESzZs1Su3btLPqVFQYkKTExUW+88YYOHz4sV1dX/f73v9fs2bNVr149c59Zs2YpNja23BpOnDhRqZoJAwAAAHAkh4UB3DzCAAAAABypKmHA5p4B6fpjNXNzc232yc3NVV5eXqVODAAAAOD2shkGfvzxR3Xr1k1Lly61Ocm7776rbt26WW3WBQAAAHDnshkG1q1bJ19fX02dOtXmJFOmTFG9evX04Ycf2rU4AAAAAI5jMwzs3btXAwcOND9hpzzu7u4KDw/X7t277VocAAAAAMexGQZSUlLUqlWrCk3UokULJScn26UoAAAAAI5nMwyUlJTIxeWGe4yvT+TiopKSErsUBQAAAMDxbH7S9/Pz06lTpyo00alTp+Tn52eXogAAAAA4ns0w0KVLF3366acVerTop59+qq5du9q1OAAAAACOYzMMjBs3ThkZGZo6daqysrLK7JOdna2pU6cqMzNTjz32mEOKBAAAAGB/NW0dDAkJ0TPPPKNFixapX79+GjBggFq3bi1vb2/l5uYqISFBO3bsUE5Ojp599lm1a9fuVtUNAAAA4CaZDMMwbtRp48aNWrBggS5dunR9kMmk0mG/+93vNH36dI0YMcKxlVZz6ek5Kim54a8aAAAAqBIXF5Pq1/eu1JgKhQFJunr1qr799lslJiYqJydH3t7eatWqlTp16iRXV9cqFexMCAMAAABwJIeGAdwcwgAAAAAcqSphoGIvEQAAAADwm2NzA3FkZGSlJjOZTFq1atVNFQQAAADg1rAZBg4cOKCaNWtWeE+AyWSyS1EAAAAAHM9mGKhZ8/rhXr16afjw4erbt69cXFhZBAAAAPwW2NxAnJGRoU2bNik2NlanTp1S/fr1NWTIEI0YMULNmze/lXVWe2wgBgAAgCM59GlCcXFx2rhxo7Zs2aKcnByFhoZq5MiRGjx4sLy8vKpUsDMhDAAAAMCRbsmjRQsLC7Vt2zbFxMRo//798vDw0Msvv6whQ4ZU6sTOhjAAAAAAR6pKGLC5Z6As7u7uevjhh9WoUSO5uLhoz549Sk5Oruw0AAAAAG6zSoWBixcvatOmTYqJidHZs2fl7++vyZMna8SIEY6qDwAAAICD3HCZ0NWrV7Vz507FxMRo9+7dcnFxUVhYmIYPH6777ruPpwtVEMuEAAAA4Eh2Xyb06quv6pNPPtHly5cVGBiomTNn6uGHH5aPj89NFQoAAADg9rN5ZyAoKEgeHh7q37+/2rVrd+PJTCaNHz/envX9ZnBnAAAAAI5k96cJBQUFVW4yk0kJCQmVGuMsCAMAAABwJLsvE1q9evVNFQQAAADgzlXp9wygargzAAAAAEeqyp0BHgUEAAAAOCnCAAAAAOCkCAMAAACAkyIMAAAAAE6KMAAAAAA4KcIAAAAA4KQIAwAAAICTIgwAAAAAToowAAAAADgpwgAAAADgpAgDAAAAgJMiDAAAAABOijAAAAAAOCnCAAAAAOCkCAMAAACAkyIMAAAAAE6KMAAAAAA4qWoZBi5fvqy//e1v6tGjhzp06KDIyEglJCRUeHxSUpKeeOIJdezYUd26ddPMmTOVkZFhc8znn3+u1q1bq0uXLjdbPgAAAHBHMBmGYdzuIiqjpKREY8eO1cmTJzVx4kT5+vpq7dq1Sk1NVUxMjJo0aWJz/M8//6yhQ4eqTp06euyxx5SXl6fly5erUaNGWr9+vVxdXa3GFBQUaNCgQcrKylKNGjV06NChStednp6jkpJq9asGAABANeLiYlL9+t6VGlPTQbU4zNatW3XkyBEtXrxY/fv3lyQNGjRIAwcO1KJFizR37lyb49955x0VFhYqKipKDRo0kCSFhoZqwoQJ2rx5s0aOHGk15r333pObm5vCwsL01Vdf2f+iAAAAgNug2i0T2rZtm/z9/dWvXz9zW7169TRo0CDt2LFDV69etTl++/btCgsLMwcBSerVq5eaNm2qLVu2WPW/cOGC3n//fc2cObPMuwYAAABAdVXtwkBCQoLatWsnk8lk0R4SEqLc3FydO3eu3LGpqalKT09XcHCw1bHQ0NAy9x3MmTNHHTt2VFhY2M0XDwAAANxBql0YSEtLk7+/v1V7advFixfLHVt6zM/Pz+qYn5+f0tPTVVxcbG47cOCAvvjiC82aNetmywYAAADuOLd1z0BJSckNl/WUcnd3l3R9M6+bm5vV8dK2goKCcucoLCy06Fve/F5eXiouLtarr76q4cOHKygoqEI12lLZzRwAAACAo93WMHDw4EFFRkZWqO/evXtVr149eXh4qKioyOp4aZuHh0e5c5R+4C9rfGlQKB3/0UcfKSUlRcuXL69QfTfC04QAAADgSNXuaULNmzfX66+/XqG+3t7XL8zPz6/MpUClbWUtISpVeiwtLc3qWFpamurXr68aNWqoqKhI//znPzV8+HAVFBQoJSVFkpSXl6eSkhKlpKTI09NT9erVq1DtAAAAwJ3otoYBPz8/DR8+vFJjgoKCdOTIERmGYbGJOC4uTp6enjbfM9CgQQPVq1dP8fHxVsfi4uLUpk0bSdeXCmVmZioqKkpRUVFWffv166fBgwfr7bffrlTtAAAAwJ2k2r1nIDw8XNu2bdPOnTvN7xnIyMjQ1q1b1a9fP4vHf5Y+WeiXAWHAgAH6+OOPlZqaan686N69e3XmzBk9+eSTkqRatWpp8eLFVudevXq14uLiNH/+fItHkwIAAADVUbV7A3FxcbHGjh2rxMRE8xuIP/zwQ/3000+KiYlRQECAuW/p40C//PJLc9tPP/2koUOHysfHx/wG4mXLlqlhw4basGFDmZuLS82aNUs7duzgDcQAAAC441Rlz0C1e7RojRo19O6772rQoEGKiorSvHnz5Ovrq9WrV1sEgfI0bNhQH3zwge655x69+eabev/999WnTx+tWLHCZhAAAAAAfmuq3Z2B6oo7AwAAAHAkp7gzAAAAAMA+CAMAAACAkyIMAAAAAE6KMAAAAAA4KcIAAAAA4KQIAwAAAICTIgwAAAAAToowAAAAADgpwgAAAADgpAgDAAAAgJMiDAAAAABOijAAAAAAOCnCAAAAAOCkCAMAAACAkyIMAAAAAE6KMAAAAAA4KcIAAAAA4KQIAwAAAICTIgwAAAAAToowAAAAADgpwgAAAADgpAgDAAAAgJMiDAAAAABOijAAAAAAOCnCAAAAAOCkCAMAAACAkyIMAAAAAE6KMAAAAAA4KcIAAAAA4KQIAwAAAICTIgwAAAAAToowAAAAADgpwgAAAADgpAgDAAAAgJMiDAAAAABOqubtLsBZuLiYbncJAAAA+A2ryudNk2EYhgNqAQAAAHCHY5kQAAAA4KQIAwAAAICTIgwAAAAAToowAAAAADgpwgAAAADgpAgDAAAAgJMiDAAAAABOijAAAAAAOCnCAAAAAOCkCAMAAACAk6p5uwtwNkVFRfrf//1fbd68WZcvX1ZQUJCmT5+unj17WvS7ePGiVq9ere+//17x8fHKy8vT6tWr1b17d4t+cXFxio2N1f79+3XhwgX5+PioY8eOeu655xQQEGDR9+jRo3rnnXd07Ngxpaenq3bt2goKCtIzzzyjTp062az7vffe0/z58xUUFKTNmzeb2/fv36/IyMgyx3z++edq0aKFVb2LFi3SkSNHdO3aNTVu3Fjjx4/X8OHDzX1mzZql2NjYcmvZtWuXGjRoYP75zJkzWrBggb799ltdvnxZd999t4YOHarx48fLzc3N3O+7777T22+/rbi4OLm4uKh79+566qmntHPnzhv+niUpJiZG8+fPV0ZGhiTJMAytWLFCvXr1suj37rvvKiYmRufPn1dRUZEkWc2ZmZmp6Ohobdu2TSdOnNC1a9dkGIZKSkqs+hqGoZdeekkHDx5USkqKua9hGFq+fLnuvfdei/P/8u/O0aNHlZ+fL0natGmT2rRpY+4XFham8+fPW13nAw88oLfeesuq/fTp03rhhRd04sQJ83X16NFDq1atMvex9fdBkp577jn98Y9/lCQVFhZq4cKFWr9+va5cuWK+pjlz5mjo0KEW4/bt26dXX31VP/74o4qLi1WzZk0FBwdr7ty5Vn/PN2zYoAULFig9PV2GYcjT01P33Xef/vznP1v0feeddxQbG6vz58/r6tWrcnNzU//+/S3+3cnPz1dMTIxiY2OVmJiowsJCSVLt2rV17733avr06RZzzp49W//5z3+UlZWlkpIS1ahRQ82bNzf/u/NLpf/u7t27V6dPn5Ykde7cWa+//rrFnBERETpw4IDV77Jhw4ZatWqVRd+4uDht3LhR27dvV1ZWlgzDkLu7uzp37qwFCxaobt26SklJUb9+/cr9Mxo0aJAWLFhg/rmkpERvvfWWNmzYoOzsbIs5X375ZYvzHzlyRLNmzVJycrKKi4vl4uKipk2b6tVXX1Xnzp2t/pzmzZun7OxsSZKHh4c6deqkZ5991uJ/jz7/f+2dd1hU1/b3vwMMHQZQFKQIlkFEBRt2vQSskahJLEGSkCiWGOyKscVrTyQ2iEowGls0doWYGAE1ioAKIoIoShERaVKHAWaYOe8fPGdnzpwzYH43N/e+1/15Hp9Hzlmzy1lnrb12PZcu4ezZs0hJSYFcLodIJEKbNm14vqu+vh4RERE4e/Ys5/m7uLhg/fr16NevH0lzx44duHLlCgoKCqBUKiESiWBiYgIvLy9e/tp+U6FQgGEYLFmyBLNmzWpVT23btkV4eDjPx967dw8rV67Es2fPoFKpIBKJYGNjg6+++grDhg0DgFZ1NXnyZGzcuJGjp+PHj6Ourg4Mw8DQ0BDdu3dHaGgoJ3+FQoFvv/0W0dHRKC0thYODAzp16oT4+HiejweA1NRUbNu2DQ8fPoS5uTmcnZ2RmprKk7106RLi4+Px4MED5Ofnw8nJCc+fP+fIsTYVGxuLJ0+eoK6uDi4uLujQoQNiY2N5ae7YsQM3b95EYWEh6uvr4eDgADs7O9y6dUuwrCwymQzDhg2DXC6Hg4MD4uPjW9UVAME0FQoFoqKicPHiRRQUFECtVsPc3Bzx8fGvZVMSiYSTg7NF7AAAIABJREFUn1qtxk8//YTjx4/j+fPnMDMzg4WFBXJzc3n5JyQk4NNPPxVMV7uNPXr0KDZs2NCq7O7du/Htt9+2KMfq6cyZM8jMzGw1zaVLlyI6Ovq1yvm6cUNLetKWbSnNkydPwtPTs1U9aaepVquxdetWThunS5a1qTNnzqC8vBwikYj4f+0YJy4uDhEREcjOzoa+vj4AQE9PD87OzhzZ48ePIykpCXfv3kV5eTnEYjHEYjEnbmJjifj4eOTm5qKpqQmdO3dGUFAQxo4d22JdNaGdgb+ZFStW4LfffsNHH32Ejh074ty5cwgODsaRI0fQu3dvIpeXl4eoqCh07NgRbm5uuHfvnmB6+/fvR2pqKsaMGQM3NzeUlZXh2LFjmDhxIk6fPs0xQLaBnjx5MmxtbVFbW4vo6GgEBgYiKiqKF1SylJWVYe/evTA1NdVZr48//hgeHh6ca5oBOwBcv34d8+bNg7e3NxYsWAADAwPk5+fj5cuXHLmpU6fyOkcMw2DdunVwcHDgpFtSUoLJkyfDwsICgYGBkEgkuHv3Lr755hs8efIE27ZtA9AcJAUGBsLBwQEhISFQq9X48ccfMXv2bFRXV7f6nK9fv44vvvgCAGBjYwN9fX3yrLU7A4cOHUJ5eTmMjY0hEonAMAwvvbS0NOzcuRM9e/ZEY2MjbGxsoFAoIJPJcP78eU5nQK1WIzMzE25ubsjNzYWNjQ0AoKKiAt9//z1Pb5rvjpGREekMCOHi4oL8/Hy0adMG5ubmePbsGQYOHMiTq6mpwcyZM1FYWAiJRAI7OzsUFBRAJpNx5Dp37ozZs2cjMjKSk2aPHj2QkZHBKeuyZctw5coVqNVqtGnTBmKxGMXFxVi/fj2GDRuGNm3aAACampoQEhKCmpoauLu7o0uXLsjMzERaWhrGjx+P8+fPk/c8KysLa9euhZ6eHvr37w8TExPcvHkTV69exY0bNzg28cMPP6CyshLt27dHTU0NbGxscPv2bY7tPH/+HBs2bIC1tTX09fXh7e2NmpoaZGVlIT4+HtevX+ekef36dcjlcvTp0wcODg7Iy8tDeno6Jk2ahOjoaHTp0oXUn7VdW1tbGBoaQqFQIDs7W9B2jY2NIRaL0atXL9jZ2UEmkyEpKYkn+9133+HatWsQiUQYNmwYDA0NcevWLSQnJ+PRo0cYMGAAbGxs8PXXX+PIkSPIz88naWZkZODx48eIj49HTk4OSXPbtm04cOAAjIyM4O3tDUtLSyQlJeHWrVuYMGECzpw5Q2Q3btyI/Px89OjRA506dUJubi4yMjIwffp0zrualZWFdevWwdjYGD4+PlCr1bh58yaxU01/dPz4caSlpcHU1BRqtRr29vaYMmUKz3c9f/4c+/fvh7W1NQYPHgwbGxtkZWXhyZMnCAwM5OSfkZEBe3t7iEQidOzYETKZDHfv3kVaWhovf02/mZKSguTkZCiVSuzYsQMeHh6cd9ra2hp2dnZwdnaGhYUF6uvrkZmZyUtToVBg9erVKCgoQO/eveHk5ISKigqkpKRg9uzZRNbGxgYBAQG4d+8eJ80bN26gpqYGbdu2JXmzemrfvj28vb1hYGCApKQk3L9/H9OnT8f+/ftJ/osWLUJ8fDzef/99dO/eHcnJyfjll18gFot5tp+VlYWgoCB06dIFK1asQG5uLg4fPkyCGE2OHz+OjIwM9OjRAxUVFXjx4gWv3WBtatCgQQgKCoK5uTni4uIQGxsrmGZGRga8vLwwYcIEGBsb4969ezh79iz09Fpe2LBt2zbI5XKd9zt06ICFCxcCAGpra/H1118LyikUCsycOROPHz/G+PHjcerUKajVagBAQ0MDJBIJsSlNamtrsWXLFjQ1NcHMzIxXtgMHDuCdd97B9OnTUVRUhMjISAAgAw4sERERAICuXbuiR48eKCgoQEpKCkaOHMlpC7OysrB161YAzYM0pqamuH79OqRSKT755BOObFxcHIDmNrq2thZ2dnaYM2cOuQb8oafu3buTNGUyGTIyMtC/f39MnjyZkyY7oOHt7Q0nJye8fPkSycnJ6NixI9q1ayf4bD08PPDkyRMoFAoSQ2jHDW3atMGrV68wdOhQODo6Ami2M1dXV45sU1MTAMDIyAiDBw9G27ZtUVdXh/z8fFhYWAAA0VNOTg4iIyNJmo8fP8a9e/cQGBjISXPbtm2kIzBo0CBYWVkhKSkJNTU1WLhwIUd20aJFiIuLg0gkgqurK8zNzZGeng4TExNOjMPGQW5ubmAYBjY2NiguLkb//v3h4eHBkY2KikJlZSXq6+shEong7u6O9957jxM3sbHE8OHDMXfuXBgYGODy5ctYuHAhcnNzMW/ePMFnz4Oh/G3cv3+fkUqlzMGDB8m1hoYGxs/PjwkICODI1tbWMhUVFQzDMMyVK1cYqVTKJCUl8dJMSUlhGhsbOdfy8vKYHj16MKGhoa2WSS6XM4MHD2ZmzZqlUyY0NJT58MMPmcDAQOadd97h3EtKSmKkUilz5cqVFvOpqalhBg0axGzYsKHVMglx584dRiqVMnv37uVcj4yMZKRSKZOdnc25HhISwnTv3p1RKBQMwzDMjBkzGG9vb6aqqorIlJSUMJ6enszq1asZhmn5OY8bN4555513mPLyco6sm5sbk5eXx5HNzs5mXr16xTAMw/Tq1UswzYKCAqawsJCj599++42RSqWMh4cHU19fzyuD0DshlUpJXtpySUlJjLu7O5F7+PAhR87Hx4cJDg5+rfdszZo1zD/+8Q9S15Zkhco5bNgwZtSoUUSmrKyMkUqlzIYNGwTrdPr0aSL7888/M1KplDl16hQnn08//ZSRSqXM0qVLybWZM2cyAwYMYCorK8m1kydPMlKplOnevTvHJn777TdGLpczDMMw77zzDhMYGMiznVevXjHZ2dk8O1uxYgXRlWaaQvYYFhbGSKVSno2lpKQwjx8/Zjw8PJjw8HBGKpUyx44d49luYGAg4+fn91p2vnbtWqZv375MQUFBi3JCZf34448ZLy8vjqxKpWK8vLyYwMBAjuzjx48ZqVTKuLu7E9m0tDRGKpUy4eHhnHw2btzISKVSJigoiFybOXMmM2zYMEYmk5FrrJ769evHeVZFRUVMU1MTwzB/6Ilh+L6L1ZU2S5cuZaRSKfPhhx/y7mly4MABRiqVMt7e3oL+MDc3l6Orvn37cuSE/KNQORmGYfbt28f069ePoyddskIEBgYybm5uzMyZMxmG+UNPISEhHDlWT56eniRNIT2FhoYyI0aMYNzc3Jhx48Zx0tDWVWhoKDN69GhGKpUyvr6+HFlNXfXr14/p27cv77kI6Sk0NJQZMmQII5VKmbFjx7ZY99DQUMbPz4+RSqUcn6JJbm4u4+bmxrz11luMVCplfHx8eM9Ps0wttXGaumpJTqic/fr1Y7p168b4+/uT60K6Cg0NZd5//31GKpUygwYNItdZXWm3sVu3bmV69OjBlJaWkmus79OUZW3q1q1bnLKxPvXKlSscm9KE1ZN2G8/6Pu13VygWYG0qPT1dUNbd3Z3Yk1AMERgYyPj6+r5WjLFq1SpGKpUyx48fb1FOqKwff/wx06dPH6ahoYHIsHqaPn06R5a1qV27dhFZVk+enp6cGEdIT2wsoRkPbd++nenWrRsvlnj06BGR69u3r2BMx8YSmqjVauajjz5ievXqJRhLCEH3DPyN/PrrrxCLxZg8eTK5ZmRkhPfffx8pKSkoLS0l183NzWFtbd1qmn369OEshQGaR3u7du2KnJycVn9vYmICGxsb1NTUCN5PT0/HxYsXyah4S8hkMtI71yY6Oho1NTVYsGABkWUERsx1ERMTA5FIhPHjx3Ou19XVAQAZRWZp27YtDAwMyEhTamoqhg4dColEQmTatWuHAQMG4OrVqy3m/fTpUzx9+hQBAQG8fBiGwW+//ca51rVrVzJ6rwsnJyc4ODhw9CwSiQAASqVScPmOrneitraWJ2dpaYlNmzZhxIgRLZbDwMAAZmZmLc4e1NTUkBksFxcXNDY2QqlU6pQXKmdJSQn8/f3J3+yMgr29vWCdjI2Nyf9TU1MhEok4vwdA7OjBgwckzVu3bmHKlCmwsrIichMmTICpqSksLCw4NjFy5EiYmJhw0tS2HRsbG3Tt2pVnZyNHjiTl10xTyB579OgBACgoKOBc79OnD8LCwuDj44P+/fsDaH4nhWzX1NQUenp65H0XKqtarUZcXBymTp0KJycnKBQKNDY26vQHmmUtLS1FcnIyxowZw5FtampCfX09unbtyqkXOyLdpk0bIpuamgqgeZmZJu+88w6A5iUvwB96mjhxImfElNWTSCTi+CN7e3vBEWNt38XqSht2qry8vJx3T5MOHToAAMzMzAT94ZYtWzi6srCwEJRramri6Em7nGq1GkeOHMGUKVM4ehKSFaK0tBR3796FhYUFsSNWT5ozBcAfetKsk7aeWB+/ePFiMAzDme3T1hUr+/XXX0NPT4/ne1hdpaeno6amBs7Ozrzya+uJTTM4OBgAf2RcE1Z22rRpAACVSiUox7ZXs2fP1pkW0PzckpOTdbZxmrqqrKzExYsXsWTJkhbT1CxnbW0tbGxsiG9n89TUFSvLpqs548HqioVtY8eNGweFQkFG+Fk9DR06lCP79ttvw9TUFL/88gsnHc12TKVSCbbFQvYkk8nw1ltvAQByc3N11p8tJ2tT2u8JS8+ePYl/bI2GhgadMYZarSbtcNu2bVFZWcmxwZbIz89HUlISRo0aBSMjI3Kd1ZNmzCCTyUjbot1Gsb/RjHHGjh3L0RMbS3Tp0oUTD02cOJFTB5aUlBSOnFKp5OmKjSU0EYlE8PPzQ0NDg2AsIQRdJvQ3kpWVBVdXV96UYa9evcAwDLKysnROp/0ZGIZBeXk5b40yi0wmg0KhQFVVFc6fP4/s7GzBqSSGYbBhwwZMnDiRs9ZciGXLlkEul8PAwAADBgxAaGgo3NzcyP3ExER06tQJ169fx7Zt21BcXAxLS0tMnToVixYtEmzsWZRKJX755Rf07t2bTBOy9O/fH/v27cOqVauwYMECSCQS3LlzhwSvrGNVKBQcQ2cxNjZGWVkZpyOmzcOHDwFA0GlZW1uT+38lQgGyUqlEbW0tGhsbkZaWBgCwtbXlPRMAOHHiBEpKSjBz5kzOWlltEhIS4OXlBZVKxevosNy9excKhQJt27ZFUFAQkpKSSOPW0nPTRjOYd3R0hL29PQ4ePAhXV1d0796dTDN36NCBs65ToVDAwMCAt4RB0xkDIHsvtPVkaGiIbt264cGDB612sFuzHRY2sJTJZHB1deXcU6lUqK6uhlKpxJMnT7Bjxw6IRCLY29tz5K5fv45bt27h0qVLZMpXV/45OTnw8vKCUqmEra0tAgMDERwczJF98uQJysrK0LFjR8yfPx+xsbFQqVTo1asXXr58iZ49e+qsz6VLl6BWqzF+/HgkJCSQNA0NDeHl5YVz587By8sL/fv3R3V1NXbt2oW2bduCYRjyTNl9JMbGxhwfc/LkSQAgU/XaetKUtbS0RHFxMW+ZoOazVSqVyM3NbdF3aaZ5/PhxAOAsw9TUU3V1NR49eoSwsDAYGhrixYsXvD0r169fR0JCAk6cOEE6P0VFRZg0aZJOPbVp0wbjx4+HkZERp5zaemKXyrm5ucHDw6PVOh05cgRqtRo1NTXkOWnrycPDA69evUJERARMTExQXl6OqVOn8vSk6ePZ5SANDQ0kT01dacr26tULpqamHFkWVk4ikfDaOl2yEydOJB1zobZApVKhqqoKa9euxaBBg3D69Gno6+vzfAAAXLt2DWlpaRg9ejRvP5EmOTk58PT0RFNTE4yNjXH9+nVeoMXqytnZGTNnzoRarcaUKVNgZmYGW1vbFuvk4eGB9PR0nl/V1JWnpycOHjwIHx8fHDp0CGKxmBN8sroCuG0sa8ts28PqifVFmrImJia8ToV2miKRCJ9++imv3RaSZdtUXR1WVk5fXx+GhoYwNTXl+eT79++TcrMdtvDwcDg5OfHyLyoqAgBOZ2ngwIFYsWIFkX3y5AnZezR//nzSSTQ3N8f69et5AxTaZWXL8vjxY5Imq6cbN24AaN4TwS7XEYvFHH/K6snZ2ZkT47Dvf0ZGBoA/9FVeXs6Lh0QiEc6dO4cZM2YQG9CMm2QyGWJiYvD777+/VtzEtlGvM6gM0M7A30pZWRlvPRwA4lT+TGDVEhcvXkRJSQkWLVokeH/lypW4fPkyAEAsFmPatGlkvaAm58+fx9OnT3VuNGJ/P3r0aAwfPhzW1tZ4/PgxDhw4gICAAJw+fZo4p2fPnqG4uBgrVqzAzJkz0b17d1y9ehVRUVFobGzEqlWrdOZx8+ZNVFVV8UaGAWDo0KFYsGABIiMjOUHv/PnzOQ2qq6sr0tLSoFarOR2E9PR0AC0/+7KyMgAQdP5WVlZ/md7YkYxu3boJzizcvHmTpychh1BVVYXdu3cjJCSkxX0eUqkU/fr1g4uLCyorKxEVFYVXr14hJiaGs2eBHdFes2YNevToge3bt+PmzZs4c+YMGS01NzcXzIN1yp06deI0zAYGBti9ezeWLFlCNhSzrFq1itPIu7q6QqlUIj09HV5eXuT6iRMnAAB2dnYAWtZTU1MTlEplqxuqWrMdoPm9OXToEFnLqp1mTk4O5121tbUFwzCca0qlEps3b8aHH34IZ2dn0hm4c+cOL38nJycMGDAAbm5upEHYsWMHbt26xZFl9fTNN9/AyckJW7duRX19PcLCwlBTUyO4F0Sz3ra2tigrK+Pl/9VXX2HRokVYtmwZuebi4oKZM2di69atpP6sraempuLy5cvEx7DvJzsSqq0nTX/EbuQV8kcAUFxcjNraWowdO7ZF36WZJtAcFKxZs4Yjo60noPm91E6T1ZWjoyPef/99cn3o0KEcOU097du3DxkZGTh06BD09PQ4aWrrycPDAw8ePCDBiL+//2vVaerUqRw5IT0BfB+vqSeFQkF8POs/NUdeNXWl3R6IxWLBzgArx44KtwQru3PnTsyaNQtGRka82TqArytXV1fBWSClUolVq1ZBX18fq1atIgMM2rC6qqysxMmTJ9GrVy/s2LEDtra2nOCd1dXWrVvR0NCA1atXQywWY8OGDSgoKMCLFy94o7JsnRwdHWFrawtLS0veyDirq+XLlwNoHih0cXGBu7s7pwPA6srT0xNTpkwhbSy7vyA/Px/AH3pq06YNrz3+9ttv8fTpU+Tl5ZH0NNvtPXv2AGieodBut7VlLSwssG7dOlRWVmLdunXo0aMHJ80hQ4YgISEBQLPvb2xshJGREV69egVLS0uio2PHjsHFxQXBwcEoKyvDzp078ezZM17+Tk5OcHZ2Rk5ODjp16oSHDx8iKysLd+7c4ciyehKLxWjXrh1GjhyJgoICXL16FYsXL0abNm04/k+zTvv27cOrV69QUFDAy/+rr77C7NmzkZeXR2bPJRIJlEolPv/8cyLLyhcVFXFinAMHDuDevXtITEzk6KmsrAzl5eUc2bVr1yI3Nxdbt24l8ZBm3CQWi+Hl5QVHR8dW46aqqiqcOnUK3t7era5SYKGdgb+RhoYGwQ1a7Ih1S9Ojr0tOTg7Wr1+Pvn37YsKECYIy8+bNw9SpU1FcXIwLFy5AoVCQ01RYZDIZvvnmG8yaNavF2Yo+ffpwTqnw9fXFW2+9hffeew8RERH45ptvAAByuRzV1dWcEzhGjRoFuVyO48ePY+7cuTpf2piYGIjFYp2BnKOjI7y9vTFy5EhYWVnh2rVrCA8Ph42NDT744AMAQEBAANatW4fVq1fj008/hVqtxt69e4lxCjVqLOw97eUfgO4G8c+iVqtx8OBBAM0nKAjBjiLV1tbi1KlTuHHjhmDeu3fvho2NDaZNm4Zr167pzHPfvn2cvy0tLTF//nycP38ey5cvJyO5bCfF1tYWUVFR0NPTg6GhIc6cOYNXr17hzJkz+PjjjwXzePz4MQDwNlmz+bm7u2Ps2LHo1asXYmNjce7cOYSHh2P48OHkeY8fPx7ffvstVqxYgbVr18LZ2Rnnz58ny7vYoEOXnnJycvDw4UPo6+vrtAmg+ZST1mwHADZs2ICnT5/CxMREUNbR0REHDx6EXC4nG4y7dOnCkTt8+DCqq6t5HaGffvqJl+bmzZs5MpMmTcKMGTNw8+ZNeHh4EFlWTyKRCIcOHYKZmRlycnJIcKe9UZ8lLy8PmZmZmDhxIjZs2MDL39zcnCyVGjBgAMrKyrBnzx58/fXX8PT0JLIjRoyAg4MDtmzZguDgYPj6+iI1NRWnT5+GSCQijam2njT90fbt21FTU8PzRyxt2rRBhw4d8PHHH+v0XZpp7t27F3fu3IGnpydvSQmrpydPniAtLQ1paWmwsLDgpcnqas+ePaivr8etW7ewf/9+0sFk5TT15OzsjPLycmzfvh0ZGRl49eoVkdXWU2FhIcrLy3H//n3s2rULWVlZOus0YsQIrFy5EnZ2dlAqlRw5TT05Ojri+fPniImJQWNjI2QyGZFl9bRp0yYolUpMmzYNd+/exY4dOwCAbI7V1JVKpeK1B3p6ehxZgNtu/Prrrzz96ZLdt28fcnJyBAN8oHl0UyKRYPjw4bC3t0dCQgIUCgVvIIQd0JgzZw7atWunszOwefNmyGQyjBkzBp999hnmzp2LBQsW4NdffyV+D/jDpurr6zF37lwEBgYCaD6dhu3srVy5klenyZMn49ChQwgKChKcOTY3N4eLiwtyc3Ph6+uLvn37IioqCtnZ2XByciJyrK7YkwK7deuGxsZG0u6ws1Ssnnr27EmWUAHN7fH9+/dx7do1Tnus2W4fOXIElpaW2LNnD6/d1pZds2YNKisrsXbtWmzatImXZkREBNLS0iCXy3H//n3ExcUhLy+PI3f48GE0NjYiOjoalpaWSE5OBtB80ty2bds4stq+DwDRk1qtJrKsnszNzREdHU1G5C9fvoz58+dj3bp1nPeRrVNeXh6eP3+OoKAgTJo0iVd/c3NzeHp6YujQocT3RUVFQV9fH0VFRUR2xIgR0NfXR319PSZMmIDJkyfj/v37yMvLg0gkwosXL1BRUUH01NDQwIuHDh06hOzsbE48pBk3fffdd8S/thQ3qdVqLF26FLW1tVi9ejXv+emC7hn4GzE2NhZca812AoSWsfwZysrKMHv2bEgkEuzatUvnaQtubm4YMmQI3nvvPXz//ffIzMzkrZfcu3cvxGIxPvnkkz9djm7dumHQoEFISkoi19iRXu01//7+/lAqlWTdtzZ1dXWIi4vD0KFDBae7fv75Z3z55ZfYuHEjpkyZglGjRmHz5s2YNGkSvv76azJ1+MEHH2DOnDm4ePEi3n77bfj7+6OgoAAzZswAgBans9mya47YsCiVSsGp6j/Lhg0bkJWVBQCcxkATGxsbDB48GKNHjyYO/6uvviIdGgDIzs7GiRMnsGLFChgY/Lm+PtuwKhQKzqlKbP3GjBnDe6fMzMx0TkEDzSPdAHhHtdbW1mL69Ono27cvFi9eDD8/P/j5+QEAHj16hPPnzxNZW1tb7N27F42Njfjkk0/g6+uLiIgI8j6wuhPSE2sTBgYGsLGx0WkTTU1NyM7ObtV29u/fj5MnT5ITRIRkTU1NMXjwYHh6eiIxMRESiQQ5OTnIzs4G0Dx9u2fPHoSEhJDRsqqqKvLblvJn6/TkyRMAXJ2w9ffx8YGZmRmpu7W1Nbp27arzpCz2OEC2rJr5NzU1ISgoCBKJBKtXr8bIkSMxcuRIGBgYQK1Ww9PTk8gaGRkhMjISEokEmzdvxvLly3H27FksXboUenp6JDDT1pOmP+rTpw/UarXOPUrGxsaQSCQt+i42TXYEceHChSgvL+fJsXr6+OOPsWPHDixbtgzZ2dlITU0lspq66tOnD4YMGYLhw4cDaD5tRVc52TqtXbsWQPOoKyurrSdW9rPPPkO3bt1QWFios07s+t9du3Zx6q6tp6CgIKxZswY//fQTlEolEhMTiSyrJ5VKhZqaGhw4cAChoaGYN28eDAwMOO8eW9YTJ07w2gPNWVaWP9NusLJAc3C9ePFizl4fTX744QeYmZlh48aNWLJkCWbOnMk56hf4Q1eWlpY6Z5ZaKit7fKfmWnO2/sbGxpz9B6ampjAyMuL5PjZN9ndCs9msrp49ewZra2ts2rQJAQEBOHjwIBobG8nR1QDXpubNm4e33noLoaGhmD9/PsRiMVmq01IbZWxsDENDQ057LIRQu60J6/sWL16MgIAAQVnWpvz8/LBkyRJ8/vnn5KQwQNj3sTg6OraYPwurJ1dXVyKrbVMso0ePhpmZGZ4/fy6YFuv7/P39efUX8n2snoqLi9GhQwcia2RkRGaILly4QPQ0b948mJubg2EYPHjwgJRTc6CLpbGxEba2tpx46P8SN23YsAE3b97Eli1bdC75EoJ2Bv5GbG1tBZeUsMHcv7JfoLa2FsHBwaitrcX+/ft1rmfURiwWw9fXF7/99hvptZaWluLQoUMICAhAeXk5CgsLUVhYSDaOFhYWkiBbF/b29hwZtjy6NrjpSi82Nhb19fWCThUAfvzxR8HjyN566y3I5XI8evSIXFu0aBESEhJw7NgxXLx4EWfOnAHDMBCJRDoDcM2yawbdLFVVVf/yPo+IiAj8+OOPvPXHr0NjYyPZnAQA27dvR/fu3dG5c2cy4shSWlqqc3RYm9fRHaB7EyXQPPrBrg3VXAcLNI/YlJeXk81omhgbG/Ma2f79+yM2NhbHjh1Dx44dIZFIyFF+Li4unHKyetK0ic6dO/PW7LPU1taS4yNbsp2zZ89i27ZtsLa2hkgkalFWM+9Dhw5BX18fP//8M4DmGRkLCwsMHToUhYWFePToEb766isAQGBgIBobG3VurmfTZW1Vc2RWU0/a/oA9PlWIixcvwtDQEI2Njbw63bl2apdGAAAaDElEQVRzB9nZ2URPbLr19fVwdXXl2BfQvHk+JiYGMTExOHbsGG7cuIEPPvgAKpUKZWVlaGhoaNGeXr16BRsbG44/0oWQ72Jhvwkyffp0zJ07V6ecJn5+ftDX1+fkr60rTZvq0qULfvvttxY337NL2FxcXEiaLdlT27ZtYWRkpLOsMTExcHV1hZeXF6dO2npicXFxQefOnXlpSiQS1NXVISgoCDt37sRPP/2EIUOGoKmpCQYGBsTHs2X95ZdfeO0BOzLPymq3G+zGaKF2g5Xt1asXdu7ciQkTJmDcuHEtymrmz+5hq6ysJLLbt2+HUqnE5MmTkZGRgbt375IOuEKhwN27d0mnWyhN1uY082cHVHr27MlrC/X09FBRUSFYzpiYGDg6OsLKyopXJ1ZXjx494uRvYGAAIyMj1NXVceovZFNTpkyBUqkks34t2VRZWRnMzc1bbbMBfrvNomlP7Ei2LllN/Pz8OAcCtGRP7FKi1tJkbcrY2JjItmRT5ubmOg82Ye2J3dOgWaeWbKpTp05kdJ+F3bt37tw5jp7YDfma9sTOPmmWt6ysjNxvrV664iY2lli2bBmvA9EadJnQ30i3bt1w5MgR1NXVcXqvbMDU2qZFXTQ2NmLOnDnIz8/HDz/8gE6dOv2p3zc0NIBhGNTV1cHY2JhMaYeFhSEsLIwn7+vri+DgYCxdulRnms+fP+eM5Ht4eJA1zpqBd3FxMQDoXCIUHR0NU1NTwaARaB5pEPotOwOjvTRAIpFwPj5069Yt9OrVS+eadwCk4cnIyOB9S6GysrLVzdUtcezYMYSHhyMoKAj9+/dv8WNrutBcj/ry5Us8evRI8MMqs2bNQtu2bcmazpbQfKZsnUtKSnhyVVVVOnUXHx+vc+nbq1evAIC3zABo3oAn5LybmpqwY8cOlJaW4ocffiAfwmHXgkqlUhgYGCAjIwMjRowgNhEVFYVZs2YJdihZ21EoFHB3d9dpO7GxsVi1ahWsra3R0NDQop1p26OjoyNUKhXRU1FREV6+fIlRo0bxfrt7927s3r0b6enpvJlCzXRDQ0Oxbt06zrN3c3ODWCxGUVERzx+UlJQI6unOnTt4/vw5DAwMEBkZyauTpp6067Vy5UpBPYlEIs5yj+vXr5P/19XVcfSk+QwUCgWysrLg5OSE0tJS4o9aQtt3Ac26Wr16NUaNGkWmyYXktFEqlVCpVJDL5US2JV2x9aqsrBRc5w6AjEgaGBiQNFk9CdlTSUkJjIyMBMt6//59PHv2DPPnz+fVqSV7ampqIh8q1PbxP/zwA0++qqqK+PjZs2dDX18fTU1NrbYHb7/99mu3G2z+7NKNCxcucD60JSQrlK5mWdlnvX//fuzfv58jV1ZWhunTp5NNsi2lWVFRQdL08fEBANy+fVvQp7548QJRUVG8cmrWQ7tObDv/Os+UbWN12RQ7ut6aTVlYWLzWRlLtdhsQtiddstqwp9+w73FL9sTOorU2uMbqWS6Xk/xbsqmamhrB5dna9qRdp9ZsqqGhQTDGsbCwIJvxNTel29jYkEFLVm9sPFRSUoLi4mISm7C+WjNu0kQobtKMJdgVD38G2hn4GxkzZgwOHDiAU6dOISgoCECzsZ49exZ9+vQR3FzcGiqVCgsXLkRaWhr27NnD2WCpTUVFBS8gkMlkuHz5Muzt7cnGKUdHR8FNwzt37oRcLsfKlSvJaKxQmnfv3kVycjLnRI4xY8YgKioKp0+fJpsTGYbBqVOnYGpqKljuiooKJCYm4u2339bZ2Lq6uiIhIQEFBQWcY+x+/vln6OvrtzhNdunSJTx48EDwa7uadO3aFZ06dcJPP/2E999/n7NOVSQSCTq21+HSpUvYuHEj/P39sWLFCs4IvyZVVVWwsLDQeXKA5kkNX3zxBedowPv37+O7774j99hgjz25RXOan+1AGRsbc/TRuXNnSKVSREdHY86cOZwgtaGhQefJL9HR0eRjWtqw78/PP/+Mzz77jHOvsbGROFMW7ffc2dkZixYtwtChQ8kHrywsLDBo0CCcP38ejx49IrL5+fmQy+UYM2aMzjTZY16FuHPnDhYtWkQ2AuqyM5lMBn19fSxevJhjj4cOHQLDMKRTNXv2bLz77rtQq9X47rvvkJmZifHjx+PixYuYNWsWPD09SeMlk8lgaGgIfX19Utbw8HAcP34cenp6nGdvbm6OIUOGkGME9+7dCy8vL9y7dw9PnjzhPWeVSoUVK1YAANatWydYJ1ZPMTExOHLkCKmXWCxGXl4eAgICOPLa/qChoQHbt2+HgYEB2rZtS3zMoEGDcO7cOcyePZsMjFy4cAFyuRzl5eUcfySULvtstH1XXFwcFi9ejH79+iEsLAx6eno8OfaZymQyTpqnT58GwzAoLi4msrNnz8bIkSM568izs7Oxa9cumJubQywWk4/AaaepUqkQGRkJkUiEp0+fcso5dOhQxMbGcurF6snCwoIjy8poLmnQrhOrp7Nnz3L252RmZiI3NxempqYt+niFQoHt27ejpKQEtra2xMdbWFjA29sbWVlZWLNmDQnqEhIS8OOPP6Jt27b45z//CRcXF7Rv356T5ubNm8kBBtrtRmlpKQwMDODq6op58+aR9127jZHJZGjXrh2vPYqPj8eZM2dgZWWFTZs2wcXFBUOGDOG9w0VFRYiJiYGFhQU++OAD8uy001SpVOQr03Z2dlizZg2pU48ePfD06VOsW7eOvAdbtmxBYWEhxowZQ9o59pmePHkS169fx7p162Bra8urEzs7M2jQILIHAWjerPzVV1/BzMwMX3/9tc42tqGhgaylZzsrrO/TZVP19fWcmefXbbdZ36dpT0KyMpkMMpmMjNqzsPtQ2AEz1vfV1taSZ8na0zvvvIPo6GhyPGprNpWfn0/yNzc3h7e3N+Li4jh1O378OOrr63kDrRUVFRx7EqpTazYF/HHENMCPcRoaGrBz506YmpqCYRh4eXnB3NwcnTp1IicksbLHjx+HSCTCy5cvOfGQZposQnGTdizxf4F2Bv5GPD09MWbMGISFhZHjys6dO4eioiJs2bKFJ8/u8mc3CV24cAEpKSmwtLQkTmTr1q2Ij4+Hj48PqqqqOKMrZmZmZB020LxBx8jICL1794atrS1evnyJs2fPko17LBYWFpzfsbDLHbTTNDExQe/evWFtbY0nT57gp59+grW1NUJCQohcjx49MHHiRERGRuLVq1fo3r07rl+/jps3b2LZsmWCgdilS5fQ1NSkc4kQAMyYMQO///47PvjgA0yfPh0SiQTXrl3D77//jmnTppHGLzExEZGRkRgyZAisrKyQlpaGc+fOwd/fH8+ePcOePXtafM7Lly/H3LlzMXr0aEilUiLr6uqKX375hSMbHx+Pw4cPA/hjDefWrVvJrMTnn3+O9PR0LF++HFZWVqivr8eCBQtI7z88PBw3btyAnZ0dAgMDER8fj71792LkyJHIy8uDUqkkyzPs7Oxw79495OTkIDAwkIySs+8O63SA5pMJ2Gnv+Ph47Nu3D6NHj8bTp085S3rc3d1x6NAhTp1WrFiB4OBg+Pn5wd3dnaxdtrKywsuXL3H06FFOw7Z9+3Zcu3YNdnZ2KCoq4j1THx8fdO3aFeHh4bhy5Qrs7OzIyRjGxsaoqqripDlixAiUlZWhW7duOHPmDJYtWwaGYTBs2DDExsaSd3LRokV4//33UVJSAqlUihMnTuD3338nX+fWlo2Pj4erqyvKy8tRV1dHRon69OmDoKAgvHjxAnPnziVHG7q7uyM+Pp6cvOLi4gInJyf4+fkhMzMTs2fPRn19PaRSKWJiYhAREYH09HROZ8PT0xMAsGnTJjx48AA+Pj5kCVNjYyPq6uoQHx9P0lyyZAlsbW3x8OFDdO7cGZs2bUJhYSH+8Y9/IDU1FY8fPyZ1srS0hEqlgomJCS5evIjTp0/jxo0bkEgkpHFjYQMaS0tLGBoaCvqOHj16YMiQIThz5gyA5hHIkydPIiEhAWKxGB06dOA803HjxsHU1JSM1N2+fZsszQgNDSXpL1q0CO+99x6GDx+O/v37k3XFRkZGqKio4PijO3fuYMWKFeSr34aGhvjwww/x8OFD1NXVEdkXL14gJCQEDMPAxMQE69atQ3V1Ne7evYvq6mpy8gb7TPX19WFubg4HBweUl5cjMzMTYrEY1dXV+PLLL4muvvnmG47ffPbsGQCQvPX09Hhp2tnZITc3F0VFRTAzM0NpaSmnTosXL8aECRPw1ltvoV+/fhCLxUhISCCdl/Xr1xPZhQsXwtDQECkpKXBycsL58+d5fpvVU3R0NBITE8mxh7du3QLQHIxv3LiRpMluQu7SpQtqa2tx9uxZVFRUoGvXrlCpVBwfv2zZMkybNg0HDhzA5MmTUVxcjDNnzkAikaBt27YcWfZoZ4C7fr2xsRGOjo7o0qULXrx4gSVLlsDAwAAffPABFAoFkVWpVDA2NiZpJicnY8mSJRg7dixcXFygUqmQkpKCy5cvw9TUFO3btyeyXbp04Q1MJCcnIyYmBpaWluRoSjbN8ePHw9nZGXK5HL/88gsePnwIe3t7SCQSTp22bNmCKVOmYN++fZg2bRrkcjlevnwJAwMD/POf/yT7HCwsLODj44Mvv/wSXl5e5PAKoXaTPXXH0tISgwYNQllZGY4ePQo9PT1OnYA/bKpbt27Q19dHcnIyqqurIZFIOKPamjbl7e2NpqYmJCQkQCQSwcbGhtMez5gxA3K5HPb29mSJ1EcffQQjIyOMGzcOAIjva2pqQkVFBZYtWwZTU1OUlJQgOTkZlpaWJM3MzEzMmDED7dq1g1QqhbGxMTIzM1FQUAB9fX3yZWTW93300UckbmCXEF26dIlTTk2bsrCwgJ2dHXJyclBUVAR9fX1YWVlx6lRbWwu5XI6xY8di4MCBePnyJe7fvw89PT2yDJNl4cKFSE1Nhb29PRITE3H48GFe3KJpU0lJSejZsyfUajVu3boFhmF4+bMzq5GRkbh16xaKiopQWVkJlUrFiXHYWMLW1haRkZGIjY1FTk4O7O3tkZKSwpEtLS2Fu7s79u3bBz09PSQmJmLMmDHIz8/HrFmzyFeO2Vhi0KBBuHjxIqeuQ4YMEVw+pY2I+TNffqL8yzQ2NmLnzp2Ijo5GdXU13NzcsHjxYsHTVnSNajs4OJBg5MMPP8Tt27dblQOae6EXLlzA06dPUVNTAwsLC3h5eeHTTz+Ft7d3q2X/8MMPUVNTwwkaDh8+jOjoaBQUFJAe/NChQxESEsI7Wk6hUGDPnj04f/48ysvL4ejoiKCgIM7pB5pMnToVz58/x40bN1o8Tzc9PR3h4eHIyspCVVUVHBwc8N5773HO683Pz8f69etJAOHi4oLJkycjMDBQ5zIf7ecXGxur89PemrIrVqzQudyHXaZz9uzZVj/kxqaZnZ2NyMhI3Lt3T+cHRLTL2tq7k5GRgYiICDx8+FBwalUozd9//518GOhfzR8AOaFFaKmCtuzw4cNfu5wTJ04km7FbkvXx8eF0ljSxsrJCcnIykpOT8dFHHwnKaKdZXFyM9957T+fHrbTL+Tq2+/z5c2zbtg1Xr14VnGHRTvfP+AN/f3+yprol2YaGBowbN+613r2QkBD8/vvvZPRTLBajd+/eCAkJ4fmYsLAwHD9+nMxkGRkZYcCAAQgODubIhoeHIyIiQjBvzaUUrelqy5YtePfdd1FcXIzdu3fj2rVrqKysJMsAjI2N0b9/f8yaNYuTv7bfNDExQW1tLRYuXEhOg2L1xAZqbLNqZmYGb29vQR+7c+dOHD16lCwfE4vF6Nu3L+bNm8fLnz1pRE9PDxKJRNBvNzQ0YPHixUhISOA8fy8vL8yfP58jGxkZSQaiTExMMHDgQCxYsABffvklz8cDzaOmYWFhePjwIczNzTFu3DjiSzVlW9IV+/xb05O9vT05BY3V1d27d1FaWgqVSgVnZ2eMHDkSt2/f5uWvDZuX5jvK6iojIwPl5eXQ09ND165dERAQgLNnzwrWPz09Hdu2bcODBw+gr68PsVgMGxsbXLp0iSN348YNzJw5E6tXryanwgm1mw0NDfj+++9x6dIlFBYWwtDQEH379kVZWRmampo4srNnz0ZiYiLnoJHhw4dj5cqVvDZ248aNOHPmDDk738TEBKNGjcLChQs5sjNnziTn52vzunoKDQ0lm3mLi4sxf/58ZGVlET+lr6+Prl274ptvvkGXLl04v9WMG2pra6FSqTBw4EBs2bKFlJPVU1JSEmpqaohNWVpaws/PjxdjsAF9Xl4eVCoVRCIROnTogLCwMM6JhwDw5Zdf4sSJEzAxMYFSqdQZtzQ0NCAkJATJycnk+RsaGmLYsGFYvXo1RzYyMhJnz57F8+fPiU9xcHBAcHAwL8aJjY1FeHg4x/927NiRFw+1FEscPnwYAwYMaDWWYOVag3YGKBQKhUKhUCiUNxR6mhCFQqFQKBQKhfKGQjsDFAqFQqFQKBTKGwrtDFAoFAqFQqFQKG8otDNAoVAoFAqFQqG8odDOAIVCoVAoFAqF8oZCOwMUCoVCoVAoFMobCu0MUCgUCoVCoVAobyi0M0ChUCiU/28oLCyEm5sbwsPD/9NFoVAolP8JaGeAQqFQKITk5GS4ublx/vXs2RO+vr744osvkJOT8y+lHx4ejtjY2L+otH8dV65cgZubG/nS9aVLl9CtWzfU1NT8h0tGoVAo/14M/tMFoFAoFMp/H+PHj8fw4cMBAI2NjXj8+DFOnTqFy5cvIzo6Gg4ODv+ndCMiIjBp0iT4+fn9lcX9l0lNTYWjoyPat28PAEhJSUGXLl1gaWn5Hy4ZhUKh/HuhnQEKhUKh8OjevTsmTJjAudaxY0ds2rQJV65cQVBQ0H+mYP8m7t27hz59+pC/U1JS0Lt37/9giSgUCuXvgXYGKBQKhfJatGvXDgAgFos5148dO4a4uDg8efIElZWVsLKywsCBA7Fw4UI4OjoCaF7r7+vrCwA4d+4czp07R37/+PFj8v+kpCQcOHAA9+/fh1wuR7t27TBgwAAsXboUNjY2nHyvXr2KiIgIZGdnQyKRwN/fH0uWLIGBQetNm1KpRG1tLQBApVIhMzMTvr6+qKioQENDA7Kzs/Huu++ioqICAGBlZQU9PbqylkKh/O8hYhiG+U8XgkKhUCj/HSQnJ+Ojjz5CSEgIAgICADQvE8rOzsbmzZtRXV2N6Oho2Nrakt/4+vrCy8sLbm5usLKyQnZ2Nk6fPg1zc3NER0fD2toacrkcV65cwfLly9GvXz9MmTKF/J6dgThx4gTWrVuH9u3bY+LEiXBwcEBRURGuXr2KrVu3wt3dnXQqevbsiRcvXmDatGmwtbVFXFwcbt68iUWLFmHOnDmvXc/XJS4ujnRsKBQK5X8J2hmgUCgUCqGlILlLly7YvXs3OnfuzLkul8thamrKuZaYmIigoCAsXboUwcHB5LqbmxsmTZqErVu3cuSLi4vh5+cHZ2dnnDhxgrdWX61WQ09Pj3QGTExMEBMTQwJ0hmHg7++Pqqoq3Lx5s9V6VldXIzMzEwBw8uRJ3L59G2FhYQCAH3/8EZmZmdi0aROR79u3L4yMjFpNl0KhUP5/gy4TolAoFAqPqVOnYsyYMQCaZwaePn2KgwcPYtasWTh8+DBnAzHbEVCr1airq4NSqYSbmxssLCyQnp7+Wvn9+uuvUCqV+PzzzwU37Wov0fH19eWM1ItEIgwYMABHjx5FXV0dzMzMWsxPIpFg8ODBAIBdu3Zh8ODB5O9t27Zh6NCh5G8KhUL5X4Z2BigUCoXCo2PHjpxg2MfHB97e3pgyZQrCwsKwY8cOci8xMRF79uzB/fv30djYyEmnurr6tfLLz88HALi7u7+WvJOTE++alZUVAKCqqqrFzoDmfoG6ujo8ePAA/v7+qKioQG1tLbKyshAQEED2C2jvVaBQKJT/JWhngEKhUCivhaenJywsLJCUlESupaenY8aMGXB2dsaSJUvg6OgIY2NjiEQiLFq0CP+ulaj6+vo677WWZ2pqKm8p1IYNG7Bhwwby9+rVq7F69WoA3A3OFAqF8r8G7QxQKBQK5bVRqVRQKBTk75iYGKhUKkRFRXFG6+Vy+Z/6YJeLiwsAICsrC66urn9ZeYXo1q0bDh48CAA4evQosrOzsX79egDA999/j6KiIqxZs+bfWgYKhUL5b4Gek0ahUCiU1yIhIQFyuRweHh7kmq4R+sjISKjVat51U1NTVFVV8a6PGTMGYrEY3377LWQyGe/+XznDwO4XGDx4MEpLSzFw4EDyd3FxMfm/5j4CCoVC+V+FzgxQKBQKhcfDhw9x4cIFAIBCocDTp09x8uRJiMViLFy4kMj5+fnhhx9+QHBwMKZOnQqxWIyEhAQ8fvwY1tbWvHS9vLyQmJiI7777Dh06dIBIJMLbb78NOzs7rFy5EuvXr4e/vz8mTJgABwcHlJSUIC4uDps3b37t/QSvi0wmw8OHDxEYGAgAqKioQE5ODj7//PO/NB8KhUL5b4Z2BigUCoXCIyYmBjExMQCaT/KxsrLCkCFDMGvWLPTq1YvI9e3bF+Hh4dizZw927doFIyMjDB48GEePHiVBtiZffvkl1q9fj3379qGurg4A8PbbbwMAAgIC4OzsjO+//x5HjhyBQqFAu3btMGjQINjZ2f3ldUxNTYVKpUL//v0BNH91mGEY8jeFQqG8CdDvDFAoFAqFQqFQKG8odM8AhUKhUCgUCoXyhkI7AxQKhUKhUCgUyhsK7QxQKBQKhUKhUChvKLQzQKFQKBQKhUKhvKHQzgCFQqFQKBQKhfKGQjsDFAqFQqFQKBTKGwrtDFAoFAqFQqFQKG8otDNAoVAoFAqFQqG8odDOAIVCoVAoFAqF8oZCOwMUCoVCoVAoFMobyv8DVSgxKrD0/vgAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "flat_predictions = np.concatenate(predictions, axis=0)\n", + "flat_true_labels = np.concatenate(true_labels, axis=0)\n", + "\n", + "mcc = matthews_corrcoef(flat_true_labels, flat_predictions)\n", + "print('Total MCC: %.3f' % mcc)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rkonN244_HPz", + "outputId": "41d38d16-d647-45b5-8afc-ea2e29ff82ec" + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Total MCC: 0.000\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Save model" + ], + "metadata": { + "id": "GPhCp068_Iwq" + } + }, + { + "cell_type": "code", + "source": [ + "from google.colab import drive\n", + "\n", + "drive.mount('/content/gdrive/', force_remount=True)\n", + "\n", + "output_dir = '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/T5_Model'\n", + "print(\"Saving model to %s\" % output_dir)\n", + "\n", + "model_to_save = model.module if hasattr(model, 'module') else model \n", + "model_to_save.save_pretrained(output_dir)\n", + "tokenizer.save_pretrained(output_dir)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "avafCMoS_KDF", + "outputId": "46e0d66e-ba84-485e-8188-beaee2a89d9e" + }, + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Mounted at /content/gdrive/\n", + "Saving model to /content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/T5_Model\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "('/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/T5_Model/tokenizer_config.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/T5_Model/special_tokens_map.json',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/T5_Model/spiece.model',\n", + " '/content/gdrive/My Drive/UAM/Przetwarzanie-tekstu/T5_Model/added_tokens.json')" + ] + }, + "metadata": {}, + "execution_count": 35 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Bibliografia\n", + "- https://github.com/Shivanandroy/T5-Finetuning-PyTorch/blob/main/notebook/T5_Fine_tuning_with_PyTorch.ipynb\n", + "- https://mccormickml.com/2019/07/22/BERT-fine-tuning/#a1-saving--loading-fine-tuned-model\n", + "- https://huggingface.co/docs/transformers/model_doc/t5#training" + ], + "metadata": { + "id": "wHzm2_nDA6i-" + } + } + ] +} \ No newline at end of file diff --git a/projekt/transformer_encoder.ipynb b/projekt/transformer_encoder.ipynb deleted file mode 100644 index 1958e99..0000000 --- a/projekt/transformer_encoder.ipynb +++ /dev/null @@ -1,32 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Rozwiązanie oparte na modelu transformer encoder\n", - "https://colab.research.google.com/drive/1lbwSUqLABIfcPwFhD5iSMR0v5Tv0yLGI?usp=sharing" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.10.9 (main, Dec 15 2022, 18:18:30) [Clang 14.0.0 (clang-1400.0.29.202)]" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}