Przetwarzanie_tekstu/projekt/FLAN_T5_sms_spam.ipynb
2023-02-10 12:42:56 +01:00

7156 lines
364 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "e4bb6f2f32de48d4b1f6d7ecf97ce376"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading metadata: 0%| | 0.00/1.69k [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "4084f218fca64fc9b765e04d0cc073ac"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading readme: 0%| | 0.00/4.87k [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "8cae9c49e18f43248072b5e059429f6d"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Downloading and preparing dataset sms_spam/plain_text to /root/.cache/huggingface/datasets/sms_spam/plain_text/1.0.0/53f051d3b5f62d99d61792c91acefe4f1577ad3e4c216fb0ad39e30b9f20019c...\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading data: 0%| | 0.00/203k [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "ec0f16c3cbb14d9287e148887127219b"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Generating train split: 0%| | 0/5574 [00:00<?, ? examples/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "699a1bdf38ca48e2affc3c6bd771852f"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Dataset sms_spam downloaded and prepared to /root/.cache/huggingface/datasets/sms_spam/plain_text/1.0.0/53f051d3b5f62d99d61792c91acefe4f1577ad3e4c216fb0ad39e30b9f20019c. Subsequent calls will reuse this data.\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
" 0%| | 0/1 [00:00<?, ?it/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "3c84850ebe3e45d297d3bfa8a12f1b86"
}
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"dataset['train'][123]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "JKFHPko3OnAV",
"outputId": "423375ec-0be7-431b-8a65-f531df1d94d8"
},
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'sms': 'Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app\\n',\n",
" 'label': 1}"
]
},
"metadata": {},
"execution_count": 4
}
]
},
{
"cell_type": "markdown",
"source": [
"# Modyfikacja datasetu - klasyfikacja zero-shot"
],
"metadata": {
"id": "l140vJrgYxPr"
}
},
{
"cell_type": "code",
"source": [
"parsed_dataset = []\n",
"\n",
"for row in dataset['train']:\n",
" text = \"Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\\n Q: Is this text spam? \\nText: \" + row['sms'] + \"A: \"\n",
" new_row = {}\n",
" new_row['sms'] = text\n",
" if row['label'] == 0:\n",
" new_row['label'] = \"true\"\n",
" else:\n",
" new_row['label'] = \"false\"\n",
" parsed_dataset.append(new_row)\n",
"\n",
"parsed_dataset[0]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1boUF-YiY3_y",
"outputId": "a7ecfad8-7c97-4de2-8852-80b28ea7c965"
},
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'sms': 'Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\\n Q: Is this text spam? \\nText: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\\nA: ',\n",
" 'label': 'true'}"
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "markdown",
"source": [
"# Tokenizer FLAN-T5"
],
"metadata": {
"id": "O-J-jBDxPJcn"
}
},
{
"cell_type": "code",
"source": [
"from transformers import AutoTokenizer"
],
"metadata": {
"id": "P23AYPX1PZ6g"
},
"execution_count": 6,
"outputs": []
},
{
"cell_type": "code",
"source": [
"tokenizer = AutoTokenizer.from_pretrained('google/flan-t5-base')"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 145,
"referenced_widgets": [
"040698c1b4be4adebfe751751a64c11d",
"11b4ddede4494fe093329c50097b7df5",
"7986c625c9c34d039fad240333d0da08",
"b35a6f8e81184f81990a0111cc5c6ca8",
"2968992398a94adeb626eec2f45a8699",
"c9f8f67483fb45c8a6b59fceae40fe42",
"c5a862e7d71c430c865fa87dc21b1f6d",
"d69171bdd6544c8ab9e96f3f3dfe7f92",
"9cca59c67c5f452eb1d9e8dd22296968",
"0f18ab0690ce4bc3b9b7c2f4d10c2049",
"af26b98c1e3440daa11e104ed1c8b7e4",
"be9060616d68475ea2e4674f7e460566",
"264afd978de54dbeaa1b711e4c0b1c07",
"bbcefda6eea74b8ea8313e4f7167df65",
"68d85f6957ea4807a1fe7c82c9a7bc06",
"cdfaf060f34a4d23afe97243d5f4c709",
"9411023294ab44b284894aebf3f8f589",
"d8bf78a3d7ea47a9824d6e01e70b0237",
"b95ece9507db467fad710338bdf29177",
"34a31746a99c4916b1402a2829e71a98",
"29b2a7a233a9484c92056034cc70b8ca",
"c9a72e2599e94e9e9bc2b4912d25877b",
"2c24af439f3e45db8a0e004686e912ed",
"dcb13b35232145fd85be1b6e4442cc5a",
"58037f9984bb414a9c6e56337d86215c",
"6e9379baaf2049658790e176ca279531",
"772e39d516cf43fdbb1b3db001d53d77",
"c08c1e0783324c53b7fc02912fa14af9",
"9bcdda510c0147178f651b66450b48ac",
"18ab5e8088e04cdca93df7519156a59f",
"f502a26154d840b89b5c61a2aae4f827",
"7beb993a979443dcb93d26ec6e6718c3",
"62e60fc862054e4d8d0d18cb1957cf6d",
"bd697213d4fa4c1d9119657c537e78fe",
"67f9f97815354675bf3bd435f2ed0436",
"27bd6c78e7f74ff385509e9856c2b8d0",
"34f670acaa3542eebc8c19018e900ce3",
"ec2d082874844b6daf8542824bfde1a0",
"b9df5fc8959447449d873bd17e6696f7",
"f8489ecaa1a844369bcb427c5f4c95e6",
"b21e65a9dff040f4a045580d9989ac20",
"0efa19170c9e4de891e328365543c916",
"8c6fa802ddd5491581c092e5422bfeab",
"42cfc2ada7ac408fab39251add66f6ef"
]
},
"id": "q5Jz0E_oPMBr",
"outputId": "c71131a5-4737-4354-e58f-17aa88116348"
},
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading (…)okenizer_config.json: 0%| | 0.00/2.54k [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "040698c1b4be4adebfe751751a64c11d"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading (…)\"spiece.model\";: 0%| | 0.00/792k [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "be9060616d68475ea2e4674f7e460566"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading (…)/main/tokenizer.json: 0%| | 0.00/2.42M [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "2c24af439f3e45db8a0e004686e912ed"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading (…)cial_tokens_map.json: 0%| | 0.00/2.20k [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "bd697213d4fa4c1d9119657c537e78fe"
}
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"sms = parsed_dataset[0]['sms']\n",
"print('Original: \\n', sms)\n",
"print('Tokenized: ', tokenizer.tokenize(sms))\n",
"print('Token IDs: ', tokenizer.convert_tokens_to_ids(tokenizer.tokenize(sms)))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "dfxJQpoePsvI",
"outputId": "2ce963db-ed94-467a-e859-fd0515849ee2"
},
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Original: \n",
" Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\n",
" Q: Is this text spam? \n",
"Text: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\n",
"A: \n",
"Tokenized: ['▁Answer', '▁the', '▁question', '▁in', '▁one', '▁word', '▁', '-', '▁true', '▁', 'if', '▁provided', '▁text', '▁is', '▁spam', '▁or', '▁false', ',', '▁', 'if', '▁provided', '▁text', '▁is', '▁not', '▁spam', '.', '▁Q', ':', '▁I', 's', '▁this', '▁text', '▁spam', '?', '▁Text', ':', '▁Go', '▁until', '▁jur', 'ong', '▁point', ',', '▁crazy', '.', '.', '▁Available', '▁only', '▁in', '▁bug', 'is', '▁', 'n', '▁great', '▁world', '▁la', '▁', 'e', '▁buffet', '...', '▁Cine', '▁there', '▁got', '▁', 'a', 'more', '▁wa', 't', '...', '▁A', ':', '▁']\n",
"Token IDs: [11801, 8, 822, 16, 80, 1448, 3, 18, 1176, 3, 99, 937, 1499, 19, 13655, 42, 6136, 6, 3, 99, 937, 1499, 19, 59, 13655, 5, 1593, 10, 27, 7, 48, 1499, 13655, 58, 5027, 10, 1263, 552, 10081, 2444, 500, 6, 6139, 5, 5, 8144, 163, 16, 8143, 159, 3, 29, 248, 296, 50, 3, 15, 15385, 233, 17270, 132, 530, 3, 9, 3706, 8036, 17, 233, 71, 10, 3]\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# Check maximum lenght of a sentence"
],
"metadata": {
"id": "UpluhM8cU5Ir"
}
},
{
"cell_type": "code",
"source": [
"max_len = 0\n",
"\n",
"for sentence in parsed_dataset:\n",
" input_ids = tokenizer.encode(sentence['sms'], add_special_tokens=True)\n",
" max_len = max(max_len, len(input_ids))\n",
"\n",
"print('Max sentence length: ', max_len)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7uNUkixPU85O",
"outputId": "352b31bb-164e-42a8-a8b0-6be9d3eca0c4"
},
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Max sentence length: 377\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"max_label_len = 0\n",
"\n",
"for sentence in parsed_dataset:\n",
" input_ids = tokenizer.encode(sentence['label'], add_special_tokens=True)\n",
" max_label_len = max(max_label_len, len(input_ids))\n",
"\n",
"print('Max sentence length: ', max_label_len)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "lj0issBznZfK",
"outputId": "53defde8-ed8d-4927-add4-5d7d63f737df"
},
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Max sentence length: 2\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# Pre train tokenization"
],
"metadata": {
"id": "nfw62HdgSERb"
}
},
{
"cell_type": "code",
"source": [
"import torch"
],
"metadata": {
"id": "KTXYalS1VLqH"
},
"execution_count": 11,
"outputs": []
},
{
"cell_type": "code",
"source": [
"input_ids = []\n",
"target_ids = []\n",
"attention_masks = []\n",
"\n",
"for sentence in parsed_dataset:\n",
" encoded_dict = tokenizer.encode_plus(\n",
" sentence['sms'],\n",
" add_special_tokens = True,\n",
" max_length = 380,\n",
" padding = 'max_length',\n",
" truncation=True,\n",
" return_attention_mask = True,\n",
" return_tensors = 'pt',\n",
" )\n",
" \n",
" encoded_target_dict = tokenizer.encode_plus(\n",
" sentence['label'],\n",
" add_special_tokens = True,\n",
" max_length = 2,\n",
" padding = 'max_length',\n",
" truncation=True,\n",
" return_attention_mask = True,\n",
" return_tensors = 'pt',\n",
" )\n",
" \n",
" input_ids.append(encoded_dict['input_ids'])\n",
" target_ids.append(encoded_target_dict['input_ids'])\n",
" attention_masks.append(encoded_dict['attention_mask'])\n",
"\n",
"input_ids = torch.cat(input_ids, dim=0)\n",
"target_ids = torch.cat(target_ids, dim=0)\n",
"attention_masks = torch.cat(attention_masks, dim=0)\n",
"\n",
"print('Original: ', parsed_dataset[0])\n",
"print('Token IDs:', input_ids[0])\n",
"print('Label token IDs:', target_ids[0])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Z28QYfLnSGxR",
"outputId": "eb9d48d0-cb2d-4596-c752-14b18f6e3590"
},
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Original: {'sms': 'Answer the question in one word - true if provided text is spam or false, if provided text is not spam.\\n Q: Is this text spam? \\nText: Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...\\nA: ', 'label': 'true'}\n",
"Token IDs: tensor([11801, 8, 822, 16, 80, 1448, 3, 18, 1176, 3,\n",
" 99, 937, 1499, 19, 13655, 42, 6136, 6, 3, 99,\n",
" 937, 1499, 19, 59, 13655, 5, 1593, 10, 27, 7,\n",
" 48, 1499, 13655, 58, 5027, 10, 1263, 552, 10081, 2444,\n",
" 500, 6, 6139, 5, 5, 8144, 163, 16, 8143, 159,\n",
" 3, 29, 248, 296, 50, 3, 15, 15385, 233, 17270,\n",
" 132, 530, 3, 9, 3706, 8036, 17, 233, 71, 10,\n",
" 3, 1, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n",
"Label token IDs: tensor([1176, 1])\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"# Split dataset"
],
"metadata": {
"id": "qD_t0y0KVVSy"
}
},
{
"cell_type": "code",
"source": [
"from torch.utils.data import TensorDataset, random_split"
],
"metadata": {
"id": "vN_SatRIVa4c"
},
"execution_count": 15,
"outputs": []
},
{
"cell_type": "code",
"source": [
"dataset = TensorDataset(input_ids, attention_masks, target_ids)\n",
"\n",
"test_size = 1000\n",
"dataset_len = len(dataset)\n",
"train_size = int(0.9 * (dataset_len-test_size))\n",
"val_size = (dataset_len-test_size) - train_size\n",
"\n",
"test_dataset, train_dataset, val_dataset = random_split(dataset, [test_size, train_size, val_size])\n",
"\n",
"print('{:>5,} 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:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "3747d0aa68d642449ff32b7efd47d497"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading (…)\"pytorch_model.bin\";: 0%| | 0.00/990M [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "cf36c750119449e8a16aa97a9b66a124"
}
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"Downloading (…)neration_config.json: 0%| | 0.00/147 [00:00<?, ?B/s]"
],
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
"model_id": "9a04f6723e2a40288eb42eea0134dfaf"
}
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"T5ForConditionalGeneration(\n",
" (shared): Embedding(32128, 768)\n",
" (encoder): T5Stack(\n",
" (embed_tokens): Embedding(32128, 768)\n",
" (block): ModuleList(\n",
" (0): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" (relative_attention_bias): Embedding(32, 12)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (1): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (2): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (3): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (4): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (5): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (6): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (7): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (8): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (9): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (10): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (11): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" )\n",
" (final_layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (decoder): T5Stack(\n",
" (embed_tokens): Embedding(32128, 768)\n",
" (block): ModuleList(\n",
" (0): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" (relative_attention_bias): Embedding(32, 12)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (1): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (2): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (3): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (4): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (5): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (6): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (7): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (8): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (9): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (10): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" (11): T5Block(\n",
" (layer): ModuleList(\n",
" (0): T5LayerSelfAttention(\n",
" (SelfAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (1): T5LayerCrossAttention(\n",
" (EncDecAttention): T5Attention(\n",
" (q): Linear(in_features=768, out_features=768, bias=False)\n",
" (k): Linear(in_features=768, out_features=768, bias=False)\n",
" (v): Linear(in_features=768, out_features=768, bias=False)\n",
" (o): Linear(in_features=768, out_features=768, bias=False)\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (2): T5LayerFF(\n",
" (DenseReluDense): T5DenseGatedActDense(\n",
" (wi_0): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wi_1): Linear(in_features=768, out_features=2048, bias=False)\n",
" (wo): Linear(in_features=2048, out_features=768, bias=False)\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" (act): NewGELUActivation()\n",
" )\n",
" (layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" )\n",
" )\n",
" )\n",
" (final_layer_norm): T5LayerNorm()\n",
" (dropout): Dropout(p=0.1, inplace=False)\n",
" )\n",
" (lm_head): Linear(in_features=768, out_features=32128, bias=False)\n",
")"
]
},
"metadata": {},
"execution_count": 21
}
]
},
{
"cell_type": "markdown",
"source": [
"# Helper functions"
],
"metadata": {
"id": "F_SDAwxoawDy"
}
},
{
"cell_type": "code",
"source": [
"import datetime\n",
"import numpy as np"
],
"metadata": {
"id": "s-q6_F38bLVA"
},
"execution_count": 22,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def calculate_accuracy(preds, target):\n",
" results_ok = 0.0\n",
" results_false = 0.0\n",
"\n",
" for idx, pred in enumerate(preds):\n",
" if pred == target[idx]:\n",
" results_ok += 1.0\n",
" else:\n",
" results_false += 1.0\n",
"\n",
" return results_ok / (results_ok + results_false)\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",
" return str(datetime.timedelta(seconds=elapsed_rounded))"
],
"metadata": {
"id": "FzUi8908ax61"
},
"execution_count": 23,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Init training"
],
"metadata": {
"id": "ucChBa-9bXJy"
}
},
{
"cell_type": "code",
"source": [
"from transformers import get_linear_schedule_with_warmup"
],
"metadata": {
"id": "c9e7rbGwbdEp"
},
"execution_count": 24,
"outputs": []
},
{
"cell_type": "code",
"source": [
"optimizer = torch.optim.AdamW(model.parameters(),\n",
" lr = 3e-4,\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": "A7XUF4PNbYy8"
},
"execution_count": 25,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Training"
],
"metadata": {
"id": "DAzQWODja0A3"
}
},
{
"cell_type": "code",
"source": [
"import random\n",
"import time"
],
"metadata": {
"id": "Hoa7NlU0bI7G"
},
"execution_count": 26,
"outputs": []
},
{
"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",
"\n",
" total_train_loss = 0\n",
" total_train_acc = 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",
"\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",
" <div id=\"df-ca1b78cf-f532-4d4d-b437-30d6fbef7e05\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Training Loss</th>\n",
" <th>Training Accur.</th>\n",
" <th>Valid. Loss</th>\n",
" <th>Valid. Accur.</th>\n",
" <th>Training Time</th>\n",
" <th>Validation Time</th>\n",
" </tr>\n",
" <tr>\n",
" <th>epoch</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5.27e-03</td>\n",
" <td>0.59</td>\n",
" <td>0.0</td>\n",
" <td>0.47</td>\n",
" <td>0:09:34</td>\n",
" <td>0:00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2.74e-08</td>\n",
" <td>0.59</td>\n",
" <td>0.0</td>\n",
" <td>0.46</td>\n",
" <td>0:09:32</td>\n",
" <td>0:00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.58e-08</td>\n",
" <td>0.59</td>\n",
" <td>0.0</td>\n",
" <td>0.46</td>\n",
" <td>0:09:39</td>\n",
" <td>0:00:31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.55e-08</td>\n",
" <td>0.58</td>\n",
" <td>0.0</td>\n",
" <td>0.46</td>\n",
" <td>0:09:32</td>\n",
" <td>0:00:31</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ca1b78cf-f532-4d4d-b437-30d6fbef7e05')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-ca1b78cf-f532-4d4d-b437-30d6fbef7e05 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-ca1b78cf-f532-4d4d-b437-30d6fbef7e05');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\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": [
"<Figure size 864x432 with 1 Axes>"
],
"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": [
"<Figure size 864x432 with 1 Axes>"
],
"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-"
}
}
]
}