diff --git a/practicals/LLMs/Part_2/Finetuning_Tutorial.ipynb b/practicals/LLMs/Part_2/Finetuning_Tutorial.ipynb new file mode 100644 index 0000000..536af9e --- /dev/null +++ b/practicals/LLMs/Part_2/Finetuning_Tutorial.ipynb @@ -0,0 +1,7763 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "gpuType": "T4" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "fb434848b6cd4e679c2ea47ecf1d0d61": { + "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_4b295c19ea9a4dba94cf0454e778748a", + "IPY_MODEL_2fc263f9525547349f094bfc7ee425fd", + "IPY_MODEL_0f116631de364bac814f67f07f0f71d9" + ], + "layout": "IPY_MODEL_ea64f5195506482ba0f6712b119fcf6d" + } + }, + "4b295c19ea9a4dba94cf0454e778748a": { + "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_520a1b423407472198dc43998f5efdc9", + "placeholder": "​", + "style": "IPY_MODEL_f491bc21faf0459db8d4b62c60f1a92b", + "value": "config.json: 100%" + } + }, + "2fc263f9525547349f094bfc7ee425fd": { + "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_e8813eb47d3040d7b687100522c27acc", + "max": 718, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_801baa343ebc406780b54ee6380623eb", + "value": 718 + } + }, + "0f116631de364bac814f67f07f0f71d9": { + "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_c619d8f201b4442990e1f307a75655de", + "placeholder": "​", + "style": "IPY_MODEL_24e28a0e66904179a59c972cf8d6a50b", + "value": " 718/718 [00:00<00:00, 56.1kB/s]" + } + }, + "ea64f5195506482ba0f6712b119fcf6d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "520a1b423407472198dc43998f5efdc9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f491bc21faf0459db8d4b62c60f1a92b": { + "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": "" + } + }, + "e8813eb47d3040d7b687100522c27acc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "801baa343ebc406780b54ee6380623eb": { + "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": "" + } + }, + "c619d8f201b4442990e1f307a75655de": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "24e28a0e66904179a59c972cf8d6a50b": { + "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": "" + } + }, + "febd2f5a6e4a42f7a86fc8d6edcf2d0b": { + "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_b5d99a2dfb984d829f35dfda61788d42", + "IPY_MODEL_0331af72fc8543ab94b7a379e522ac78", + "IPY_MODEL_83b2b3cb313f48ba9be77b0c39f92461" + ], + "layout": "IPY_MODEL_72578e910ac8429f851ca485d81f81e3" + } + }, + "b5d99a2dfb984d829f35dfda61788d42": { + "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_b0c1653b8042471ca61df23e5348f818", + "placeholder": "​", + "style": "IPY_MODEL_0a13efb0772b4cdfad74ccfa20a1b76f", + "value": "model.safetensors: 100%" + } + }, + "0331af72fc8543ab94b7a379e522ac78": { + "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_9f6009ca337a419ea6746b5f75959176", + "max": 1519984962, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_0c82a7f5c7614164b225a745ce619563", + "value": 1519984962 + } + }, + "83b2b3cb313f48ba9be77b0c39f92461": { + "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_fb3fc7ed7e614a4cb840031187b0c49a", + "placeholder": "​", + "style": "IPY_MODEL_6f86ff0ee887432d8f7949047e506ddc", + "value": " 1.52G/1.52G [00:24<00:00, 118MB/s]" + } + }, + "72578e910ac8429f851ca485d81f81e3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b0c1653b8042471ca61df23e5348f818": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0a13efb0772b4cdfad74ccfa20a1b76f": { + "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": "" + } + }, + "9f6009ca337a419ea6746b5f75959176": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0c82a7f5c7614164b225a745ce619563": { + "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": "" + } + }, + "fb3fc7ed7e614a4cb840031187b0c49a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6f86ff0ee887432d8f7949047e506ddc": { + "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": "" + } + }, + "10522094ddc44f49bf2b982df0e3f739": { + "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_4e76b5b7a5cf414abf96f28b54d4e440", + "IPY_MODEL_18986aa92ebb4e2ba8dfc8ab81e6a69f", + "IPY_MODEL_cc88972a83544e7e99c81c6cfffdc72b" + ], + "layout": "IPY_MODEL_03e3cbcbd84e440da527d40d354e333e" + } + }, + "4e76b5b7a5cf414abf96f28b54d4e440": { + "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_d4f0cddf0e854483ab007a501e61b07a", + "placeholder": "​", + "style": "IPY_MODEL_5d8aea5590084122908f9570b59b4040", + "value": "generation_config.json: 100%" + } + }, + "18986aa92ebb4e2ba8dfc8ab81e6a69f": { + "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_b58c2cf7c1ae475ab04149f8e93e97e2", + "max": 124, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c5affa8522ef4cca94738621b29e46c0", + "value": 124 + } + }, + "cc88972a83544e7e99c81c6cfffdc72b": { + "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_31487c0fccc54fe29c248d841682e797", + "placeholder": "​", + "style": "IPY_MODEL_d87589f59fe048aca82b61add82c82ed", + "value": " 124/124 [00:00<00:00, 4.78kB/s]" + } + }, + "03e3cbcbd84e440da527d40d354e333e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d4f0cddf0e854483ab007a501e61b07a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5d8aea5590084122908f9570b59b4040": { + "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": "" + } + }, + "b58c2cf7c1ae475ab04149f8e93e97e2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c5affa8522ef4cca94738621b29e46c0": { + "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": "" + } + }, + "31487c0fccc54fe29c248d841682e797": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d87589f59fe048aca82b61add82c82ed": { + "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": "" + } + }, + "f708bb0226734acbb459d7246edd3385": { + "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_b9ee954418194d11a39bc3294e4829ab", + "IPY_MODEL_f365aca5638b4021a8c5da775105546e", + "IPY_MODEL_024f5d83b2504fe2914fbfbf1d142b79" + ], + "layout": "IPY_MODEL_aeb0e0f688084badb0d1c66c6727ec9d" + } + }, + "b9ee954418194d11a39bc3294e4829ab": { + "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_67ea6a625f3c411fa3c411ebc4adf3fa", + "placeholder": "​", + "style": "IPY_MODEL_cd1b91007fa041e59629626dd6aa4965", + "value": "tokenizer_config.json: 100%" + } + }, + "f365aca5638b4021a8c5da775105546e": { + "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_3bb008427e42495283345c71a3286189", + "max": 26, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_fc2cac4d36904681a86d53cfed92c0f8", + "value": 26 + } + }, + "024f5d83b2504fe2914fbfbf1d142b79": { + "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_050ab02119164db3a885f988d9123339", + "placeholder": "​", + "style": "IPY_MODEL_015957614324467b9bbbb4a6dce0a068", + "value": " 26.0/26.0 [00:00<00:00, 942B/s]" + } + }, + "aeb0e0f688084badb0d1c66c6727ec9d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "67ea6a625f3c411fa3c411ebc4adf3fa": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cd1b91007fa041e59629626dd6aa4965": { + "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": "" + } + }, + "3bb008427e42495283345c71a3286189": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fc2cac4d36904681a86d53cfed92c0f8": { + "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": "" + } + }, + "050ab02119164db3a885f988d9123339": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "015957614324467b9bbbb4a6dce0a068": { + "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": "" + } + }, + "83bc1476aa474dac8d5e04a88094e89a": { + "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_421ab0f0e61c4dc399fff8cb49f79a48", + "IPY_MODEL_815ba35144ca4cef8882692a886c942f", + "IPY_MODEL_3ac9b475963c4cbb831fb2746eed9a8a" + ], + "layout": "IPY_MODEL_9a3654bc03494d0db5db2193b0ebb3ef" + } + }, + "421ab0f0e61c4dc399fff8cb49f79a48": { + "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_f0025e6976264d53b692c5e99e124f72", + "placeholder": "​", + "style": "IPY_MODEL_2897fb08f28740c2ae840e8abc9b8ec2", + "value": "vocab.json: 100%" + } + }, + "815ba35144ca4cef8882692a886c942f": { + "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_551fb736da5040ba8e8020faaeb53d56", + "max": 1042301, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_6fccad3cd59a4a708427750ba706ba1a", + "value": 1042301 + } + }, + "3ac9b475963c4cbb831fb2746eed9a8a": { + "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_c4f8310f9d1c4a009311849aacbb98f5", + "placeholder": "​", + "style": "IPY_MODEL_e6c67a6e4c11495699712d46c7be2997", + "value": " 1.04M/1.04M [00:00<00:00, 1.27MB/s]" + } + }, + "9a3654bc03494d0db5db2193b0ebb3ef": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f0025e6976264d53b692c5e99e124f72": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2897fb08f28740c2ae840e8abc9b8ec2": { + "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": "" + } + }, + "551fb736da5040ba8e8020faaeb53d56": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6fccad3cd59a4a708427750ba706ba1a": { + "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": "" + } + }, + "c4f8310f9d1c4a009311849aacbb98f5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e6c67a6e4c11495699712d46c7be2997": { + "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": "" + } + }, + "64479e30883c4008b36c38b44fcc6e65": { + "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_b594c73d5e1e46189f5838d09a8bfc0d", + "IPY_MODEL_fb7d4e1b44f743a1b3fb6ecd0fc18a0a", + "IPY_MODEL_2be3afc4a5af4e9fb1af3e20903542ca" + ], + "layout": "IPY_MODEL_d685e80bdbaf4ecd899a16863d49cedc" + } + }, + "b594c73d5e1e46189f5838d09a8bfc0d": { + "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_aa2ed06f333242ba90eecaa789120d9d", + "placeholder": "​", + "style": "IPY_MODEL_5d13c595f14e493c804258f4c515d3be", + "value": "merges.txt: 100%" + } + }, + "fb7d4e1b44f743a1b3fb6ecd0fc18a0a": { + "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_84e3a644ed5b42bdb72f32bdfe8c1207", + "max": 456318, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_bdbae8faed794771a05b02a41867c624", + "value": 456318 + } + }, + "2be3afc4a5af4e9fb1af3e20903542ca": { + "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_63559a4806dc47a29a22b57e24d4a34a", + "placeholder": "​", + "style": "IPY_MODEL_621a73cd9b3a48148cd5ce0573b7f639", + "value": " 456k/456k [00:00<00:00, 3.22MB/s]" + } + }, + "d685e80bdbaf4ecd899a16863d49cedc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "aa2ed06f333242ba90eecaa789120d9d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5d13c595f14e493c804258f4c515d3be": { + "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": "" + } + }, + "84e3a644ed5b42bdb72f32bdfe8c1207": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bdbae8faed794771a05b02a41867c624": { + "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": "" + } + }, + "63559a4806dc47a29a22b57e24d4a34a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "621a73cd9b3a48148cd5ce0573b7f639": { + "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": "" + } + }, + "8e28a9d460d747eda36400abe042f97f": { + "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_f4b77a5d92874eacae1a1a647fe6b7a2", + "IPY_MODEL_237822ddd4c84f8b899d2d5cf60619a9", + "IPY_MODEL_8eb9e5dbd5ef4474b74f9104ab9281b2" + ], + "layout": "IPY_MODEL_dcd330fec66e47f18b7bff60d7268a51" + } + }, + "f4b77a5d92874eacae1a1a647fe6b7a2": { + "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_8c1baeec5daa4ad1a89dcd39989dde1e", + "placeholder": "​", + "style": "IPY_MODEL_78136ad8b7784943b182046a27ee33ca", + "value": "tokenizer.json: 100%" + } + }, + "237822ddd4c84f8b899d2d5cf60619a9": { + "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_8cedbdd6b8114b61b42ce9c74c46ecb5", + "max": 1355256, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8ba6647e8c0641fbaae3395091d97bf5", + "value": 1355256 + } + }, + "8eb9e5dbd5ef4474b74f9104ab9281b2": { + "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_3296a6c3f749435892572eea712843b8", + "placeholder": "​", + "style": "IPY_MODEL_8b25e02baadb4b7dafbdb79f1cfaec58", + "value": " 1.36M/1.36M [00:00<00:00, 7.95MB/s]" + } + }, + "dcd330fec66e47f18b7bff60d7268a51": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8c1baeec5daa4ad1a89dcd39989dde1e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "78136ad8b7784943b182046a27ee33ca": { + "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": "" + } + }, + "8cedbdd6b8114b61b42ce9c74c46ecb5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8ba6647e8c0641fbaae3395091d97bf5": { + "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": "" + } + }, + "3296a6c3f749435892572eea712843b8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8b25e02baadb4b7dafbdb79f1cfaec58": { + "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": "" + } + }, + "320c520b8cc54a52aacfae77d90aa58b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DropdownModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DropdownModel", + "_options_labels": [ + "100-gecs", + "21-savage", + "25-17", + "50-cent", + "5nizza", + "5opka", + "6ix9ine", + "aaron-watson", + "abba", + "adele", + "agata-christie", + "aikko", + "aimer", + "ajr", + "alan-walker", + "andre-3000", + "arash", + "architects", + "arctic-monkeys", + "ariana-grande", + "ariya", + "armin-van-buuren", + "as-i-lay-dying", + "asdfgfa", + "asper-x", + "baklan", + "big-baby-tape", + "big-russian-boss", + "bill-wurtz", + "billie-eilish", + "billy-talent", + "bladee", + "bob-dylan", + "bones", + "booker", + "boris-grebenshikov", + "braii", + "bring-me-the-horizon", + "bruce-springsteen", + "bryan-adams", + "burzum", + "bushido-zho", + "cardi-b", + "chester-bennington", + "chief-keef", + "ciggy-blacc", + "cocomelon", + "coin", + "coldplay", + "dababy", + "david-bowie", + "ddt", + "death-grips", + "deep-purple", + "denderty", + "dermot-kennedy", + "dj-artem-artemov", + "doja-cat", + "drake", + "dua-lipa", + "duran-duran", + "dzhizus", + "ed-sheeran", + "egor-kreed", + "egor-letov", + "elton-john", + "eminem", + "enigma", + "enya", + "epic-rap-battles-of-history", + "face", + "fascinoma", + "fear-factory", + "florence-the-machine", + "freddie-dredd", + "freelancer", + "galenskaparna-and-after-shave", + "ghost", + "ghostemane", + "ghostmane", + "gizmo", + "gorillaz", + "green-day", + "grigory-leps", + "grimes", + "gspd", + "gunna", + "headie-one", + "hillsong-worship", + "hyuna", + "i-dont-know-how-but-they-found-me", + "idktime", + "imagine-dragons", + "jah-khalib", + "jim-morrison", + "john-k-samson", + "john-lennon", + "joji", + "joni-mitchell", + "justin-bieber", + "kanye-west", + "kasta", + "katy-perry", + "kehlani", + "kendrick-lamar", + "kesha", + "king-krule", + "kipelov", + "kishlak", + "kizaru", + "kojey-radical", + "krechet", + "krept-and-konan-bugzy-malone-sl-morisson-abra-cadabra-rv-and-snap-capone", + "kurt-cobain", + "lady-gaga", + "lazy-jay", + "led-zeppelin", + "lil-baby", + "lil-nas-x", + "lil-peep", + "lil-skies", + "lil-uzi-vert", + "linkin-park", + "little-big", + "lizer", + "logic", + "lorde", + "loud-luxury", + "loverance", + "lovv66", + "lumen", + "lyapis-trubetskoy", + "macan", + "machine-gun-kelly", + "madonna", + "marillion", + "maroon-5", + "mashina-vremeni", + "mating-ritual", + "max-korzh", + "mayot", + "mc-ride", + "melanie-martinez", + "metallica", + "mf-doom", + "michael-jackson", + "mikhail-gorshenev", + "mikhail-krug", + "miyagi", + "mnogoznaal", + "morgenshtern", + "mumiy-troll", + "muse", + "nautilus-pompilius", + "nervy", + "nicki-minaj", + "nirvana", + "noize-mc", + "oasis", + "obladaet", + "og-buda", + "olga-buzova", + "ot-rus", + "our-last-night", + "oxxxymiron", + "peter-paul-and-mary", + "pharaoh", + "phish", + "pink-floyd", + "placebo", + "platina", + "pop-smoke", + "post-malone", + "pyrokinesis", + "queen", + "radiohead", + "rage-against-the-machine", + "ramil", + "rammstein", + "red-hot-chili-peppers", + "rex-orange-county", + "rihanna", + "rocket", + "sam-kim", + "scriptonite", + "sektor-gaza", + "selena-gomez", + "sergei-letov", + "shadowraze", + "sia", + "sid-sriram", + "skillet", + "slava-kpss", + "slava-marlow", + "snoop-dogg", + "sqwore", + "sugar-ray", + "suicideoscope", + "sum-41", + "sundara-karma", + "system-of-a-down", + "t-fest", + "tanzy-minus", + "taylor-swift", + "tedeschi-trucks-band", + "the-69-eyes", + "the-avalanches", + "the-beatles", + "the-gazette", + "the-grateful-dead", + "the-king-and-the-jester", + "the-notorious-big", + "the-sugarcubes", + "the-the-pigs", + "the-velvet-underground", + "the-weeknd", + "tiamat", + "till-lindemann", + "tom-waits", + "tony-raut-and-garry-topor", + "tool", + "totpoc", + "travis-scott", + "twenty-one-pilots", + "tyler-the-creator", + "upsahl", + "v-x-v-prince", + "van-morrison", + "veggietales", + "viktor-tsoi", + "vladimir-vysotsky", + "xxxtentacion", + "young-thug", + "yung-lean", + "yung-plague", + "zemfira" + ], + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "DropdownView", + "description": "", + "description_tooltip": null, + "disabled": false, + "index": 207, + "layout": "IPY_MODEL_a2c62afcca574820a31e487b82f183d1", + "style": "IPY_MODEL_977f9b43f3d24907b55ce0042ed4e2e8" + } + }, + "a2c62afcca574820a31e487b82f183d1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "977f9b43f3d24907b55ce0042ed4e2e8": { + "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": "" + } + }, + "12a21dabacec450c924df818441e828e": { + "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_5420768a03a742bfa6fcbdcae206c0f2", + "IPY_MODEL_1a8941d0e1c6424291aac8e3fa3ceb1c", + "IPY_MODEL_67f7189fe69f426bbbc227289d703691" + ], + "layout": "IPY_MODEL_ed2785f065744cccaa3c9250d43a62e4" + } + }, + "5420768a03a742bfa6fcbdcae206c0f2": { + "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_b4ec619c5d594598a072eb879485683b", + "placeholder": "​", + "style": "IPY_MODEL_5eb074d0c77f4b4aba67fd699615c85f", + "value": "README.md: " + } + }, + "1a8941d0e1c6424291aac8e3fa3ceb1c": { + "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_9ec9ceca4eff465387155910ced971f2", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4ddfc6c086fd4147816c9715e4b3191e", + "value": 1 + } + }, + "67f7189fe69f426bbbc227289d703691": { + "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_cecc2da1af0f45288d5bd870713b62ad", + "placeholder": "​", + "style": "IPY_MODEL_7fb2030a67424b55865828fe36fae768", + "value": " 7.19k/? [00:00<00:00, 276kB/s]" + } + }, + "ed2785f065744cccaa3c9250d43a62e4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b4ec619c5d594598a072eb879485683b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5eb074d0c77f4b4aba67fd699615c85f": { + "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": "" + } + }, + "9ec9ceca4eff465387155910ced971f2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "4ddfc6c086fd4147816c9715e4b3191e": { + "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": "" + } + }, + "cecc2da1af0f45288d5bd870713b62ad": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7fb2030a67424b55865828fe36fae768": { + "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": "" + } + }, + "5d42768885c14b8d83007f4590509588": { + "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_3b393a5060414c099fb97edb145f6152", + "IPY_MODEL_c33704a5a38645a08ba6a9c7ce300b04", + "IPY_MODEL_e91ceb69d1194e379c5f34b5f2e869e6" + ], + "layout": "IPY_MODEL_ee05c5606cd14c38a1974fab0cb72c48" + } + }, + "3b393a5060414c099fb97edb145f6152": { + "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_73ff1b649665432da521138c45dda447", + "placeholder": "​", + "style": "IPY_MODEL_ad046678227d4d1baf411d5f7b548bc0", + "value": "the-beatles.py: " + } + }, + "c33704a5a38645a08ba6a9c7ce300b04": { + "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_816b20c02be44fa2aab3a0375c220021", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b31cd8ca3472401ca9a81e8734be827f", + "value": 1 + } + }, + "e91ceb69d1194e379c5f34b5f2e869e6": { + "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_0ed271ea8b5e4cc5bfaa1b79eb6eb9a2", + "placeholder": "​", + "style": "IPY_MODEL_916f1ab2e1d6423aa54769a13d3a49b2", + "value": " 4.08k/? [00:00<00:00, 72.3kB/s]" + } + }, + "ee05c5606cd14c38a1974fab0cb72c48": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "73ff1b649665432da521138c45dda447": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ad046678227d4d1baf411d5f7b548bc0": { + "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": "" + } + }, + "816b20c02be44fa2aab3a0375c220021": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "b31cd8ca3472401ca9a81e8734be827f": { + "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": "" + } + }, + "0ed271ea8b5e4cc5bfaa1b79eb6eb9a2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "916f1ab2e1d6423aa54769a13d3a49b2": { + "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": "" + } + }, + "44e3f558b1bc4466bcd5587c92cca8c5": { + "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_c353c2aeac954e05bb92602ae33aaae9", + "IPY_MODEL_357c4c95d23a4ca18335b2c5c2724e2a", + "IPY_MODEL_666323fdaab6498f830ff7e3e0e12f87" + ], + "layout": "IPY_MODEL_c145211b46d54dd69a0cdf68771c87a9" + } + }, + "c353c2aeac954e05bb92602ae33aaae9": { + "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_9bc326d21e0448b89146e56ee14a2e19", + "placeholder": "​", + "style": "IPY_MODEL_994eace3cfdf49c2a0565cc7f5a91c32", + "value": "0000.parquet: 100%" + } + }, + "357c4c95d23a4ca18335b2c5c2724e2a": { + "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_e77bc79962544496ad99528a2cd4fcb6", + "max": 487265, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7acfffb18b7f442e9befcea2467475af", + "value": 487265 + } + }, + "666323fdaab6498f830ff7e3e0e12f87": { + "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_a95082cd05bb4b89b84a08809934a254", + "placeholder": "​", + "style": "IPY_MODEL_0d3b561c638b4659bb1e7ad9eba2ac14", + "value": " 487k/487k [00:00<00:00, 8.99MB/s]" + } + }, + "c145211b46d54dd69a0cdf68771c87a9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "9bc326d21e0448b89146e56ee14a2e19": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "994eace3cfdf49c2a0565cc7f5a91c32": { + "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": "" + } + }, + "e77bc79962544496ad99528a2cd4fcb6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7acfffb18b7f442e9befcea2467475af": { + "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": "" + } + }, + "a95082cd05bb4b89b84a08809934a254": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0d3b561c638b4659bb1e7ad9eba2ac14": { + "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": "" + } + }, + "3f4567020fa547c0b42c091878595980": { + "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_19f3d87163854da19a43fc69bc5dd258", + "IPY_MODEL_0c18974ecc0f460c8c991fcdd5618f9d", + "IPY_MODEL_56ce33c8ef5b49b0b3947908650145ab" + ], + "layout": "IPY_MODEL_f022de2cecfb47db91ca64220892c4c0" + } + }, + "19f3d87163854da19a43fc69bc5dd258": { + "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_f572c551c75f42c8a60e2e714a716217", + "placeholder": "​", + "style": "IPY_MODEL_7942d070e1d64864b66a5e1cbfcde59b", + "value": "Generating train split: 100%" + } + }, + "0c18974ecc0f460c8c991fcdd5618f9d": { + "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_458e7d63903440ef8fef1bb6140419fe", + "max": 878, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2ee007a845044cce96484938c60938b9", + "value": 878 + } + }, + "56ce33c8ef5b49b0b3947908650145ab": { + "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_b02735465847455eb82b69b10ecf2adf", + "placeholder": "​", + "style": "IPY_MODEL_a64d4957e59c4d3299ed1833b4db1f7b", + "value": " 878/878 [00:00<00:00, 8402.91 examples/s]" + } + }, + "f022de2cecfb47db91ca64220892c4c0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f572c551c75f42c8a60e2e714a716217": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7942d070e1d64864b66a5e1cbfcde59b": { + "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": "" + } + }, + "458e7d63903440ef8fef1bb6140419fe": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2ee007a845044cce96484938c60938b9": { + "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": "" + } + }, + "b02735465847455eb82b69b10ecf2adf": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a64d4957e59c4d3299ed1833b4db1f7b": { + "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": "" + } + }, + "8d684b03cfd141cd82df8d6c870c4c95": { + "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_d11b6133d581464491fd755bba15a5da", + "IPY_MODEL_346961dcf55a480585bfe750de83a38f", + "IPY_MODEL_d286185b575e4ba29375c919d47e5e78" + ], + "layout": "IPY_MODEL_0be3f420721a45dc85256be333124d51" + } + }, + "d11b6133d581464491fd755bba15a5da": { + "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_cd8a8030c44f49d4842b2f697f39d3a9", + "placeholder": "​", + "style": "IPY_MODEL_8f42f9402ab0408390423931df6c35c4", + "value": "Filter: 100%" + } + }, + "346961dcf55a480585bfe750de83a38f": { + "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_b8038a85f0ef4fb19faf46d55e92e673", + "max": 878, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_07bb24b853e443a7a4d9387c53573449", + "value": 878 + } + }, + "d286185b575e4ba29375c919d47e5e78": { + "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_1a73aab08718496f82f8b6521118d97b", + "placeholder": "​", + "style": "IPY_MODEL_afb6f9c45e40497493eff623794917d3", + "value": " 878/878 [00:00<00:00, 19161.34 examples/s]" + } + }, + "0be3f420721a45dc85256be333124d51": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cd8a8030c44f49d4842b2f697f39d3a9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8f42f9402ab0408390423931df6c35c4": { + "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": "" + } + }, + "b8038a85f0ef4fb19faf46d55e92e673": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "07bb24b853e443a7a4d9387c53573449": { + "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": "" + } + }, + "1a73aab08718496f82f8b6521118d97b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "afb6f9c45e40497493eff623794917d3": { + "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": "" + } + }, + "062078bae2054db78bd4f9a402afd18f": { + "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_297aa942e2774d2b847e840cee735589", + "IPY_MODEL_46e1c135bbaf466e88822fdd1a67ee09", + "IPY_MODEL_811258a830874092b40e69a4ca77f50b" + ], + "layout": "IPY_MODEL_b920f05a48424180a4f2c2622a5504b4" + } + }, + "297aa942e2774d2b847e840cee735589": { + "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_840cf121577a439fb67197d4a52676a1", + "placeholder": "​", + "style": "IPY_MODEL_ebaad047125049ea8eef33d42ae38140", + "value": "Filter: 100%" + } + }, + "46e1c135bbaf466e88822fdd1a67ee09": { + "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_a7048554b3b8467eaaa1e9d70d70befd", + "max": 500, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_bde5dace81194cfc82147041bbee02fe", + "value": 500 + } + }, + "811258a830874092b40e69a4ca77f50b": { + "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_6ec8bde34bca4f859b948533ec10dbe6", + "placeholder": "​", + "style": "IPY_MODEL_a8db672b974e4780b44b230d64a3f56d", + "value": " 500/500 [00:00<00:00, 14432.46 examples/s]" + } + }, + "b920f05a48424180a4f2c2622a5504b4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "840cf121577a439fb67197d4a52676a1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ebaad047125049ea8eef33d42ae38140": { + "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": "" + } + }, + "a7048554b3b8467eaaa1e9d70d70befd": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bde5dace81194cfc82147041bbee02fe": { + "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": "" + } + }, + "6ec8bde34bca4f859b948533ec10dbe6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a8db672b974e4780b44b230d64a3f56d": { + "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": "" + } + }, + "b980f7600cc74bdeb9a64693ec4c112b": { + "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_06152e267ef6414d9cb7b7b08aeb05a3", + "IPY_MODEL_71d50910de314abca710cf4dcf180202", + "IPY_MODEL_d00941f7c2104235ae5b470e479cd0af" + ], + "layout": "IPY_MODEL_977d3316ce8f49058bacec1340dfaa32" + } + }, + "06152e267ef6414d9cb7b7b08aeb05a3": { + "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_0672aa3e03b54764b790175cb4f71c95", + "placeholder": "​", + "style": "IPY_MODEL_804d2038b0d54d24a59f963f05fff453", + "value": "Map: 100%" + } + }, + "71d50910de314abca710cf4dcf180202": { + "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_799673136ff944d9b33904dbb5d0af47", + "max": 494, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f1b06c281260495aabd2c0adca2b65ae", + "value": 494 + } + }, + "d00941f7c2104235ae5b470e479cd0af": { + "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_6b721141e89241569e3693b199b2a9c9", + "placeholder": "​", + "style": "IPY_MODEL_27825267a0b342faa1459ea96ddac54c", + "value": " 494/494 [00:00<00:00, 3992.06 examples/s]" + } + }, + "977d3316ce8f49058bacec1340dfaa32": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0672aa3e03b54764b790175cb4f71c95": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "804d2038b0d54d24a59f963f05fff453": { + "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": "" + } + }, + "799673136ff944d9b33904dbb5d0af47": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f1b06c281260495aabd2c0adca2b65ae": { + "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": "" + } + }, + "6b721141e89241569e3693b199b2a9c9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "27825267a0b342faa1459ea96ddac54c": { + "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": "" + } + }, + "3da64deffd9a46b0a933d5e6948954ad": { + "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_75666d34a953451f893482a7cdcb7d89", + "IPY_MODEL_b43f8adfbf8247db9f049cd709750fa3", + "IPY_MODEL_02d013c661ca461e8becee143ebc533f" + ], + "layout": "IPY_MODEL_2ea1a3c89f304eda85140d8f690174eb" + } + }, + "75666d34a953451f893482a7cdcb7d89": { + "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_bed9817c53ad440ea01ceb20f2be1f26", + "placeholder": "​", + "style": "IPY_MODEL_b213926f5a4641d9a08d40546f79f4c3", + "value": "Map: 100%" + } + }, + "b43f8adfbf8247db9f049cd709750fa3": { + "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_75de93b914274d9f930a0a9d99d6281c", + "max": 494, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_1ba115443e6f4ed3978ba1027c39c2e7", + "value": 494 + } + }, + "02d013c661ca461e8becee143ebc533f": { + "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_4da00fab9b014ae0a90d63fdf78a39d8", + "placeholder": "​", + "style": "IPY_MODEL_7c7d305d648e46fa9c219bb7e60bb9ac", + "value": " 494/494 [00:06<00:00, 63.83 examples/s]" + } + }, + "2ea1a3c89f304eda85140d8f690174eb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bed9817c53ad440ea01ceb20f2be1f26": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b213926f5a4641d9a08d40546f79f4c3": { + "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": "" + } + }, + "75de93b914274d9f930a0a9d99d6281c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1ba115443e6f4ed3978ba1027c39c2e7": { + "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": "" + } + }, + "4da00fab9b014ae0a90d63fdf78a39d8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7c7d305d648e46fa9c219bb7e60bb9ac": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Parameter Efficient Tuning of Large Language Models" + ], + "metadata": { + "id": "PUnlExXMQPBJ" + } + }, + { + "cell_type": "markdown", + "source": [ + "## Before you start:\n", + "\n", + "For this practical, you will need to use a GPU to speed up training. To do this, go to the \"Runtime\" menu in Colab, select \"Change runtime type\" and then in the popup menu, choose \"GPU\" in the \"Hardware accelerator\" box." + ], + "metadata": { + "id": "Jn76YAwdDA86" + } + }, + { + "cell_type": "code", + "source": [ + "## Install and import anything required. Capture hides the output from the cell.\n", + "# @title Install and import required packages. (Run Cell)\n", + "\n", + "!pip install transformers datasets\n", + "!pip install seaborn umap-learn\n", + "!pip install livelossplot\n", + "!pip install -q -U datasets==3.6.0 #Supports a previous version for dataset loading\n", + "!pip install -q transformers[torch]\n", + "!pip install accelerate -U\n", + "!pip install -q peft\n", + "\n", + "# Python utils\n", + "!pip install -q ipdb # debugging.\n", + "!pip install -q colorama # print colors :).\n", + "\n", + "import os\n", + "import math\n", + "import urllib.request\n", + "\n", + "# https://stackoverflow.com/questions/68340858/in-google-colab-is-there-a-programing-way-to-check-which-runtime-like-gpu-or-tpu\n", + "if os.environ[\"COLAB_GPU\"] and int(os.environ[\"COLAB_GPU\"]) > 0:\n", + " print(\"a GPU is connected.\")\n", + "elif \"COLAB_TPU_ADDR\" in os.environ and os.environ[\"COLAB_TPU_ADDR\"]:\n", + " print(\"A TPU is connected.\")\n", + " import jax.tools.colab_tpu\n", + "\n", + " jax.tools.colab_tpu.setup_tpu()\n", + "else:\n", + " print(\"Only CPU accelerator is connected.\")\n", + "\n", + "# https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html#gpu-memory-allocation\n", + "# Avoid GPU memory allocation to be done by JAX.\n", + "os.environ['XLA_PYTHON_CLIENT_PREALLOCATE'] = \"false\"\n", + "\n", + "import chex\n", + "import flax\n", + "import flax.linen as nn\n", + "import jax\n", + "import jax.numpy as jnp\n", + "from jax import grad, jit, vmap\n", + "import optax\n", + "\n", + "import transformers\n", + "from transformers import pipeline, AutoTokenizer, AutoModel\n", + "import datasets\n", + "import peft\n", + "\n", + "from PIL import Image\n", + "from livelossplot import PlotLosses\n", + "\n", + "# Utils.\n", + "import colorama\n", + "\n", + "import torch\n", + "import torchvision\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import seaborn as sns\n", + "\n", + "import itertools\n", + "import random\n", + "\n", + "# download images used in notebook\n", + "urllib.request.urlretrieve(\n", + " \"https://images.unsplash.com/photo-1529778873920-4da4926a72c2?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8MXx8Y3V0ZSUyMGNhdHxlbnwwfHwwfHw%3D&w=1000&q=80\",\n", + " \"cat.png\",\n", + ")\n", + "\n", + "import copy\n", + "import huggingface_hub\n", + "import ipywidgets as widgets\n", + "from IPython.display import display\n", + "from datasets import load_dataset\n", + "from IPython.display import display, HTML, clear_output\n", + "clear_output()" + ], + "metadata": { + "id": "6mh0iyNc9Awg", + "cellView": "form" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "## Run this cell for helper functions\n", + "# @title Run this cell for helper functions.\n", + "def print_sample(prompt, sample, model_name=\"\", generation_time=None):\n", + " if prompt in sample:\n", + " sample = sample.split(prompt)[1].rstrip()\n", + "\n", + " html = f\"\"\"\n", + "
\n", + "
🤖 Model: {model_name}
\n", + " {'
⏱️ Generation Time: ' + f'{generation_time:.2f}s
' if generation_time else ''}\n", + "
📝 Prompt: {prompt}
\n", + "
✨ Generated: {sample}
\n", + "
\n", + " \"\"\"\n", + " display(HTML(html))" + ], + "metadata": { + "id": "0qXJPPluCVB_", + "cellView": "form" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# From Prompt Engineering to Finetuning\n", + "\n", + "
\n", + " \"Positional\n", + "
\n", + "\n", + "Up to now, you have mostly interacted with language models by either **loading an open-source model locally** using Hugging Face (i.e., performing inference) or by **accessing closed-source models via API calls**. However, out-of-the-box language models may **not be well adapted to specialised tasks or domains** and may require some form of **adaptation** to perform optimally for your specific use case.\n", + "\n", + "For example, consider a scenario where you need to deploy a language model for medical question answering in your local language. A key challenge here is that you may need to equip the model with localised medical and language-specific knowledge it has not encountered during pre-training—especially if you have created a new dataset of question–answer pairs absent from pre-training datasets.\n", + "\n", + "One straightforward way to achieve this is through **prompt engineering**, which involves providing carefully designed prompts that guide the model’s behaviour without modifying its internal weights. The aim is to design prompts that elicit the best possible performance for a given task. You can do this by experimenting with different prompts and selecting the one that achieves the best performance on your validation set.\n", + "\n", + "Examples of prompting techniques include:\n", + "\n", + "* **Zero-shot prompting (Standard Prompting)** – The LLM is given only the task instruction without any examples, relying on its general pre-training to interpret and solve the task ([GPT-3 Paper][], [Zero-Shot Reasoners][]).\n", + "* **Few-shot prompting** – A few task examples are included in the prompt to help the model generalise to new inputs ([GPT-3 Paper][]).\n", + "* **Chain-of-Thought (CoT) prompting** – Encourages the model to “think step by step” by guiding it to break down its reasoning process ([CoT Paper][]).\n", + "* **Tree-of-Thought (ToT) prompting** – Extends CoT by allowing the model to explore multiple reasoning paths in a tree-like structure, then evaluate and select the most promising paths for complex tasks ([ToT Paper][]).\n", + "\n", + "[GPT-3 Paper]: https://arxiv.org/abs/2005.14165\n", + "[Zero-Shot Reasoners]: https://arxiv.org/abs/2205.11916\n", + "[CoT Paper]: https://arxiv.org/abs/2201.11903\n", + "[ToT Paper]: https://arxiv.org/abs/2305.10601\n", + "\n", + "
\n", + " \"Chain\n", + "
\n", + " Example of a Chain-of-Thought (CoT) prompt from Wei et al.,\n", + " “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models,”\n", + " 2022.\n", + "
\n", + "
\n", + "\n", + "For a detailed overview of prompting methods, see the [Prompt Engineering Guide](https://www.promptingguide.ai/) and this blog on [Advanced Prompting Techniques](https://cameronrwolfe.substack.com/p/advanced-prompt-engineering).\n", + "\n", + "---\n", + "\n", + "While prompt engineering can help you extract better performance from an existing model, there are many practical scenarios where fine-tuning an **open-source** model is not just beneficial, but essential. For example:\n", + "\n", + "* **Privacy** – Running and fine-tuning models locally protects sensitive user data (e.g., medical, legal, or financial) that would otherwise be sent to third-party APIs.\n", + "* **Computational constraints** – Smaller, optimised models can be fine-tuned and deployed efficiently on edge devices such as mobile phones, Raspberry Pis, or even in-browser via WebAssembly.\n", + "* **Domain adaptation** – Tailoring an LLM for a specific domain, such as the medical field in a particular language, using domain-specific datasets.\n", + "\n", + "As you begin exploring fine-tuning, you will find a thriving ecosystem of open-source models in a variety of sizes. It’s important to note the distinction between **open-weight models** and **fully open-source models**. Fully open-source models release not only their weights but also their training dataset recipes, architecture, and code which makes them ideal for experimenting 🧪 with the impact of different design choices, e.g., peeking 👀 into the training data or seeing how model capabilities change 📈 across different checkpoints. An example of the latter is the Olmo range of models.\n", + "\n", + "---\n", + "\n", + "## A Thriving Ecosystem of Open-Source Models\n", + "\n", + "The open-source landscape offers a wide range of models, from compact instruction-tuned models to large, general-purpose LLMs. Examples include:\n", + "\n", + "* [**Phi-3-mini-128k-instruct** (Microsoft)](https://huggingface.co/microsoft/Phi-3-mini-128k-instruct) – 3.8B parameters, trained on synthetic and filtered public data with an emphasis on high-quality, reasoning-dense content.\n", + "* [**Phi-4** (Microsoft)](https://huggingface.co/microsoft/phi-4) – A lightweight 14B parameter model optimised for reasoning and code.\n", + "* [**Mistral-7B-v0.1** (Mistral AI)](https://huggingface.co/mistralai/Mistral-7B-v0.1) – Transformer architecture with Grouped-Query Attention, Sliding-Window Attention, and Byte-fallback BPE tokenisation.\n", + "* [**google/gemma-7b** (Google)](https://huggingface.co/google/gemma-7b) – Decoder-only models focused on alignment and safety, under a permissive licence.\n", + "* [**Llama 3** (Meta)](https://huggingface.co/meta-llama) – 8B and 70B parameter models with broad language coverage and strong reasoning performance.\n", + "* [**Llama 3.2** (Meta)](https://huggingface.co/meta-llama) – Multilingual pretrained and instruction-tuned models in 1B and 3B sizes.\n", + "* [**TinyLlama**](https://huggingface.co/cognitivecomputations/TinyLlama-1.1B-Chat-v1.0) – A 1.1B parameter model trained from scratch, designed for edge deployment.\n", + "* [**Qwen/Qwen3-0.6B**](https://huggingface.co/Qwen/Qwen3-0.6B) – The latest generation in the Qwen series, available in dense and mixture-of-experts variants.\n", + "* [**gpt-oss-120B & gpt-oss-20B**](https://openai.com/index/introducing-gpt-oss/) – OpenAI’s open-weight models under Apache 2.0 license. The 120B variant runs on an 80 GB GPU; the 20B model can operate on a phone. Both support long context length (up to 131,072 tokens) and are their first open releases since GPT-2.\n", + "\n", + "\n", + "This variety allows you to:\n", + "\n", + "* Select a model that balances **performance**, **size**, and **deployment cost**\n", + "* Apply **parameter-efficient fine-tuning** (e.g., LoRA, adapters) to your needs\n", + "* Fully **audit**, **customise**, and **control** the model’s behaviour without reliance on proprietary APIs\n", + "\n", + "---\n", + "\n", + "## Parameter-Efficient Fine-Tuning (PEFT)\n", + "\n", + "In the BERT era, full-model fine-tuning—updating all weights—was feasible on consumer GPUs because models were relatively small. As models have grown in size, full fine-tuning has become impractical for most developers.\n", + "\n", + "Deploying a full copy of each fine-tuned model for each downstream task is also expensive, as each one is as large as the original pretrained model.\n", + "\n", + "**Parameter-Efficient Fine-Tuning (PEFT)** methods address both the cost of training and the expense of deployment by only fine-tuning a small number of additional parameters while freezing the majority of the pretrained model.\n", + "\n", + "Benefits include:\n", + "\n", + "* Substantially reduced **computational** and **storage** costs\n", + "* Avoidance of [**catastrophic forgetting**](https://arxiv.org/abs/1312.6211), which can occur in full fine-tuning\n", + "* Strong performance in **low-data** scenarios\n", + "* Better **generalisation** to out-of-domain tasks\n", + "\n", + "This tutorial will introduce several PEFT methods, including **prefix tuning**, **adapter methods**, and, most notably, **LoRA (Low-Rank Adaptation)**—currently the most widely used approach." + ], + "metadata": { + "id": "wpis0YvtQRiL" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 1.1 Prefix tuning" + ], + "metadata": { + "id": "FvZpuPd-Mvqa" + } + }, + { + "cell_type": "markdown", + "source": [ + "Prefix tuning is a parameter-efficient fine-tuning method that adapts a pretrained model by prepending a small number of trainable prefix tokens (embeddings) to the key and value sequences inside the attention mechanism of each transformer layer, rather than modifying the model’s original weights.\n", + "\n", + "
\n", + " \"Prefix\n", + "
\n", + " \n", + " Illustration of prefix tuning from Li and Liang,\n", + " \n", + " “Prefix-Tuning: Optimizing Continuous Prompts for Generation,” 2021\n", + " .\n", + " \n", + "
\n", + "
\n", + "\n", + "\n", + "Unlike prompt engineering, which modifies only the textual input tokens, or full fine-tuning, which updates all the model parameters, prefix tuning freezes the base model and learns a small set of additional parameters—typically less than 0.1% of the total model size.\n", + "\n", + "These prefix tokens are virtual tokens: they don’t correspond to actual words, but instead are trainable vectors that condition the model’s hidden states. They are initialised via an MLP that maps a set of prefix embeddings into the correct dimensionality for each layer’s key and value matrices in the attention mechanism. This was first introduced in the [\"Prefix-Tuning: Optimizing Continuous Prompts for Generation\" paper](https://arxiv.org/abs/2101.00190) by Xiang Lisa Li and Percy Liang where they showed that by learning only 0.1% of the parameters, prefix-tuning obtains comparable performance to full finetuning and ourperforms fine-tuning in low data settings.\n", + "\n", + "\n", + "The figure below contrasts a standard transformer block with one enhanced by prefix tuning, showing where the prefix tokens are inserted.\n", + "By training only the prefix embeddings and the MLP used to initialise them, you can adapt a model to a new domain with minimal parameter updates—achieving performance close to full fine-tuning at a fraction of the cost.\n", + "\n", + "\"drawing\"\n", + "\n", + "Below is pseudo code showing the key differences between a standard transformer block and one with prefix tuning. (Note: this code is illustrative only—it will not run as-is.)" + ], + "metadata": { + "id": "TGE4IPX4M2xz" + } + }, + { + "cell_type": "code", + "source": [ + "def normal_transformer_block(tokens):\n", + " \"\"\"\n", + " Example of pseudo code for a normal transformer.\n", + " \"\"\"\n", + " original_tokens = tokens\n", + " x = MHA(tokens)\n", + " x = LayerNorm(x + original_tokens)\n", + " original_tokens = x\n", + " x = FF(x)\n", + " transformed_tokens = LayerNorm(x + original_tokens)\n", + " return transformed_tokens\n", + "\n", + "def transformer_block_with_prefix(tokens, trainable_tokens):\n", + " \"\"\"\n", + " Example of pseudo code of transformer block with prefix tuning.\n", + " \"\"\"\n", + " prefix = FF(trainable_tokens) # Trainable MLP and tokens.\n", + " tokens = concat([prefix, tokens]) # Concatenate prefix tokens\n", + " original_tokens = tokens\n", + " x = MHA(tokens)\n", + " x = LayerNorm(x + original_tokens)\n", + " original_tokens = x\n", + " x = FF(x)\n", + " transformed_tokens = LayerNorm(x+original_tokens)\n", + " return transformed_tokens" + ], + "metadata": { + "id": "_Rb9PBmNM8m5" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## 1.2 Adapter Methods" + ], + "metadata": { + "id": "0VzV2EBWNCpN" + } + }, + { + "cell_type": "markdown", + "source": [ + "
\n", + " \"Adapter\n", + "
\n", + " \n", + " Illustration of adapters from\n", + " \n", + " Houlsby et al., “Parameter-Efficient Transfer Learning for NLP” (2019)\n", + " .\n", + " \n", + "
\n", + "
\n", + "\n", + "Very similar, and introduced in the [\"Parameter-Efficient Transfer Learning for NLP\" paper](https://arxiv.org/abs/1902.00751) by Houlsby etc, it consists of adding a new block of weights between the transformer blocks called \"Adapter\". The weights of the original transformer blocks remain untouched, while the new adapter weights are initialized at random. The adapter weights normally have significantly less number of parameters (in practice 0.5 - 8% of the parameters of the original model). During adapter tuning, the green layers are trained on the downstream data, this includes the adapter, the layer normalization parameters, and the final classification layer (not shown in the figure).\n", + "It has been shown to achieve similar performance to updating an entire network while only training 3.6% of the total model parameters.\n", + "\n", + "Below again is pseudo code highlighting where and how this work. Note running the code will not work.\n", + "\n", + "**Code exercise**: In similar style implement a pseudo-code implementation of the `Adapter` block showed in the diagram above." + ], + "metadata": { + "id": "Xc2-Wt_uNnkb" + } + }, + { + "cell_type": "code", + "source": [ + "# @title Answer to code task (Try not to peek until you've given it a good try!')\n", + "\n", + "def transformer_block_with_adapters(tokens):\n", + " \"\"\"\n", + " Example of psuedo code of transformer block with adapter layers.\n", + " \"\"\"\n", + "\n", + " original_tokens = tokens\n", + " adapted_tokens = AdapterLayer(tokens) # trainable\n", + " x = MHA(adapted_tokens)\n", + " x = LayerNorm(x + original_tokens)\n", + " original_tokens = x\n", + " x = AdapterLayer(x) # trainable\n", + " x = FF(x)\n", + " transformed_tokens = LayerNorm(x+original_tokens)\n", + " return transformed_tokens" + ], + "metadata": { + "id": "Omd-Zq7SNi2-" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "To see how both worlds from adapters and prefix tuning are together refer to the [LLAMA-Adapter paper](https://arxiv.org/abs/2303.16199)." + ], + "metadata": { + "id": "IlKhdy8sN0vO" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 1.3 LoRA" + ], + "metadata": { + "id": "tb6UVwMqOGSR" + } + }, + { + "cell_type": "markdown", + "source": [ + "> This section is a summarized copy of the [LoRA paper]((https://arxiv.org/abs/2106.09685), read the paper for more details! We also recommend beginners to focus more on the finetuning and interacting with your trained model, than on the details presented here.\n", + "\n", + "Finally let's talk about one of the most widely used methods for Efficient FineTuning called LoRA introduced in the paper [\"LoRA: Low-Rank Adaptation of Large Language Models\"](https://arxiv.org/abs/2106.09685) from Edward J. Hu et al.\n", + "\n", + "The idea behind Parameter Efficient Tunning (PEFT) is how to **efficiently** (memory wise and speedwise ) finetune these large models while significantly improving quality of the outputs produced, or to make the model behave in a different manner.\n", + "\n", + "Also it's important not only to be efficient during the finetune process but also during **inference** (e.g. for text generation models we're usually most interested in sampling time).\n", + "\n", + "[Here](https://thinkingmachines.ai/blog/lora/) is an excellent resource on LoRA.\n" + ], + "metadata": { + "id": "em-RkHrPOVjn" + } + }, + { + "cell_type": "markdown", + "source": [ + "**Task**: To build intuition for what is to come, prove that $y1$ equal, or not equal, to $y2$. Note, $X$ and $W$ are matrices.\n", + "\n", + "> $W = W_1 + W_2$\n", + ">\n", + "> $y_1 = WX$\n", + ">\n", + "> $y_2 = W_1X + W_2X$" + ], + "metadata": { + "id": "BuHhWi5LObQD" + } + }, + { + "cell_type": "code", + "source": [ + "# @title Answer to math task (Try not to run until you've given it a good try!')\n", + "%%latex\n", + "\\begin{aligned}\n", + "y_1 &= WX \\\\\n", + "y_1 &= (W_1+W_2)X \\\\\n", + "y_1 &= W_1X+W_2X \\\\\n", + "y_1 &= y_2\n", + "\\end{aligned}\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "id": "BAwZLf-ON4yb", + "outputId": "7be6793c-fc20-4b2c-d33f-c2cef7c6d09e", + "cellView": "form", + "collapsed": true + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/latex": "\\begin{aligned}\ny_1 &= WX \\\\\ny_1 &= (W_1+W_2)X \\\\\ny_1 &= W_1X+W_2X \\\\\ny_1 &= y_2\n\\end{aligned}\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "Large language models like GPT-3 have hundreds of billions of parameters, making full fine-tuning both expensive and memory-intensive. **LoRA** offers a parameter-efficient alternative by fine-tuning only a small set of additional weights while keeping the original model parameters frozen.\n", + "\n", + "---\n", + "\n", + "### 1. Core idea\n", + "\n", + "Let $W_0 \\in \\mathbb{R}^{d_{\\text{out}} \\times d_{\\text{in}}}$ be a pre-trained weight matrix.\n", + "In standard fine-tuning, we would update $W_0$ directly.\n", + "In LoRA, we **freeze** $W_0$ and represent the weight change $\\Delta W$ as a low-rank factorization:\n", + "\n", + "$$\n", + "\\Delta W = B A\n", + "$$\n", + "\n", + "where:\n", + "\n", + "* $A \\in \\mathbb{R}^{d_{\\text{in}} \\times r}$ is a **down-projection** into a rank-$r$ subspace,\n", + "* $B \\in \\mathbb{R}^{r \\times d_{\\text{out}}}$ is an **up-projection** back to the original dimension,\n", + "* $r \\ll \\min(d_{\\text{in}}, d_{\\text{out}})$ controls the number of trainable parameters.\n", + "\n", + "\n", + "\n", + "
\n", + " \"Training\n", + "
\n", + " \n", + " LoRA adds parameters only during training (orange). At inference, \\(B A\\) is merged into \\(W_0\\), so compute cost is unchanged.\n", + " \n", + "
\n", + "
\n", + "\n", + "---\n", + "\n", + "\n", + "Once $A$ and $B$ are learned, LoRA removes the two-matrix path entirely by **merging** them into the frozen weights:\n", + "\n", + "$$\n", + "W_{\\text{merged}} = W_0 + (B A)\n", + "$$\n", + "\n", + "At inference, the model simply computes:\n", + "\n", + "$$\n", + "y = W_{\\text{merged}} x\n", + "$$\n", + "\n", + "This is identical in cost to the original model — there are no extra multiplications or parameters at runtime. The parameter-efficiency advantage is purely a training-time benefit.\n", + "\n", + "The effective weight during training is:\n", + "\n", + "$$\n", + "W = W_0 + \\Delta W = W_0 + B A\n", + "$$\n", + "\n", + "
\n", + " \"LoRA\n", + "
\n", + " \n", + " LoRA factorizes the weight update \\(\\Delta W\\) into two smaller matrices \\(B\\) and \\(A\\), reducing the number of trainable parameters.\n", + " \n", + "
\n", + "
\n", + "\n", + "---\n", + "\n", + "\n", + "\n", + "### 2. Parameter count and example\n", + "\n", + "For a weight $W_0 \\in \\mathbb{R}^{d_{\\text{out}} \\times d_{\\text{in}}}$, LoRA adds:\n", + "\n", + "$$\n", + "\\underbrace{d_{\\text{in}} \\cdot r}_{A} + \\underbrace{r \\cdot d_{\\text{out}}}_{B}\n", + "$$\n", + "\n", + "trainable parameters per layer (plus small biases if used).\n", + "\n", + "**Example:**\n", + "Suppose $d_{\\text{in}} = d_{\\text{out}} = 4096$ and $r = 8$:\n", + "\n", + "* Full weight size: $4096 \\times 4096 = 16{,}777{,}216$ parameters.\n", + "* LoRA parameters: $4096 \\times 8 + 8 \\times 4096 = 32{,}768 + 32{,}768 = 65{,}536$ parameters.\n", + "* This is **\\~256× fewer parameters** to train for that layer.\n", + "\n", + "---\n", + "### 3. Forward pass during fine-tuning\n", + "\n", + "For an input vector $x$:\n", + "\n", + "$$\n", + "y = W x = W_0 x + B A x\n", + "$$\n", + "\n", + "* $W_0$ is fixed and reused from the pre-trained model.\n", + "* Only $A$ and $B$ are updated during training.\n", + "* This adds minimal memory and compute overhead in training compared to updating $W_0$ directly.\n", + "\n", + "---\n", + "\n", + "### 4. Why low-rank?\n", + "\n", + "LoRA builds on the finding by [Aghajanyan et al. (2020)](https://arxiv.org/abs/2012.13255) that large language models have **low intrinsic dimensionality**:\n", + "there exists a low-dimensional reparameterization that can match the performance of full-space fine-tuning.\n", + "\n", + "If the adaptation updates $\\Delta W$ lie mostly in a small subspace, then we can restrict $\\Delta W$ to have **low intrinsic rank** without losing much accuracy.\n", + "\n", + "This is analogous to PCA or SVD:\n", + "\n", + "* $A$ acts like a projection onto the top $r$ principal components,\n", + "* $B$ reconstructs from that subspace back into the original space.\n", + "\n", + "
\n", + " \"Low-rank\n", + "
\n", + " \n", + " Low-rank factorization is conceptually similar to PCA/SVD, where a small set of basis vectors can represent the full space with minimal loss. \n", + " Adapted from Sebastian Raschka.\n", + " \n", + "
\n", + "
\n", + "\n", + "---\n", + "\n", + "\n", + "### 5. Intuitive view\n", + "\n", + "You can think of:\n", + "\n", + "* **$A$** as an *encoder* that projects the input into a compact $r$-dimensional subspace,\n", + "* **$B$** as a *decoder* that maps back to the original dimension,\n", + "* The LoRA output $B A x$ as a small, targeted correction added to the frozen model output $W_0 x$.\n", + "\n", + "\n", + "After fine-tuning, $BA$ can be merged into the frozen $W_0$ to form a single updated weight matrix. This means there is no extra computation or memory overhead at inference time — the model runs exactly like the original.\n", + "
\n", + " \"LoRA\n", + "
\n", + " \n", + " LoRA can be seen as adding a lightweight encoder-decoder to each targeted layer, training only these modules while keeping the main weights frozen.\n", + " \n", + "
\n", + "
\n", + "\n", + "\n", + "- **Efficient Parameter Adjustment**: Instead of modifying all the original model's parameters (which are numerous and resource-intensive), LoRA introduces trainable rank decomposition matrices into each layer of the Transformer architecture. These matrices have a much smaller size than the original model's weight matrices.\n", + "- **Reduced Memory Footprint**: By training only these smaller matrices, LoRA significantly reduces the memory requirements associated with fine-tuning large models.\n", + "- **Avoids Catastrophic Forgetting**: The original model's weights remain frozen, and the LoRA matrices capture the task-specific knowledge, allowing the model to adapt to new data or tasks without altering its core capabilities.\n", + "- **Merging with the Original Model**: During inference, the low-rank matrices are merged back with the original weights, effectively injecting the learned knowledge into the model.\n", + "- **Modularity and Reusability**: The trained LoRA modules can be easily swapped, enabling flexible and efficient adaptation across various tasks." + ], + "metadata": { + "id": "P42oP3WcOxwN" + } + }, + { + "cell_type": "markdown", + "source": [ + "### 1.3.1 Lora Implementation" + ], + "metadata": { + "id": "BjYooWHgZnOt" + } + }, + { + "cell_type": "markdown", + "source": [ + "Now let's implement a simple LoRA module together!\n", + "\n", + "Before doing so, there're a couple of parameters / configs associated with LoRA:\n", + "\n", + "1. **target\\_modules** – Which layers or Transformer matrices (e.g., Q, K, V) to apply LoRA to.\n", + "2. **lora\\_rank** – The rank $r$ of the low-rank factorization; controls how much capacity the LoRA update has. Typically, **low ranks: 8, 16, 32** and **high ranks: 128, 256**\n", + "3. **lora\\_alpha** – A scaling factor applied to the low-rank update $\\Delta W$ before adding it to $W_0$. It changes how the LoRA's weights are weighed against the base model's. Higher alpha means the LoRA layers act more strongly than the base model. Typically set to **r** or **2 x r**. The original LoRA method uses the scalar function **lora_alpha/r** for scaling LoRA weights during forward pass.\n", + "\n", + " * Keeps the update magnitude consistent when $r$ changes, reducing the need to re-tune the learning rate.\n", + " * In the LoRA forward pass:\n", + "\n", + " $$\n", + " y = W_0 x + \\frac{\\alpha}{r} \\,(B A) x\n", + " $$\n", + "4. **initialization** – $A$ initialized with small Gaussian noise; $B$ initialized to zero so the model starts identical to $W_0$.\n", + "5. **dropout** – Optional dropout applied to the LoRA module during training.\n", + "\n", + "---\n", + "\n", + "**Group task**: Can you think of why the initialization proposed in 4. is used?\n" + ], + "metadata": { + "id": "ajFFTW25ZvbS" + } + }, + { + "cell_type": "code", + "source": [ + "from peft.tuners.lora.layer import Linear\n", + "import torch.nn as nn\n", + "\n", + "LORA_R = ...\n", + "LORA_ALPHA = ...\n", + "\n", + "class CustomLinearLoRA(Linear):\n", + " \"\"\"Barebones LoRA: ΔW = (α/r) B A added to frozen base layer.\"\"\"\n", + "\n", + " def update_layer(\n", + " self,\n", + " adapter_name,#adapter is a named set of additional parameters that modifies a frozen model.\n", + " r,\n", + " lora_alpha,\n", + " lora_dropout,\n", + " init_lora_weights,\n", + " use_rslora=False,\n", + " use_dora=False,\n", + " ):\n", + " if r <= 0:\n", + " raise ValueError(f\"`r` must be > 0, got {r}\")\n", + "\n", + " # Store LoRA config\n", + " self.r[adapter_name] = r\n", + " self.lora_alpha[adapter_name] = lora_alpha\n", + "\n", + " # TODO: Define a dropout module for LoRA path\n", + " lora_dropout_layer = ...\n", + " self.lora_dropout.update(nn.ModuleDict({adapter_name: lora_dropout_layer}))\n", + "\n", + " # TODO: Define LoRA A (d_in -> r) and B (r -> d_out) linear layers\n", + " self.lora_A[adapter_name] = ...\n", + " self.lora_B[adapter_name] = ...\n", + "\n", + " # Compute scaling factor\n", + " self.scaling[adapter_name] = lora_alpha / r\n", + "\n", + " # Initialize A (small Gaussian) and B (zeros)\n", + " self.reset_lora_parameters(adapter_name, init_lora_weights)\n", + " self.set_adapter(self.active_adapter)\n", + "\n", + " def forward(self, x, *args, **kwargs):\n", + " # Base frozen layer output\n", + " result = self.base_layer(x, *args, **kwargs)\n", + " torch_result_dtype = result.dtype\n", + "\n", + " if self.active_adapter not in self.lora_A:\n", + " return result\n", + "\n", + " lora_A = self.lora_A[self.active_adapter]\n", + " lora_B = self.lora_B[self.active_adapter]\n", + " dropout = self.lora_dropout[self.active_adapter]\n", + " scaling = self.scaling[self.active_adapter]\n", + "\n", + " # Match LoRA dtype\n", + " x = x.to(lora_A.weight.dtype)\n", + "\n", + " # TODO: Apply dropout, then LoRA A, then LoRA B, then scale\n", + " # TODO: Add LoRA update to base output\n", + " result = ...\n", + "\n", + " return result.to(torch_result_dtype)" + ], + "metadata": { + "id": "2Mbvg9V5ZriW" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# @title Answer to code task (Try not to peek until you've given it a good try!')\n", + "from peft.tuners.lora.layer import Linear\n", + "import torch.nn as nn\n", + "\n", + "LORA_R = 8\n", + "LORA_ALPHA = 16\n", + "\n", + "class CustomLinearLoRA(Linear):\n", + " \"\"\"Barebones LoRA: ΔW = (α/r) B A added to frozen base layer.\"\"\"\n", + "\n", + " def update_layer(\n", + " self,\n", + " adapter_name,\n", + " r,\n", + " lora_alpha,\n", + " lora_dropout,\n", + " init_lora_weights,\n", + " use_rslora=False,\n", + " use_dora=False,\n", + " ):\n", + " if r <= 0:\n", + " raise ValueError(f\"`r` must be > 0, got {r}\")\n", + "\n", + " # Store LoRA config\n", + " self.r[adapter_name] = r\n", + " self.lora_alpha[adapter_name] = lora_alpha\n", + "\n", + " # TODO: Define a dropout module for LoRA path\n", + " lora_dropout_layer = nn.Dropout(p=lora_dropout) if lora_dropout and lora_dropout > 0 else nn.Identity()\n", + " self.lora_dropout.update(nn.ModuleDict({adapter_name: lora_dropout_layer}))\n", + "\n", + " # TODO: Define LoRA A (d_in -> r) and B (r -> d_out) linear layers\n", + " self.lora_A[adapter_name] = nn.Linear(self.in_features, r, bias=False)\n", + " self.lora_B[adapter_name] = nn.Linear(r, self.out_features, bias=False)\n", + "\n", + " # Compute scaling factor\n", + " self.scaling[adapter_name] = lora_alpha / r\n", + "\n", + " # Initialize A (small Gaussian) and B (zeros)\n", + " self.reset_lora_parameters(adapter_name, init_lora_weights)\n", + " self.set_adapter(self.active_adapter)\n", + "\n", + " def forward(self, x, *args, **kwargs):\n", + " # Base frozen layer output\n", + " result = self.base_layer(x, *args, **kwargs)#This is the normal weight matrix, which is not trained during LoRA fine-tuning.\n", + " torch_result_dtype = result.dtype\n", + "\n", + " if self.active_adapter not in self.lora_A:#If no LoRA adapter is active, just return the base output — no change.\n", + " return result\n", + "\n", + " lora_A = self.lora_A[self.active_adapter]#Each LoRA adapter has its own A,B, dropout, and scaling factor.\n", + " lora_B = self.lora_B[self.active_adapter]\n", + " dropout = self.lora_dropout[self.active_adapter]\n", + " scaling = self.scaling[self.active_adapter]\n", + "\n", + " # Match LoRA dtype\n", + " x_lora = x.to(lora_A.weight.dtype)\n", + "\n", + " # TODO: Apply dropout, then LoRA A, then LoRA B, then scale\n", + " lora_update = lora_B(lora_A(dropout(x_lora))) * scaling\n", + "\n", + " # TODO: Add LoRA update to base output\n", + " result = result + lora_update\n", + "\n", + " return result.to(torch_result_dtype)\n" + ], + "metadata": { + "id": "r-1udJ1zdtdp" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## 🤗 Deep dive into LoRA with Hugging Face! 🤗" + ], + "metadata": { + "id": "b6GtR3968Gnt" + } + }, + { + "cell_type": "markdown", + "source": [ + "While the implementation of LoRA is currently in place, there is still some additional work required to ensure it aligns perfectly with the outlined methods in the research paper. Fortunately, the open-source community is rapidly evolving. As a result, LoRA, including most of its variants, has now been fully developed and features a user-friendly interface for ease of use, rather than building it from scratch.\n", + "\n", + "We'll now finetune `gpt2-medium` to generate song lyrics from the artist of your choice! We will do this by:\n", + "\n", + "* Loading a pretrained model using Hugging Face transformers\n", + "* Gathering the dataset using datasets\n", + "* Fine tune using LoRA\n", + "\n", + "Code in this section is based on: https://github.com/22-hours/cabrita/blob/main/notebooks/train_lora.ipynb from [piEsposito](https://github.com/piEsposito) and\n", + "[pedrogengo](https://github.com/pentrogengo)." + ], + "metadata": { + "id": "afdZdMIf8TIe" + } + }, + { + "cell_type": "markdown", + "source": [ + "In this notebook, we’ll explore how to fine-tune a pretrained language model on a custom dataset. Fine-tuning allows us to adapt a general-purpose model (like GPT-2 or GPT-Neo) to generate text in a more specialized style or domain—for example, the lyrics of a specific artist, product reviews, or technical writing.\n", + "\n", + "The first step is to load a pretrained model from the Hugging Face Hub and test it with a simple prompt. This helps confirm that the model is working as expected before we start training it further." + ], + "metadata": { + "id": "Z0nOzSqQBnlz" + } + }, + { + "cell_type": "code", + "source": [ + "# Choose a base model from the Hugging Face Hub\n", + "model_name = \"gpt2-medium\" # @param [\"gpt2-medium\", \"EleutherAI/gpt-neo-125M\"]\n", + "\n", + "# Quick test prompt\n", + "test_prompt = \"What is love?\" # @param {type: \"string\"}\n", + "\n", + "# Initialize a text-generation pipeline\n", + "generator = transformers.pipeline(\"text-generation\", model=model_name)\n", + "\n", + "# Generate text based on the provided prompt.\n", + "# 'do_sample=True' enables sampling to introduce randomness in generation, and 'min_length=30' ensures at least 30 tokens are generated.\n", + "model_output = generator(test_prompt, do_sample=True, min_length=30)\n", + "\n", + "clear_output()\n", + "\n", + "# Print the generated text sample.\n", + "print_sample(test_prompt, model_output[0]['generated_text'], model_name=model_name)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 161, + "referenced_widgets": [ + "fb434848b6cd4e679c2ea47ecf1d0d61", + "4b295c19ea9a4dba94cf0454e778748a", + "2fc263f9525547349f094bfc7ee425fd", + "0f116631de364bac814f67f07f0f71d9", + "ea64f5195506482ba0f6712b119fcf6d", + "520a1b423407472198dc43998f5efdc9", + "f491bc21faf0459db8d4b62c60f1a92b", + "e8813eb47d3040d7b687100522c27acc", + "801baa343ebc406780b54ee6380623eb", + "c619d8f201b4442990e1f307a75655de", + "24e28a0e66904179a59c972cf8d6a50b", + "febd2f5a6e4a42f7a86fc8d6edcf2d0b", + "b5d99a2dfb984d829f35dfda61788d42", + "0331af72fc8543ab94b7a379e522ac78", + "83b2b3cb313f48ba9be77b0c39f92461", + "72578e910ac8429f851ca485d81f81e3", + "b0c1653b8042471ca61df23e5348f818", + "0a13efb0772b4cdfad74ccfa20a1b76f", + "9f6009ca337a419ea6746b5f75959176", + "0c82a7f5c7614164b225a745ce619563", + "fb3fc7ed7e614a4cb840031187b0c49a", + "6f86ff0ee887432d8f7949047e506ddc", + "10522094ddc44f49bf2b982df0e3f739", + "4e76b5b7a5cf414abf96f28b54d4e440", + "18986aa92ebb4e2ba8dfc8ab81e6a69f", + "cc88972a83544e7e99c81c6cfffdc72b", + "03e3cbcbd84e440da527d40d354e333e", + "d4f0cddf0e854483ab007a501e61b07a", + "5d8aea5590084122908f9570b59b4040", + "b58c2cf7c1ae475ab04149f8e93e97e2", + "c5affa8522ef4cca94738621b29e46c0", + "31487c0fccc54fe29c248d841682e797", + "d87589f59fe048aca82b61add82c82ed", + "f708bb0226734acbb459d7246edd3385", + "b9ee954418194d11a39bc3294e4829ab", + "f365aca5638b4021a8c5da775105546e", + "024f5d83b2504fe2914fbfbf1d142b79", + "aeb0e0f688084badb0d1c66c6727ec9d", + "67ea6a625f3c411fa3c411ebc4adf3fa", + "cd1b91007fa041e59629626dd6aa4965", + "3bb008427e42495283345c71a3286189", + "fc2cac4d36904681a86d53cfed92c0f8", + "050ab02119164db3a885f988d9123339", + "015957614324467b9bbbb4a6dce0a068", + "83bc1476aa474dac8d5e04a88094e89a", + "421ab0f0e61c4dc399fff8cb49f79a48", + "815ba35144ca4cef8882692a886c942f", + "3ac9b475963c4cbb831fb2746eed9a8a", + "9a3654bc03494d0db5db2193b0ebb3ef", + "f0025e6976264d53b692c5e99e124f72", + "2897fb08f28740c2ae840e8abc9b8ec2", + "551fb736da5040ba8e8020faaeb53d56", + "6fccad3cd59a4a708427750ba706ba1a", + "c4f8310f9d1c4a009311849aacbb98f5", + "e6c67a6e4c11495699712d46c7be2997", + "64479e30883c4008b36c38b44fcc6e65", + "b594c73d5e1e46189f5838d09a8bfc0d", + "fb7d4e1b44f743a1b3fb6ecd0fc18a0a", + "2be3afc4a5af4e9fb1af3e20903542ca", + "d685e80bdbaf4ecd899a16863d49cedc", + "aa2ed06f333242ba90eecaa789120d9d", + "5d13c595f14e493c804258f4c515d3be", + "84e3a644ed5b42bdb72f32bdfe8c1207", + "bdbae8faed794771a05b02a41867c624", + "63559a4806dc47a29a22b57e24d4a34a", + "621a73cd9b3a48148cd5ce0573b7f639", + "8e28a9d460d747eda36400abe042f97f", + "f4b77a5d92874eacae1a1a647fe6b7a2", + "237822ddd4c84f8b899d2d5cf60619a9", + "8eb9e5dbd5ef4474b74f9104ab9281b2", + "dcd330fec66e47f18b7bff60d7268a51", + "8c1baeec5daa4ad1a89dcd39989dde1e", + "78136ad8b7784943b182046a27ee33ca", + "8cedbdd6b8114b61b42ce9c74c46ecb5", + "8ba6647e8c0641fbaae3395091d97bf5", + "3296a6c3f749435892572eea712843b8", + "8b25e02baadb4b7dafbdb79f1cfaec58" + ] + }, + "id": "JOHmp5EFGjOe", + "outputId": "9fb03c3b-9a99-4634-d458-09c8361b980a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + "
🤖 Model: gpt2-medium
\n", + " \n", + "
📝 Prompt: What is love?
\n", + "
✨ Generated: I'm not sure. Does it have a name? I'm not sure. It's something that happens in our life, and it's something that's there to be discovered. It's something that people can share with each other and experience, and it's something that we can experience. And we can choose to experience it and love it.\"\n", + "\n", + "\"Love is the great healing magic.\" – William Blake\n", + "\n", + "The world is full of things that make us happy, and they're usually very beautiful things. But we may not know how to live in harmony with those things. We may not know how to love people, and we may not know how to give love to people, and we may not know how to do that. But we do know that all the things that make us happy are there for us to discover, and if we discover them, that's when we will find our way.\n", + "\n", + "We will learn to love ourselves and to love others, and we will learn to live fully by accepting ourselves, and by giving others the love they truly deserve.\n", + "\n", + "We'll learn to love ourselves and to love others, and we will learn to live fully by accepting ourselves, and by giving others the love they truly deserve.\n", + "\n", + "As I said before
\n", + "
\n", + " " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "if 'gpt2' in model_name:\n", + " tokenizer = transformers.GPT2Tokenizer.from_pretrained(model_name)\n", + " model = transformers.GPT2LMHeadModel.from_pretrained(model_name)\n", + "elif model_name == \"EleutherAI/gpt-neo-125M\":\n", + " tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)\n", + " model = transformers.AutoModelForCausalLM.from_pretrained(model_name)\n", + "else:\n", + " raise NotImplementedError\n", + "\n", + "if torch.cuda.is_available():\n", + " model = model.to(\"cuda\")\n", + "\n", + "tokenizer.pad_token_id = tokenizer.eos_token_id" + ], + "metadata": { + "id": "YyXm8_3iGerI" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "##### Gathering and processing data (optional)" + ], + "metadata": { + "id": "y3JRG6uP8Zw7" + } + }, + { + "cell_type": "markdown", + "source": [ + "To train a model, we need to gather the dataset from Hugging Face to load some song lyrics." + ], + "metadata": { + "id": "4koTVjg48c0w" + } + }, + { + "cell_type": "code", + "source": [ + "dataset_author = \"huggingartists\"\n", + "artist_name = \"the-beatles\"\n", + "\n", + "# List all avalable datasets.\n", + "all_datasets = {}\n", + "for ds in huggingface_hub.list_datasets(author=dataset_author):\n", + " music_artist = ds.id.replace(f'{dataset_author}/', '')\n", + " all_datasets[music_artist] = ds.id\n", + "\n", + "dataset_name = all_datasets[artist_name]\n", + "\n", + "print(f'Choose an artist available in {dataset_author}/ (careful! Some lyrics might contain offensive language)')\n", + "Dropdown_ = widgets.Dropdown(options=sorted(all_datasets.keys()), value=artist_name)\n", + "output = widgets.Output()\n", + "\n", + "\n", + "def on_change(change):\n", + " global dataset_name\n", + " global artist_name\n", + " artist_name = change[\"new\"]\n", + " dataset_name = all_datasets[artist_name]\n", + " print(f'`dataset_name` is now {dataset_name}.')\n", + "\n", + "Dropdown_.observe(on_change, names='value')\n", + "display(Dropdown_)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 66, + "referenced_widgets": [ + "320c520b8cc54a52aacfae77d90aa58b", + "a2c62afcca574820a31e487b82f183d1", + "977f9b43f3d24907b55ce0042ed4e2e8" + ] + }, + "id": "UL6SaXNC8YTx", + "outputId": "082aa79a-8a95-4498-d66e-6005ed359c0c" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Choose an artist available in huggingartists/ (careful! Some lyrics might contain offensive language)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Dropdown(index=207, options=('100-gecs', '21-savage', '25-17', '50-cent', '5nizza', '5opka', '6ix9ine', 'aaron…" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "320c520b8cc54a52aacfae77d90aa58b" + } + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# !pip install -q datasets==3.6.0 # Run this cell if you get any error below e.g. \"Dataset scripts are no longer supported, but found adele.py\"" + ], + "metadata": { + "id": "gG8FsaOy_5hz" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "formatted_artist_name = artist_name.replace('-', ' ').title()\n", + "prompt = f'This is a song by {formatted_artist_name}. It goes like this:\\n\\n' # @param\n", + "print(prompt)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "yx8q_5vr9Qrv", + "outputId": "b076b707-103c-4cc0-f1a6-6e0e65ccab6f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "This is a song by The Beatles. It goes like this:\n", + "\n", + "\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Let's use only the first 500 examples so it doesn't take too long to finetune.\n", + "train_dataset = datasets.load_dataset(dataset_name, split='train')\n", + "# Let's use up to 500 examples so it doesn't take too long to finetune.\n", + "train_dataset = train_dataset.filter(lambda example, idx: idx < 500, with_indices=True)\n", + "train_dataset" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 246, + "referenced_widgets": [ + "12a21dabacec450c924df818441e828e", + "5420768a03a742bfa6fcbdcae206c0f2", + "1a8941d0e1c6424291aac8e3fa3ceb1c", + "67f7189fe69f426bbbc227289d703691", + "ed2785f065744cccaa3c9250d43a62e4", + "b4ec619c5d594598a072eb879485683b", + "5eb074d0c77f4b4aba67fd699615c85f", + "9ec9ceca4eff465387155910ced971f2", + "4ddfc6c086fd4147816c9715e4b3191e", + "cecc2da1af0f45288d5bd870713b62ad", + "7fb2030a67424b55865828fe36fae768", + "5d42768885c14b8d83007f4590509588", + "3b393a5060414c099fb97edb145f6152", + "c33704a5a38645a08ba6a9c7ce300b04", + "e91ceb69d1194e379c5f34b5f2e869e6", + "ee05c5606cd14c38a1974fab0cb72c48", + "73ff1b649665432da521138c45dda447", + "ad046678227d4d1baf411d5f7b548bc0", + "816b20c02be44fa2aab3a0375c220021", + "b31cd8ca3472401ca9a81e8734be827f", + "0ed271ea8b5e4cc5bfaa1b79eb6eb9a2", + "916f1ab2e1d6423aa54769a13d3a49b2", + "44e3f558b1bc4466bcd5587c92cca8c5", + "c353c2aeac954e05bb92602ae33aaae9", + "357c4c95d23a4ca18335b2c5c2724e2a", + "666323fdaab6498f830ff7e3e0e12f87", + "c145211b46d54dd69a0cdf68771c87a9", + "9bc326d21e0448b89146e56ee14a2e19", + "994eace3cfdf49c2a0565cc7f5a91c32", + "e77bc79962544496ad99528a2cd4fcb6", + "7acfffb18b7f442e9befcea2467475af", + "a95082cd05bb4b89b84a08809934a254", + "0d3b561c638b4659bb1e7ad9eba2ac14", + "3f4567020fa547c0b42c091878595980", + "19f3d87163854da19a43fc69bc5dd258", + "0c18974ecc0f460c8c991fcdd5618f9d", + "56ce33c8ef5b49b0b3947908650145ab", + "f022de2cecfb47db91ca64220892c4c0", + "f572c551c75f42c8a60e2e714a716217", + "7942d070e1d64864b66a5e1cbfcde59b", + "458e7d63903440ef8fef1bb6140419fe", + "2ee007a845044cce96484938c60938b9", + "b02735465847455eb82b69b10ecf2adf", + "a64d4957e59c4d3299ed1833b4db1f7b", + "8d684b03cfd141cd82df8d6c870c4c95", + "d11b6133d581464491fd755bba15a5da", + "346961dcf55a480585bfe750de83a38f", + "d286185b575e4ba29375c919d47e5e78", + "0be3f420721a45dc85256be333124d51", + "cd8a8030c44f49d4842b2f697f39d3a9", + "8f42f9402ab0408390423931df6c35c4", + "b8038a85f0ef4fb19faf46d55e92e673", + "07bb24b853e443a7a4d9387c53573449", + "1a73aab08718496f82f8b6521118d97b", + "afb6f9c45e40497493eff623794917d3" + ] + }, + "id": "w_2AUP5y9eWb", + "outputId": "6f471753-7080-4cc4-daa0-40d94139318f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "README.md: 0.00B [00:00, ?B/s]" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "12a21dabacec450c924df818441e828e" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "the-beatles.py: 0.00B [00:00, ?B/s]" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "5d42768885c14b8d83007f4590509588" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "0000.parquet: 0%| | 0.00/487k [00:00 max_num_tokens)\n", + "num_truncated_tokens = num_tokens - max_num_tokens\n", + "median_num_truncated_tokens = np.median(\n", + " np.where(num_truncated_tokens > 0, num_truncated_tokens, 0),\n", + ")\n", + "print(f'Number of examples that will be truncated: {num_truncations} ({num_truncations/len(num_tokens) * 100:.2f} %)')\n", + "plt.boxplot(num_truncated_tokens)\n", + "plt.title('#truncated tokens')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 525 + }, + "id": "tsxfNPWwA0dQ", + "outputId": "2b62d395-a121-4600-de67-6d0032ad55ce" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Median #chars 882.5\n", + "Max #chars 105548\n", + "Median #tokens 246.5\n", + "Max #tokens 29690\n", + "Number of examples that will be truncated: 233 (46.60 %)\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\n\n\n \n \n \n \n 2025-10-04T13:51:11.856619\n image/svg+xml\n \n \n Matplotlib v3.10.0, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "**Discussion:** By only truncating the data we're losing A LOT of relevant text. What we could do to avoid this?" + ], + "metadata": { + "id": "-LwEDxzNDpzD" + } + }, + { + "cell_type": "code", + "source": [ + "# Drop empty lyrics.\n", + "train_dataset = train_dataset.filter(lambda x: len(x[\"text\"]) > 0)\n", + "print('Here is a data example before tokenization')\n", + "print_sample(prompt, train_dataset[0][\"text\"])\n", + "# Add prompt\n", + "train_dataset = train_dataset.map(lambda x: {\"text\": prompt + x[\"text\"]})\n", + "\n", + "def tokenize(prompt):\n", + " result = tokenizer(\n", + " prompt,\n", + " truncation=True,\n", + " max_length=max_num_tokens,\n", + " padding=\"max_length\",\n", + " )\n", + " return {\n", + " \"input_ids\": result[\"input_ids\"],\n", + " \"attention_mask\": result[\"attention_mask\"],\n", + " }\n", + "\n", + "train_dataset = train_dataset.shuffle().map(lambda x: tokenize(x[\"text\"]))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 274, + "referenced_widgets": [ + "062078bae2054db78bd4f9a402afd18f", + "297aa942e2774d2b847e840cee735589", + "46e1c135bbaf466e88822fdd1a67ee09", + "811258a830874092b40e69a4ca77f50b", + "b920f05a48424180a4f2c2622a5504b4", + "840cf121577a439fb67197d4a52676a1", + "ebaad047125049ea8eef33d42ae38140", + "a7048554b3b8467eaaa1e9d70d70befd", + "bde5dace81194cfc82147041bbee02fe", + "6ec8bde34bca4f859b948533ec10dbe6", + "a8db672b974e4780b44b230d64a3f56d", + "b980f7600cc74bdeb9a64693ec4c112b", + "06152e267ef6414d9cb7b7b08aeb05a3", + "71d50910de314abca710cf4dcf180202", + "d00941f7c2104235ae5b470e479cd0af", + "977d3316ce8f49058bacec1340dfaa32", + "0672aa3e03b54764b790175cb4f71c95", + "804d2038b0d54d24a59f963f05fff453", + "799673136ff944d9b33904dbb5d0af47", + "f1b06c281260495aabd2c0adca2b65ae", + "6b721141e89241569e3693b199b2a9c9", + "27825267a0b342faa1459ea96ddac54c", + "3da64deffd9a46b0a933d5e6948954ad", + "75666d34a953451f893482a7cdcb7d89", + "b43f8adfbf8247db9f049cd709750fa3", + "02d013c661ca461e8becee143ebc533f", + "2ea1a3c89f304eda85140d8f690174eb", + "bed9817c53ad440ea01ceb20f2be1f26", + "b213926f5a4641d9a08d40546f79f4c3", + "75de93b914274d9f930a0a9d99d6281c", + "1ba115443e6f4ed3978ba1027c39c2e7", + "4da00fab9b014ae0a90d63fdf78a39d8", + "7c7d305d648e46fa9c219bb7e60bb9ac" + ] + }, + "id": "h_bDb7vgES6o", + "outputId": "66d87022-dbac-4ef2-c389-b2a8723a0506" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Filter: 0%| | 0/500 [00:00" + ], + "text/html": [ + "\n", + "
\n", + "
🤖 Model:
\n", + " \n", + "
📝 Prompt: This is a song by The Beatles. It goes like this:\n", + "\n", + "
\n", + "
✨ Generated: When I find myself in times of trouble, Mother Mary comes to me\n", + "Speaking words of wisdom, Let it be\n", + "And in my hour of darkness, she is standing right in front of me\n", + "Speaking words of wisdom, Let it be\n", + "Let it be, let it be, let it be, let it be\n", + "Whisper words of wisdom, let it be\n", + "And when the brokenhearted people living in the world agree\n", + "There will be an answer, let it be\n", + "For though they may be parted, there is still a chance that they will see\n", + "There will be an answer, let it be\n", + "Let it be, let it be, let it be, let it be\n", + "Yeah, there will be an answer, let it be\n", + "Let it be, let it be, let it be, let it be\n", + "Whisper words of wisdom, let it be\n", + "Let it be, let it be, let it be, yeah, let it be\n", + "Whisper words of wisdom, let it be\n", + "And when the night is cloudy, there is still a light that shines on me\n", + "Shine on til tomorrow, let it be\n", + "I wake up to the sound of music, Mother Mary comes to me\n", + "Speaking words of wisdom, Let it be\n", + "Let it be, let it be, let it be, yeah, let it be\n", + "Oh there will be an answer, let it be\n", + "Let it be, let it be, let it be, yeah, let it be\n", + "Oh there will be an answer, let it be\n", + "Let it be, let it be, let it be, yeah, let it be\n", + "Whisper words of wisdom, let it be
\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Map: 0%| | 0/494 [00:00" + ], + "text/html": [ + "\n", + "
\n", + "
🤖 Model: gpt2-medium
\n", + " \n", + "
📝 Prompt: This is a song by The Beatles. It goes like this:\n", + "\n", + "Tell me about..
\n", + "
✨ Generated: \n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell me about..\n", + "Tell
\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " \n", + " \n", + " [560/560 22:39, Epoch 40/40]\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
EpochTraining LossValidation Loss
12.7461002.545077
22.5208002.477201
32.4289002.425149
42.3606002.363835
52.2880002.317809
62.2383002.282211
72.2054002.266683
82.1831002.257880
92.1652002.248238
102.1497002.244113
112.1347002.236564
122.1254002.231455
132.1162002.226874
142.1028002.224785
152.0926002.221523
162.0832002.216574
172.0760002.215619
182.0652002.211471
192.0588002.211065
202.0488002.208387
212.0444002.205810
222.0381002.204290
232.0259002.201609
242.0253002.199615
252.0162002.198286
262.0120002.198893
272.0095002.196983
282.0010002.196119
291.9996002.193834
301.9947002.194232
311.9897002.190074
321.9860002.190622
331.9847002.190476
341.9858002.189612
351.9794002.188843
361.9826002.189176
371.9769002.189089
381.9807002.188594
391.9710002.188662
401.9728002.188894

" + ] + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "TrainOutput(global_step=560, training_loss=2.1041604689189364, metrics={'train_runtime': 1362.7743, 'train_samples_per_second': 13.032, 'train_steps_per_second': 0.411, 'total_flos': 8279042209873920.0, 'train_loss': 2.1041604689189364, 'epoch': 40.0})" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f2bbac26" + }, + "source": [], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### ⏰⚡ Demo Time with our trained model🚀😰" + ], + "metadata": { + "id": "3wTOKInCHCjG" + } + }, + { + "cell_type": "code", + "source": [ + "seed = 2\n", + "query = \"Today\"\n", + "final_prompt = prompt + query\n", + "temperature = 1.0\n", + "top_p = 0.9\n", + "print('LoRA model')\n", + "_ = run_sample(\n", + " peft_model,\n", + " tokenizer,\n", + " prompt=final_prompt,\n", + " seed=seed,\n", + " temperature=temperature,\n", + " top_p=top_p,\n", + ")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 144 + }, + "id": "3kITEkwZHEcp", + "outputId": "df6930db-8753-4a30-bf3d-d50b9314f17b" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "

\n", + "
🤖 Model: gpt2-medium
\n", + " \n", + "
📝 Prompt: This is a song by The Beatles. It goes like this:\n", + "\n", + "Today
\n", + "
✨ Generated: I get into a cab and Im driving, and the weather is nice\n", + "We stop for a little coffee and Ill tell my story of my life\n", + "You dont see me around the house so you dont know that I am sad\n", + "And I get up in the morning, my dog is dead\n", + "I go out into the street and Im getting drunk, it is hard to control\n", + "A policeman walks past me, I hear he cant stop me\n", + "He says, Im on the move\n", + "But Im not\n", + "Im just on the road and its hard to concentrate\n", + "As I ride through the streets, my wife is crying\n", + "I get back to the house, Im so lonely\n", + "I look at the clock and its 12\n", + "And I dont see her\n", + "I see her running back home\n", + "The sun is shining on my clothes, and I see her in my window\n", + "Sitting in the car waiting for my return\n", + "Her mother runs into the house\n", + "And all she says is that I dont see her\n", + "And I dont see her\n", + "Im just on the road and its hard to concentrate\n", + "So I start back out into the street and its all still the same\n", + "Im getting back in the car to
\n", + "
\n", + " " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "\n", + "print('Original model')\n", + "_ = run_sample(\n", + " model,\n", + " tokenizer,\n", + " prompt=final_prompt,\n", + " seed=seed,\n", + " temperature=temperature,\n", + " top_p=top_p,\n", + ")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "NPa-AM8buqVW", + "outputId": "d2dbb3dd-a76e-4c03-db33-ddb42457e477" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + "
🤖 Model: gpt2-medium
\n", + " \n", + "
📝 Prompt: This is a song by The Beatles. It goes like this:\n", + "\n", + "Today
\n", + "
✨ Generated: I was here\n", + "\n", + "I don't know where the fuck I am\n", + "\n", + "I was here when it happened, but\n", + "\n", + "Now I've got to look at it\n", + "\n", + "'Cause you've just fucked the whole fucking world\n", + "\n", + "I had nothing to do with it\n", + "\n", + "But you just fucked it up\n", + "\n", + "The world's fucked, it's fucked, it's fucked, it's fucked, it's fucked\n", + "\n", + "Yeah, it's fucked\n", + "\n", + "I had nothing to do with it\n", + "\n", + "But you just fucked it up\n", + "\n", + "It's fucked, it's fucked, it's fucked, it's fucked\n", + "\n", + "You got nothing to lose\n", + "\n", + "It's fucked\n", + "\n", + "You got nothing to lose\n", + "\n", + "Yeah, it's fucked\n", + "\n", + "I had nothing to do with it\n", + "\n", + "But you just fucked it up\n", + "\n", + "And fuck it up, fuck it up, fuck it up\n", + "\n", + "You got nothing to lose\n", + "\n", + "You got nothing to lose\n", + "\n", + "But you got nothing to lose\n", + "\n", + "The world's fucked, it's fucked, it's fucked, it's fucked, it's fucked, it's fucked, it's fucked\n", + "\n", + "[Interlude
\n", + "
\n", + " " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "That's it, you've been able to finetune an LLM to generate lyrics from a an artist, look at the response between the LoRA model and the Original model, are you able to spot any differences and if so, can you explain?" + ], + "metadata": { + "id": "gzzau7nVNABr" + } + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "EzsD-DyvNaZt" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file