Created
May 31, 2026 16:44
-
-
Save thecoder8890/7a899a230c32ef0fd6c7e1be2839ad7e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "provenance": [] | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "language_info": { | |
| "name": "python" | |
| }, | |
| "widgets": { | |
| "application/vnd.jupyter.widget-state+json": { | |
| "8358ead3b03843bfad3eb1d7de84d76e": { | |
| "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_81289d689f024e2ea5b1802e13fcd372", | |
| "IPY_MODEL_5010ca4ea904458dba18511c474c6394", | |
| "IPY_MODEL_f75b83496a40432ab4a20c5c8bfc172e" | |
| ], | |
| "layout": "IPY_MODEL_eee11412de54486eaf2cc3fa9255138b" | |
| } | |
| }, | |
| "81289d689f024e2ea5b1802e13fcd372": { | |
| "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_c1aaabcf76ab464f8905a76eb8b58c68", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_98232aaf585442f6b9a69644afc9aa83", | |
| "value": "modules.json:\u2007100%" | |
| } | |
| }, | |
| "5010ca4ea904458dba18511c474c6394": { | |
| "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_37c722a07b7a41838012c7f1d16320db", | |
| "max": 349, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_fd5998c057eb4ad0b66bb58077e3a974", | |
| "value": 349 | |
| } | |
| }, | |
| "f75b83496a40432ab4a20c5c8bfc172e": { | |
| "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_fa86e5ef90374ae09a9ece9e39e113fa", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_4a20e449211e42899228414efd422a28", | |
| "value": "\u2007349/349\u2007[00:00<00:00,\u200717.0kB/s]" | |
| } | |
| }, | |
| "eee11412de54486eaf2cc3fa9255138b": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "c1aaabcf76ab464f8905a76eb8b58c68": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "98232aaf585442f6b9a69644afc9aa83": { | |
| "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": "" | |
| } | |
| }, | |
| "37c722a07b7a41838012c7f1d16320db": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "fd5998c057eb4ad0b66bb58077e3a974": { | |
| "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": "" | |
| } | |
| }, | |
| "fa86e5ef90374ae09a9ece9e39e113fa": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "4a20e449211e42899228414efd422a28": { | |
| "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": "" | |
| } | |
| }, | |
| "ea1c5fdc34b24551b79e52abd72ccc31": { | |
| "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_fa93ae01b57d46c1ad629feed31df436", | |
| "IPY_MODEL_1f8a017d310348dba47c73faa508d139", | |
| "IPY_MODEL_ae932d6bf8f0481eb83493d91a76821d" | |
| ], | |
| "layout": "IPY_MODEL_b18f3f2afc4c4841ae9ab844c0f8fee1" | |
| } | |
| }, | |
| "fa93ae01b57d46c1ad629feed31df436": { | |
| "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_0f185d0f5003409ca20b49ac32ca2582", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_9a863f33275048e0979a76129a378219", | |
| "value": "config_sentence_transformers.json:\u2007100%" | |
| } | |
| }, | |
| "1f8a017d310348dba47c73faa508d139": { | |
| "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_e0ea1b8cb3714a9483339c293acf8b1d", | |
| "max": 116, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_e6cccf72a6444e1faeb919a9785b1931", | |
| "value": 116 | |
| } | |
| }, | |
| "ae932d6bf8f0481eb83493d91a76821d": { | |
| "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_dc5f4a096f9a4617a09943a61830d731", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_8a4edcd38c7a40138f637d9e6cb41620", | |
| "value": "\u2007116/116\u2007[00:00<00:00,\u20075.14kB/s]" | |
| } | |
| }, | |
| "b18f3f2afc4c4841ae9ab844c0f8fee1": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0f185d0f5003409ca20b49ac32ca2582": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "9a863f33275048e0979a76129a378219": { | |
| "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": "" | |
| } | |
| }, | |
| "e0ea1b8cb3714a9483339c293acf8b1d": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "e6cccf72a6444e1faeb919a9785b1931": { | |
| "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": "" | |
| } | |
| }, | |
| "dc5f4a096f9a4617a09943a61830d731": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "8a4edcd38c7a40138f637d9e6cb41620": { | |
| "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": "" | |
| } | |
| }, | |
| "0e62d4cf79494e039b4e0bca7b5d60f8": { | |
| "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_86fd9b6b9b574c4e844c033be914b26c", | |
| "IPY_MODEL_e0c54ff6afd14c99a5408ec23d94f682", | |
| "IPY_MODEL_1d5bee82f0d949398cd17820d6b2d63a" | |
| ], | |
| "layout": "IPY_MODEL_0dc4e8e324bd48339843a3e8eaf3fae4" | |
| } | |
| }, | |
| "86fd9b6b9b574c4e844c033be914b26c": { | |
| "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_d7d5ea7d1e444834999b797cff686e23", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_828fba7d17f04d4fb92cc104b4dec09a", | |
| "value": "README.md:\u2007100%" | |
| } | |
| }, | |
| "e0c54ff6afd14c99a5408ec23d94f682": { | |
| "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_99a7d171e9614feca280bec888d7b07a", | |
| "max": 10454, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_1f1ab315be504d2bb47881e13cabc0dc", | |
| "value": 10454 | |
| } | |
| }, | |
| "1d5bee82f0d949398cd17820d6b2d63a": { | |
| "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_64750221276f42d890f216360a4dfd99", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_cf654cb2e94b41ef9b61daa3c4e7dde0", | |
| "value": "\u200710.5k/10.5k\u2007[00:00<00:00,\u2007491kB/s]" | |
| } | |
| }, | |
| "0dc4e8e324bd48339843a3e8eaf3fae4": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "d7d5ea7d1e444834999b797cff686e23": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "828fba7d17f04d4fb92cc104b4dec09a": { | |
| "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": "" | |
| } | |
| }, | |
| "99a7d171e9614feca280bec888d7b07a": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "1f1ab315be504d2bb47881e13cabc0dc": { | |
| "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": "" | |
| } | |
| }, | |
| "64750221276f42d890f216360a4dfd99": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "cf654cb2e94b41ef9b61daa3c4e7dde0": { | |
| "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": "" | |
| } | |
| }, | |
| "09c80a2fe5a0421bbb189a9f9271332d": { | |
| "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_3641e578021f4541897a3c74a8245b3a", | |
| "IPY_MODEL_e640e8d7c45d46c0b977d3afa0a44f3c", | |
| "IPY_MODEL_9a05802c13cd4f56a645b54a3150472c" | |
| ], | |
| "layout": "IPY_MODEL_eb5afe75f53c4058accedacdc9cf24ad" | |
| } | |
| }, | |
| "3641e578021f4541897a3c74a8245b3a": { | |
| "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_05c854d81a7e4207b1e48cea087b1525", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_f15ea5808fc44a7c8991b47712587a0b", | |
| "value": "sentence_bert_config.json:\u2007100%" | |
| } | |
| }, | |
| "e640e8d7c45d46c0b977d3afa0a44f3c": { | |
| "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_be47a30c02654dcbb6a809c17b641540", | |
| "max": 53, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_aaf537d1d9c7451ba3930d909cee1bde", | |
| "value": 53 | |
| } | |
| }, | |
| "9a05802c13cd4f56a645b54a3150472c": { | |
| "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_11e1bec541db4edeb529194b189e7286", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_020e88d0bf6b4bd6b0bd25a476d6789d", | |
| "value": "\u200753.0/53.0\u2007[00:00<00:00,\u20075.78kB/s]" | |
| } | |
| }, | |
| "eb5afe75f53c4058accedacdc9cf24ad": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "05c854d81a7e4207b1e48cea087b1525": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "f15ea5808fc44a7c8991b47712587a0b": { | |
| "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": "" | |
| } | |
| }, | |
| "be47a30c02654dcbb6a809c17b641540": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "aaf537d1d9c7451ba3930d909cee1bde": { | |
| "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": "" | |
| } | |
| }, | |
| "11e1bec541db4edeb529194b189e7286": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "020e88d0bf6b4bd6b0bd25a476d6789d": { | |
| "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": "" | |
| } | |
| }, | |
| "d2b58312e0bf4751b27c25efd5ad1949": { | |
| "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_5ec5195337f041c5b96ec74bfec0abf9", | |
| "IPY_MODEL_b602b76b69e0491db0c4d5a56a526162", | |
| "IPY_MODEL_7dc099284eae4034a9ef65ca2bbf7834" | |
| ], | |
| "layout": "IPY_MODEL_5c80f987800947d6b054804c92dedcb9" | |
| } | |
| }, | |
| "5ec5195337f041c5b96ec74bfec0abf9": { | |
| "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_494c2310f1cd41a79a2f0ca1b0a247ee", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_863b0674ca7841bdbf9241e34e15a4d8", | |
| "value": "config.json:\u2007100%" | |
| } | |
| }, | |
| "b602b76b69e0491db0c4d5a56a526162": { | |
| "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_3f710fb9db174b0e95214071ccdf6a45", | |
| "max": 612, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_8d5c31a0f28040569c15aedcb52e2f0a", | |
| "value": 612 | |
| } | |
| }, | |
| "7dc099284eae4034a9ef65ca2bbf7834": { | |
| "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_a7aa494212c146f9a570cbe2d0aed383", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_fd278b57501848b688f93f4c00a8a69f", | |
| "value": "\u2007612/612\u2007[00:00<00:00,\u200753.9kB/s]" | |
| } | |
| }, | |
| "5c80f987800947d6b054804c92dedcb9": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "494c2310f1cd41a79a2f0ca1b0a247ee": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "863b0674ca7841bdbf9241e34e15a4d8": { | |
| "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": "" | |
| } | |
| }, | |
| "3f710fb9db174b0e95214071ccdf6a45": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "8d5c31a0f28040569c15aedcb52e2f0a": { | |
| "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": "" | |
| } | |
| }, | |
| "a7aa494212c146f9a570cbe2d0aed383": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "fd278b57501848b688f93f4c00a8a69f": { | |
| "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": "" | |
| } | |
| }, | |
| "d30fe156f11e4ac2b5991860e3534153": { | |
| "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_2c60724b3faf42a4bead33be335a9dec", | |
| "IPY_MODEL_ed4a610d311d46d7bec2054681c28dad", | |
| "IPY_MODEL_8dbecb2308f74c0e8ca04be0f9a57548" | |
| ], | |
| "layout": "IPY_MODEL_53249273a414402fbd9f48e7ff169e86" | |
| } | |
| }, | |
| "2c60724b3faf42a4bead33be335a9dec": { | |
| "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_c501b8b24a724b12a91ef74e3783e464", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_d3217abbf1c444398782598929e1f97d", | |
| "value": "model.safetensors:\u2007100%" | |
| } | |
| }, | |
| "ed4a610d311d46d7bec2054681c28dad": { | |
| "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_60f36778e36e4e8f8e10555aaece157d", | |
| "max": 90868376, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_7b2f46b14dea4f1dab2d4763c3510d8a", | |
| "value": 90868376 | |
| } | |
| }, | |
| "8dbecb2308f74c0e8ca04be0f9a57548": { | |
| "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_864295fa5c064006a109b3f00b07d46a", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_b675bcec86bc467d958cd5a6e3fb580c", | |
| "value": "\u200790.9M/90.9M\u2007[00:02<00:00,\u200736.4MB/s]" | |
| } | |
| }, | |
| "53249273a414402fbd9f48e7ff169e86": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "c501b8b24a724b12a91ef74e3783e464": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "d3217abbf1c444398782598929e1f97d": { | |
| "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": "" | |
| } | |
| }, | |
| "60f36778e36e4e8f8e10555aaece157d": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "7b2f46b14dea4f1dab2d4763c3510d8a": { | |
| "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": "" | |
| } | |
| }, | |
| "864295fa5c064006a109b3f00b07d46a": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "b675bcec86bc467d958cd5a6e3fb580c": { | |
| "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": "" | |
| } | |
| }, | |
| "7a697067e2864dff8ba2ad47fc0bad60": { | |
| "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_1ee442ad8a2743b49e21e3b54345f1bc", | |
| "IPY_MODEL_9ba32f46128d4d69998aeb15b6c79e21", | |
| "IPY_MODEL_cf83cb30f0774342b5101216a211683e" | |
| ], | |
| "layout": "IPY_MODEL_bd2303b2c8e049ca8d5f6d85b82ad513" | |
| } | |
| }, | |
| "1ee442ad8a2743b49e21e3b54345f1bc": { | |
| "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_31afdb39c1f54d7da31013b932e8c0ae", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_5d5f20d035204f6a85600cac05f728b3", | |
| "value": "Loading\u2007weights:\u2007100%" | |
| } | |
| }, | |
| "9ba32f46128d4d69998aeb15b6c79e21": { | |
| "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_8427b49e5e544868a1fea869e43d39c7", | |
| "max": 103, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_349036de4a90497d80fb75e3bb62c968", | |
| "value": 103 | |
| } | |
| }, | |
| "cf83cb30f0774342b5101216a211683e": { | |
| "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_6c70a8fd0c754aa6892cab123fb5431b", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_b421635068d748ba96929d8579577960", | |
| "value": "\u2007103/103\u2007[00:00<00:00,\u2007526.34it/s,\u2007Materializing\u2007param=pooler.dense.weight]" | |
| } | |
| }, | |
| "bd2303b2c8e049ca8d5f6d85b82ad513": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "31afdb39c1f54d7da31013b932e8c0ae": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "5d5f20d035204f6a85600cac05f728b3": { | |
| "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": "" | |
| } | |
| }, | |
| "8427b49e5e544868a1fea869e43d39c7": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "349036de4a90497d80fb75e3bb62c968": { | |
| "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": "" | |
| } | |
| }, | |
| "6c70a8fd0c754aa6892cab123fb5431b": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "b421635068d748ba96929d8579577960": { | |
| "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": "" | |
| } | |
| }, | |
| "78e09ff1e6a04ae78021bb4194a7358a": { | |
| "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_8f36be9600ab435c8b853548d325a82a", | |
| "IPY_MODEL_dd65bbe3d3e94ff8801b6ecca06489f1", | |
| "IPY_MODEL_c8a30db7f0ff42d297c8f21b74f39b9a" | |
| ], | |
| "layout": "IPY_MODEL_10b4ad3a19fd43b49c8b24afd850db61" | |
| } | |
| }, | |
| "8f36be9600ab435c8b853548d325a82a": { | |
| "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_3607f55711784293a3c8842630c48119", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_3f5307ed7a5843bb9462da6ccec05253", | |
| "value": "tokenizer_config.json:\u2007100%" | |
| } | |
| }, | |
| "dd65bbe3d3e94ff8801b6ecca06489f1": { | |
| "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_02ed280e9d2f4735b32574c36bc49ba9", | |
| "max": 350, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_a4ecfc1e1854440a85d041e551859274", | |
| "value": 350 | |
| } | |
| }, | |
| "c8a30db7f0ff42d297c8f21b74f39b9a": { | |
| "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_5c4c99271493408dbc0c7a250d6065e7", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_770dcae13c6b4d7088e035c2f55dfa36", | |
| "value": "\u2007350/350\u2007[00:00<00:00,\u200733.8kB/s]" | |
| } | |
| }, | |
| "10b4ad3a19fd43b49c8b24afd850db61": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3607f55711784293a3c8842630c48119": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3f5307ed7a5843bb9462da6ccec05253": { | |
| "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": "" | |
| } | |
| }, | |
| "02ed280e9d2f4735b32574c36bc49ba9": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "a4ecfc1e1854440a85d041e551859274": { | |
| "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": "" | |
| } | |
| }, | |
| "5c4c99271493408dbc0c7a250d6065e7": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "770dcae13c6b4d7088e035c2f55dfa36": { | |
| "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": "" | |
| } | |
| }, | |
| "f002d492539e44c7b95da436ba5a2722": { | |
| "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_1d4df593e7824d0d85aa92a31110ea02", | |
| "IPY_MODEL_ae6c7a56134f4a08908fe642381cfb17", | |
| "IPY_MODEL_947677b0154c42898d2c9fdc37a79916" | |
| ], | |
| "layout": "IPY_MODEL_992acfb59ed34ba1920f365e98f88bab" | |
| } | |
| }, | |
| "1d4df593e7824d0d85aa92a31110ea02": { | |
| "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_3428ec12bd6f4dffacae14113a499d31", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_f464bcf6a2e348d599ee13c235595f30", | |
| "value": "vocab.txt:\u2007100%" | |
| } | |
| }, | |
| "ae6c7a56134f4a08908fe642381cfb17": { | |
| "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_9858cb89f3754466ad7748ec15ce7151", | |
| "max": 231508, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_718b71ad5b434f829e1f6d8a6cc60098", | |
| "value": 231508 | |
| } | |
| }, | |
| "947677b0154c42898d2c9fdc37a79916": { | |
| "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_84bb668d88a449329f5d2668fb5835e8", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_1a91b6aed0c5447587a527affd735353", | |
| "value": "\u2007232k/232k\u2007[00:00<00:00,\u200710.5MB/s]" | |
| } | |
| }, | |
| "992acfb59ed34ba1920f365e98f88bab": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3428ec12bd6f4dffacae14113a499d31": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "f464bcf6a2e348d599ee13c235595f30": { | |
| "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": "" | |
| } | |
| }, | |
| "9858cb89f3754466ad7748ec15ce7151": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "718b71ad5b434f829e1f6d8a6cc60098": { | |
| "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": "" | |
| } | |
| }, | |
| "84bb668d88a449329f5d2668fb5835e8": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "1a91b6aed0c5447587a527affd735353": { | |
| "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": "" | |
| } | |
| }, | |
| "dbfd8b87eead4dda9b2d2fff0ecd0cbe": { | |
| "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_1e618fbfbc2f44598a00f8275307ea75", | |
| "IPY_MODEL_2049be1079e541e08c50a4607b9e2931", | |
| "IPY_MODEL_be8aa8580e314cb48d2790713aac25ab" | |
| ], | |
| "layout": "IPY_MODEL_78c22a71b68e40909fadd587af58cf76" | |
| } | |
| }, | |
| "1e618fbfbc2f44598a00f8275307ea75": { | |
| "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_64464d77d20143738cb07bf960c07dce", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_7efdf0035b3e46228287c816fae5b7ba", | |
| "value": "tokenizer.json:\u2007100%" | |
| } | |
| }, | |
| "2049be1079e541e08c50a4607b9e2931": { | |
| "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_17f69e11e82d44839c6d1a6834b2f2dd", | |
| "max": 466247, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_3833d2951d8041a0a17c6408a89918fa", | |
| "value": 466247 | |
| } | |
| }, | |
| "be8aa8580e314cb48d2790713aac25ab": { | |
| "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_35139d257f914aa5971bb3ff0d5327f8", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_bf07889aaffe4f869feb8f377f5cf90d", | |
| "value": "\u2007466k/466k\u2007[00:00<00:00,\u200717.1MB/s]" | |
| } | |
| }, | |
| "78c22a71b68e40909fadd587af58cf76": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "64464d77d20143738cb07bf960c07dce": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "7efdf0035b3e46228287c816fae5b7ba": { | |
| "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": "" | |
| } | |
| }, | |
| "17f69e11e82d44839c6d1a6834b2f2dd": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3833d2951d8041a0a17c6408a89918fa": { | |
| "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": "" | |
| } | |
| }, | |
| "35139d257f914aa5971bb3ff0d5327f8": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "bf07889aaffe4f869feb8f377f5cf90d": { | |
| "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": "" | |
| } | |
| }, | |
| "321b853747b64ef19f6c993ffb6cc26c": { | |
| "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_4304e6ba860f4c498c909c204d3f15c8", | |
| "IPY_MODEL_a29eb37b262844889259f69156ad296d", | |
| "IPY_MODEL_0d02e429504149e29bc1d0e600658aaa" | |
| ], | |
| "layout": "IPY_MODEL_3e70b4cdaec74fc8b244081af297e0bb" | |
| } | |
| }, | |
| "4304e6ba860f4c498c909c204d3f15c8": { | |
| "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_c7cc0598fc714130abd59592763ef538", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_18fd52c159024314aed97df4048a76f4", | |
| "value": "special_tokens_map.json:\u2007100%" | |
| } | |
| }, | |
| "a29eb37b262844889259f69156ad296d": { | |
| "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_65a1198f47554a82b71eba7330a75b18", | |
| "max": 112, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_1531c2cd3f50469490a09918061b48b3", | |
| "value": 112 | |
| } | |
| }, | |
| "0d02e429504149e29bc1d0e600658aaa": { | |
| "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_d414f76c107e4264b94b708c2e1edb5b", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_eb3ac57ff138418bac38c80c407184f4", | |
| "value": "\u2007112/112\u2007[00:00<00:00,\u20079.65kB/s]" | |
| } | |
| }, | |
| "3e70b4cdaec74fc8b244081af297e0bb": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "c7cc0598fc714130abd59592763ef538": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "18fd52c159024314aed97df4048a76f4": { | |
| "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": "" | |
| } | |
| }, | |
| "65a1198f47554a82b71eba7330a75b18": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "1531c2cd3f50469490a09918061b48b3": { | |
| "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": "" | |
| } | |
| }, | |
| "d414f76c107e4264b94b708c2e1edb5b": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "eb3ac57ff138418bac38c80c407184f4": { | |
| "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": "" | |
| } | |
| }, | |
| "8203097df31a4f43ba21219c06c8ba86": { | |
| "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_7fecd7e0525a4a95ae228ccfe5ca228c", | |
| "IPY_MODEL_475f0a2cec89423e9fdf0df24f676c64", | |
| "IPY_MODEL_7ef7784dcd784dc588e340aa4639de5e" | |
| ], | |
| "layout": "IPY_MODEL_c0fb261e94f94e2280e4d78d9b841408" | |
| } | |
| }, | |
| "7fecd7e0525a4a95ae228ccfe5ca228c": { | |
| "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_12ed8d67509c45cbadf5e2bf9fcfddaa", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_c39b5e599e854740ad574dfa54246188", | |
| "value": "config.json:\u2007100%" | |
| } | |
| }, | |
| "475f0a2cec89423e9fdf0df24f676c64": { | |
| "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_0b9c61499f55446a951bc95bfc5ee2d7", | |
| "max": 190, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_3370b4e703f04e91990f18ea76029cd4", | |
| "value": 190 | |
| } | |
| }, | |
| "7ef7784dcd784dc588e340aa4639de5e": { | |
| "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_9680feaee5494a6b84812186e124c12a", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_512492b62ae84ddcba2a60a869058bc7", | |
| "value": "\u2007190/190\u2007[00:00<00:00,\u200718.6kB/s]" | |
| } | |
| }, | |
| "c0fb261e94f94e2280e4d78d9b841408": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "12ed8d67509c45cbadf5e2bf9fcfddaa": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "c39b5e599e854740ad574dfa54246188": { | |
| "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": "" | |
| } | |
| }, | |
| "0b9c61499f55446a951bc95bfc5ee2d7": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3370b4e703f04e91990f18ea76029cd4": { | |
| "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": "" | |
| } | |
| }, | |
| "9680feaee5494a6b84812186e124c12a": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "512492b62ae84ddcba2a60a869058bc7": { | |
| "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": "" | |
| } | |
| }, | |
| "f1ea7b1bc5f246e29e0dc22db65a63a2": { | |
| "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_491be97f94af45aebb7f16d435df8747", | |
| "IPY_MODEL_76d993d368204a6dbccfdb162a8653b4", | |
| "IPY_MODEL_5c55ae1c8c974c1ea90b694ff2881c86" | |
| ], | |
| "layout": "IPY_MODEL_14b9861b25bc4895ac5421f5b14ccd0b" | |
| } | |
| }, | |
| "491be97f94af45aebb7f16d435df8747": { | |
| "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_d4c9a7abfb034d9d9a8498170bfe4fc2", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_6f990add4c0e4e999545ea53e7d0fd1a", | |
| "value": "modules.json:\u2007100%" | |
| } | |
| }, | |
| "76d993d368204a6dbccfdb162a8653b4": { | |
| "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_97e367e4d3d94598ba90a16bd7692f63", | |
| "max": 349, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_6e6955f6c18445e681c1ea148d23ba90", | |
| "value": 349 | |
| } | |
| }, | |
| "5c55ae1c8c974c1ea90b694ff2881c86": { | |
| "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_364931abdd7f4792b570ff02c28add1f", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_3d3c890588a24bf18de5ab6a77b78492", | |
| "value": "\u2007349/349\u2007[00:00<00:00,\u200733.3kB/s]" | |
| } | |
| }, | |
| "14b9861b25bc4895ac5421f5b14ccd0b": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "d4c9a7abfb034d9d9a8498170bfe4fc2": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "6f990add4c0e4e999545ea53e7d0fd1a": { | |
| "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": "" | |
| } | |
| }, | |
| "97e367e4d3d94598ba90a16bd7692f63": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "6e6955f6c18445e681c1ea148d23ba90": { | |
| "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": "" | |
| } | |
| }, | |
| "364931abdd7f4792b570ff02c28add1f": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3d3c890588a24bf18de5ab6a77b78492": { | |
| "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": "" | |
| } | |
| }, | |
| "9837b5c280b54936b472e22edfce7dc0": { | |
| "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_c56579c38f5b4b88985402f9dfd8ad1b", | |
| "IPY_MODEL_4812db0ea1934029a737634c0e045645", | |
| "IPY_MODEL_9d00d8a062e64cc2810d3334c34c8098" | |
| ], | |
| "layout": "IPY_MODEL_139e1c118ff540b09b101cf2aa8c8d34" | |
| } | |
| }, | |
| "c56579c38f5b4b88985402f9dfd8ad1b": { | |
| "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_80cfb47062bf4860bd94c9436f1cfa25", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_d6801eace7b3402e8697e8f9655ad781", | |
| "value": "config_sentence_transformers.json:\u2007100%" | |
| } | |
| }, | |
| "4812db0ea1934029a737634c0e045645": { | |
| "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_794933e556b243ae912685eddd2d6eed", | |
| "max": 124, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_1d5b9cb89f2049eca83c1077cf89d728", | |
| "value": 124 | |
| } | |
| }, | |
| "9d00d8a062e64cc2810d3334c34c8098": { | |
| "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_0811352100e94d6f8e96283eeca332bc", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_ea67128531ba4833ba4e70e211425c3e", | |
| "value": "\u2007124/124\u2007[00:00<00:00,\u20079.60kB/s]" | |
| } | |
| }, | |
| "139e1c118ff540b09b101cf2aa8c8d34": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "80cfb47062bf4860bd94c9436f1cfa25": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "d6801eace7b3402e8697e8f9655ad781": { | |
| "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": "" | |
| } | |
| }, | |
| "794933e556b243ae912685eddd2d6eed": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "1d5b9cb89f2049eca83c1077cf89d728": { | |
| "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": "" | |
| } | |
| }, | |
| "0811352100e94d6f8e96283eeca332bc": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "ea67128531ba4833ba4e70e211425c3e": { | |
| "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": "" | |
| } | |
| }, | |
| "113d6ccf436e4d7e817937a433820b36": { | |
| "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_b1f2ba0d406c4fbab5ac70660ef3fd8d", | |
| "IPY_MODEL_a39c56d9aee345c39e88fa2b0c4943ad", | |
| "IPY_MODEL_b9ac082df7694cd891029f5230bf2e97" | |
| ], | |
| "layout": "IPY_MODEL_666127895025427e8c0f86e34428789a" | |
| } | |
| }, | |
| "b1f2ba0d406c4fbab5ac70660ef3fd8d": { | |
| "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_28af39b788f1421498a38375d54e109e", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_f62f7d959a294972aa2b21744ad3381d", | |
| "value": "README.md:\u2007100%" | |
| } | |
| }, | |
| "a39c56d9aee345c39e88fa2b0c4943ad": { | |
| "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_45d5ecd5b7974b71bd263ecec42b5629", | |
| "max": 94783, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_a76343cf906b4dbda08055eec9aae912", | |
| "value": 94783 | |
| } | |
| }, | |
| "b9ac082df7694cd891029f5230bf2e97": { | |
| "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_ab6c871ecd9e4505b81a935d749234c7", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_0b839bb23d744f2c830b35b2cb84f222", | |
| "value": "\u200794.8k/94.8k\u2007[00:00<00:00,\u20074.37MB/s]" | |
| } | |
| }, | |
| "666127895025427e8c0f86e34428789a": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "28af39b788f1421498a38375d54e109e": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "f62f7d959a294972aa2b21744ad3381d": { | |
| "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": "" | |
| } | |
| }, | |
| "45d5ecd5b7974b71bd263ecec42b5629": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "a76343cf906b4dbda08055eec9aae912": { | |
| "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": "" | |
| } | |
| }, | |
| "ab6c871ecd9e4505b81a935d749234c7": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0b839bb23d744f2c830b35b2cb84f222": { | |
| "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": "" | |
| } | |
| }, | |
| "105bcb1ed09642979ffa4283182d6c41": { | |
| "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_1f5fee856db84159877c7c8ba0cedb6a", | |
| "IPY_MODEL_87e9f1943fb84486a6b17aff26e17956", | |
| "IPY_MODEL_23980a2db868438e84533af471814ec5" | |
| ], | |
| "layout": "IPY_MODEL_fee0d090f8f6434d98375e7d4bfbfaa0" | |
| } | |
| }, | |
| "1f5fee856db84159877c7c8ba0cedb6a": { | |
| "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_c91b865cb6724940aecfe507d625a79a", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_624bf68a41af4a54855bc7d7a0ec401b", | |
| "value": "sentence_bert_config.json:\u2007100%" | |
| } | |
| }, | |
| "87e9f1943fb84486a6b17aff26e17956": { | |
| "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_7a34a13c12c24c568a0726613b2eade6", | |
| "max": 52, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_761c4cf9874640898ea60b0ba9bc06be", | |
| "value": 52 | |
| } | |
| }, | |
| "23980a2db868438e84533af471814ec5": { | |
| "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_c2eafeff3d5a44a497b92be24bbd9313", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_7f66a81132aa4d38a00395135aaba87b", | |
| "value": "\u200752.0/52.0\u2007[00:00<00:00,\u20074.26kB/s]" | |
| } | |
| }, | |
| "fee0d090f8f6434d98375e7d4bfbfaa0": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "c91b865cb6724940aecfe507d625a79a": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "624bf68a41af4a54855bc7d7a0ec401b": { | |
| "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": "" | |
| } | |
| }, | |
| "7a34a13c12c24c568a0726613b2eade6": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "761c4cf9874640898ea60b0ba9bc06be": { | |
| "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": "" | |
| } | |
| }, | |
| "c2eafeff3d5a44a497b92be24bbd9313": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "7f66a81132aa4d38a00395135aaba87b": { | |
| "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": "" | |
| } | |
| }, | |
| "248012a412ad4854879cf87ff29fd181": { | |
| "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_162e640ec4da42c99f5dc2140de32280", | |
| "IPY_MODEL_39dbb0029125424d8f930c9c96846638", | |
| "IPY_MODEL_f6a94f7547344a93a42d8bce4debda87" | |
| ], | |
| "layout": "IPY_MODEL_3c476e9c3f3a4d01bd2bd64b28c1efc3" | |
| } | |
| }, | |
| "162e640ec4da42c99f5dc2140de32280": { | |
| "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_1d7fac2be66e40e3aa041f6e5c6c495b", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_ce9dbdde7d44460bb52013c26f58bc9f", | |
| "value": "config.json:\u2007100%" | |
| } | |
| }, | |
| "39dbb0029125424d8f930c9c96846638": { | |
| "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_fda5142a1e8a481e85ac127f6905f4cd", | |
| "max": 743, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_b45a7aa0eb594ce8801cd389b9a63cc9", | |
| "value": 743 | |
| } | |
| }, | |
| "f6a94f7547344a93a42d8bce4debda87": { | |
| "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_6bc5bd4df57f4b5291fafed26c5d5e4c", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_e85d275ba9a74412aa1c3d8ee71ce626", | |
| "value": "\u2007743/743\u2007[00:00<00:00,\u200766.6kB/s]" | |
| } | |
| }, | |
| "3c476e9c3f3a4d01bd2bd64b28c1efc3": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "1d7fac2be66e40e3aa041f6e5c6c495b": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "ce9dbdde7d44460bb52013c26f58bc9f": { | |
| "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": "" | |
| } | |
| }, | |
| "fda5142a1e8a481e85ac127f6905f4cd": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "b45a7aa0eb594ce8801cd389b9a63cc9": { | |
| "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": "" | |
| } | |
| }, | |
| "6bc5bd4df57f4b5291fafed26c5d5e4c": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "e85d275ba9a74412aa1c3d8ee71ce626": { | |
| "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": "" | |
| } | |
| }, | |
| "915b0499b8f948d39cefc8c46b434391": { | |
| "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_7ed9dcbdffd64456866d22b06b22ea64", | |
| "IPY_MODEL_9a0d8fc96d16403a89142bfe6acf226e", | |
| "IPY_MODEL_1b77102d80d24f84b5d596f835da6cf4" | |
| ], | |
| "layout": "IPY_MODEL_12f1f30d669942f2a3c59bb79f97b9be" | |
| } | |
| }, | |
| "7ed9dcbdffd64456866d22b06b22ea64": { | |
| "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_328a555751f044a6bd7688265c4fad14", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_0711965f418542a8887627b1ff7dba18", | |
| "value": "model.safetensors:\u2007100%" | |
| } | |
| }, | |
| "9a0d8fc96d16403a89142bfe6acf226e": { | |
| "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_a563eedc021d456d9ec82ce1e363b882", | |
| "max": 133466304, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_82c0c308b989494cb1fccd09e7c6b0c9", | |
| "value": 133466304 | |
| } | |
| }, | |
| "1b77102d80d24f84b5d596f835da6cf4": { | |
| "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_4a6fd5c4801d45a0a0a5c02c5881c409", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_0954bb5f2aa143008781b662cb9966ed", | |
| "value": "\u2007133M/133M\u2007[00:01<00:00,\u200775.8MB/s]" | |
| } | |
| }, | |
| "12f1f30d669942f2a3c59bb79f97b9be": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "328a555751f044a6bd7688265c4fad14": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0711965f418542a8887627b1ff7dba18": { | |
| "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": "" | |
| } | |
| }, | |
| "a563eedc021d456d9ec82ce1e363b882": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "82c0c308b989494cb1fccd09e7c6b0c9": { | |
| "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": "" | |
| } | |
| }, | |
| "4a6fd5c4801d45a0a0a5c02c5881c409": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0954bb5f2aa143008781b662cb9966ed": { | |
| "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": "" | |
| } | |
| }, | |
| "18b7bbe6566d42229235b8b306ddc466": { | |
| "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_12de1cbebd304acda1dbb70654a468d5", | |
| "IPY_MODEL_542c31ec86f14d1192c2db8e01c5c1bb", | |
| "IPY_MODEL_d6eeccb71e45488d8a097e877ddca695" | |
| ], | |
| "layout": "IPY_MODEL_f804f09a08dc4070b4f630f0bb45c0e7" | |
| } | |
| }, | |
| "12de1cbebd304acda1dbb70654a468d5": { | |
| "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_2fc2a7c3274a43dbad83a5928f3b5721", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_90fec68c01bc40999cbd1adfab240e42", | |
| "value": "Loading\u2007weights:\u2007100%" | |
| } | |
| }, | |
| "542c31ec86f14d1192c2db8e01c5c1bb": { | |
| "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_c3e8b502765249858f847387a0c87cfd", | |
| "max": 199, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_23873c944360485aa985e6c77caf837f", | |
| "value": 199 | |
| } | |
| }, | |
| "d6eeccb71e45488d8a097e877ddca695": { | |
| "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_d49e50d4a273449a83bea121e4aac979", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_bb446796a34444359a09a765f17e8c9c", | |
| "value": "\u2007199/199\u2007[00:00<00:00,\u2007412.03it/s,\u2007Materializing\u2007param=pooler.dense.weight]" | |
| } | |
| }, | |
| "f804f09a08dc4070b4f630f0bb45c0e7": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "2fc2a7c3274a43dbad83a5928f3b5721": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "90fec68c01bc40999cbd1adfab240e42": { | |
| "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": "" | |
| } | |
| }, | |
| "c3e8b502765249858f847387a0c87cfd": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "23873c944360485aa985e6c77caf837f": { | |
| "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": "" | |
| } | |
| }, | |
| "d49e50d4a273449a83bea121e4aac979": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "bb446796a34444359a09a765f17e8c9c": { | |
| "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": "" | |
| } | |
| }, | |
| "4771903b6ab64b74be08d09b2f32b5ec": { | |
| "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_d755a93e43ec4292bfe198881fc1b79b", | |
| "IPY_MODEL_e1681ce8802f4f43ba98a32a2e8dd9b5", | |
| "IPY_MODEL_50621bdbcf03488dbac090ab53925cfd" | |
| ], | |
| "layout": "IPY_MODEL_a3ac984f17f14e1ebeb87b04a4edde0a" | |
| } | |
| }, | |
| "d755a93e43ec4292bfe198881fc1b79b": { | |
| "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_63d5d6370b9c42c6ac0cf1dd54d448ac", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_c8fde78ee3b94c8083756d4a32df4f14", | |
| "value": "tokenizer_config.json:\u2007100%" | |
| } | |
| }, | |
| "e1681ce8802f4f43ba98a32a2e8dd9b5": { | |
| "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_5c05250980114e6cb9ae32f9628bab7b", | |
| "max": 366, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_8c50a18ae99d4a1cb56d7910c0686782", | |
| "value": 366 | |
| } | |
| }, | |
| "50621bdbcf03488dbac090ab53925cfd": { | |
| "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_d7bddb1370a547e9b6437a9cdfcea89f", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_ecd312d927d24d91ad2e917756dc70aa", | |
| "value": "\u2007366/366\u2007[00:00<00:00,\u200721.4kB/s]" | |
| } | |
| }, | |
| "a3ac984f17f14e1ebeb87b04a4edde0a": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "63d5d6370b9c42c6ac0cf1dd54d448ac": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "c8fde78ee3b94c8083756d4a32df4f14": { | |
| "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": "" | |
| } | |
| }, | |
| "5c05250980114e6cb9ae32f9628bab7b": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "8c50a18ae99d4a1cb56d7910c0686782": { | |
| "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": "" | |
| } | |
| }, | |
| "d7bddb1370a547e9b6437a9cdfcea89f": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "ecd312d927d24d91ad2e917756dc70aa": { | |
| "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": "" | |
| } | |
| }, | |
| "ae38e70c579449819c5c309339bf1f14": { | |
| "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_5663f432ab7d42248de5a11c825c02f6", | |
| "IPY_MODEL_79072463c15542ff898c43c45c7b48a6", | |
| "IPY_MODEL_de0666d7f2de46b8b223e19f834d3a02" | |
| ], | |
| "layout": "IPY_MODEL_cc07d65faf11473c9ffbfa50f7f54209" | |
| } | |
| }, | |
| "5663f432ab7d42248de5a11c825c02f6": { | |
| "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_35d4ca43d2294075bf7b8eeac7417e84", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_ca57a3c1ee174040854e6c7280ba816b", | |
| "value": "vocab.txt:\u2007100%" | |
| } | |
| }, | |
| "79072463c15542ff898c43c45c7b48a6": { | |
| "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_b7788d5acd504ee38fe9e71eb6e12c15", | |
| "max": 231508, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_01d2484655b34342bb056a03a01b9541", | |
| "value": 231508 | |
| } | |
| }, | |
| "de0666d7f2de46b8b223e19f834d3a02": { | |
| "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_bc5515f0b49a48579afdfacc0d68dd88", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_8cdf1d1361294ebaa48c895c42f4bec1", | |
| "value": "\u2007232k/232k\u2007[00:00<00:00,\u200714.2MB/s]" | |
| } | |
| }, | |
| "cc07d65faf11473c9ffbfa50f7f54209": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "35d4ca43d2294075bf7b8eeac7417e84": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "ca57a3c1ee174040854e6c7280ba816b": { | |
| "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": "" | |
| } | |
| }, | |
| "b7788d5acd504ee38fe9e71eb6e12c15": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "01d2484655b34342bb056a03a01b9541": { | |
| "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": "" | |
| } | |
| }, | |
| "bc5515f0b49a48579afdfacc0d68dd88": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "8cdf1d1361294ebaa48c895c42f4bec1": { | |
| "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": "" | |
| } | |
| }, | |
| "2e85d2b3207f4d5f9dfd2d867063b286": { | |
| "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_2463975fcaf145a7b3dfab1bbf6d87fa", | |
| "IPY_MODEL_4c22fbee692b4bf3b02c17fa35b933b4", | |
| "IPY_MODEL_e96b3425e3904b159a35ee207098d7f8" | |
| ], | |
| "layout": "IPY_MODEL_993afd6cdf304385b8e05345ad2e6aac" | |
| } | |
| }, | |
| "2463975fcaf145a7b3dfab1bbf6d87fa": { | |
| "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_728108a17fd4492fbe0ee9dcc1b9e571", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_3f23fa7279ff442ca29d0a3ec9be85c3", | |
| "value": "tokenizer.json:\u2007100%" | |
| } | |
| }, | |
| "4c22fbee692b4bf3b02c17fa35b933b4": { | |
| "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_c2603ba630cb4951879a7a68bb5d793e", | |
| "max": 711396, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_15fa875f1baf439291b3feff53581f65", | |
| "value": 711396 | |
| } | |
| }, | |
| "e96b3425e3904b159a35ee207098d7f8": { | |
| "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_2e71460319d44d7f8a4063f4d34a41ca", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_caa5a4b1412b472bb16dc86307c72dd7", | |
| "value": "\u2007711k/711k\u2007[00:00<00:00,\u200730.9MB/s]" | |
| } | |
| }, | |
| "993afd6cdf304385b8e05345ad2e6aac": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "728108a17fd4492fbe0ee9dcc1b9e571": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "3f23fa7279ff442ca29d0a3ec9be85c3": { | |
| "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": "" | |
| } | |
| }, | |
| "c2603ba630cb4951879a7a68bb5d793e": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "15fa875f1baf439291b3feff53581f65": { | |
| "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": "" | |
| } | |
| }, | |
| "2e71460319d44d7f8a4063f4d34a41ca": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "caa5a4b1412b472bb16dc86307c72dd7": { | |
| "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": "" | |
| } | |
| }, | |
| "94e289093d914fa3968924396ba4791c": { | |
| "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_8f82d19f3b2844de90b2d50bafe94168", | |
| "IPY_MODEL_0262151b455b40f38e82d6f8c31ceceb", | |
| "IPY_MODEL_dc6410f4fe8e48dd91496c74aeca27b8" | |
| ], | |
| "layout": "IPY_MODEL_0d50201a9ab6426e8f3389e4335e7615" | |
| } | |
| }, | |
| "8f82d19f3b2844de90b2d50bafe94168": { | |
| "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_7c3af3cad74d42b68931adaafc454e9c", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_9bc19722d0bc4ee5b450432da4b9bf15", | |
| "value": "special_tokens_map.json:\u2007100%" | |
| } | |
| }, | |
| "0262151b455b40f38e82d6f8c31ceceb": { | |
| "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_06c714bcbd5348f6a80fe58cd021a292", | |
| "max": 125, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_85cec57cd3724c9d97c712104a6b05c6", | |
| "value": 125 | |
| } | |
| }, | |
| "dc6410f4fe8e48dd91496c74aeca27b8": { | |
| "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_3e8d18c679a247b28102740b51002319", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_dadaa06584324166adff0b28813a1cac", | |
| "value": "\u2007125/125\u2007[00:00<00:00,\u20079.24kB/s]" | |
| } | |
| }, | |
| "0d50201a9ab6426e8f3389e4335e7615": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "7c3af3cad74d42b68931adaafc454e9c": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "9bc19722d0bc4ee5b450432da4b9bf15": { | |
| "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": "" | |
| } | |
| }, | |
| "06c714bcbd5348f6a80fe58cd021a292": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "85cec57cd3724c9d97c712104a6b05c6": { | |
| "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": "" | |
| } | |
| }, | |
| "3e8d18c679a247b28102740b51002319": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "dadaa06584324166adff0b28813a1cac": { | |
| "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": "" | |
| } | |
| }, | |
| "c8946e4e1952460bb3460d8073125070": { | |
| "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_7b91e26cecae48458f0133cc82d78e95", | |
| "IPY_MODEL_ade7f497d97c4ea29845c1b60dc23b01", | |
| "IPY_MODEL_8727b9037bec456d9c463214f431afca" | |
| ], | |
| "layout": "IPY_MODEL_060f4ca93b7845bb8d7d752838824e4f" | |
| } | |
| }, | |
| "7b91e26cecae48458f0133cc82d78e95": { | |
| "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_d344568b091547fe88503afabf7577d1", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_cd6a43494b714ab9b8485d3b94efc261", | |
| "value": "config.json:\u2007100%" | |
| } | |
| }, | |
| "ade7f497d97c4ea29845c1b60dc23b01": { | |
| "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_2d2f337c06d0467eab9670abc811eda1", | |
| "max": 190, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_1efb4f2a83f14cd1a12b8be95c66b760", | |
| "value": 190 | |
| } | |
| }, | |
| "8727b9037bec456d9c463214f431afca": { | |
| "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_6b75a06e253546d6be1d3a50e925f0ed", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_f653b7b1da5f44849efc393dcb0fcb2d", | |
| "value": "\u2007190/190\u2007[00:00<00:00,\u200716.5kB/s]" | |
| } | |
| }, | |
| "060f4ca93b7845bb8d7d752838824e4f": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "d344568b091547fe88503afabf7577d1": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "cd6a43494b714ab9b8485d3b94efc261": { | |
| "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": "" | |
| } | |
| }, | |
| "2d2f337c06d0467eab9670abc811eda1": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "1efb4f2a83f14cd1a12b8be95c66b760": { | |
| "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": "" | |
| } | |
| }, | |
| "6b75a06e253546d6be1d3a50e925f0ed": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "f653b7b1da5f44849efc393dcb0fcb2d": { | |
| "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": "" | |
| } | |
| }, | |
| "d77174a16bf4478c925b498bb98cf4ad": { | |
| "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_71223cd73d094703a0874288a1bd3a76", | |
| "IPY_MODEL_ee8932595507486fbc20de247dc4d6f0", | |
| "IPY_MODEL_8be83f6a7c714cfe897624857a6b2836" | |
| ], | |
| "layout": "IPY_MODEL_97bad62693af400eb3cb4458c39b8b72" | |
| } | |
| }, | |
| "71223cd73d094703a0874288a1bd3a76": { | |
| "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_724e39be1c9c47bc843a7950a82e1f52", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_0047acc76b9949489674ebffabd8f653", | |
| "value": "Batches:\u2007100%" | |
| } | |
| }, | |
| "ee8932595507486fbc20de247dc4d6f0": { | |
| "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_072a82506f1f4a93a78fda5fd8659cec", | |
| "max": 79, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_68678e8212bd40999aff62cc30cd6a78", | |
| "value": 79 | |
| } | |
| }, | |
| "8be83f6a7c714cfe897624857a6b2836": { | |
| "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_e1e8da41183e4777a81f03a1318bd3c0", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_33818798908342df813e0e01b82dd6a0", | |
| "value": "\u200779/79\u2007[06:04<00:00,\u2007\u20071.46s/it]" | |
| } | |
| }, | |
| "97bad62693af400eb3cb4458c39b8b72": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "724e39be1c9c47bc843a7950a82e1f52": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0047acc76b9949489674ebffabd8f653": { | |
| "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": "" | |
| } | |
| }, | |
| "072a82506f1f4a93a78fda5fd8659cec": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "68678e8212bd40999aff62cc30cd6a78": { | |
| "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": "" | |
| } | |
| }, | |
| "e1e8da41183e4777a81f03a1318bd3c0": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "33818798908342df813e0e01b82dd6a0": { | |
| "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": "" | |
| } | |
| }, | |
| "f76f0afd32214f8b8bb3c7df6cf320df": { | |
| "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_165c0f7283254d6994813d08222ff306", | |
| "IPY_MODEL_137b75a050a94906848cb7855333d2ba", | |
| "IPY_MODEL_82b441f571024b258b2457ce75038d5d" | |
| ], | |
| "layout": "IPY_MODEL_700099a9c5234133a1e10931814d6845" | |
| } | |
| }, | |
| "165c0f7283254d6994813d08222ff306": { | |
| "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_0e940c11ff024e1b85a3effce774c9d9", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_b490a11a49a542bb8d0f85eec6063e6f", | |
| "value": "Batches:\u2007100%" | |
| } | |
| }, | |
| "137b75a050a94906848cb7855333d2ba": { | |
| "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_5cee594612314c98a1d6f2a791a08bfd", | |
| "max": 79, | |
| "min": 0, | |
| "orientation": "horizontal", | |
| "style": "IPY_MODEL_0ad08fdc68074d6192dd2785a243f7db", | |
| "value": 79 | |
| } | |
| }, | |
| "82b441f571024b258b2457ce75038d5d": { | |
| "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_8ad997ebc691439780fa6fc17dabd3e8", | |
| "placeholder": "\u200b", | |
| "style": "IPY_MODEL_7be00d2ab06b46a69d8ab8d6dff1fa19", | |
| "value": "\u200779/79\u2007[16:06<00:00,\u2007\u20072.36s/it]" | |
| } | |
| }, | |
| "700099a9c5234133a1e10931814d6845": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0e940c11ff024e1b85a3effce774c9d9": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "b490a11a49a542bb8d0f85eec6063e6f": { | |
| "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": "" | |
| } | |
| }, | |
| "5cee594612314c98a1d6f2a791a08bfd": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "0ad08fdc68074d6192dd2785a243f7db": { | |
| "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": "" | |
| } | |
| }, | |
| "8ad997ebc691439780fa6fc17dabd3e8": { | |
| "model_module": "@jupyter-widgets/base", | |
| "model_name": "LayoutModel", | |
| "model_module_version": "1.2.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/base", | |
| "_model_module_version": "1.2.0", | |
| "_model_name": "LayoutModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "LayoutView", | |
| "align_content": null, | |
| "align_items": null, | |
| "align_self": null, | |
| "border": null, | |
| "bottom": null, | |
| "display": null, | |
| "flex": null, | |
| "flex_flow": null, | |
| "grid_area": null, | |
| "grid_auto_columns": null, | |
| "grid_auto_flow": null, | |
| "grid_auto_rows": null, | |
| "grid_column": null, | |
| "grid_gap": null, | |
| "grid_row": null, | |
| "grid_template_areas": null, | |
| "grid_template_columns": null, | |
| "grid_template_rows": null, | |
| "height": null, | |
| "justify_content": null, | |
| "justify_items": null, | |
| "left": null, | |
| "margin": null, | |
| "max_height": null, | |
| "max_width": null, | |
| "min_height": null, | |
| "min_width": null, | |
| "object_fit": null, | |
| "object_position": null, | |
| "order": null, | |
| "overflow": null, | |
| "overflow_x": null, | |
| "overflow_y": null, | |
| "padding": null, | |
| "right": null, | |
| "top": null, | |
| "visibility": null, | |
| "width": null | |
| } | |
| }, | |
| "7be00d2ab06b46a69d8ab8d6dff1fa19": { | |
| "model_module": "@jupyter-widgets/controls", | |
| "model_name": "DescriptionStyleModel", | |
| "model_module_version": "1.5.0", | |
| "state": { | |
| "_model_module": "@jupyter-widgets/controls", | |
| "_model_module_version": "1.5.0", | |
| "_model_name": "DescriptionStyleModel", | |
| "_view_count": null, | |
| "_view_module": "@jupyter-widgets/base", | |
| "_view_module_version": "1.2.0", | |
| "_view_name": "StyleView", | |
| "description_width": "" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "# AIMLCZG521 \u2014 Conversational AI\n", | |
| "### Assignment 1 - PS2 - Hybrid Retrieval for Financial Conversational Question Answering\n", | |
| "**Group:** 61\n", | |
| "| Sr. No. | Name | ID |\n", | |
| "| :---: | :--- | :---: |\n", | |
| "| 1 | MAYUR INGLE | 2024ac05106 |\n", | |
| "| 2 | BARHATE LOKESHWAR BHAGWAT | 2024ac05004 |\n", | |
| "| 3 | MOHIT PUNDLIK HEDAOO | 2024ac05565 |\n", | |
| "| 4 | PALLAVI VERMA | 2024ac05016 |\n", | |
| "\n", | |
| "\n", | |
| "**Problem Statement 2** \u2014 Build a Financial Domain Hybrid Search QA System combining sparse (BM25/TF-IDF) and dense (embeddings) retrieval to answer finance-related queries.\n", | |
| "\n", | |
| "**Dataset:** FiQA-2018 (Financial Intelligence over Questions and Answers) \n", | |
| "**Source:** https://huggingface.co/datasets/pauri32/fiqa-2018\n", | |
| "\n", | |
| "The system covers the full pipeline \u2014 data cleaning, sparse retrieval, semantic retrieval, hybrid fusion using RRF, a conversational QA interface, and evaluation using standard IR metrics." | |
| ], | |
| "metadata": { | |
| "id": "4Jcm9JLs4vvw" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# installing all required libraries\n", | |
| "# rank_bm25 for sparse retrieval, faiss for vector indexing, sentence-transformers for embeddings\n", | |
| "# datasets to load fiqa from huggingface, nltk for text preprocessing\n", | |
| "\n", | |
| "!pip install rank_bm25 faiss-cpu sentence-transformers datasets nltk -q" | |
| ], | |
| "metadata": { | |
| "id": "okqGgFyU40jZ" | |
| }, | |
| "execution_count": 15, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import re\n", | |
| "import string\n", | |
| "import numpy as np\n", | |
| "import pandas as pd\n", | |
| "import nltk\n", | |
| "import warnings\n", | |
| "warnings.filterwarnings('ignore')\n", | |
| "\n", | |
| "from datasets import load_dataset\n", | |
| "from rank_bm25 import BM25Okapi\n", | |
| "from sentence_transformers import SentenceTransformer, util\n", | |
| "from sklearn.metrics.pairwise import cosine_similarity\n", | |
| "import faiss\n", | |
| "from nltk.corpus import stopwords\n", | |
| "from nltk.tokenize import word_tokenize\n", | |
| "from collections import defaultdict\n", | |
| "import time\n", | |
| "\n", | |
| "nltk.download('punkt', quiet=True)\n", | |
| "nltk.download('stopwords', quiet=True)\n", | |
| "nltk.download('punkt_tab', quiet=True)\n", | |
| "\n", | |
| "print(\"all imports done\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "KjoKy4Ak43oD", | |
| "outputId": "d59cb64a-a54a-4c82-ac9a-13dca04fb5a6" | |
| }, | |
| "execution_count": 16, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "all imports done\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Module 1: Data Preparation & Sparse Retrieval\n", | |
| "\n", | |
| "### Task 1 \u2014 Data Cleaning and Preparation\n", | |
| "\n", | |
| "We're using FiQA-2018 (BEIR version) \u2014 a financial QA dataset from Stack Exchange and Reddit finance threads. It has three parts: a corpus of passages, a set of questions, and qrels (relevance judgments that tell us which passage answers which question).\n", | |
| "\n", | |
| "Before indexing anything, we need to clean the raw text. Financial text is quite noisy \u2014 there are URLs, HTML leftovers, ticker symbols like $TSLA, abbreviations like P/E and CAGR, and inconsistent casing. All of this can hurt both BM25 (bad tokenization) and embeddings (noisy input)." | |
| ], | |
| "metadata": { | |
| "id": "wDPbMXci4515" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# pauri32/fiqa-2018 turned out to be the sentiment split, not the retrieval split\n", | |
| "# using the correct BEIR version of FiQA which has corpus, queries and qrels\n", | |
| "# BEIR (Benchmarking IR) is the standard benchmark used in retrieval research\n", | |
| "\n", | |
| "print(\"loading FiQA retrieval dataset from BEIR...\")\n", | |
| "dataset = load_dataset(\"BeIR/fiqa\", \"corpus\")\n", | |
| "print(dataset)\n", | |
| "print(\"\\nfirst corpus entry:\")\n", | |
| "print(dataset['corpus'][0])\n", | |
| "\n", | |
| "# loading queries separately\n", | |
| "queries_dataset = load_dataset(\"BeIR/fiqa\", \"queries\")\n", | |
| "print(queries_dataset)\n", | |
| "print(\"\\nfirst query:\")\n", | |
| "print(queries_dataset['queries'][0])\n", | |
| "\n", | |
| "# loading the qrels (relevance judgments) - needed for evaluation later\n", | |
| "# qrels tell us which corpus doc is the correct answer for each query\n", | |
| "qrels_dataset = load_dataset(\"BeIR/fiqa-qrels\")\n", | |
| "print(qrels_dataset)\n", | |
| "print(\"\\nfirst qrel entry:\")\n", | |
| "print(qrels_dataset['train'][0])" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "oH_mW5gz49na", | |
| "outputId": "a1c5c31c-2856-4f14-976b-7aacb146b4fd" | |
| }, | |
| "execution_count": 17, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "loading FiQA retrieval dataset from BEIR...\n", | |
| "DatasetDict({\n", | |
| " corpus: Dataset({\n", | |
| " features: ['_id', 'title', 'text'],\n", | |
| " num_rows: 57638\n", | |
| " })\n", | |
| "})\n", | |
| "\n", | |
| "first corpus entry:\n", | |
| "{'_id': '3', 'title': '', 'text': \"I'm not saying I don't like the idea of on-the-job training too, but you can't expect the company to do that. Training workers is not their job - they're building software. Perhaps educational systems in the U.S. (or their students) should worry a little about getting marketable skills in exchange for their massive investment in education, rather than getting out with thousands in student debt and then complaining that they aren't qualified to do anything.\"}\n", | |
| "DatasetDict({\n", | |
| " queries: Dataset({\n", | |
| " features: ['_id', 'title', 'text'],\n", | |
| " num_rows: 6648\n", | |
| " })\n", | |
| "})\n", | |
| "\n", | |
| "first query:\n", | |
| "{'_id': '0', 'title': '', 'text': 'What is considered a business expense on a business trip?'}\n", | |
| "DatasetDict({\n", | |
| " train: Dataset({\n", | |
| " features: ['query-id', 'corpus-id', 'score'],\n", | |
| " num_rows: 14166\n", | |
| " })\n", | |
| " validation: Dataset({\n", | |
| " features: ['query-id', 'corpus-id', 'score'],\n", | |
| " num_rows: 1238\n", | |
| " })\n", | |
| " test: Dataset({\n", | |
| " features: ['query-id', 'corpus-id', 'score'],\n", | |
| " num_rows: 1706\n", | |
| " })\n", | |
| "})\n", | |
| "\n", | |
| "first qrel entry:\n", | |
| "{'query-id': 0, 'corpus-id': 18850, 'score': 1}\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# converting all three to dataframes and doing a quick sanity check\n", | |
| "\n", | |
| "corpus_df = pd.DataFrame(dataset['corpus'])\n", | |
| "queries_df = pd.DataFrame(queries_dataset['queries'])\n", | |
| "qrels_df = pd.DataFrame(qrels_dataset['train']) # using train qrels for evaluation\n", | |
| "\n", | |
| "print(\"corpus shape:\", corpus_df.shape)\n", | |
| "print(\"queries shape:\", queries_df.shape)\n", | |
| "print(\"qrels shape:\", qrels_df.shape)\n", | |
| "\n", | |
| "print(\"\\ncorpus columns:\", corpus_df.columns.tolist())\n", | |
| "print(\"queries columns:\", queries_df.columns.tolist())\n", | |
| "print(\"qrels columns:\", qrels_df.columns.tolist())\n", | |
| "\n", | |
| "print(\"\\ncorpus sample:\")\n", | |
| "print(corpus_df.head(2))\n", | |
| "\n", | |
| "print(\"\\nqueries sample:\")\n", | |
| "print(queries_df.head(2))\n", | |
| "\n", | |
| "print(\"\\nqrels sample:\")\n", | |
| "print(qrels_df.head(3))" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "Bv8BFoVy6Tnb", | |
| "outputId": "66a8a7ba-6346-4746-ad7c-c192d9f71ec3" | |
| }, | |
| "execution_count": 18, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "corpus shape: (57638, 3)\n", | |
| "queries shape: (6648, 3)\n", | |
| "qrels shape: (14166, 3)\n", | |
| "\n", | |
| "corpus columns: ['_id', 'title', 'text']\n", | |
| "queries columns: ['_id', 'title', 'text']\n", | |
| "qrels columns: ['query-id', 'corpus-id', 'score']\n", | |
| "\n", | |
| "corpus sample:\n", | |
| " _id title text\n", | |
| "0 3 I'm not saying I don't like the idea of on-the...\n", | |
| "1 31 So nothing preventing false ratings besides ad...\n", | |
| "\n", | |
| "queries sample:\n", | |
| " _id title text\n", | |
| "0 0 What is considered a business expense on a bus...\n", | |
| "1 4 Business Expense - Car Insurance Deductible Fo...\n", | |
| "\n", | |
| "qrels sample:\n", | |
| " query-id corpus-id score\n", | |
| "0 0 18850 1\n", | |
| "1 4 196463 1\n", | |
| "2 5 69306 1\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# --- preprocessing pipeline ---\n", | |
| "# keeping it practical - finance text has $ signs, % symbols, abbreviations\n", | |
| "# we clean noise but don't destroy domain-specific tokens\n", | |
| "\n", | |
| "stop_words = set(stopwords.words('english'))\n", | |
| "\n", | |
| "def clean_text(text):\n", | |
| " if not isinstance(text, str) or text.strip() == '':\n", | |
| " return ''\n", | |
| "\n", | |
| " # remove html tags if any\n", | |
| " text = re.sub(r'<[^>]+>', ' ', text)\n", | |
| "\n", | |
| " # remove urls\n", | |
| " text = re.sub(r'http\\S+|www\\S+', ' ', text)\n", | |
| "\n", | |
| " # lowercase\n", | |
| " text = text.lower()\n", | |
| "\n", | |
| " # remove special chars except alphanumeric, spaces, and basic punctuation\n", | |
| " # keeping % and . because \"10%\" and \"p.e ratio\" matter in finance\n", | |
| " text = re.sub(r'[^a-z0-9\\s\\.\\%]', ' ', text)\n", | |
| "\n", | |
| " # normalize whitespace\n", | |
| " text = re.sub(r'\\s+', ' ', text).strip()\n", | |
| "\n", | |
| " return text\n", | |
| "\n", | |
| "def tokenize_for_bm25(text):\n", | |
| " # simple whitespace tokenize after cleaning, remove stopwords\n", | |
| " tokens = text.split()\n", | |
| " tokens = [t for t in tokens if t not in stop_words and len(t) > 1]\n", | |
| " return tokens\n", | |
| "\n", | |
| "# apply cleaning to corpus\n", | |
| "print(\"cleaning corpus...\")\n", | |
| "corpus_df['clean_text'] = corpus_df['text'].apply(clean_text)\n", | |
| "\n", | |
| "# combine title + text where title is available (some entries have empty title)\n", | |
| "corpus_df['full_text'] = corpus_df.apply(\n", | |
| " lambda row: (row['title'] + ' ' + row['text']).strip() if row['title'] else row['text'],\n", | |
| " axis=1\n", | |
| ")\n", | |
| "corpus_df['clean_full_text'] = corpus_df['full_text'].apply(clean_text)\n", | |
| "\n", | |
| "# tokenize for bm25\n", | |
| "corpus_df['tokens'] = corpus_df['clean_full_text'].apply(tokenize_for_bm25)\n", | |
| "\n", | |
| "# filter out empty docs\n", | |
| "before = len(corpus_df)\n", | |
| "corpus_df = corpus_df[corpus_df['tokens'].apply(len) > 3].reset_index(drop=True)\n", | |
| "after = len(corpus_df)\n", | |
| "\n", | |
| "print(f\"removed {before - after} near-empty documents\")\n", | |
| "print(f\"final corpus size: {after}\")\n", | |
| "print(\"\\nsample cleaned entry:\")\n", | |
| "print(\"original:\", corpus_df['text'][0][:200])\n", | |
| "print(\"\\ncleaned:\", corpus_df['clean_full_text'][0][:200])\n", | |
| "print(\"\\ntokens (first 15):\", corpus_df['tokens'][0][:15])" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "NwjaPPKf66fn", | |
| "outputId": "2b9f3b86-dffe-4e37-bd8b-9642a0f183af" | |
| }, | |
| "execution_count": 19, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "cleaning corpus...\n", | |
| "removed 123 near-empty documents\n", | |
| "final corpus size: 57515\n", | |
| "\n", | |
| "sample cleaned entry:\n", | |
| "original: I'm not saying I don't like the idea of on-the-job training too, but you can't expect the company to do that. Training workers is not their job - they're building software. Perhaps educational systems\n", | |
| "\n", | |
| "cleaned: i m not saying i don t like the idea of on the job training too but you can t expect the company to do that. training workers is not their job they re building software. perhaps educational systems in\n", | |
| "\n", | |
| "tokens (first 15): ['saying', 'like', 'idea', 'job', 'training', 'expect', 'company', 'that.', 'training', 'workers', 'job', 'building', 'software.', 'perhaps', 'educational']\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# quick stats on the cleaned corpus - good to report in analysis\n", | |
| "\n", | |
| "token_lengths = corpus_df['tokens'].apply(len)\n", | |
| "print(\"token length stats (per document):\")\n", | |
| "print(f\" mean: {token_lengths.mean():.1f}\")\n", | |
| "print(f\" median: {token_lengths.median():.1f}\")\n", | |
| "print(f\" min: {token_lengths.min()}\")\n", | |
| "print(f\" max: {token_lengths.max()}\")\n", | |
| "\n", | |
| "# also clean queries\n", | |
| "queries_df['clean_query'] = queries_df['text'].apply(clean_text)\n", | |
| "queries_df['query_tokens'] = queries_df['clean_query'].apply(tokenize_for_bm25)\n", | |
| "\n", | |
| "print(f\"\\ntotal queries: {len(queries_df)}\")\n", | |
| "print(\"\\nsample cleaned query:\")\n", | |
| "print(\"original:\", queries_df['text'][0])\n", | |
| "print(\"cleaned: \", queries_df['clean_query'][0])" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "Z-tus4re682I", | |
| "outputId": "256d632e-d509-4754-e17e-f50abbed4609" | |
| }, | |
| "execution_count": 20, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "token length stats (per document):\n", | |
| " mean: 69.1\n", | |
| " median: 47.0\n", | |
| " min: 4\n", | |
| " max: 1534\n", | |
| "\n", | |
| "total queries: 6648\n", | |
| "\n", | |
| "sample cleaned query:\n", | |
| "original: What is considered a business expense on a business trip?\n", | |
| "cleaned: what is considered a business expense on a business trip\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "#### Task 1 Analysis\n", | |
| "\n", | |
| "Preprocessing matters here more than in typical NLP tasks because financial text mixes formal writing with community forum noise. Some specific issues we ran into:\n", | |
| "\n", | |
| "- Ticker symbols like $LNG or $AAPL get split weirdly by standard tokenizers after punctuation removal\n", | |
| "- Abbreviations like NAV, SIP, CAGR are critical domain terms but look like noise to general pipelines\n", | |
| "- Numbers and percentages (\"10%\", \"10 %\", \"ten percent\") represent the same thing but appear as different tokens\n", | |
| "- Words like \"yield\", \"hedge\", \"spread\" mean something completely different in finance vs general English \u2014 pretrained models can get confused\n", | |
| "\n", | |
| "We decided to keep percentage signs and dots during cleaning since \"10%\" and \"P.E\" carry meaning, but strip everything else noisy. Stopword removal helps reduce noise but we were careful not to remove finance-relevant short tokens." | |
| ], | |
| "metadata": { | |
| "id": "76umiSHc6_9Q" | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Task 2 \u2014 Sparse Search System (BM25)\n", | |
| "\n", | |
| "BM25 (Best Match 25) is the industry standard for keyword-based retrieval. It improves over TF-IDF by adding two things:\n", | |
| "- **Term frequency saturation** \u2014 repeated terms don't keep adding score linearly, they plateau\n", | |
| "- **Document length normalization** \u2014 longer documents don't get unfair advantage\n", | |
| "\n", | |
| "BM25 formula for a query Q and document D:\n", | |
| "\n", | |
| "$$Score(D, Q) = \\sum_{i=1}^{n} IDF(q_i) \\cdot \\frac{f(q_i, D) \\cdot (k_1 + 1)}{f(q_i, D) + k_1 \\cdot (1 - b + b \\cdot \\frac{|D|}{avgdl})}$$\n", | |
| "\n", | |
| "where k1 controls term frequency saturation (typically 1.2\u20132.0) and b controls length normalization (typically 0.75).\n", | |
| "\n", | |
| "We build a BM25 index over the entire FiQA corpus and retrieve Top-K passages for financial queries." | |
| ], | |
| "metadata": { | |
| "id": "nZi0CGU4_t_B" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# building the BM25 index over cleaned+tokenized corpus\n", | |
| "# BM25Okapi is the standard okapi BM25 implementation in rank_bm25\n", | |
| "\n", | |
| "print(\"building BM25 index...\")\n", | |
| "start = time.time()\n", | |
| "\n", | |
| "bm25 = BM25Okapi(corpus_df['tokens'].tolist())\n", | |
| "\n", | |
| "elapsed = time.time() - start\n", | |
| "print(f\"BM25 index built in {elapsed:.2f}s\")\n", | |
| "print(f\"indexed {len(corpus_df)} documents\")\n", | |
| "print(f\"vocabulary size: {len(bm25.idf)}\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "aisHyb_Y_vx6", | |
| "outputId": "49d1861b-e4a6-44ec-a2c4-7215243c6050" | |
| }, | |
| "execution_count": 21, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "building BM25 index...\n", | |
| "BM25 index built in 1.82s\n", | |
| "indexed 57515 documents\n", | |
| "vocabulary size: 95265\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# BM25 retrieval function\n", | |
| "# takes a raw query string, returns top-k (doc_id, score) pairs\n", | |
| "\n", | |
| "def bm25_retrieve(query, top_k=10):\n", | |
| " tokens = tokenize_for_bm25(clean_text(query))\n", | |
| " scores = bm25.get_scores(tokens)\n", | |
| "\n", | |
| " # get top-k indices sorted by score descending\n", | |
| " top_indices = np.argsort(scores)[::-1][:top_k]\n", | |
| "\n", | |
| " results = []\n", | |
| " for idx in top_indices:\n", | |
| " results.append({\n", | |
| " 'doc_id': corpus_df.iloc[idx]['_id'],\n", | |
| " 'score': scores[idx],\n", | |
| " 'text': corpus_df.iloc[idx]['text'][:300] # preview\n", | |
| " })\n", | |
| " return results\n", | |
| "\n", | |
| "# test with a sample finance query\n", | |
| "test_query = \"What is the difference between CAGR and ROI?\"\n", | |
| "print(f\"query: {test_query}\")\n", | |
| "print(\"=\"*60)\n", | |
| "\n", | |
| "results = bm25_retrieve(test_query, top_k=5)\n", | |
| "for i, r in enumerate(results):\n", | |
| " print(f\"\\nRank {i+1} | doc_id: {r['doc_id']} | score: {r['score']:.4f}\")\n", | |
| " print(f\"text: {r['text']}...\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "DgVkA4dN_xvc", | |
| "outputId": "d3606f77-166d-43a3-cb22-9b603e2a7555" | |
| }, | |
| "execution_count": 22, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "query: What is the difference between CAGR and ROI?\n", | |
| "============================================================\n", | |
| "\n", | |
| "Rank 1 | doc_id: 178501 | score: 16.1895\n", | |
| "text: I would not claim to be a personal expert in rental property. I do have friends and family and acquaintances who run rental units for additional income and/or make a full time living at the rental business. As JoeTaxpayer points out, rentals are a cash-eating business. You need to have enough liqui...\n", | |
| "\n", | |
| "Rank 2 | doc_id: 181013 | score: 12.3887\n", | |
| "text: See the Moneychimp site. From 1934 to 2006, the S&P returned an 'average' 12.81%. But the CAGR was 11.26%. I wrote an article Average Return vs Compound Annual Growth to address this issue. Interesting that over time only a few funds have managed to get anywhere near this return, but the low cost ...\n", | |
| "\n", | |
| "Rank 3 | doc_id: 12351 | score: 11.8269\n", | |
| "text: I wrote a detailed article on Tax Loss Harvesting to show the impact on returns. For my example, I showed a person in the 15% bracket. In years with no loss, they trade to capture gains at 0% long term rate, thus bumping their basis up. In years with losses, they tax harvest for a 15% effective 're...\n", | |
| "\n", | |
| "Rank 4 | doc_id: 89509 | score: 11.5484\n", | |
| "text: If you are calculating simple ROI, the answer is straightforward math. See This Answer for some examples, but yes, with more leverage you will always see better ROI on a property IF you can maintain a positive cash flow. The most complete answer is to factor in your total risk. That high ROI of a ...\n", | |
| "\n", | |
| "Rank 5 | doc_id: 37987 | score: 11.4088\n", | |
| "text: \"My experience is in economics, so it may differ from an accounting or personal finance perspective somewhat; that being said, I find it perfectly acceptable to use a term like CAGR when the rate is positive or negative. Economists talk about negative growth rates all the time, and it's universally ...\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# testing with a few more finance queries to see how BM25 behaves\n", | |
| "\n", | |
| "test_queries = [\n", | |
| " \"How does inflation affect stock markets?\",\n", | |
| " \"What are the risks of mutual fund investments?\",\n", | |
| " \"How to calculate compound interest?\",\n", | |
| " \"What is dollar cost averaging?\"\n", | |
| "]\n", | |
| "\n", | |
| "for q in test_queries:\n", | |
| " print(f\"\\nQuery: {q}\")\n", | |
| " print(\"-\" * 50)\n", | |
| " res = bm25_retrieve(q, top_k=3)\n", | |
| " for i, r in enumerate(res):\n", | |
| " print(f\" Rank {i+1} [score: {r['score']:.3f}]: {r['text'][:150]}...\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "tX8qY6Av_zix", | |
| "outputId": "78bff047-def9-418e-bdfd-969097c60d9a" | |
| }, | |
| "execution_count": 23, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "Query: How does inflation affect stock markets?\n", | |
| "--------------------------------------------------\n", | |
| " Rank 1 [score: 15.615]: \"Inflation as defined in the general, has many impacts at a personal level. For example, you say that the reduction in the price of oil has no impact ...\n", | |
| " Rank 2 [score: 15.162]: The relation between inflation and stock (or economic) performance is not well-understood. Decades ago, economists thought inflation corresponded wit...\n", | |
| " Rank 3 [score: 14.840]: The principle behind the advice to not throw good money after bad is better restated in economics terms: sunk costs are sunk and irrelevant to today's...\n", | |
| "\n", | |
| "Query: What are the risks of mutual fund investments?\n", | |
| "--------------------------------------------------\n", | |
| " Rank 1 [score: 18.163]: \"Your \"\"money market\"\" is cash or a \"\"sweep account\"\" that your broker is holding for you and on which the broker is paying you interest. The mutual ...\n", | |
| " Rank 2 [score: 16.947]: The main difference between an ETF and a Mutual Fund is Management. An ETF will track a specific index with NO manager input. A Mutual Fund has a mana...\n", | |
| " Rank 3 [score: 15.882]: Many mutual fund companies (including Vanguard when I checked many years ago) require smaller minimum investments (often $1000) for IRA and 401k accou...\n", | |
| "\n", | |
| "Query: How to calculate compound interest?\n", | |
| "--------------------------------------------------\n", | |
| " Rank 1 [score: 17.525]: \"When we talk about compounding, we usually think about interest payments. If you have a deposit in a savings account that is earning compound interes...\n", | |
| " Rank 2 [score: 14.633]: \"You'd have to look at the terms of the loan to be sure, but if the interest compounds weekly then you'd have to calculate the effect of 3 compounding...\n", | |
| " Rank 3 [score: 14.116]: 1a. It isn't. Compound interest is compound interest. It works no different within a 401(k). 1b. Yes. 401(k)'s are made up of the same underlying asse...\n", | |
| "\n", | |
| "Query: What is dollar cost averaging?\n", | |
| "--------------------------------------------------\n", | |
| " Rank 1 [score: 22.015]: In general, lump sum investing will tend to outperform dollar cost averaging because markets tend to increase in value, so investing more money earlie...\n", | |
| " Rank 2 [score: 21.215]: If you define dollar cost cost averaging as investing a specific dollar amount over a certain fixed time frame then it does not work statistically bet...\n", | |
| " Rank 3 [score: 21.096]: Sounds like you're doing fine, though somewhat fuzzy: how are you allocating the $500/month? Are you doing dollar cost averaging into funds, accumulat...\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# let's also check what happens with a finance-specific abbreviation query\n", | |
| "# this is where BM25 either shines (exact match) or fails (vocabulary mismatch)\n", | |
| "\n", | |
| "abbrev_queries = [\n", | |
| " \"What is NAV in mutual funds?\", # NAV = Net Asset Value, exact term match - BM25 should do well\n", | |
| " \"Explain P/E ratio for stock valuation\", # P/E might get split weirdly after cleaning\n", | |
| " \"risks in SIP investment\" # SIP = Systematic Investment Plan\n", | |
| "]\n", | |
| "\n", | |
| "print(\"testing abbreviation/domain-term queries:\")\n", | |
| "print(\"(these expose BM25 vocabulary mismatch issues)\\n\")\n", | |
| "\n", | |
| "for q in abbrev_queries:\n", | |
| " res = bm25_retrieve(q, top_k=1)\n", | |
| " print(f\"Query: {q}\")\n", | |
| " if res and res[0]['score'] > 0:\n", | |
| " print(f\" top result score: {res[0]['score']:.4f}\")\n", | |
| " print(f\" preview: {res[0]['text'][:200]}...\")\n", | |
| " else:\n", | |
| " print(\" no relevant match found (score = 0) \u2014 vocabulary mismatch!\")\n", | |
| " print()" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "f-FEz-a7_0zJ", | |
| "outputId": "8ec70960-8317-4727-d06c-5d5a3637b6d9" | |
| }, | |
| "execution_count": 24, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "testing abbreviation/domain-term queries:\n", | |
| "(these expose BM25 vocabulary mismatch issues)\n", | |
| "\n", | |
| "Query: What is NAV in mutual funds?\n", | |
| " top result score: 21.2460\n", | |
| " preview: This idea does not make sense for most mutual funds. The net asset value, or NAV, is the current market value of a fund's holdings, minus the fund's liabilities, that is usually expressed as a per-sha...\n", | |
| "\n", | |
| "Query: Explain P/E ratio for stock valuation\n", | |
| " top result score: 19.0852\n", | |
| " preview: \"To perhaps better explain the \"\"why\"\" behind this rule of thumb, first think of what it means when the P/E ratio changes. If the P/E ratio increases, then this means the stock has become more expens...\n", | |
| "\n", | |
| "Query: risks in SIP investment\n", | |
| " top result score: 14.5528\n", | |
| " preview: \"Yes, the \"\"speed bump\"\" explicitly can not impact the reports to the SIP. Two years ago this would not be a big deal, because the SIP was stupidly slow, especially under load. So, you send your repor...\n", | |
| "\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "#### Task 2 Analysis\n", | |
| "\n", | |
| "BM25 works really well when the query uses the exact same words as the document. For finance queries with specific terms like \"CAGR\", \"NAV\", or \"401k\", it picks up matches reliably and is extremely fast.\n", | |
| "\n", | |
| "The problem shows up with paraphrased queries. If someone asks \"how do I grow my savings over time\", BM25 scores near zero for a document that talks about \"compound interest and long-term returns\" \u2014 no shared tokens, no match. This vocabulary mismatch is the core limitation.\n", | |
| "\n", | |
| "After cleaning, abbreviations like \"P/E\" become \"p e\" (two tokens), which further reduces matching precision. Overall BM25 is a strong baseline for keyword-heavy queries but clearly needs semantic support for the kind of natural language questions users actually ask." | |
| ], | |
| "metadata": { | |
| "id": "KU-eZbfj_2jC" | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Module 2: Embeddings & Hybrid Retrieval\n", | |
| "\n", | |
| "### Task 3 \u2014 Semantic Retrieval using Sentence Embeddings\n", | |
| "\n", | |
| "Unlike BM25 which matches exact keywords, dense retrieval converts text into dense vector representations (embeddings) where semantically similar texts are close to each other in vector space.\n", | |
| "\n", | |
| "For example \u2014 \"how do I grow my savings\" and \"compound interest strategies\" will have high cosine similarity even though they share zero words.\n", | |
| "\n", | |
| "We experiment with two embedding models as required:\n", | |
| "- **Model 1:** `all-MiniLM-L6-v2` \u2014 lightweight, fast, general purpose (22M params)\n", | |
| "- **Model 2:** `BAAI/bge-small-en-v1.5` \u2014 stronger retrieval-tuned model, trained with contrastive learning specifically for passage retrieval\n", | |
| "\n", | |
| "We also compare two similarity metrics:\n", | |
| "- **Cosine similarity** \u2014 measures angle between vectors, scale-invariant\n", | |
| "- **Dot product** \u2014 faster, but sensitive to vector magnitude\n", | |
| "\n", | |
| "Embeddings are stored in a FAISS index for efficient similarity search." | |
| ], | |
| "metadata": { | |
| "id": "yNz8FlQrAFVb" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# loading both embedding models\n", | |
| "# MiniLM is fast and good for general use\n", | |
| "# BGE (BAAI General Embeddings) is specifically tuned for retrieval tasks\n", | |
| "\n", | |
| "print(\"loading embedding models...\")\n", | |
| "\n", | |
| "model_minilm = SentenceTransformer('all-MiniLM-L6-v2')\n", | |
| "print(\"model 1 loaded: all-MiniLM-L6-v2\")\n", | |
| "\n", | |
| "model_bge = SentenceTransformer('BAAI/bge-small-en-v1.5')\n", | |
| "print(\"model 2 loaded: BAAI/bge-small-en-v1.5\")\n", | |
| "\n", | |
| "print(\"\\nmodel 1 embedding dim:\", model_minilm.get_sentence_embedding_dimension())\n", | |
| "print(\"model 2 embedding dim:\", model_bge.get_sentence_embedding_dimension())" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 1000, | |
| "referenced_widgets": [ | |
| "8358ead3b03843bfad3eb1d7de84d76e", | |
| "81289d689f024e2ea5b1802e13fcd372", | |
| "5010ca4ea904458dba18511c474c6394", | |
| "f75b83496a40432ab4a20c5c8bfc172e", | |
| "eee11412de54486eaf2cc3fa9255138b", | |
| "c1aaabcf76ab464f8905a76eb8b58c68", | |
| "98232aaf585442f6b9a69644afc9aa83", | |
| "37c722a07b7a41838012c7f1d16320db", | |
| "fd5998c057eb4ad0b66bb58077e3a974", | |
| "fa86e5ef90374ae09a9ece9e39e113fa", | |
| "4a20e449211e42899228414efd422a28", | |
| "ea1c5fdc34b24551b79e52abd72ccc31", | |
| "fa93ae01b57d46c1ad629feed31df436", | |
| "1f8a017d310348dba47c73faa508d139", | |
| "ae932d6bf8f0481eb83493d91a76821d", | |
| "b18f3f2afc4c4841ae9ab844c0f8fee1", | |
| "0f185d0f5003409ca20b49ac32ca2582", | |
| "9a863f33275048e0979a76129a378219", | |
| "e0ea1b8cb3714a9483339c293acf8b1d", | |
| "e6cccf72a6444e1faeb919a9785b1931", | |
| "dc5f4a096f9a4617a09943a61830d731", | |
| "8a4edcd38c7a40138f637d9e6cb41620", | |
| "0e62d4cf79494e039b4e0bca7b5d60f8", | |
| "86fd9b6b9b574c4e844c033be914b26c", | |
| "e0c54ff6afd14c99a5408ec23d94f682", | |
| "1d5bee82f0d949398cd17820d6b2d63a", | |
| "0dc4e8e324bd48339843a3e8eaf3fae4", | |
| "d7d5ea7d1e444834999b797cff686e23", | |
| "828fba7d17f04d4fb92cc104b4dec09a", | |
| "99a7d171e9614feca280bec888d7b07a", | |
| "1f1ab315be504d2bb47881e13cabc0dc", | |
| "64750221276f42d890f216360a4dfd99", | |
| "cf654cb2e94b41ef9b61daa3c4e7dde0", | |
| "09c80a2fe5a0421bbb189a9f9271332d", | |
| "3641e578021f4541897a3c74a8245b3a", | |
| "e640e8d7c45d46c0b977d3afa0a44f3c", | |
| "9a05802c13cd4f56a645b54a3150472c", | |
| "eb5afe75f53c4058accedacdc9cf24ad", | |
| "05c854d81a7e4207b1e48cea087b1525", | |
| "f15ea5808fc44a7c8991b47712587a0b", | |
| "be47a30c02654dcbb6a809c17b641540", | |
| "aaf537d1d9c7451ba3930d909cee1bde", | |
| "11e1bec541db4edeb529194b189e7286", | |
| "020e88d0bf6b4bd6b0bd25a476d6789d", | |
| "d2b58312e0bf4751b27c25efd5ad1949", | |
| "5ec5195337f041c5b96ec74bfec0abf9", | |
| "b602b76b69e0491db0c4d5a56a526162", | |
| "7dc099284eae4034a9ef65ca2bbf7834", | |
| "5c80f987800947d6b054804c92dedcb9", | |
| "494c2310f1cd41a79a2f0ca1b0a247ee", | |
| "863b0674ca7841bdbf9241e34e15a4d8", | |
| "3f710fb9db174b0e95214071ccdf6a45", | |
| "8d5c31a0f28040569c15aedcb52e2f0a", | |
| "a7aa494212c146f9a570cbe2d0aed383", | |
| "fd278b57501848b688f93f4c00a8a69f", | |
| "d30fe156f11e4ac2b5991860e3534153", | |
| "2c60724b3faf42a4bead33be335a9dec", | |
| "ed4a610d311d46d7bec2054681c28dad", | |
| "8dbecb2308f74c0e8ca04be0f9a57548", | |
| "53249273a414402fbd9f48e7ff169e86", | |
| "c501b8b24a724b12a91ef74e3783e464", | |
| "d3217abbf1c444398782598929e1f97d", | |
| "60f36778e36e4e8f8e10555aaece157d", | |
| "7b2f46b14dea4f1dab2d4763c3510d8a", | |
| "864295fa5c064006a109b3f00b07d46a", | |
| "b675bcec86bc467d958cd5a6e3fb580c", | |
| "7a697067e2864dff8ba2ad47fc0bad60", | |
| "1ee442ad8a2743b49e21e3b54345f1bc", | |
| "9ba32f46128d4d69998aeb15b6c79e21", | |
| "cf83cb30f0774342b5101216a211683e", | |
| "bd2303b2c8e049ca8d5f6d85b82ad513", | |
| "31afdb39c1f54d7da31013b932e8c0ae", | |
| "5d5f20d035204f6a85600cac05f728b3", | |
| "8427b49e5e544868a1fea869e43d39c7", | |
| "349036de4a90497d80fb75e3bb62c968", | |
| "6c70a8fd0c754aa6892cab123fb5431b", | |
| "b421635068d748ba96929d8579577960", | |
| "78e09ff1e6a04ae78021bb4194a7358a", | |
| "8f36be9600ab435c8b853548d325a82a", | |
| "dd65bbe3d3e94ff8801b6ecca06489f1", | |
| "c8a30db7f0ff42d297c8f21b74f39b9a", | |
| "10b4ad3a19fd43b49c8b24afd850db61", | |
| "3607f55711784293a3c8842630c48119", | |
| "3f5307ed7a5843bb9462da6ccec05253", | |
| "02ed280e9d2f4735b32574c36bc49ba9", | |
| "a4ecfc1e1854440a85d041e551859274", | |
| "5c4c99271493408dbc0c7a250d6065e7", | |
| "770dcae13c6b4d7088e035c2f55dfa36", | |
| "f002d492539e44c7b95da436ba5a2722", | |
| "1d4df593e7824d0d85aa92a31110ea02", | |
| "ae6c7a56134f4a08908fe642381cfb17", | |
| "947677b0154c42898d2c9fdc37a79916", | |
| "992acfb59ed34ba1920f365e98f88bab", | |
| "3428ec12bd6f4dffacae14113a499d31", | |
| "f464bcf6a2e348d599ee13c235595f30", | |
| "9858cb89f3754466ad7748ec15ce7151", | |
| "718b71ad5b434f829e1f6d8a6cc60098", | |
| "84bb668d88a449329f5d2668fb5835e8", | |
| "1a91b6aed0c5447587a527affd735353", | |
| "dbfd8b87eead4dda9b2d2fff0ecd0cbe", | |
| "1e618fbfbc2f44598a00f8275307ea75", | |
| "2049be1079e541e08c50a4607b9e2931", | |
| "be8aa8580e314cb48d2790713aac25ab", | |
| "78c22a71b68e40909fadd587af58cf76", | |
| "64464d77d20143738cb07bf960c07dce", | |
| "7efdf0035b3e46228287c816fae5b7ba", | |
| "17f69e11e82d44839c6d1a6834b2f2dd", | |
| "3833d2951d8041a0a17c6408a89918fa", | |
| "35139d257f914aa5971bb3ff0d5327f8", | |
| "bf07889aaffe4f869feb8f377f5cf90d", | |
| "321b853747b64ef19f6c993ffb6cc26c", | |
| "4304e6ba860f4c498c909c204d3f15c8", | |
| "a29eb37b262844889259f69156ad296d", | |
| "0d02e429504149e29bc1d0e600658aaa", | |
| "3e70b4cdaec74fc8b244081af297e0bb", | |
| "c7cc0598fc714130abd59592763ef538", | |
| "18fd52c159024314aed97df4048a76f4", | |
| "65a1198f47554a82b71eba7330a75b18", | |
| "1531c2cd3f50469490a09918061b48b3", | |
| "d414f76c107e4264b94b708c2e1edb5b", | |
| "eb3ac57ff138418bac38c80c407184f4", | |
| "8203097df31a4f43ba21219c06c8ba86", | |
| "7fecd7e0525a4a95ae228ccfe5ca228c", | |
| "475f0a2cec89423e9fdf0df24f676c64", | |
| "7ef7784dcd784dc588e340aa4639de5e", | |
| "c0fb261e94f94e2280e4d78d9b841408", | |
| "12ed8d67509c45cbadf5e2bf9fcfddaa", | |
| "c39b5e599e854740ad574dfa54246188", | |
| "0b9c61499f55446a951bc95bfc5ee2d7", | |
| "3370b4e703f04e91990f18ea76029cd4", | |
| "9680feaee5494a6b84812186e124c12a", | |
| "512492b62ae84ddcba2a60a869058bc7", | |
| "f1ea7b1bc5f246e29e0dc22db65a63a2", | |
| "491be97f94af45aebb7f16d435df8747", | |
| "76d993d368204a6dbccfdb162a8653b4", | |
| "5c55ae1c8c974c1ea90b694ff2881c86", | |
| "14b9861b25bc4895ac5421f5b14ccd0b", | |
| "d4c9a7abfb034d9d9a8498170bfe4fc2", | |
| "6f990add4c0e4e999545ea53e7d0fd1a", | |
| "97e367e4d3d94598ba90a16bd7692f63", | |
| "6e6955f6c18445e681c1ea148d23ba90", | |
| "364931abdd7f4792b570ff02c28add1f", | |
| "3d3c890588a24bf18de5ab6a77b78492", | |
| "9837b5c280b54936b472e22edfce7dc0", | |
| "c56579c38f5b4b88985402f9dfd8ad1b", | |
| "4812db0ea1934029a737634c0e045645", | |
| "9d00d8a062e64cc2810d3334c34c8098", | |
| "139e1c118ff540b09b101cf2aa8c8d34", | |
| "80cfb47062bf4860bd94c9436f1cfa25", | |
| "d6801eace7b3402e8697e8f9655ad781", | |
| "794933e556b243ae912685eddd2d6eed", | |
| "1d5b9cb89f2049eca83c1077cf89d728", | |
| "0811352100e94d6f8e96283eeca332bc", | |
| "ea67128531ba4833ba4e70e211425c3e", | |
| "113d6ccf436e4d7e817937a433820b36", | |
| "b1f2ba0d406c4fbab5ac70660ef3fd8d", | |
| "a39c56d9aee345c39e88fa2b0c4943ad", | |
| "b9ac082df7694cd891029f5230bf2e97", | |
| "666127895025427e8c0f86e34428789a", | |
| "28af39b788f1421498a38375d54e109e", | |
| "f62f7d959a294972aa2b21744ad3381d", | |
| "45d5ecd5b7974b71bd263ecec42b5629", | |
| "a76343cf906b4dbda08055eec9aae912", | |
| "ab6c871ecd9e4505b81a935d749234c7", | |
| "0b839bb23d744f2c830b35b2cb84f222", | |
| "105bcb1ed09642979ffa4283182d6c41", | |
| "1f5fee856db84159877c7c8ba0cedb6a", | |
| "87e9f1943fb84486a6b17aff26e17956", | |
| "23980a2db868438e84533af471814ec5", | |
| "fee0d090f8f6434d98375e7d4bfbfaa0", | |
| "c91b865cb6724940aecfe507d625a79a", | |
| "624bf68a41af4a54855bc7d7a0ec401b", | |
| "7a34a13c12c24c568a0726613b2eade6", | |
| "761c4cf9874640898ea60b0ba9bc06be", | |
| "c2eafeff3d5a44a497b92be24bbd9313", | |
| "7f66a81132aa4d38a00395135aaba87b", | |
| "248012a412ad4854879cf87ff29fd181", | |
| "162e640ec4da42c99f5dc2140de32280", | |
| "39dbb0029125424d8f930c9c96846638", | |
| "f6a94f7547344a93a42d8bce4debda87", | |
| "3c476e9c3f3a4d01bd2bd64b28c1efc3", | |
| "1d7fac2be66e40e3aa041f6e5c6c495b", | |
| "ce9dbdde7d44460bb52013c26f58bc9f", | |
| "fda5142a1e8a481e85ac127f6905f4cd", | |
| "b45a7aa0eb594ce8801cd389b9a63cc9", | |
| "6bc5bd4df57f4b5291fafed26c5d5e4c", | |
| "e85d275ba9a74412aa1c3d8ee71ce626", | |
| "915b0499b8f948d39cefc8c46b434391", | |
| "7ed9dcbdffd64456866d22b06b22ea64", | |
| "9a0d8fc96d16403a89142bfe6acf226e", | |
| "1b77102d80d24f84b5d596f835da6cf4", | |
| "12f1f30d669942f2a3c59bb79f97b9be", | |
| "328a555751f044a6bd7688265c4fad14", | |
| "0711965f418542a8887627b1ff7dba18", | |
| "a563eedc021d456d9ec82ce1e363b882", | |
| "82c0c308b989494cb1fccd09e7c6b0c9", | |
| "4a6fd5c4801d45a0a0a5c02c5881c409", | |
| "0954bb5f2aa143008781b662cb9966ed", | |
| "18b7bbe6566d42229235b8b306ddc466", | |
| "12de1cbebd304acda1dbb70654a468d5", | |
| "542c31ec86f14d1192c2db8e01c5c1bb", | |
| "d6eeccb71e45488d8a097e877ddca695", | |
| "f804f09a08dc4070b4f630f0bb45c0e7", | |
| "2fc2a7c3274a43dbad83a5928f3b5721", | |
| "90fec68c01bc40999cbd1adfab240e42", | |
| "c3e8b502765249858f847387a0c87cfd", | |
| "23873c944360485aa985e6c77caf837f", | |
| "d49e50d4a273449a83bea121e4aac979", | |
| "bb446796a34444359a09a765f17e8c9c", | |
| "4771903b6ab64b74be08d09b2f32b5ec", | |
| "d755a93e43ec4292bfe198881fc1b79b", | |
| "e1681ce8802f4f43ba98a32a2e8dd9b5", | |
| "50621bdbcf03488dbac090ab53925cfd", | |
| "a3ac984f17f14e1ebeb87b04a4edde0a", | |
| "63d5d6370b9c42c6ac0cf1dd54d448ac", | |
| "c8fde78ee3b94c8083756d4a32df4f14", | |
| "5c05250980114e6cb9ae32f9628bab7b", | |
| "8c50a18ae99d4a1cb56d7910c0686782", | |
| "d7bddb1370a547e9b6437a9cdfcea89f", | |
| "ecd312d927d24d91ad2e917756dc70aa", | |
| "ae38e70c579449819c5c309339bf1f14", | |
| "5663f432ab7d42248de5a11c825c02f6", | |
| "79072463c15542ff898c43c45c7b48a6", | |
| "de0666d7f2de46b8b223e19f834d3a02", | |
| "cc07d65faf11473c9ffbfa50f7f54209", | |
| "35d4ca43d2294075bf7b8eeac7417e84", | |
| "ca57a3c1ee174040854e6c7280ba816b", | |
| "b7788d5acd504ee38fe9e71eb6e12c15", | |
| "01d2484655b34342bb056a03a01b9541", | |
| "bc5515f0b49a48579afdfacc0d68dd88", | |
| "8cdf1d1361294ebaa48c895c42f4bec1", | |
| "2e85d2b3207f4d5f9dfd2d867063b286", | |
| "2463975fcaf145a7b3dfab1bbf6d87fa", | |
| "4c22fbee692b4bf3b02c17fa35b933b4", | |
| "e96b3425e3904b159a35ee207098d7f8", | |
| "993afd6cdf304385b8e05345ad2e6aac", | |
| "728108a17fd4492fbe0ee9dcc1b9e571", | |
| "3f23fa7279ff442ca29d0a3ec9be85c3", | |
| "c2603ba630cb4951879a7a68bb5d793e", | |
| "15fa875f1baf439291b3feff53581f65", | |
| "2e71460319d44d7f8a4063f4d34a41ca", | |
| "caa5a4b1412b472bb16dc86307c72dd7", | |
| "94e289093d914fa3968924396ba4791c", | |
| "8f82d19f3b2844de90b2d50bafe94168", | |
| "0262151b455b40f38e82d6f8c31ceceb", | |
| "dc6410f4fe8e48dd91496c74aeca27b8", | |
| "0d50201a9ab6426e8f3389e4335e7615", | |
| "7c3af3cad74d42b68931adaafc454e9c", | |
| "9bc19722d0bc4ee5b450432da4b9bf15", | |
| "06c714bcbd5348f6a80fe58cd021a292", | |
| "85cec57cd3724c9d97c712104a6b05c6", | |
| "3e8d18c679a247b28102740b51002319", | |
| "dadaa06584324166adff0b28813a1cac", | |
| "c8946e4e1952460bb3460d8073125070", | |
| "7b91e26cecae48458f0133cc82d78e95", | |
| "ade7f497d97c4ea29845c1b60dc23b01", | |
| "8727b9037bec456d9c463214f431afca", | |
| "060f4ca93b7845bb8d7d752838824e4f", | |
| "d344568b091547fe88503afabf7577d1", | |
| "cd6a43494b714ab9b8485d3b94efc261", | |
| "2d2f337c06d0467eab9670abc811eda1", | |
| "1efb4f2a83f14cd1a12b8be95c66b760", | |
| "6b75a06e253546d6be1d3a50e925f0ed", | |
| "f653b7b1da5f44849efc393dcb0fcb2d" | |
| ] | |
| }, | |
| "id": "zTUPIR23AHdU", | |
| "outputId": "430cbfdc-d03a-4dc0-f57c-3b41ed1a73bc" | |
| }, | |
| "execution_count": 25, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "loading embedding models...\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "modules.json: 0%| | 0.00/349 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "8358ead3b03843bfad3eb1d7de84d76e" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "config_sentence_transformers.json: 0%| | 0.00/116 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "ea1c5fdc34b24551b79e52abd72ccc31" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "README.md: 0%| | 0.00/10.5k [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "0e62d4cf79494e039b4e0bca7b5d60f8" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "sentence_bert_config.json: 0%| | 0.00/53.0 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "09c80a2fe5a0421bbb189a9f9271332d" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "config.json: 0%| | 0.00/612 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "d2b58312e0bf4751b27c25efd5ad1949" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "model.safetensors: 0%| | 0.00/90.9M [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "d30fe156f11e4ac2b5991860e3534153" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "Loading weights: 0%| | 0/103 [00:00<?, ?it/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "7a697067e2864dff8ba2ad47fc0bad60" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "BertModel LOAD REPORT from: sentence-transformers/all-MiniLM-L6-v2\n", | |
| "Key | Status | | \n", | |
| "------------------------+------------+--+-\n", | |
| "embeddings.position_ids | UNEXPECTED | | \n", | |
| "\n", | |
| "Notes:\n", | |
| "- UNEXPECTED\t:can be ignored when loading from different task/architecture; not ok if you expect identical arch.\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "tokenizer_config.json: 0%| | 0.00/350 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "78e09ff1e6a04ae78021bb4194a7358a" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "vocab.txt: 0%| | 0.00/232k [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "f002d492539e44c7b95da436ba5a2722" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "tokenizer.json: 0%| | 0.00/466k [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "dbfd8b87eead4dda9b2d2fff0ecd0cbe" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "special_tokens_map.json: 0%| | 0.00/112 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "321b853747b64ef19f6c993ffb6cc26c" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "config.json: 0%| | 0.00/190 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "8203097df31a4f43ba21219c06c8ba86" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "model 1 loaded: all-MiniLM-L6-v2\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "modules.json: 0%| | 0.00/349 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "f1ea7b1bc5f246e29e0dc22db65a63a2" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "config_sentence_transformers.json: 0%| | 0.00/124 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "9837b5c280b54936b472e22edfce7dc0" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "README.md: 0%| | 0.00/94.8k [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "113d6ccf436e4d7e817937a433820b36" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "sentence_bert_config.json: 0%| | 0.00/52.0 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "105bcb1ed09642979ffa4283182d6c41" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "config.json: 0%| | 0.00/743 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "248012a412ad4854879cf87ff29fd181" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "model.safetensors: 0%| | 0.00/133M [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "915b0499b8f948d39cefc8c46b434391" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "Loading weights: 0%| | 0/199 [00:00<?, ?it/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "18b7bbe6566d42229235b8b306ddc466" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "BertModel LOAD REPORT from: BAAI/bge-small-en-v1.5\n", | |
| "Key | Status | | \n", | |
| "------------------------+------------+--+-\n", | |
| "embeddings.position_ids | UNEXPECTED | | \n", | |
| "\n", | |
| "Notes:\n", | |
| "- UNEXPECTED\t:can be ignored when loading from different task/architecture; not ok if you expect identical arch.\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "tokenizer_config.json: 0%| | 0.00/366 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "4771903b6ab64b74be08d09b2f32b5ec" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "vocab.txt: 0%| | 0.00/232k [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "ae38e70c579449819c5c309339bf1f14" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "tokenizer.json: 0%| | 0.00/711k [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "2e85d2b3207f4d5f9dfd2d867063b286" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "special_tokens_map.json: 0%| | 0.00/125 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "94e289093d914fa3968924396ba4791c" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "config.json: 0%| | 0.00/190 [00:00<?, ?B/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "c8946e4e1952460bb3460d8073125070" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "model 2 loaded: BAAI/bge-small-en-v1.5\n", | |
| "\n", | |
| "model 1 embedding dim: 384\n", | |
| "model 2 embedding dim: 384\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# 57k documents is too large for Colab CPU encoding\n", | |
| "# using a random sample of 5000 documents \u2014 enough for a meaningful retrieval demo\n", | |
| "# sampling with a fixed seed for reproducibility\n", | |
| "\n", | |
| "SAMPLE_SIZE = 5000\n", | |
| "corpus_sample = corpus_df.sample(n=SAMPLE_SIZE, random_state=42).reset_index(drop=True)\n", | |
| "corpus_texts = corpus_sample['clean_full_text'].tolist()\n", | |
| "\n", | |
| "print(f\"using {SAMPLE_SIZE} sampled documents from corpus (random_state=42)\")\n", | |
| "print(f\"this keeps encoding time manageable on Colab\\n\")\n", | |
| "\n", | |
| "# model 1 - MiniLM\n", | |
| "print(\"encoding with MiniLM...\")\n", | |
| "start = time.time()\n", | |
| "embeddings_minilm = model_minilm.encode(\n", | |
| " corpus_texts,\n", | |
| " batch_size=64,\n", | |
| " show_progress_bar=True,\n", | |
| " convert_to_numpy=True,\n", | |
| " normalize_embeddings=True\n", | |
| ")\n", | |
| "t1 = time.time() - start\n", | |
| "print(f\"MiniLM done in {t1:.1f}s | shape: {embeddings_minilm.shape}\")\n", | |
| "\n", | |
| "# model 2 - BGE\n", | |
| "print(\"\\nencoding with BGE...\")\n", | |
| "corpus_texts_bge = [\"Represent this sentence for retrieval: \" + t for t in corpus_texts]\n", | |
| "start = time.time()\n", | |
| "embeddings_bge = model_bge.encode(\n", | |
| " corpus_texts_bge,\n", | |
| " batch_size=64,\n", | |
| " show_progress_bar=True,\n", | |
| " convert_to_numpy=True,\n", | |
| " normalize_embeddings=True\n", | |
| ")\n", | |
| "t2 = time.time() - start\n", | |
| "print(f\"BGE done in {t2:.1f}s | shape: {embeddings_bge.shape}\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 224, | |
| "referenced_widgets": [ | |
| "d77174a16bf4478c925b498bb98cf4ad", | |
| "71223cd73d094703a0874288a1bd3a76", | |
| "ee8932595507486fbc20de247dc4d6f0", | |
| "8be83f6a7c714cfe897624857a6b2836", | |
| "97bad62693af400eb3cb4458c39b8b72", | |
| "724e39be1c9c47bc843a7950a82e1f52", | |
| "0047acc76b9949489674ebffabd8f653", | |
| "072a82506f1f4a93a78fda5fd8659cec", | |
| "68678e8212bd40999aff62cc30cd6a78", | |
| "e1e8da41183e4777a81f03a1318bd3c0", | |
| "33818798908342df813e0e01b82dd6a0", | |
| "f76f0afd32214f8b8bb3c7df6cf320df", | |
| "165c0f7283254d6994813d08222ff306", | |
| "137b75a050a94906848cb7855333d2ba", | |
| "82b441f571024b258b2457ce75038d5d", | |
| "700099a9c5234133a1e10931814d6845", | |
| "0e940c11ff024e1b85a3effce774c9d9", | |
| "b490a11a49a542bb8d0f85eec6063e6f", | |
| "5cee594612314c98a1d6f2a791a08bfd", | |
| "0ad08fdc68074d6192dd2785a243f7db", | |
| "8ad997ebc691439780fa6fc17dabd3e8", | |
| "7be00d2ab06b46a69d8ab8d6dff1fa19" | |
| ] | |
| }, | |
| "id": "RhZPgNutAI1U", | |
| "outputId": "05dfeb8e-e45e-44b0-b122-f5af01c1109d" | |
| }, | |
| "execution_count": 27, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "using 5000 sampled documents from corpus (random_state=42)\n", | |
| "this keeps encoding time manageable on Colab\n", | |
| "\n", | |
| "encoding with MiniLM...\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "Batches: 0%| | 0/79 [00:00<?, ?it/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "d77174a16bf4478c925b498bb98cf4ad" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "MiniLM done in 364.6s | shape: (5000, 384)\n", | |
| "\n", | |
| "encoding with BGE...\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "Batches: 0%| | 0/79 [00:00<?, ?it/s]" | |
| ], | |
| "application/vnd.jupyter.widget-view+json": { | |
| "version_major": 2, | |
| "version_minor": 0, | |
| "model_id": "f76f0afd32214f8b8bb3c7df6cf320df" | |
| } | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "BGE done in 966.5s | shape: (5000, 384)\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# building FAISS indexes for both models\n", | |
| "# instead of re-encoding for dot product, we derive raw embeddings mathematically\n", | |
| "# normalized_vec = vec / ||vec||, so raw_vec = normalized_vec * ||vec||\n", | |
| "# but for comparison purposes, we can just use a copy with different index type\n", | |
| "\n", | |
| "dim_minilm = embeddings_minilm.shape[1]\n", | |
| "dim_bge = embeddings_bge.shape[1]\n", | |
| "\n", | |
| "# cosine similarity index (inner product on normalized vectors = cosine sim)\n", | |
| "index_minilm_cos = faiss.IndexFlatIP(dim_minilm)\n", | |
| "index_minilm_cos.add(embeddings_minilm.astype('float32'))\n", | |
| "\n", | |
| "index_bge_cos = faiss.IndexFlatIP(dim_bge)\n", | |
| "index_bge_cos.add(embeddings_bge.astype('float32'))\n", | |
| "\n", | |
| "# for dot product \u2014 use L2 index on same normalized embeddings\n", | |
| "# IndexFlatL2 uses euclidean distance, gives different ranking than cosine\n", | |
| "# this serves as our second similarity metric comparison\n", | |
| "index_minilm_dot = faiss.IndexFlatL2(dim_minilm)\n", | |
| "index_minilm_dot.add(embeddings_minilm.astype('float32'))\n", | |
| "\n", | |
| "index_bge_dot = faiss.IndexFlatL2(dim_bge)\n", | |
| "index_bge_dot.add(embeddings_bge.astype('float32'))\n", | |
| "\n", | |
| "print(\"FAISS indexes built:\")\n", | |
| "print(f\" MiniLM cosine (IP) index: {index_minilm_cos.ntotal} vectors\")\n", | |
| "print(f\" BGE cosine (IP) index: {index_bge_cos.ntotal} vectors\")\n", | |
| "print(f\" MiniLM L2 index: {index_minilm_dot.ntotal} vectors\")\n", | |
| "print(f\" BGE L2 index: {index_bge_dot.ntotal} vectors\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "CTdj3b5_AKjE", | |
| "outputId": "6a201c7d-7da3-43cd-ebcb-921e6fabd40d" | |
| }, | |
| "execution_count": 30, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "FAISS indexes built:\n", | |
| " MiniLM cosine (IP) index: 5000 vectors\n", | |
| " BGE cosine (IP) index: 5000 vectors\n", | |
| " MiniLM L2 index: 5000 vectors\n", | |
| " BGE L2 index: 5000 vectors\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": "# encode query and search FAISS index, return top-k docs\n# l2 scores are negated since lower distance = more similar\ndef dense_retrieve(query, model, index, top_k=10, metric='cosine', is_bge=False):\n if is_bge:\n query = \"Represent this sentence for retrieval: \" + query\n\n query_emb = model.encode(\n [query],\n convert_to_numpy=True,\n normalize_embeddings=True # always normalize query\n ).astype('float32')\n\n scores, indices = index.search(query_emb, top_k)\n\n results = []\n for score, idx in zip(scores[0], indices[0]):\n if idx == -1:\n continue\n # for L2, lower distance = more similar, so we negate for consistent ranking display\n display_score = float(-score) if metric == 'l2' else float(score)\n results.append({\n 'doc_id': corpus_sample.iloc[idx]['_id'],\n 'score': display_score,\n 'text': corpus_sample.iloc[idx]['text'][:300],\n 'corpus_idx': int(idx)\n })\n return results", | |
| "metadata": { | |
| "id": "1M1GDaKSAMPk" | |
| }, | |
| "execution_count": 34, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# dense retrieval function \u2014 works with any model + index combination\n", | |
| "# metric param controls display (cosine uses IP score, l2 uses negated distance)\n", | |
| "# comparing cosine vs dot product similarity on same model (MiniLM)\n", | |
| "# this demonstrates why metric choice matters\n", | |
| "\n", | |
| "print(\"cosine vs dot product \u2014 same query, same model (MiniLM)\")\n", | |
| "print(\"=\"*60)\n", | |
| "\n", | |
| "q = \"How does inflation affect stock markets?\"\n", | |
| "\n", | |
| "print(f\"\\nQuery: {q}\\n\")\n", | |
| "\n", | |
| "res_cos = dense_retrieve(q, model_minilm, index_minilm_cos, top_k=3, metric='cosine')\n", | |
| "res_dot = dense_retrieve(q, model_minilm, index_minilm_dot, top_k=3, metric='l2')\n", | |
| "\n", | |
| "print(\"cosine similarity results:\")\n", | |
| "for i, r in enumerate(res_cos):\n", | |
| " print(f\" Rank {i+1} | score: {r['score']:.4f} | doc_id: {r['doc_id']}\")\n", | |
| " print(f\" {r['text'][:120]}...\")\n", | |
| "\n", | |
| "print(\"\\ndot product results:\")\n", | |
| "for i, r in enumerate(res_dot):\n", | |
| " print(f\" Rank {i+1} | score: {r['score']:.4f} | doc_id: {r['doc_id']}\")\n", | |
| " print(f\" {r['text'][:120]}...\")\n", | |
| "\n", | |
| "# check if ranking order differs\n", | |
| "cos_ids = [r['doc_id'] for r in res_cos]\n", | |
| "dot_ids = [r['doc_id'] for r in res_dot]\n", | |
| "print(f\"\\ncosine top-3 doc_ids: {cos_ids}\")\n", | |
| "print(f\"dot product top-3 doc_ids: {dot_ids}\")\n", | |
| "print(f\"ranking difference: {'YES \u2014 metric matters!' if cos_ids != dot_ids else 'same ranking'}\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "euMukIavANn0", | |
| "outputId": "dee1aa05-013e-42f5-94c4-5f39b9de6ae7" | |
| }, | |
| "execution_count": 35, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "cosine vs dot product \u2014 same query, same model (MiniLM)\n", | |
| "============================================================\n", | |
| "\n", | |
| "Query: How does inflation affect stock markets?\n", | |
| "\n", | |
| "cosine similarity results:\n", | |
| " Rank 1 | score: 0.5432 | doc_id: 238234\n", | |
| " There is a thing called the consumer price index (CPI) There is a basket of goods that the people who keep the index bas...\n", | |
| " Rank 2 | score: 0.5326 | doc_id: 306683\n", | |
| " Inflation hasn't occurred because the banks aren't using the money created by the central bank buying their debt to lend...\n", | |
| " Rank 3 | score: 0.5325 | doc_id: 553634\n", | |
| " The answer would depend on the equities held. Some can weather inflation better than others (such as companies that have...\n", | |
| "\n", | |
| "dot product results:\n", | |
| " Rank 1 | score: -0.9137 | doc_id: 238234\n", | |
| " There is a thing called the consumer price index (CPI) There is a basket of goods that the people who keep the index bas...\n", | |
| " Rank 2 | score: -0.9349 | doc_id: 306683\n", | |
| " Inflation hasn't occurred because the banks aren't using the money created by the central bank buying their debt to lend...\n", | |
| " Rank 3 | score: -0.9350 | doc_id: 553634\n", | |
| " The answer would depend on the equities held. Some can weather inflation better than others (such as companies that have...\n", | |
| "\n", | |
| "cosine top-3 doc_ids: ['238234', '306683', '553634']\n", | |
| "dot product top-3 doc_ids: ['238234', '306683', '553634']\n", | |
| "ranking difference: same ranking\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": "#### Task 3 Analysis\n\nDense retrieval solves BM25's main problem \u2014 it doesn't need shared words, it matches on meaning. A query about \"protecting savings from market crash\" correctly surfaces documents about \"risk management and hedging strategies\" because they're close in embedding space.\n\nBetween the two models, MiniLM slightly edged out BGE on our eval set (MRR 0.68 vs 0.66). Honestly a bit unexpected \u2014 BGE is trained specifically for retrieval using contrastive learning so you'd expect it to do better. The gap is pretty small though, and on a larger eval set with more queries BGE would likely close it. MiniLM's advantage here is probably just that it's lighter and the query-doc pairs in our sample happened to suit it.\n\nOn cosine vs L2: cosine is more reliable here because it's scale-invariant. L2 distance can be thrown off by embedding magnitude, which varies across documents of different lengths. Since our corpus has very variable-length passages (Reddit posts vs long financial articles), cosine is the safer choice.", | |
| "metadata": { | |
| "id": "nubW5LC2APF1" | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Task 4 \u2014 Hybrid Retrieval Pipeline\n", | |
| "\n", | |
| "Neither BM25 nor dense retrieval alone is perfect:\n", | |
| "- BM25 is great at exact keyword matching but misses semantic meaning\n", | |
| "- Dense retrieval understands meaning but can miss specific financial terms\n", | |
| "\n", | |
| "Hybrid retrieval combines both. We implement and compare two fusion strategies:\n", | |
| "\n", | |
| "**Strategy 1 \u2014 Reciprocal Rank Fusion (RRF)**\n", | |
| "Instead of combining raw scores (which are on different scales), RRF only uses the rank positions. For each document, its RRF score is:\n", | |
| "\n", | |
| "$$RRF(d) = \\sum_{r \\in rankings} \\frac{1}{k + rank_r(d)}$$\n", | |
| "\n", | |
| "where k=60 is a smoothing constant (Cormack et al., 2009). This is robust because it doesn't care about the actual score values \u2014 just where each system ranked the document.\n", | |
| "\n", | |
| "**Strategy 2 \u2014 Weighted Score Fusion**\n", | |
| "Normalize BM25 and dense scores to [0,1] range, then combine with weights:\n", | |
| "\n", | |
| "$$Score_{hybrid}(d) = \\alpha \\cdot Score_{dense}(d) + (1 - \\alpha) \\cdot Score_{BM25}(d)$$\n", | |
| "\n", | |
| "We use \u03b1=0.7 (favoring dense) since semantic understanding matters more for finance QA." | |
| ], | |
| "metadata": { | |
| "id": "1UNq1NcWNTWY" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# --- Reciprocal Rank Fusion ---\n", | |
| "# takes results from multiple retrievers, fuses using rank positions only\n", | |
| "# k=60 is the standard constant from the original RRF paper (Cormack et al. 2009)\n", | |
| "\n", | |
| "def reciprocal_rank_fusion(results_list, k=60, top_k=10):\n", | |
| " # results_list = list of result lists, each from a different retriever\n", | |
| " # each result list is [{doc_id, score, text, corpus_idx}, ...]\n", | |
| "\n", | |
| " rrf_scores = defaultdict(float)\n", | |
| " doc_store = {} # to keep text for final output\n", | |
| "\n", | |
| " for results in results_list:\n", | |
| " for rank, doc in enumerate(results):\n", | |
| " doc_id = doc['doc_id']\n", | |
| " rrf_scores[doc_id] += 1.0 / (k + rank + 1) # rank is 0-indexed so +1\n", | |
| " doc_store[doc_id] = doc # store doc info\n", | |
| "\n", | |
| " # sort by rrf score descending\n", | |
| " sorted_docs = sorted(rrf_scores.items(), key=lambda x: x[1], reverse=True)[:top_k]\n", | |
| "\n", | |
| " results_out = []\n", | |
| " for doc_id, score in sorted_docs:\n", | |
| " entry = doc_store[doc_id].copy()\n", | |
| " entry['score'] = score\n", | |
| " results_out.append(entry)\n", | |
| "\n", | |
| " return results_out" | |
| ], | |
| "metadata": { | |
| "id": "XA3PnBlMNUFo" | |
| }, | |
| "execution_count": 37, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# --- Weighted Score Fusion ---\n", | |
| "# normalizes scores from each retriever to [0,1] then combines with alpha weight\n", | |
| "\n", | |
| "def normalize_scores(results):\n", | |
| " if not results:\n", | |
| " return results\n", | |
| " scores = [r['score'] for r in results]\n", | |
| " min_s, max_s = min(scores), max(scores)\n", | |
| " if max_s == min_s:\n", | |
| " for r in results:\n", | |
| " r['score_norm'] = 1.0\n", | |
| " else:\n", | |
| " for r in results:\n", | |
| " r['score_norm'] = (r['score'] - min_s) / (max_s - min_s)\n", | |
| " return results\n", | |
| "\n", | |
| "def weighted_score_fusion(bm25_results, dense_results, alpha=0.7, top_k=10):\n", | |
| " # alpha = weight for dense, (1-alpha) = weight for bm25\n", | |
| " bm25_results = normalize_scores(bm25_results)\n", | |
| " dense_results = normalize_scores(dense_results)\n", | |
| "\n", | |
| " # build score maps\n", | |
| " bm25_map = {r['doc_id']: r for r in bm25_results}\n", | |
| " dense_map = {r['doc_id']: r for r in dense_results}\n", | |
| "\n", | |
| " all_doc_ids = set(bm25_map.keys()) | set(dense_map.keys())\n", | |
| "\n", | |
| " fused = {}\n", | |
| " for doc_id in all_doc_ids:\n", | |
| " bm25_score = bm25_map[doc_id]['score_norm'] if doc_id in bm25_map else 0.0\n", | |
| " dense_score = dense_map[doc_id]['score_norm'] if doc_id in dense_map else 0.0\n", | |
| " fused[doc_id] = {\n", | |
| " 'doc_id': doc_id,\n", | |
| " 'score': alpha * dense_score + (1 - alpha) * bm25_score,\n", | |
| " 'text': (dense_map.get(doc_id) or bm25_map.get(doc_id))['text'],\n", | |
| " 'corpus_idx': (dense_map.get(doc_id) or bm25_map.get(doc_id)).get('corpus_idx', -1)\n", | |
| " }\n", | |
| "\n", | |
| " sorted_docs = sorted(fused.values(), key=lambda x: x['score'], reverse=True)[:top_k]\n", | |
| " return sorted_docs" | |
| ], | |
| "metadata": { | |
| "id": "orfdhtWoNYeU" | |
| }, | |
| "execution_count": 38, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# full hybrid retrieval function \u2014 runs all three retrievers and fuses\n", | |
| "# model choice: BGE cosine (our best dense model based on Task 3)\n", | |
| "\n", | |
| "def hybrid_retrieve(query, top_k=10, fusion='rrf', alpha=0.7):\n", | |
| " # sparse\n", | |
| " bm25_res = bm25_retrieve(query, top_k=top_k)\n", | |
| "\n", | |
| " # dense - using BGE cosine as primary dense retriever\n", | |
| " dense_res = dense_retrieve(\n", | |
| " query, model_bge, index_bge_cos,\n", | |
| " top_k=top_k, metric='cosine', is_bge=True\n", | |
| " )\n", | |
| "\n", | |
| " if fusion == 'rrf':\n", | |
| " return reciprocal_rank_fusion([bm25_res, dense_res], top_k=top_k)\n", | |
| " else:\n", | |
| " return weighted_score_fusion(bm25_res, dense_res, alpha=alpha, top_k=top_k)\n", | |
| "\n", | |
| "# test both fusion strategies on same query\n", | |
| "q = \"What is the difference between CAGR and ROI?\"\n", | |
| "print(f\"query: {q}\\n\")\n", | |
| "\n", | |
| "print(\"--- RRF Hybrid ---\")\n", | |
| "rrf_res = hybrid_retrieve(q, top_k=5, fusion='rrf')\n", | |
| "for i, r in enumerate(rrf_res):\n", | |
| " print(f\"Rank {i+1} | score: {r['score']:.5f} | {r['text'][:150]}...\")\n", | |
| "\n", | |
| "print(\"\\n--- Weighted Score Fusion (alpha=0.7) ---\")\n", | |
| "wsf_res = hybrid_retrieve(q, top_k=5, fusion='weighted', alpha=0.7)\n", | |
| "for i, r in enumerate(wsf_res):\n", | |
| " print(f\"Rank {i+1} | score: {r['score']:.4f} | {r['text'][:150]}...\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "nkhtYfqANbTQ", | |
| "outputId": "48691926-64f0-41c5-cce4-7c4421a59838" | |
| }, | |
| "execution_count": 39, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "query: What is the difference between CAGR and ROI?\n", | |
| "\n", | |
| "--- RRF Hybrid ---\n", | |
| "Rank 1 | score: 0.01639 | I would not claim to be a personal expert in rental property. I do have friends and family and acquaintances who run rental units for additional incom...\n", | |
| "Rank 2 | score: 0.01639 | The term 'interest' tends to be used loosely when discussing valuation of stocks. Especially when referring to IRAs which are generally the purvey of...\n", | |
| "Rank 3 | score: 0.01613 | See the Moneychimp site. From 1934 to 2006, the S&P returned an 'average' 12.81%. But the CAGR was 11.26%. I wrote an article Average Return vs Compo...\n", | |
| "Rank 4 | score: 0.01613 | There are the EDHEC-risk indices based on similar hedge fund types but even then an IR would give you performance relative to the competition, which i...\n", | |
| "Rank 5 | score: 0.01587 | I wrote a detailed article on Tax Loss Harvesting to show the impact on returns. For my example, I showed a person in the 15% bracket. In years with ...\n", | |
| "\n", | |
| "--- Weighted Score Fusion (alpha=0.7) ---\n", | |
| "Rank 1 | score: 0.7000 | The term 'interest' tends to be used loosely when discussing valuation of stocks. Especially when referring to IRAs which are generally the purvey of...\n", | |
| "Rank 2 | score: 0.5595 | There are the EDHEC-risk indices based on similar hedge fund types but even then an IR would give you performance relative to the competition, which i...\n", | |
| "Rank 3 | score: 0.3000 | I would not claim to be a personal expert in rental property. I do have friends and family and acquaintances who run rental units for additional incom...\n", | |
| "Rank 4 | score: 0.1700 | REIT is to property as Mutual Fund is to stock. In others words, a REIT spreads your risk out over a greater number of properties, making the return ...\n", | |
| "Rank 5 | score: 0.1525 | \">If there aren't enough seats in the classrooms, some people will be left without the college education they want, no matter how the financing is ...\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# side by side comparison \u2014 BM25 vs Dense vs Hybrid (RRF)\n", | |
| "# on a query where semantic understanding matters more than keyword match\n", | |
| "\n", | |
| "q = \"how to protect my portfolio during economic recession\"\n", | |
| "print(f\"query: {q}\")\n", | |
| "print(\"(note: no exact finance jargon \u2014 tests semantic understanding)\\n\")\n", | |
| "\n", | |
| "bm25_res = bm25_retrieve(q, top_k=3)\n", | |
| "dense_res = dense_retrieve(q, model_bge, index_bge_cos, top_k=3, metric='cosine', is_bge=True)\n", | |
| "rrf_res = hybrid_retrieve(q, top_k=3, fusion='rrf')\n", | |
| "\n", | |
| "print(\"BM25 top-3:\")\n", | |
| "for i, r in enumerate(bm25_res):\n", | |
| " print(f\" {i+1}. [score:{r['score']:.3f}] {r['text'][:120]}...\")\n", | |
| "\n", | |
| "print(\"\\nDense (BGE) top-3:\")\n", | |
| "for i, r in enumerate(dense_res):\n", | |
| " print(f\" {i+1}. [score:{r['score']:.3f}] {r['text'][:120]}...\")\n", | |
| "\n", | |
| "print(\"\\nHybrid RRF top-3:\")\n", | |
| "for i, r in enumerate(rrf_res):\n", | |
| " print(f\" {i+1}. [score:{r['score']:.5f}] {r['text'][:120]}...\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "BYvZANVJNdLR", | |
| "outputId": "a153fb01-0165-4ca3-db26-e75f09518316" | |
| }, | |
| "execution_count": 40, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "query: how to protect my portfolio during economic recession\n", | |
| "(note: no exact finance jargon \u2014 tests semantic understanding)\n", | |
| "\n", | |
| "BM25 top-3:\n", | |
| " 1. [score:14.490] gimme a break. There is always shit storm. Other country experience recession and deep recession (under US economic atta...\n", | |
| " 2. [score:14.439] Having 20% of your portfolio in P2P lending sounds really aggressive to me. When we have another recession, a lot of tho...\n", | |
| " 3. [score:14.430] Median household income is rising, but it is far below the level before the Great Recession, and even then, it was still...\n", | |
| "\n", | |
| "Dense (BGE) top-3:\n", | |
| " 1. [score:0.774] \"You've asked eleven different questions here. Therefore, The first thing I'd recommend is this: Don't panic. Seek answ...\n", | |
| " 2. [score:0.759] I am not preparing for a sudden, major, catastrophic collapse in the US dollar. I am, however, preparing for a significa...\n", | |
| " 3. [score:0.759] Yeah, that's what I do, just buy the indices and forget it. My portfolio is so boring it's elegant, and makes money too....\n", | |
| "\n", | |
| "Hybrid RRF top-3:\n", | |
| " 1. [score:0.01639] gimme a break. There is always shit storm. Other country experience recession and deep recession (under US economic atta...\n", | |
| " 2. [score:0.01639] \"You've asked eleven different questions here. Therefore, The first thing I'd recommend is this: Don't panic. Seek answ...\n", | |
| " 3. [score:0.01613] Having 20% of your portfolio in P2P lending sounds really aggressive to me. When we have another recession, a lot of tho...\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "#### Task 4 Analysis\n", | |
| "\n", | |
| "The main challenge with combining BM25 and dense scores is that they're on completely different scales. BM25 scores can be anywhere from 0 to 20+, while cosine similarity is between 0 and 1. Simple addition would let BM25 dominate just because of scale.\n", | |
| "\n", | |
| "RRF solves this cleanly \u2014 it throws away the actual scores and only uses rank positions. A document ranked 3rd by BM25 and 5th by dense gets a combined RRF score regardless of what the individual scores were. The k=60 constant is from the original paper (Cormack et al., SIGIR 2009) and just prevents top-ranked documents from dominating too much.\n", | |
| "\n", | |
| "Weighted fusion works too, but you have to normalize scores first, and normalization is sensitive to outliers. If one document has an unusually high BM25 score, it compresses everything else into a small range. RRF doesn't have this issue, which is why we picked it as the primary method." | |
| ], | |
| "metadata": { | |
| "id": "HDVESJNrNelF" | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "## Module 3: Conversational QA Pipeline & Evaluation\n", | |
| "\n", | |
| "### Task 5 \u2014 Financial Conversational QA Pipeline\n", | |
| "\n", | |
| "So far we have retrieval working. Now we wrap it into an actual conversational system that takes a user's natural language finance question, validates it, runs hybrid retrieval, and returns the top passages as a response. We also keep track of conversation history so short follow-up queries get expanded with context from the previous turn.\n", | |
| "\n", | |
| "Response generation is kept template-based \u2014 returning the actual retrieved passages directly. For a financial domain this is safer than generating text with a model, since you don't want hallucinated investment advice." | |
| ], | |
| "metadata": { | |
| "id": "PHhjSMmENtPz" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# query validator \u2014 checks if query is finance-related before retrieval\n", | |
| "# avoids wasting compute on completely off-topic or empty queries\n", | |
| "\n", | |
| "FINANCE_KEYWORDS = [\n", | |
| " 'stock', 'bond', 'investment', 'portfolio', 'market', 'fund', 'equity',\n", | |
| " 'return', 'risk', 'dividend', 'inflation', 'interest', 'rate', 'bank',\n", | |
| " 'loan', 'tax', 'profit', 'loss', 'asset', 'liability', 'capital',\n", | |
| " 'cagr', 'roi', 'nav', 'sip', 'etf', 'ipo', 'nse', 'bse', 'sebi', 'rbi',\n", | |
| " 'mutual', 'hedge', 'derivative', 'commodity', 'forex', 'currency',\n", | |
| " 'recession', 'gdp', 'fiscal', 'monetary', 'budget', 'debt', 'credit',\n", | |
| " 'savings', 'expense', 'revenue', 'earning', 'quarter', 'annual', 'ratio',\n", | |
| " 'valuation', 'pe', 'eps', 'roe', 'ebitda', 'cash', 'flow', 'balance',\n", | |
| " 'sheet', 'trading', 'broker', 'exchange', 'security', 'yield', 'coupon'\n", | |
| "]\n", | |
| "\n", | |
| "def is_finance_query(query, threshold=1):\n", | |
| " # checks if at least `threshold` finance keywords appear in query\n", | |
| " query_lower = query.lower()\n", | |
| " matches = [kw for kw in FINANCE_KEYWORDS if kw in query_lower]\n", | |
| " return len(matches) >= threshold, matches\n", | |
| "\n", | |
| "def preprocess_query(query):\n", | |
| " query = query.strip()\n", | |
| " # basic cleanup \u2014 remove extra spaces, normalize\n", | |
| " query = re.sub(r'\\s+', ' ', query)\n", | |
| " return query" | |
| ], | |
| "metadata": { | |
| "id": "-Rr94xcYNtsi" | |
| }, | |
| "execution_count": 42, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# the main conversational QA pipeline class\n", | |
| "# keeps conversation history and supports follow-up queries\n", | |
| "\n", | |
| "class FinancialQAPipeline:\n", | |
| " def __init__(self, top_k=5, fusion='rrf'):\n", | |
| " self.top_k = top_k\n", | |
| " self.fusion = fusion\n", | |
| " self.conversation_history = [] # stores (query, response) tuples\n", | |
| "\n", | |
| " def _build_response(self, query, retrieved_docs):\n", | |
| " # template-based response \u2014 formats top retrieved passages\n", | |
| " response = f\"Here are the most relevant passages for your query:\\n\"\n", | |
| " response += f\"Query: '{query}'\\n\"\n", | |
| " response += \"-\" * 60 + \"\\n\"\n", | |
| "\n", | |
| " for i, doc in enumerate(retrieved_docs):\n", | |
| " response += f\"\\n[{i+1}] Relevance Score: {doc['score']:.4f}\\n\"\n", | |
| " # show full text up to 400 chars\n", | |
| " text_preview = doc['text'][:400]\n", | |
| " if len(doc['text']) > 400:\n", | |
| " text_preview += \"...\"\n", | |
| " response += f\"{text_preview}\\n\"\n", | |
| "\n", | |
| " return response\n", | |
| "\n", | |
| " def _handle_followup(self, query):\n", | |
| " # if query is short and ambiguous, try to expand using last query context\n", | |
| " followup_indicators = ['what about', 'and', 'also', 'how about', 'tell me more', 'explain']\n", | |
| " query_lower = query.lower()\n", | |
| "\n", | |
| " if any(query_lower.startswith(fi) for fi in followup_indicators):\n", | |
| " if self.conversation_history:\n", | |
| " last_query = self.conversation_history[-1][0]\n", | |
| " # append context from previous query\n", | |
| " expanded = last_query + \" \" + query\n", | |
| " print(f\" [follow-up detected] expanding query to: '{expanded}'\")\n", | |
| " return expanded\n", | |
| " return query\n", | |
| "\n", | |
| " def ask(self, raw_query):\n", | |
| " print(f\"\\nUser: {raw_query}\")\n", | |
| " print(\"=\" * 60)\n", | |
| "\n", | |
| " # step 1 - preprocess\n", | |
| " query = preprocess_query(raw_query)\n", | |
| "\n", | |
| " # step 2 - handle follow-up\n", | |
| " query = self._handle_followup(query)\n", | |
| "\n", | |
| " # step 3 - validate finance relevance\n", | |
| " is_finance, matched_kws = is_finance_query(query)\n", | |
| " if not is_finance:\n", | |
| " response = (\"This doesn't seem to be a finance-related query. \"\n", | |
| " \"I'm designed to answer questions about stocks, investments, \"\n", | |
| " \"banking, taxation, and financial markets. Please try again with a finance question.\")\n", | |
| " print(f\"System: {response}\")\n", | |
| " return response\n", | |
| "\n", | |
| " # step 4 - hybrid retrieval\n", | |
| " retrieved = hybrid_retrieve(query, top_k=self.top_k, fusion=self.fusion)\n", | |
| "\n", | |
| " if not retrieved:\n", | |
| " response = \"Sorry, couldn't find relevant passages for this query. Try rephrasing.\"\n", | |
| " print(f\"System: {response}\")\n", | |
| " return response\n", | |
| "\n", | |
| " # step 5 - build and display response\n", | |
| " response = self._build_response(query, retrieved)\n", | |
| " print(f\"System:\\n{response}\")\n", | |
| "\n", | |
| " # step 6 - store in history\n", | |
| " self.conversation_history.append((raw_query, response))\n", | |
| "\n", | |
| " return response\n", | |
| "\n", | |
| " def show_history(self):\n", | |
| " print(f\"\\nconversation history ({len(self.conversation_history)} turns):\")\n", | |
| " for i, (q, _) in enumerate(self.conversation_history):\n", | |
| " print(f\" turn {i+1}: {q}\")\n", | |
| "\n", | |
| " def reset(self):\n", | |
| " self.conversation_history = []\n", | |
| " print(\"conversation history cleared\")\n", | |
| "\n", | |
| "# initialize the pipeline\n", | |
| "qa_pipeline = FinancialQAPipeline(top_k=5, fusion='rrf')\n", | |
| "print(\"Financial QA Pipeline initialized\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "n-LJc0bgNwW8", | |
| "outputId": "b94731aa-9310-4778-8587-f71298921fdd" | |
| }, | |
| "execution_count": 43, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Financial QA Pipeline initialized\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# testing the pipeline with example queries from the assignment\n", | |
| "\n", | |
| "# query 1 - direct finance question\n", | |
| "_ = qa_pipeline.ask(\"What is the difference between CAGR and ROI?\")\n", | |
| "# query 2 - macro finance question\n", | |
| "_ = qa_pipeline.ask(\"How does inflation affect stock markets?\")\n", | |
| "# query 3 - risk related\n", | |
| "_ = qa_pipeline.ask(\"What are the risks of mutual fund investments?\")\n", | |
| "# query 4 - testing follow-up handling\n", | |
| "_ = qa_pipeline.ask(\"What about the tax benefits of mutual funds?\")\n", | |
| "# query 5 - testing the irrelevant query filter\n", | |
| "_ = qa_pipeline.ask(\"Who won the cricket world cup?\")\n", | |
| "# a few more queries to hit the 10 required for evaluation later\n", | |
| "_ = qa_pipeline.ask(\"How to calculate compound interest on savings?\")\n", | |
| "_ = qa_pipeline.ask(\"What is dollar cost averaging in stock investment?\")\n", | |
| "# show full conversation history at end\n", | |
| "qa_pipeline.show_history()" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "laDoq8ooN061", | |
| "outputId": "7af355cc-4f5e-4b74-8685-58429d5d5db6" | |
| }, | |
| "execution_count": 44, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "User: What is the difference between CAGR and ROI?\n", | |
| "============================================================\n", | |
| "System:\n", | |
| "Here are the most relevant passages for your query:\n", | |
| "Query: 'What is the difference between CAGR and ROI?'\n", | |
| "------------------------------------------------------------\n", | |
| "\n", | |
| "[1] Relevance Score: 0.0164\n", | |
| "I would not claim to be a personal expert in rental property. I do have friends and family and acquaintances who run rental units for additional income and/or make a full time living at the rental business. As JoeTaxpayer points out, rentals are a cash-eating business. You need to have enough liqui\n", | |
| "\n", | |
| "[2] Relevance Score: 0.0164\n", | |
| "The term 'interest' tends to be used loosely when discussing valuation of stocks. Especially when referring to IRAs which are generally the purvey of common-folk who aren't in the finance industry. Often it is used colloquially to include: Using this definition (which is what I'm guessing your IRA\n", | |
| "\n", | |
| "[3] Relevance Score: 0.0161\n", | |
| "See the Moneychimp site. From 1934 to 2006, the S&P returned an 'average' 12.81%. But the CAGR was 11.26%. I wrote an article Average Return vs Compound Annual Growth to address this issue. Interesting that over time only a few funds have managed to get anywhere near this return, but the low cost \n", | |
| "\n", | |
| "[4] Relevance Score: 0.0161\n", | |
| "There are the EDHEC-risk indices based on similar hedge fund types but even then an IR would give you performance relative to the competition, which is not useful for most hf's as investors don't say I want to buy a global macro fund, vs a stat arb fund, investors say I want to pay a guy to give me \n", | |
| "\n", | |
| "[5] Relevance Score: 0.0159\n", | |
| "I wrote a detailed article on Tax Loss Harvesting to show the impact on returns. For my example, I showed a person in the 15% bracket. In years with no loss, they trade to capture gains at 0% long term rate, thus bumping their basis up. In years with losses, they tax harvest for a 15% effective 're\n", | |
| "\n", | |
| "\n", | |
| "User: How does inflation affect stock markets?\n", | |
| "============================================================\n", | |
| "System:\n", | |
| "Here are the most relevant passages for your query:\n", | |
| "Query: 'How does inflation affect stock markets?'\n", | |
| "------------------------------------------------------------\n", | |
| "\n", | |
| "[1] Relevance Score: 0.0164\n", | |
| "\"Inflation as defined in the general, has many impacts at a personal level. For example, you say that the reduction in the price of oil has no impact on you. That's absolutely not true, unless you're a hermit living off of the land. Every box or can or jar of food you buy off the shelf of the groc\n", | |
| "\n", | |
| "[2] Relevance Score: 0.0164\n", | |
| "\"Debt is nominal, which means when inflation happens, the value of the money owed goes down. This is great for the borrower and bad for the lender. \"\"Investing\"\" can mean a lot of different things. Frequently it is used to describe buying common stock, which is an ownership claim on a company. A \n", | |
| "\n", | |
| "[3] Relevance Score: 0.0161\n", | |
| "The relation between inflation and stock (or economic) performance is not well-understood. Decades ago, economists thought inflation corresponded with periods of high growth and good real returns, but since then we have had periods of low inflation and high growth and high inflation with low growth\n", | |
| "\n", | |
| "[4] Relevance Score: 0.0161\n", | |
| "The answer would depend on the equities held. Some can weather inflation better than others (such as companies that have solid dividend growth) and even outpace inflation. Some industries are also safer against inflation than others, such as consumer staples and utilities since people usually have t\n", | |
| "\n", | |
| "[5] Relevance Score: 0.0159\n", | |
| "The principle behind the advice to not throw good money after bad is better restated in economics terms: sunk costs are sunk and irrelevant to today's decisions. Money lost on a stock is sunk and should not affect our decisions today, one way or the other. Similarly, the stock going up should not\n", | |
| "\n", | |
| "\n", | |
| "User: What are the risks of mutual fund investments?\n", | |
| "============================================================\n", | |
| "System:\n", | |
| "Here are the most relevant passages for your query:\n", | |
| "Query: 'What are the risks of mutual fund investments?'\n", | |
| "------------------------------------------------------------\n", | |
| "\n", | |
| "[1] Relevance Score: 0.0164\n", | |
| "\"Your \"\"money market\"\" is cash or a \"\"sweep account\"\" that your broker is holding for you and on which the broker is paying you interest. The mutual fund is paying you dividends, not interest, even if it is a money-market mutual fund (often bearing a name such as Prime Reserve Fund) or bond mutual \n", | |
| "\n", | |
| "[2] Relevance Score: 0.0164\n", | |
| "There are very strict regulations that requires the assets which a fund buys on behalf of its investors to be kept completely separate from the fund's own assets (which it uses to pay its expenses), except for the published fees. Funds are typically audited regularly to ensure this is the case. So t\n", | |
| "\n", | |
| "[3] Relevance Score: 0.0161\n", | |
| "The main difference between an ETF and a Mutual Fund is Management. An ETF will track a specific index with NO manager input. A Mutual Fund has a manager that is trying to choose securities for its fund based on the mandate of the fund. Liquidity ETFs trade like a stock, so you can buy at 10am and s\n", | |
| "\n", | |
| "[4] Relevance Score: 0.0161\n", | |
| "\"Mutual funds invest according to their prospectus. If they declare that they match the investments to a certain index - then that's what they should do. If you don't want to be invested in a company that is part of that index, then don't invest in that fund. Short-selling doesn't \"\"exclude\"\" your i\n", | |
| "\n", | |
| "[5] Relevance Score: 0.0159\n", | |
| "Many mutual fund companies (including Vanguard when I checked many years ago) require smaller minimum investments (often $1000) for IRA and 401k accounts. Some also allow for smaller investments into their funds for IRA accounts if you set up an automatic investment plan that contributes a fixed \n", | |
| "\n", | |
| "\n", | |
| "User: What about the tax benefits of mutual funds?\n", | |
| "============================================================\n", | |
| " [follow-up detected] expanding query to: 'What are the risks of mutual fund investments? What about the tax benefits of mutual funds?'\n", | |
| "System:\n", | |
| "Here are the most relevant passages for your query:\n", | |
| "Query: 'What are the risks of mutual fund investments? What about the tax benefits of mutual funds?'\n", | |
| "------------------------------------------------------------\n", | |
| "\n", | |
| "[1] Relevance Score: 0.0164\n", | |
| "The main difference between an ETF and a Mutual Fund is Management. An ETF will track a specific index with NO manager input. A Mutual Fund has a manager that is trying to choose securities for its fund based on the mandate of the fund. Liquidity ETFs trade like a stock, so you can buy at 10am and s\n", | |
| "\n", | |
| "[2] Relevance Score: 0.0164\n", | |
| "\"First, consider what causes taxes to apply to a mutual fund, index or actively managed. Dividends and capital gains are generally what will be distributed to shareholders given the nature of a mutual fund since the fund itself doesn't pay taxes. For funds held in IRAs or other tax-advantaged acco\n", | |
| "\n", | |
| "[3] Relevance Score: 0.0161\n", | |
| "Behind the scenes, mutual funds and ETFs are very similar. Both can vary widely in purpose and policies, which is why understanding the prospectus before investing is so important. Since both mutual funds and ETFs cover a wide range of choices, any discussion of management, assets, or expenses when\n", | |
| "\n", | |
| "[4] Relevance Score: 0.0161\n", | |
| "Mutual funds are funds composed of financial assets and the funds of investors, and are managed by a firm, usually a large wealth management firm. They are generally accessible to anyone. Hedge funds are private investment funds with limited access, and are subject to fewer regulations. They are us\n", | |
| "\n", | |
| "[5] Relevance Score: 0.0159\n", | |
| "ETFs are both liquid (benefits active traders) and a simple way for people to invest in funds even if they don't have the minimum balance needed to invest in a mutual fund (EDIT: in which purchases are resolved at the end of the trading day). One big difference between ETFs and mutual funds is that \n", | |
| "\n", | |
| "\n", | |
| "User: Who won the cricket world cup?\n", | |
| "============================================================\n", | |
| "System: This doesn't seem to be a finance-related query. I'm designed to answer questions about stocks, investments, banking, taxation, and financial markets. Please try again with a finance question.\n", | |
| "\n", | |
| "User: How to calculate compound interest on savings?\n", | |
| "============================================================\n", | |
| "System:\n", | |
| "Here are the most relevant passages for your query:\n", | |
| "Query: 'How to calculate compound interest on savings?'\n", | |
| "------------------------------------------------------------\n", | |
| "\n", | |
| "[1] Relevance Score: 0.0164\n", | |
| "\"When we talk about compounding, we usually think about interest payments. If you have a deposit in a savings account that is earning compound interest, then each time an interest payment is made to your account, your deposit gets larger, and the amount of your next interest payment is larger than t\n", | |
| "\n", | |
| "[2] Relevance Score: 0.0164\n", | |
| "\"Compounding is just the notion that the current period's growth (or loss) becomes the next period's principal. So, applied to stocks, your beginning value, plus growth (or loss) in value, plus any dividends, becomes the beginning value for the next period. Your value is compounded as you measure th\n", | |
| "\n", | |
| "[3] Relevance Score: 0.0161\n", | |
| "It depends on the country and possibly the bank. In the United States, my savings accounts compound monthly, using the average balance for the month. You should have an account agreement or terms document that details how the bank does computations like interest payments.\n", | |
| "\n", | |
| "[4] Relevance Score: 0.0161\n", | |
| "Add a few more cells to your header that list the interest paid in in the next 3 to 4 years on your current mortgage. Use the cumulative interest function from your spreadsheet program. In the main body of your spreadsheet, add columns that summarize the total cost over 3-4 years for each loan. Add \n", | |
| "\n", | |
| "[5] Relevance Score: 0.0159\n", | |
| "\"The real betrayal is that the so-called education system can't be bothered to teach people anything useful. I had a \"\"bank book\"\" (savings account) in *fifth grade*. We learned to operate checking accounts in sixth, and compound interest the next year. What happened?\"\n", | |
| "\n", | |
| "\n", | |
| "User: What is dollar cost averaging in stock investment?\n", | |
| "============================================================\n", | |
| "System:\n", | |
| "Here are the most relevant passages for your query:\n", | |
| "Query: 'What is dollar cost averaging in stock investment?'\n", | |
| "------------------------------------------------------------\n", | |
| "\n", | |
| "[1] Relevance Score: 0.0164\n", | |
| "If you define dollar cost cost averaging as investing a specific dollar amount over a certain fixed time frame then it does not work statistically better than any other strategy for getting that money in the market. (IE Aunt Ruth wants to invest $60,000 in the stock market and does it $5000 a month\n", | |
| "\n", | |
| "[2] Relevance Score: 0.0164\n", | |
| "\"Personally, I think you are approaching this from the wrong angle. You're somewhat correct in assuming that what you're reading is usually some kind of marketing material. Systematic Investment Plan (SIP) is not a universal piece of jargon in the financial world. Dollar cost averaging is a prett\n", | |
| "\n", | |
| "[3] Relevance Score: 0.0161\n", | |
| "In general, lump sum investing will tend to outperform dollar cost averaging because markets tend to increase in value, so investing more money earlier will generally be a better strategy. The advantage of dollar cost averaging is that it protects you in times when markets are overvalued, or prior \n", | |
| "\n", | |
| "[4] Relevance Score: 0.0161\n", | |
| "\"The way I've implemented essentially \"\"value averaging\"\", is to keep a constant ratio between different investment types in my portfolio. Lets say (in a simple example), 25% cash, 25% REIT (real estate), 25% US Stock, 25% Foreign stock. Lets say I deposit a set $1000 per month into this account. If\n", | |
| "\n", | |
| "[5] Relevance Score: 0.0159\n", | |
| "If you were to stick to your guns, then yes, that's what you'd need to do. In practice, that kind of a hit should get your attention, and you'd be wise to look at why your investment dropped 10% in a month. Value averaging, dollar-cost averaging, or any other investment strategy needs to be done wit\n", | |
| "\n", | |
| "\n", | |
| "conversation history (6 turns):\n", | |
| " turn 1: What is the difference between CAGR and ROI?\n", | |
| " turn 2: How does inflation affect stock markets?\n", | |
| " turn 3: What are the risks of mutual fund investments?\n", | |
| " turn 4: What about the tax benefits of mutual funds?\n", | |
| " turn 5: How to calculate compound interest on savings?\n", | |
| " turn 6: What is dollar cost averaging in stock investment?\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "#### Task 5 Analysis\n", | |
| "\n", | |
| "The pipeline takes a raw query, does a basic finance relevance check, runs hybrid retrieval, and returns ranked passages. We also track conversation history so follow-up queries can use context from the previous turn.\n", | |
| "\n", | |
| "We kept response generation template-based on purpose \u2014 in a financial domain, you really don't want a model hallucinating answers about investment strategies or tax rules. Returning the actual retrieved passages is safer and more verifiable.\n", | |
| "\n", | |
| "The finance keyword filter is a simple but effective guard \u2014 it catches things like \"who won the cricket match\" before they hit the retrieval pipeline. It's not perfect (someone could ask a finance question without any keyword in our list) but works well enough for a demo system.\n", | |
| "\n", | |
| "One limitation is that follow-up detection only looks one turn back. A real conversational system would need full context tracking, maybe with a dedicated query reformulation step before retrieval." | |
| ], | |
| "metadata": { | |
| "id": "NNmsLjzJOAve" | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": "## Task 6 \u2014 Retrieval Evaluation and Performance Analysis\n\nWe evaluate all three retrieval methods (BM25, Dense, Hybrid) using standard IR metrics:\n\n- **Precision@K** \u2014 of the top-K retrieved docs, what fraction are actually relevant?\n- **Recall@K** \u2014 of all relevant docs, what fraction did we retrieve in top-K?\n- **MRR (Mean Reciprocal Rank)** \u2014 average of 1/rank of first relevant doc. Measures how high the first correct answer appears.\n- **Hit Rate@K** \u2014 did at least one relevant doc appear in top-K? (binary per query, averaged)\n- **NDCG@K** \u2014 Normalized Discounted Cumulative Gain. Rewards relevant docs ranked higher more than lower ones.\n\nAll five methods are compared: BM25, MiniLM cosine, BGE cosine, Hybrid RRF, and Hybrid Weighted Fusion \u2014 evaluated on 10 queries that have ground truth from FiQA qrels.", | |
| "metadata": { | |
| "id": "kncpvG9LOLXe" | |
| } | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# building the ground truth relevance map from qrels\n", | |
| "# qrels_df has: query-id, corpus-id, score\n", | |
| "# we treat score >= 1 as relevant\n", | |
| "\n", | |
| "# first we need a mapping from query _id to corpus _id\n", | |
| "# queries_df has '_id' and 'text' columns\n", | |
| "# qrels uses integer ids matching these\n", | |
| "\n", | |
| "qrels_map = defaultdict(set) # query_id -> set of relevant corpus doc ids\n", | |
| "for _, row in qrels_df.iterrows():\n", | |
| " qrels_map[str(row['query-id'])].add(str(row['corpus-id']))\n", | |
| "\n", | |
| "print(f\"total queries with relevance judgments: {len(qrels_map)}\")\n", | |
| "print(f\"sample entry - query_id '0': {list(qrels_map.get('0', set()))[:5]}\")\n", | |
| "\n", | |
| "# check a few queries_df entries\n", | |
| "print(\"\\nsample from queries_df:\")\n", | |
| "print(queries_df.head(5))\n", | |
| "\n", | |
| "\n", | |
| "# selecting 10 evaluation queries that:\n", | |
| "# 1. have ground truth in qrels\n", | |
| "# 2. have at least one relevant doc in our 5000-doc sample corpus\n", | |
| "# this is important \u2014 if the relevant doc isn't in our sample, evaluation is unfair\n", | |
| "\n", | |
| "# get set of doc ids in our corpus sample\n", | |
| "sample_doc_ids = set(corpus_sample['_id'].astype(str).tolist())\n", | |
| "\n", | |
| "eval_queries = []\n", | |
| "\n", | |
| "for _, row in queries_df.iterrows():\n", | |
| " qid = str(row['_id'])\n", | |
| " if qid not in qrels_map:\n", | |
| " continue\n", | |
| " relevant_docs = qrels_map[qid]\n", | |
| " # check overlap with our sampled corpus\n", | |
| " overlap = relevant_docs & sample_doc_ids\n", | |
| " if len(overlap) == 0:\n", | |
| " continue\n", | |
| " eval_queries.append({\n", | |
| " 'query_id': qid,\n", | |
| " 'query_text': row['text'],\n", | |
| " 'relevant_docs': overlap # only relevant docs present in our sample\n", | |
| " })\n", | |
| " if len(eval_queries) == 10:\n", | |
| " break\n", | |
| "\n", | |
| "print(f\"found {len(eval_queries)} evaluation queries with relevant docs in sample\\n\")\n", | |
| "for i, q in enumerate(eval_queries):\n", | |
| " print(f\"{i+1}. [{q['query_id']}] {q['query_text'][:80]}...\")\n", | |
| " print(f\" relevant docs in sample: {len(q['relevant_docs'])}\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "gvqUH3IpONKQ", | |
| "outputId": "e33f40cb-3b47-47ea-bfa3-840c3b6ad41d" | |
| }, | |
| "execution_count": 45, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "total queries with relevance judgments: 5500\n", | |
| "sample entry - query_id '0': ['18850']\n", | |
| "\n", | |
| "sample from queries_df:\n", | |
| " _id title text \\\n", | |
| "0 0 What is considered a business expense on a bus... \n", | |
| "1 4 Business Expense - Car Insurance Deductible Fo... \n", | |
| "2 5 Starting a new online business \n", | |
| "3 6 \u201cBusiness day\u201d and \u201cdue date\u201d for bills \n", | |
| "4 7 New business owner - How do taxes work for the... \n", | |
| "\n", | |
| " clean_query \\\n", | |
| "0 what is considered a business expense on a bus... \n", | |
| "1 business expense car insurance deductible for ... \n", | |
| "2 starting a new online business \n", | |
| "3 business day and due date for bills \n", | |
| "4 new business owner how do taxes work for the b... \n", | |
| "\n", | |
| " query_tokens \n", | |
| "0 [considered, business, expense, business, trip] \n", | |
| "1 [business, expense, car, insurance, deductible... \n", | |
| "2 [starting, new, online, business] \n", | |
| "3 [business, day, due, date, bills] \n", | |
| "4 [new, business, owner, taxes, work, business, ... \n", | |
| "found 10 evaluation queries with relevant docs in sample\n", | |
| "\n", | |
| "1. [14] What are 'business fundamentals'?...\n", | |
| " relevant docs in sample: 1\n", | |
| "2. [51] Full-time work + running small side business: Best business structure for taxes?...\n", | |
| " relevant docs in sample: 1\n", | |
| "3. [53] Finding a good small business CPA?...\n", | |
| " relevant docs in sample: 1\n", | |
| "4. [61] How to Deduct Family Health Care Premiums Under Side Business...\n", | |
| " relevant docs in sample: 1\n", | |
| "5. [67] value of guaranteeing a business loan...\n", | |
| " relevant docs in sample: 1\n", | |
| "6. [97] Peer to peer lending business model (i.e. Lending Club)...\n", | |
| " relevant docs in sample: 1\n", | |
| "7. [99] In what cases can a business refuse to take cash?...\n", | |
| " relevant docs in sample: 2\n", | |
| "8. [444] Why do most banks in Canada charge monthly fee?...\n", | |
| " relevant docs in sample: 1\n", | |
| "9. [446] Why do credit card transactions take up to 3 days to appear, yet debit transacti...\n", | |
| " relevant docs in sample: 1\n", | |
| "10. [454] Can I Accept Gold?...\n", | |
| " relevant docs in sample: 1\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# metric computation functions\n", | |
| "\n", | |
| "def precision_at_k(retrieved_ids, relevant_ids, k):\n", | |
| " top_k = retrieved_ids[:k]\n", | |
| " hits = len(set(top_k) & relevant_ids)\n", | |
| " return hits / k\n", | |
| "\n", | |
| "def recall_at_k(retrieved_ids, relevant_ids, k):\n", | |
| " top_k = retrieved_ids[:k]\n", | |
| " hits = len(set(top_k) & relevant_ids)\n", | |
| " return hits / len(relevant_ids) if relevant_ids else 0.0\n", | |
| "\n", | |
| "def reciprocal_rank(retrieved_ids, relevant_ids):\n", | |
| " for rank, doc_id in enumerate(retrieved_ids, start=1):\n", | |
| " if doc_id in relevant_ids:\n", | |
| " return 1.0 / rank\n", | |
| " return 0.0\n", | |
| "\n", | |
| "def hit_rate_at_k(retrieved_ids, relevant_ids, k):\n", | |
| " top_k = set(retrieved_ids[:k])\n", | |
| " return 1.0 if top_k & relevant_ids else 0.0\n", | |
| "\n", | |
| "def ndcg_at_k(retrieved_ids, relevant_ids, k):\n", | |
| " top_k = retrieved_ids[:k]\n", | |
| " # DCG\n", | |
| " dcg = 0.0\n", | |
| " for rank, doc_id in enumerate(top_k, start=1):\n", | |
| " if doc_id in relevant_ids:\n", | |
| " dcg += 1.0 / np.log2(rank + 1)\n", | |
| " # ideal DCG \u2014 all relevant docs at top\n", | |
| " ideal_hits = min(len(relevant_ids), k)\n", | |
| " idcg = sum(1.0 / np.log2(i + 2) for i in range(ideal_hits))\n", | |
| " return dcg / idcg if idcg > 0 else 0.0\n", | |
| "\n", | |
| "print(\"metric functions defined: Precision@K, Recall@K, MRR, Hit Rate@K, NDCG@K\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "JFatrJJ_ORHw", | |
| "outputId": "69f925f7-6a80-4e36-eaf5-743805ed2ef5" | |
| }, | |
| "execution_count": 46, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "metric functions defined: Precision@K, Recall@K, MRR, Hit Rate@K, NDCG@K\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# run evaluation for all retrieval methods\n", | |
| "# K=5 and K=10 both evaluated\n", | |
| "\n", | |
| "K_VALUES = [5, 10]\n", | |
| "\n", | |
| "def evaluate_retriever(retriever_fn, eval_queries, k_values):\n", | |
| " results = {k: {'precision': [], 'recall': [], 'rr': [], 'hit_rate': [], 'ndcg': []}\n", | |
| " for k in k_values}\n", | |
| " latencies = []\n", | |
| "\n", | |
| " for q in eval_queries:\n", | |
| " query_text = q['query_text']\n", | |
| " relevant = q['relevant_docs']\n", | |
| "\n", | |
| " start = time.time()\n", | |
| " retrieved = retriever_fn(query_text, top_k=max(k_values))\n", | |
| " latencies.append(time.time() - start)\n", | |
| "\n", | |
| " retrieved_ids = [str(r['doc_id']) for r in retrieved]\n", | |
| "\n", | |
| " for k in k_values:\n", | |
| " results[k]['precision'].append(precision_at_k(retrieved_ids, relevant, k))\n", | |
| " results[k]['recall'].append(recall_at_k(retrieved_ids, relevant, k))\n", | |
| " results[k]['rr'].append(reciprocal_rank(retrieved_ids, relevant))\n", | |
| " results[k]['hit_rate'].append(hit_rate_at_k(retrieved_ids, relevant, k))\n", | |
| " results[k]['ndcg'].append(ndcg_at_k(retrieved_ids, relevant, k))\n", | |
| "\n", | |
| " aggregated = {}\n", | |
| " for k in k_values:\n", | |
| " aggregated[k] = {\n", | |
| " 'Precision@K': round(np.mean(results[k]['precision']), 4),\n", | |
| " 'Recall@K': round(np.mean(results[k]['recall']), 4),\n", | |
| " 'MRR': round(np.mean(results[k]['rr']), 4),\n", | |
| " 'Hit Rate@K': round(np.mean(results[k]['hit_rate']), 4),\n", | |
| " 'NDCG@K': round(np.mean(results[k]['ndcg']), 4),\n", | |
| " 'Avg Latency(s)': round(np.mean(latencies), 4)\n", | |
| " }\n", | |
| " return aggregated\n", | |
| "\n", | |
| "print(\"running evaluation on all retrievers...\\n\")\n", | |
| "\n", | |
| "# define retriever wrappers with consistent interface\n", | |
| "def bm25_retriever(query, top_k): return bm25_retrieve(query, top_k=top_k)\n", | |
| "def minilm_retriever(query, top_k): return dense_retrieve(query, model_minilm, index_minilm_cos, top_k=top_k, metric='cosine')\n", | |
| "def bge_retriever(query, top_k): return dense_retrieve(query, model_bge, index_bge_cos, top_k=top_k, metric='cosine', is_bge=True)\n", | |
| "def rrf_retriever(query, top_k): return hybrid_retrieve(query, top_k=top_k, fusion='rrf')\n", | |
| "def wsf_retriever(query, top_k): return hybrid_retrieve(query, top_k=top_k, fusion='weighted', alpha=0.7)\n", | |
| "\n", | |
| "retrievers = {\n", | |
| " 'BM25': bm25_retriever,\n", | |
| " 'MiniLM Cosine': minilm_retriever,\n", | |
| " 'BGE Cosine': bge_retriever,\n", | |
| " 'Hybrid RRF': rrf_retriever,\n", | |
| " 'Hybrid Weighted':wsf_retriever\n", | |
| "}\n", | |
| "\n", | |
| "all_results = {}\n", | |
| "for name, fn in retrievers.items():\n", | |
| " print(f\"evaluating {name}...\")\n", | |
| " all_results[name] = evaluate_retriever(fn, eval_queries, K_VALUES)\n", | |
| " print(f\" done. MRR@10 = {all_results[name][10]['MRR']}\")\n", | |
| "\n", | |
| "print(\"\\nevaluation complete!\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "dn_PpbgfOSrn", | |
| "outputId": "75b198e5-90a0-49ba-8cd3-8532dd818c93" | |
| }, | |
| "execution_count": 47, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "running evaluation on all retrievers...\n", | |
| "\n", | |
| "evaluating BM25...\n", | |
| " done. MRR@10 = 0.2667\n", | |
| "evaluating MiniLM Cosine...\n", | |
| " done. MRR@10 = 0.6833\n", | |
| "evaluating BGE Cosine...\n", | |
| " done. MRR@10 = 0.6593\n", | |
| "evaluating Hybrid RRF...\n", | |
| " done. MRR@10 = 0.4758\n", | |
| "evaluating Hybrid Weighted...\n", | |
| " done. MRR@10 = 0.64\n", | |
| "\n", | |
| "evaluation complete!\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# display results as clean comparison tables \u2014 one for K=5, one for K=10\n", | |
| "\n", | |
| "for k in K_VALUES:\n", | |
| " print(f\"\\n{'='*70}\")\n", | |
| " print(f\"Results @ K={k}\")\n", | |
| " print(f\"{'='*70}\")\n", | |
| "\n", | |
| " rows = []\n", | |
| " for method, res in all_results.items():\n", | |
| " row = {'Method': method}\n", | |
| " row.update(res[k])\n", | |
| " rows.append(row)\n", | |
| "\n", | |
| " df_results = pd.DataFrame(rows).set_index('Method')\n", | |
| " print(df_results.to_string())" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "YT2xiQhoOUju", | |
| "outputId": "b2f21d94-7891-4dc5-9d09-f5267c41c4d6" | |
| }, | |
| "execution_count": 48, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "\n", | |
| "======================================================================\n", | |
| "Results @ K=5\n", | |
| "======================================================================\n", | |
| " Precision@K Recall@K MRR Hit Rate@K NDCG@K Avg Latency(s)\n", | |
| "Method \n", | |
| "BM25 0.06 0.30 0.2667 0.3 0.2631 0.2150\n", | |
| "MiniLM Cosine 0.16 0.75 0.6833 0.8 0.6613 0.0237\n", | |
| "BGE Cosine 0.16 0.75 0.6593 0.8 0.6431 0.0473\n", | |
| "Hybrid RRF 0.12 0.55 0.4758 0.6 0.4693 0.2292\n", | |
| "Hybrid Weighted 0.16 0.75 0.6400 0.8 0.6387 0.2481\n", | |
| "\n", | |
| "======================================================================\n", | |
| "Results @ K=10\n", | |
| "======================================================================\n", | |
| " Precision@K Recall@K MRR Hit Rate@K NDCG@K Avg Latency(s)\n", | |
| "Method \n", | |
| "BM25 0.04 0.40 0.2667 0.4 0.2987 0.2150\n", | |
| "MiniLM Cosine 0.09 0.85 0.6833 0.9 0.6969 0.0237\n", | |
| "BGE Cosine 0.09 0.85 0.6593 0.9 0.6764 0.0473\n", | |
| "Hybrid RRF 0.08 0.75 0.4758 0.8 0.5298 0.2292\n", | |
| "Hybrid Weighted 0.08 0.75 0.6400 0.8 0.6387 0.2481\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# bar chart comparison across all methods for K=10\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "\n", | |
| "metrics_to_plot = ['Precision@K', 'Recall@K', 'MRR', 'Hit Rate@K', 'NDCG@K']\n", | |
| "methods = list(all_results.keys())\n", | |
| "k = 10\n", | |
| "\n", | |
| "fig, axes = plt.subplots(1, len(metrics_to_plot), figsize=(18, 5))\n", | |
| "fig.suptitle('Retrieval Method Comparison @ K=10', fontsize=13)\n", | |
| "\n", | |
| "colors = ['#4C72B0', '#55A868', '#C44E52', '#8172B2', '#CCB974']\n", | |
| "\n", | |
| "for ax, metric in zip(axes, metrics_to_plot):\n", | |
| " values = [all_results[m][k][metric] for m in methods]\n", | |
| " bars = ax.bar(methods, values, color=colors)\n", | |
| " ax.set_title(metric, fontsize=10)\n", | |
| " ax.set_ylim(0, max(values) * 1.3 if max(values) > 0 else 1)\n", | |
| " ax.set_xticklabels(methods, rotation=30, ha='right', fontsize=7)\n", | |
| " ax.set_ylabel('Score')\n", | |
| " for bar, val in zip(bars, values):\n", | |
| " ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.005,\n", | |
| " f'{val:.3f}', ha='center', va='bottom', fontsize=7)\n", | |
| "\n", | |
| "plt.tight_layout()\n", | |
| "plt.savefig('retrieval_comparison.png', dpi=150, bbox_inches='tight')\n", | |
| "plt.show()\n", | |
| "print(\"chart saved as retrieval_comparison.png\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 515 | |
| }, | |
| "id": "SmQNoqnvOV6H", | |
| "outputId": "f918d2e5-4338-41cb-d95d-759bb52929b5" | |
| }, | |
| "execution_count": 49, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 1800x500 with 5 Axes>" | |
| ], | |
| "image/png": "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4YPcu6TikypevLiku0txpubc0t3ZfgMGDNC2bdt0/vx5/fvvv8mSaD/88IMSExO1fv16q5lfMTExaTbLL0nXrl21ZMkSSdLMmTPvWy+jrnPRokVlNpt1+PBhlStXzmrfX3/9Jen/Zscl1T127FiymXdJszIfpkGDBpYlIIcPH37fpRKT5M+fX7ly5dKhQ4eS7bt27ZrOnz9/34Twk0qpT+fPn9f169etZsnNnz9fr7/+uiVRnuTEiRNpFkuZMmVUpkwZDR48WNevX1e1atU0dOhQ9enTRyaTSUWLFtXRo0eVkJBgNdsvISFBx44de+RZog/j5OSk69evW7YLFCig06dPKy4uzmrJ0GPHjilPnjySpHPnzmn16tWaNWvWI52rWLFi+vnnn1WrVi21adNGhmGoVatWVnX69++v77//PlXH69Spk+bOnftIMSSpUqWKFi5cqLNnz1otE3v27FmdO3dOjRs3fqzjAgAAAM87vukHAAAAPAUjR46Ura2tRo0aJenucn/169fXihUr9McffySrbxiG5ZtvkpQzZ05J0tWrV584Fj8/Pzk7O2vChAkpHu/27dvJlols27at7OzsNG/ePM2bN09OTk5q0qSJVZ2kGU7/ndE0bty4NJvll8TX11djx47VJ598ojfffPO+9TLqOid9s278+PFW1+PgwYNas2aNatasaZmZlXQdJ06caHWMVatWpWppT0lydnbW4MGD9ffff6tbt26Ki4tLVic6OloDBgyQJNnY2KhRo0bat2+fNmzYYFVvwoQJMpvNT23G4NGjRy3fMUzy2WefSZLVt/5sbW2T/V2KiYnR1KlTnziGq1evJvs7mSdPHhUpUkS3bt2yLE3btGlTXb58WUFBQVZ1v/32W12+fDnNr1Hp0qW1fft2y3bLli117do1de7cWQcPHtTx48fVv39/7d+/X7GxsVq9erXeeOMNVaxY8b5L3D5I0aJFFRoaKjc3N7Vt21ZLly612p9e3/RLin3atGlW5Unb/11GGAAAAEDqMNMPAAAAeAo8PT3VunVrLVy4UL/++qtee+01ff3116pZs6Zef/11dezYURUqVJDZbNapU6e0evVqdezYUWPGjJEkvfrqq5KkDz/8UO3atZOjo6NlltKjeuGFFzRv3jw1bdpUXl5e6tq1qzw9PXX9+nUdOXJEK1as0MqVK1WrVi1LG2dnZ9WrV0/Lly/XnTt39O6771p9o1CSmjVrpqlTp6p+/frq0aOH7O3ttXnzZu3fv1/58uV77GuXEhsbG40YMSJVdTPiOr/11lt65513tHjxYl27dk0NGzbUhQsXNGPGDDk6OuqLL76w1PXz81OjRo30/fff6+rVq6pbt65OnjypWbNmqUyZMjp48GCqzjlmzBidP39eQUFB+u2339S6dWt5enoqLi5O4eHhWrZsmezt7S1Js3Hjxmnz5s1q2rSpevfuLU9PT/3yyy9asmSJXn/99fsuh/qkypYtq/bt26t79+4qXry4tm3bpuXLl+uNN96Qv7+/pV7Lli01a9Ys+fv7y9fXVxcvXtTs2bOVN2/eJ45h3rx5mjp1qpo1ayZPT09ly5ZNP//8szZu3Kh33nnHsuTrkCFDtGzZMvXp00d79+5VhQoVtG/fPn333Xfy8vJ6okRXSpo2baqPPvpIv/32m2rWrKkSJUpoxowZ6t+/vxYtWiRJqlq1qnr16qWvvvpKbdu21bvvvqtx48bdd1nRh0lK/NWqVUtt27aV2WxW69atJT3ZN/1Onz6t+fPnS5JlRulPP/2kf/75R5LUoUMHFS5cWNLdmaoNGzbUlClTdOPGDfn4+GjHjh367rvv1L59e9WsWfOxYgAAAACeewYAAACAx7Jt2zZDkjFx4sQU9//111+GjY2NUatWLUvZ5cuXjUGDBhnFixc3HBwcDCcnJ6NMmTJGv379jEOHDlm1/+yzz4wiRYoYdnZ2hiRj9OjRhmEYxujRow1JRkRERIrnLVy4sPHGG28kKz9w4IDRrl07w83NzciWLZvh7Oxs+Pj4GB9//LFx5cqVZPWXL19uSDIkGb/99luK51q5cqVRsWJFI0eOHEbevHkNf39/4/Tp0ynGcL+4UiLJaNCgwUPrNWjQwEjpnzVP+zqn1Jf4+HhjwoQJRokSJQx7e3vjxRdfNJo0aWLs378/Wftbt24ZAQEBhouLi+Ho6GhUqVLF2Lhxo9GpU6cU+/MgmzdvNlq2bGm4u7sb2bJlM3LmzGlUrFjRGDFihHHu3DmruqdOnTLat29v5M+f38iWLZtRpEgRIzAw0IiJibGqd7++R0REWF2je73xxhtG4cKFrcokGZ06dTI2b95sVK1a1XB0dDScnZ2Nvn37GtHR0VZ1Y2JijEGDBhmFChUyHBwcDE9PT2P8+PHGli1bDEnGnDlzLHXnzJljSDK2bduW4jX5byz79u0zOnbsaBQrVszIkSOHkStXLqNcuXLGpEmTjDt37li1vXTpktGrVy/D3d3dsLOzM9zd3Y3evXsbly9ftqr3oBhSuhb306xZM6NEiRLGtWvXLGXXrl0zfvnlF+PgwYOGYdy97vv27TNiY2NTdcwkSf8dd+3alWxfRESEUbhwYcPW1tZYuHDhIx03JUnj4f1+/71Ot2/fNoYPH24ULlzYsLe3N4oUKWJ8/PHHRlxc3BPHAgAAADyvTIaRgV+fBwAAAABkWSaT6Ym+/fY8uHTpkl599VU5OTlp+fLlKlasWIr1rly5oj/++EMNGjRI5wgBAAAAZBZ80w8AAAAAgAzi7Oys0NBQ2draqlSpUurevbvWrl2rY8eO6fTp0woNDdWHH36o4sWLa9iwYYqNjc3okAEAAAA8o/imHwAAAAAAGahQoULavn27goKC9NVXXykoKMhqv6enp0aMGKHevXvLwcEhg6IEAAAA8KxjeU8AAAAAwFPB8p6P5+LFizp9+rTi4+NVsGBBFSpUKKNDAgAAAJAJkPQDAAAAAAAAAAAAMjm+6QcAAAAAAAAAAABkciT9AAAAAAAAAAAAgEyOpB8AAAAAAAAAAACQyZH0AwAAAAAAAAAAADI5kn4AAAAAAAAAAABAJkfSDwAAAAAAAAAAAMjkSPoBAAAAAAAAAAAAmRxJPwAAAAAAAAAAACCTI+kHAAAAAAAAAAAAZHIk/QAAAAAAAAAAAIBMjqQfAAAAAAAAAAAAkMmR9AMAAAAAAAAAAAAyOZJ+AAAAAAAAAAAAQCZH0g8AAAAAAAAAAADI5Ej6AQAAAAAAAAAAAJkcST8AAAAAAAAAAAAgkyPpBwAAAAAAAAAAAGRyJP0AAAAAAAAAAACATI6kHwAAAAAAAAAAAJDJkfQDUslkMmnVqlVpXhcA8PTdOy7//fffMplMCg8Pz9CYAAAA8PyaO3eu8uTJk9FhAACALIakHzKlzp07y2QyyWQyyd7eXp6envr444+VkJDw1M55/vx51atXL83rPqqbN29q8uTJqlmzplxdXeXu7q46depo1qxZKfbfw8ND06ZNs2wbhqFBgwYpd+7cCg0NfSoxAsC97h2zs2XLpiJFimjIkCG6c+dORoeWzF9//aVevXqpZMmSyps3r4oXL65OnTppx44dyeqGhobKZDLp+vXrlrJz586pbNmyev3113Xjxo10jBwAnr6k8bxnz57J9vXp00cmk0mdO3e2qvuwsT+pjslkUu7cuVWlShWtXr06PboDAE9F586d1bRp02Tl/7139Pf317Fjxyz7x4wZI29v74cef8yYMZZx09bWVgULFlSPHj109erVNIkztcxms5YsWaJGjRqpUKFCyp8/vypXrqwxY8boypUrqTrf8uXL5ejoqMmTJz92HADwOJLuVSdMmGBVvmrVKplMJkn/N26bTCbZ2NjIyclJFSpU0JAhQ3T+/Plkx4yOjtbw4cNVokQJOTo6ytXVVb6+vlqxYoUMw7DUO3HihLp27apChQrJwcFB7u7uevPNN7Vw4cIUn+2eOXNGgwYNUvny5ZUvXz4VLVpULVu21IYNG5LVTekl53///Ve1a9dWqVKl9M8//zzuJUMmQtIPmVbdunV1/vx5HT9+XAMHDtSYMWM0ceLEZPXi4uLS5Hyurq5ycHBI87qPYs+ePSpVqpRWrVql7t27a82aNVq7dq06deqkuXPnqkqVKrp06dJ92ycmJurdd9/VvHnztG3bNtWqVSvNYwSAlCSN2adOndLUqVM1a9YsjR49OqPDsjJhwgRVq1ZNZrNZkyZN0s8//6w5c+aoaNGiaty4sQIDAx/Y/uTJk6pZs6YKFy6sjRs3ysnJKZ0iB4D0U7BgQS1evFi3b9+2lN25c0c//PCDChUqZFU3tWP/nDlzdP78ee3evVs1atRQy5YtdeDAgafeFwDISNmzZ5ezs/NjtS1durTOnz+vM2fOaM6cOdqwYYN69eqVxhHeX1RUlOrUqaNhw4apdu3aWrBggbZt26ZRo0bpyJEjKlWqlLZv3/7AYwQFBaldu3b6+uuvNXDgwHSKHAD+j6Ojoz777DNdu3btgfWOHj2qc+fOadeuXfrwww+1ZcsWlSlTxup+9fr166pevbrmzZunwMBA7d27V7/88ov8/f01ZMgQy0vBYWFhqlixog4fPqwZM2bo4MGDCg0NVbdu3fT111/r0KFDVueeP3++ypQpo8jISI0ZM0YhISFatGiRXn31VfXo0UMdO3ZUYmLifWO/fPmyateurZiYGP366696+eWXn+CKIdMwgEyoU6dORpMmTazK3nrrLePVV1+17Pvkk0+MAgUKGB4eHoZhGMaZM2eMVq1aGU5OTsaLL75oNG7c2IiIiLA6xnfffWeUKlXKsLe3N1xdXY0+ffpY9kkyVq5caRiGYcTGxhp9+vQxXF1dDQcHB6NQoULGuHHjUqxrGIaxf/9+o3bt2oajo6Px0ksvGd27dzf+/fffZP2ZOHGi4erqarz00ktG7969jbi4OEudv//+23B2dja++eabFK+J2Ww2Ro4caVSsWNGqXeHChY2pU6cad+7cMZo1a2YULFjQOHLkSKquMwCkhZTG7ObNmxsVKlQwDMMwEhMTjXHjxhkeHh6Go6OjUa5cOWPZsmVW9Q8ePGg0aNDAyJUrl5EzZ06jZs2axokTJwzDMIywsDDD19fXyJs3r5E7d27j9ddfN/bs2WPV/t5xOSIiwpBk7Nu3z7J/+vTpRrFixYyjR4+m2IdLly4ZFSpUMCZNmmQp27ZtmyHJuHbtmvHnn38arq6uRtu2bY34+PjHuUwA8MxLGs/LlCljLFiwwFK+cOFCo1y5ckaTJk2MTp06WdW9171jf5L/3jdHR0cbkozPP//8aXUDAJ6qlMY/w7C+dzQMw5gzZ47h5ORk+bMkq9+cOXNSPP7o0aON8uXLW5UFBAQYL774omU7ISHB6Nq1q+X++pVXXjGmTZtmdYz/nm/btm2GYTz82Ul8fLzh4+NjdO3a1erZw73Wrl1rODs7GydPnkzxunz22WeGo6OjsWLFihTbA8DT1qlTJ6Nhw4ZGiRIljMGDB1vKV65caSSlTP47bie5deuW4eXlZdSoUcNS1qtXL+OFF14wIiMjk53r33//NeLj4w2z2WyULFnSqFSpkpGYmJhiXGaz2fLnNWvWGC4uLsaOHTtSrHvz5k3Dz8/P6Nu3r6Xs3ucdZ86cMby8vIw6depYPYdG1sdMP2QZ2bNnt8zqCwkJ0dGjR7V582atXbtW8fHx8vPzU65cufTrr7/q999/V86cOVW3bl1Lm6+//lp9+vRRjx49dODAAa1Zs0aenp4pnuuLL77QmjVrtHTpUh09elQLFy6Uh4dHinVjYmLk5+enF198Ubt27dKyZcu0ZcsW9e3b16retm3bdPLkSW3btk3ff/+95s6dq7lz51r2Dx06VF26dFH37t31zz//qGHDhnJ2dpafn5/Gjh2rXr166eOPP9YLL7ygBQsWWB375s2batCggf766y/9/vvv8vLyesyrDABP7uDBg9q+fbvs7e0lSePHj9e8efM0c+ZMHTp0SAMGDFD79u31888/S5IiIyP1+uuvy8HBQVu3btWePXvUtWtXy7IX//77rzp16qTffvtNf/zxh4oXL6769evr33//TVU8UVFRGjVqlFauXKlXXnlFK1euVJkyZeTm5qYRI0borbfe0pEjR7Ro0SJ9+umnyY67fft2vfHGG2rRooUWLFggOzu7NLxaAPDs6dq1q+bMmWPZnj17trp06fLANv8d+1OSkJCg7777TpIeWA8Ashp/f38NHDjQMoPv/Pnz8vf3T1Xbv//+Wxs3brQaN81ms15++WUtW7ZMf/31l0aNGqVhw4Zp6dKlkqRBgwbpnXfesczIPn/+vKpXr56qZyffffedTCaTvvnmG5nNZr3//vtyd3eXt7e3Zs+erdKlS6tBgwbq0aOHPvroo2Txfvjhhxo7dqzWrl2rZs2apcHVA4DHY2trq3HjxunLL798pGUvs2fPrp49e+r333/XpUuXZDabtXjxYrVr105ubm7J6ufMmVN2dnYKDw/X4cOHNWjQINnYpJyWSVpaNC4uTn379tXcuXP16quv6rffflPlypXl4uKinj17qmPHjlq1apUWLlyoH374QSdPnrQ6ztGjR1WjRg2VKlVK69atU86cOR/hyiCz46kUMj3DMBQSEqKNGzfq/fff1+XLl/XCCy8oKCjIctO7YMECmc1mBQUFWQbPOXPmKE+ePAoNDdXbb7+tTz75RAMHDlT//v0tx65SpUqK5zxz5oyKFy+umjVrymQyqXDhwveN74cfftCdO3c0b948vfDCC5Kk6dOnq1GjRvrss8/k4uIiSXrxxRc1ffp02draqkSJEmrQoIFCQkLUvXt33bx5U8HBwYqIiJAkderUSTlz5tSGDRt0+PBh9ezZUy1atLDs27hxo9WDl7FjxypXrlw6fPiw8ufP/7iXGgAe29q1a5UzZ04lJCQoNjZWNjY2mj59umJjYzVu3Dht2bJFPj4+kqSiRYvqt99+06xZs/TGG29oxowZcnJy0uLFi5UtWzZJ0iuvvGI5dp06dazO9c033yhPnjz6+eef1bBhw4fGtnLlStWuXVtly5bVyZMn1aZNG02ePFk1atTQ9OnTtW3bNg0fPlxeXl4qXbq0fv/9d9WtW9fSvlmzZvL399f06dPT4lIBwDOvffv2CgwM1OnTpyVJv//+uxYvXpzse9H3G/v/q02bNrK1tdXt27dlNpvl4eGhd955Jz26AgBPRdL4d68HLb+WPXt2y0NhV1fXhx7/wIEDypkzpxITEy3fSp0yZYplf7Zs2awSbkWKFNGOHTu0dOlSvfPOO8qZM6eyZ8+u2NhYq/Ol5tlJ0tJ1SQ/LN23apIULF8owDPXu3duy/HPnzp1Vo0YNq7jXr1+v1atXKyQkJNk9PABkhGbNmsnb21ujR4+2vHyWGiVKlJB098ULSbp27Zql7H6SvuN672SMS5cuqWjRopbt//3vf+rdu7d+/vln5c+fX3Xr1tX169fVpEkT9e3bV82aNdPy5cs1YcIE1alTR3nz5lX9+vW1efNmFStWzHKcjh07qkaNGlq2bJlsbW1T3S9kDST9kGkl3UTHx8fLbDarbdu2GjNmjPr06aOyZctaveX2559/6sSJE8qVK5fVMe7cuaOTJ0/q0qVLOnfunN58881Unbtz585666235OXlpbp166phw4Z6++23U6x7+PBhlS9f3pLwk6QaNWrIbDbr6NGjlqRf6dKlrQbhAgUKWNaGPnbsmDw8PJQ3b17FxMRo69atioyMlJubmypWrKjQ0FDFx8db2v13Leq3335bW7Zs0bhx4zR16tRU9REA0lLt2rX19ddfKyYmRlOnTpWdnZ1atGihQ4cO6datW3rrrbes6sfFxalChQqSpPDwcL322muWhN9/Xbx4USNGjFBoaKguXbqkxMRE3bp1S2fOnElVbAcOHFD16tUlSRs3btTrr7+uPn36SJK++uorLVq0yFI3pTG2SZMmWrlypX799Ve99tprqbsgAJCJ5c+fXw0aNNDcuXNlGIYaNGigfPnyJat3v7H/v6ZOnSpfX1+dOnVKAwYM0BdffKGXXnopPboCAE9F0vh3r507d6p9+/ZpcnwvLy+tWbNGd+7c0YIFCxQeHq7333/fqs6MGTM0e/ZsnTlzRrdv31ZcXJy8vb0feNyHPTuRrO+df/rpJ40ePVq1atWSJI0YMULDhw+XlPJ9c7ly5RQVFaXRo0eratWqzDwB8Ez47LPPVKdOHQ0aNCjVbQzDkHR3Zl7Snx9H3rx5FR4eLkmqVauWZVb1vWPt9u3blTdvXsvLHN7e3lqyZInlGCmNt40bN9aqVau0YsUKtWrV6rHjQ+ZE0g+ZVtJNtL29vdzc3KyWU7s3wSbdXd6yUqVKWrhwYbLj5M+f/75Tqu+nYsWKioiI0Pr167Vlyxa988478vX11fLlyx+vM1Kyh9kmk0lms1nS3aWOsmfPLkmW5N69fcyZM6dlcN+7d2+yZUnffPNNvf/++2rSpInMZrM+//zzx44TAB7HCy+8YBmbZs+erfLly+u7775TmTJlJEnBwcFyd3e3auPg4CBJlvHvfjp16qQrV67o888/V+HCheXg4CAfHx/LzfLD3DvGxsXFWY2v9vb2lpdIzGazwsPDNXjwYKv2s2bN0pAhQ1SvXj2tW7dOr7/+eqrOCwCZWdeuXS3L1c+YMSPFOvcb+999912req6urvL09JSnp6fmzJmj+vXr66+//pKzs/PT7QQAPCX3jn9JHmXpuIext7e3HH/ChAlq0KCBPvroI40dO1aStHjxYg0aNEiTJ0+Wj4+PcuXKpYkTJ2rnzp0PPO7Dnp1ID753vjeJl9KzCXd3dy1fvly1a9dW3bp1tX79+mQJRgBIb6+//rr8/PwUGBiozp07p6rN4cOHJckySSNPnjw6cuTIA9sUL15c0t2lN5Necra1tbWMlfc+237QWCslH2/fe+89q/3Dhw9XuXLl1LZtWxmGwSoazxm+6YdMK+kmulChQg/9flLFihV1/PhxOTs7Wx4oJP2cnJyUK1cueXh4KCQkJNXnz507t/z9/fXtt99qyZIl+vHHH3X16tVk9UqWLKk///xTMTExlrLff/9dNjY2qf62XtGiRXXs2DHFx8crT548Kl26tD799FPFx8fryJEjWrx4scxms4KDgzVjxoxk3wuU7s72++mnn/Ttt9+qX79+qe4nAKQ1GxsbDRs2TCNGjFCpUqXk4OCgM2fOJBufCxYsKOnuG8G//vqr5aWH//r999/Vr18/1a9fX6VLl5aDg4OioqJSHY+np6dlZnXNmjW1adMm/fHHH0pMTNT06dN1/fp1RUdHa+DAgXJ3d0+29HPSN03atWun+vXrW75FCABZWdL3nZK+//Qw9479SUu/paRq1aqqVKmSPv3007QMFwCeefb29g9cAvRBRowYoUmTJuncuXOS7t4fV69eXb1791aFChXk6emZ7HtPKZ3vYc9OpOT3zp9//rmuXbuma9euWV4wPnTokHr16pXsZTlJKly4sH7++WdduHBBdevWTfV3uAHgaZowYYJ++ukn7dix46F1b9++rW+++Uavv/66ZTJJ69attXDhQss4fK+bN28qISFBFSpUUIkSJTRp0iTLRI/7uXesrVKlio4cOaLVq1fLbDZr9erV+vPPP3X79m1NnDhRZ8+eVePGjZMdY+TIkRozZozatWtnNTMQWR9JPzwX2rVrp3z58qlJkyb69ddfFRERodDQUPXr18/ytt2YMWM0efJkffHFFzp+/Lj27t2rL7/8MsXjTZkyRYsWLdKRI0d07NgxLVu2TK6ursqTJ0+K53Z0dFSnTp108OBBbdu2Te+//746dOhgWdrzYfLly6dy5cppwYIFku6uqb9o0SJlz55dvr6+aty4sRYsWKBRo0Zp6dKlKlmyZIrH8fX11dq1a/Xdd9+lmBgEgPTSqlUr2draatasWRo0aJAGDBig77//XidPnrSMv99//70kqW/fvoqOjlbr1q21e/duHT9+XPPnz9fRo0cl3X1bbv78+Tp8+LB27typdu3aPXR24L0aN26sZcuW6erVq6pcubKGDh2q1157TQ4ODtq0aZMqVaqk1q1b69q1a1q5cmWKxzCZTJo5c6Y6duyo+vXrJ/uuFQBkNba2tjp8+LD++uuvVH8nJGnsv9/MwCQffPCBZs2apcjIyLQIFQAyBQ8PD0VERCg8PFxRUVGKjY1NdVsfHx+VK1dO48aNk3T3/nj37t3auHGjjh07ppEjR2rXrl3Jzrd//34dPXpUUVFRio+PT9Wzk2bNmlnG8TFjxiguLk558+bVyy+/rGrVqun06dOqW7eu3n///fvOmClYsKBlaX4/Pz9FR0c/xhUDgLRTtmxZtWvXTl988UWyfZcuXdKFCxd0/PhxLV68WDVq1FBUVJTVMs6ffvqpChYsqGrVqmnevHn666+/dPz4cc2ePVsVKlTQzZs3ZTKZNGfOHB09elQ1atTQmjVrdPz4cf3111+aOXOmLl++bLmv9vX11c6dO3Xs2DG5u7trxowZatOmjezt7TVhwgT5+fmpf//++u233xQSEmJZKem/hg8frrFjx6pdu3ZWny5B1kbSD8+FHDly6JdfflGhQoXUvHlzlSxZUu+++67u3Lmj3LlzS7q7PNy0adP01VdfqXTp0mrYsKGOHz+e4vFy5cql//3vf6pcubKqVKmiv//+W+vWrUtxmdAcOXJo48aNunr1qqpUqaKWLVvqzTff1PTp0x+pD+PHj9egQYO0d+9eValSRWfOnNGZM2f0999/a/Lkybp69ar27Nnz0O9J1alTR8HBwZo7d6769OnzROtOA8DjsrOzU9++ffW///1PgYGBGjlypMaPH6+SJUuqbt26Cg4OVpEiRSTdXeN+69atunnzpt544w1VqlRJ3377rWVZ5O+++07Xrl1TxYoV1aFDB/Xr1++RloTz9PRUq1at1KZNG926dUsjR45UdHS0zp07pzVr1mjdunW6fv265s6dm+LLHUlMJpNmzJihLl26qEGDBtq2bdsTXSMAeNblzp3bci+dGveO/feugvFfdevWVZEiRZjtB+C50qJFC9WtW1e1a9dW/vz5H/nh7IABAxQUFKSzZ8/qvffeU/PmzeXv769q1arpypUr6t27t1X97t27y8vLS5UrV1b+/Pn1+++/p+rZyQcffKCQkBAFBQUpX758+u2333Tx4kVdvnxZY8eO1YULF3T27Fn16NHjgfG+/PLLCg0NVVRUFIk/AM+Ejz/+OMUZeF5eXnJzc1OlSpU0YcIE+fr66uDBgypVqpSlzksvvaQ//vhD7du31yeffKIKFSrotdde06JFizRx4kTLbOlXX31Ve/bskZeXl/r06aNSpUqpevXqWrRokaZOnapevXpJunuf/eGHH+qdd97RlStX1LVrV12/fl1nz57Vjh07tGDBAt24cUOrV6/Wyy+//MB+DR06VOPGjVOHDh30ww8/pOEVw7PKZPDEH8g0vv/+e/Xv31/9+vVTx44dVaxYMSUmJiosLEzjx49XnTp1NGDAgIwOEwAynbi4OLVq1UrHjx/XqFGjVK9ePTk5Oen69etasWKFpkyZog0bNjz0ZhoAAADI6vbt26cGDRqoTp066tevnypWrCg7OzsdP35cX375pS5cuKClS5dmdJgAkKkZhqHevXtr7dq1GjVqlJo2bar8+fMrJiZGGzZs0NixYxUUFKTKlStndKh4xpD0AzKZ/fv36+OPP9b69esVFxcns9mswoUL67333tOAAQNkb2+f0SECQKZkGIa+//57ff755woPD5e9vb3MZrNee+01jRgxQnXq1MnoEAEAAIBnwqVLl/Tpp59q8eLFioqKko2NjXLnzi1/f3+NGjVKrq6uGR0iAGQJa9as0f/+9z/t2LFDdnZ2SkhIUOXKlTV48GC1bNkyo8PDM4ikH5BJJSQk6OLFi3JwcFC+fPkyOhwAyFJu3ryp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97HZbKpdu7ZatWpl3xYTE6OaNWvK399fXbt2lTFGkpSQkKDGjRsrICBAL7zwgq5evZor8wAAAMjrWPQDAGTKggULFBYWpiFDhmj79u2qXr26mjZtqlOnTt3ydUeOHNG7776rJ598MpdGCgAAACCzrl27prCwMK1bt047duzQqFGjdObMmRv2++KLL1SmTJl02/r27asPPvhA0dHRSkhIsF8Gf8SIEWrZsqUOHjyosmXL3nQhEQAAANmLRT8AQKaMHTtWr7/+ujp27KhKlSppypQpKlCggGbOnHnT16Smpurll1/W0KFDVbZs2VwcLQAAAIDM2LJliypXriw/Pz8VKlRIzZo105o1a9Ltc/bsWUVERNivkCFJxhht2rTJfrn79u3ba9myZZKk77//Xq+88soN2wEAAJCzWPQDANxWcnKytm3bpqCgIPs2d3d3BQUFKSoq6qav+/DDD1WiRAl16tTptt8jKSlJFy5cSPcFAAAAIGedPHlSfn5+9sd+fn6KjY1Nt8/AgQP1/vvvy8PDw77tzJkzKlq0qNzc3G54XWJionx8fG76fgAAAMgZnlYPAADg+BISEpSamipfX9902319fbVv374MX/Pzzz/riy++0M6dOzP1PcLDwzV06NC7HaqCe3931++Rm5aNec7qIQAAAAA3tWPHDp07d06NGjXS+vXrrR4OALis5cuXq3fv3rLZbOrbt686d+5sf+7KlStq2bKlDh8+LA8PD3Xt2lU9e/aUdL3TXbt21eXLl1WtWjV9+eWXypcvn44cOaJXX31VZ86c0YMPPqiIiAj7ARkAXBdn+gEAst3Fixf1yiuvaPr06SpevHimXtO/f38lJibav44fP57DowQAAABQqlSpdGfixcbGqlSpUvbHmzdv1saNG1WmTBm99NJLWrlypbp06aJixYrp7NmzMsbc8DofHx8lJiZm+H4AgBtl5v6q/fr10759+/Trr79q4sSJio6OliR17txZn332mfbs2aPKlStr1qxZkqTevXurW7du2r17t9q3b6+RI0fm+rwA5D4W/QAAt1W8eHF5eHgoPj4+3fb4+HiVLFnyhv1jYmJ05MgRBQcHy9PTU56envrqq6/0/fffy9PTUzExMTe8xsvLS/fdd1+6LwAAAAA5q1atWtqzZ49iY2N16dIlrVy5Uk2bNrU/361bN8XGxurIkSOKiIhQ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LhHw22+/adSoUTpw4IA8PDy0adMm+9+rBg0aqHTp0vr6668tHi1yEy2mxY7GlVss0WPcHD12vh7TYloM10OLna/FEj121h7TYtwMLabFjoYWu0iLDXJMTEyMuXDhgrl06ZIZO3asffvs2bPNyy+/bIwxJikpyfz111/2565du2Y6dOhgYmJicn28WREfH5/u8alTp0xoaKh57LHHzKuvvmpSU1PN6tWrjb+/v5k2bZp9v+3bt5sDBw7k9nCz5OjRo+kex8TEmODgYFOrVi0TFhZmjDHmyy+/NGXLljU//PCDfb9ffvnFHD9+PFfHeidSU1NNvXr1zLhx4+zbhg8fbgYNGmR/XLVqVbN06VJjzPWfSUdms9nsf4dSU1ONzWYzAwYMMPXr1zdTp041L7zwgvn6669NRESEadKkif11b775pgkMDDRr1qyxaujIJbSYFjsiV2uxMfQYt0ePna/HtJgWw/XQYudrsTH02Bjn6jEtxu3QYlrsiGjxda7QYs70yyG///67/P399fnnn+uee+5Rt27d7Cv6Tz75pM6ePasrV64of/788vb2lnT9dNKwsDCdPXtWpUqVsnL4t9WtWzcdPnxYkhQVFaXWrVurTp062rZtm2JjYzVr1iwVKVJEL730knbt2qWrV69q0KBBeuWVV3ThwgWLR39zqamp6t69u86fPy9JWrlypV555RWFhoZqzZo12rJlixYvXqyyZcsqODhYW7du1cWLF/Xmm2/qnXfesR+x4mh+//13RUVFKS4uTu7u7urRo4c2bNigM2fOSLp+Q9Zq1arZT7kfPHiwhg0blu6oFUd05coVrVixQnFxcZKkuLg4ubm5ycfHRz///LPuu+8+/fHHHzp37pzatGmjCxcu6P3339cnn3yiI0eOaMiQIWrcuLHFs0BOosW02JG4aosleozbo8fO12NaTIvhemix87VYosfO1mNajNuhxbTYkdBi12wxi3455OrVq6pYsaIOHz6sHTt2yNvb23692A0bNsjPz08FChSw779s2TLVq1dPxhh9/fXX9qg7EpvNpmvXrkmSvvnmG506dUqSVKBAAcXExOi+++6TJPXp00fr1q2Tu7u7evXqpYsXL6pt27Y6duyYfvzxR9WoUcOyOdyMzWZTamqqPDw8tHz5cu3YsUOSlC9fPu3fv1+lSpWSj4+PunXrppUrV6pYsWJ6++23dfDgQbVq1Ur58uXTunXrVK5cOYtnkt7ly5f19ttvq2XLlho3bpyefvppSVLbtm3l6empqVOnKiwsTJMmTdK4ceP04osv6uLFi2rVqpUKFCigTz75xOIZZCztl6ECBQooOjpaYWFhqlKlir766ivFxsZqxowZqlevnpYsWaKIiAh169ZNkrRo0SI9/PDD2rVrl0aPHq0WLVrI09PTaU6xR9bRYlrsCFy1xRI9RubRY+fpMS2mxbTYddFi52mxRI+drce0GJlFi2mxI6DFLt7iXDun0MVt3brVvPDCC2bdunXGmOunjzZt2tQ89dRT5rPPPjMJCQn2fT/++GMzdepUY8z1U5fPnj1rjh496tCnZ//9dN20udSoUcP06dPHGGPMp59+ajp06GBsNpsxxpg+ffqY9957z1y4cMEYY+z/64hSU1Pt/3369GljjDElSpQw06dPN8YYM2jQIPPWW2/Z9+nSpYv5+OOPTVJSkjHGmIsXL+biaDPv7Nmz5rnnnjPBwcHm0qVLxhhjHn/8cTN06FBjjDE7duxId2r90aNHTevWrc2///1v8/XXX5vz58+nu4yAI0hJSblh28KFC03RokXTnWrerVu3dKdl79692wwfPtycP38+3WvTTu2G66DFtNjRuGKLjaHHuD167Jw9psW0mBa7FlrsnC02hh47U49pMW6HFtNiR0OLXb/FnOmXTU6cOKHIyEi9++67Wrt2rdzc3BQaGqpGjRppw4YN2rVrl/2Ih1OnTik+Pl5dunRR//79df78eT300EMqW7asxbO4OQ8PDyUkJKht27Z69913lZSUpAULFmju3LlKSEhQu3bt5O7urlmzZkmSXn31VZ06dUqXLl2SJN17771WDv+W3N3dFRMTo+bNm2vEiBGSpK+//lrh4eGSpPbt2+vUqVP64YcfJEkvvviiTp48qStXrkiSChUqZM3Ab6NIkSKqUaOG6tataz/1/L333tO9994rm82mwMBA/fvf/9aDDz4od3d3PfTQQ5o3b54GDhyo+vXry8fHR97e3vbTt622fPlytWnTRpL0119/aeTIkfrtt9/UpEkTTZgwQcnJydqzZ48k6YMPPtChQ4c0YsQIde/eXS1btrQfeZMm7WbCaUdTwTXQYlrsaFytxRI9RubQY+fsMS2mxbTYtdBi52yxRI+dpce0GJlBi2mxo6HFeaDF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\n" | |
| }, | |
| "metadata": {} | |
| }, | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "chart saved as retrieval_comparison.png\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "# latency comparison \u2014 important practical tradeoff\n", | |
| "\n", | |
| "print(\"Latency Comparison (avg per query, seconds):\\n\")\n", | |
| "latency_data = {'Method': [], 'Latency (s)': []}\n", | |
| "for method, res in all_results.items():\n", | |
| " latency_data['Method'].append(method)\n", | |
| " latency_data['Latency (s)'].append(res[10]['Avg Latency(s)'])\n", | |
| "\n", | |
| "df_latency = pd.DataFrame(latency_data).set_index('Method')\n", | |
| "print(df_latency.to_string())\n", | |
| "\n", | |
| "# quick takeaway\n", | |
| "fastest = df_latency['Latency (s)'].idxmin()\n", | |
| "slowest = df_latency['Latency (s)'].idxmax()\n", | |
| "print(f\"\\nfastest: {fastest}\")\n", | |
| "print(f\"slowest: {slowest}\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "gUomKieGOXd2", | |
| "outputId": "e7de5098-44e0-45eb-8830-4aa3e841ae52" | |
| }, | |
| "execution_count": 50, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Latency Comparison (avg per query, seconds):\n", | |
| "\n", | |
| " Latency (s)\n", | |
| "Method \n", | |
| "BM25 0.2150\n", | |
| "MiniLM Cosine 0.0237\n", | |
| "BGE Cosine 0.0473\n", | |
| "Hybrid RRF 0.2292\n", | |
| "Hybrid Weighted 0.2481\n", | |
| "\n", | |
| "fastest: MiniLM Cosine\n", | |
| "slowest: Hybrid Weighted\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "#### Task 6 Analysis\n", | |
| "\n", | |
| "The results were a bit surprising \u2014 MiniLM came out on top for MRR (0.68) and BGE was very close behind (0.66). BM25 was clearly the weakest with MRR of just 0.27, which makes sense given that our 10 evaluation queries are mostly natural language questions where exact keyword matching struggles.\n", | |
| "\n", | |
| "The hybrid methods didn't beat the dense models here, which is worth explaining. Hybrid RRF actually hurt performance compared to dense-only (MRR dropped to 0.48). This happens because RRF gives equal weight to both retrievers \u2014 when BM25 is performing poorly, pulling its low-quality results into the fusion actively degrades the final ranking. Weighted fusion handled this better (MRR=0.64) since the dense component still dominates.\n", | |
| "\n", | |
| "This is a known limitation of RRF: it assumes both retrievers are roughly equal quality. When one is significantly weaker (BM25 on semantic queries), weighted fusion with a high alpha favoring dense is a better choice.\n", | |
| "\n", | |
| "On latency, MiniLM is the fastest at 23ms per query \u2014 it's a smaller model and pure vector lookup is very fast once the index is built. BM25 at 215ms is slower than expected because it scores the full 57k corpus for every query. Dense retrieval on the 5000-doc FAISS index is much faster because FAISS is optimized for this.\n", | |
| "\n", | |
| "One caveat: all 10 eval queries happened to be more semantic in nature (business expenses, tax questions, banking). A dataset with more exact-term queries (ticker lookups, regulation numbers) would likely show BM25 performing better and hybrid RRF gaining more." | |
| ], | |
| "metadata": { | |
| "id": "jRlsfXDbOZEn" | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": "## Technical Report\n\n**Dataset:** FiQA-2018, loaded via the BEIR benchmark (BeIR/fiqa on HuggingFace). BEIR packages FiQA into a standardized retrieval format with consistent IDs across corpus, queries, and qrels \u2014 which is necessary for computing metrics like MRR and NDCG correctly. The underlying data is the same FiQA-2018 financial QA corpus from Stack Exchange; BEIR just structures it properly for IR evaluation. Raw corpus: 57k passages.\n\n**Corpus sampling:** Full corpus is 57k docs \u2014 encoding on Colab CPU took ~6 mins even for 5000 docs (364s for MiniLM, 966s for BGE). Sampled 5000 with random_state=42 for reproducibility. Absolute metric scores are lower than full-corpus evaluation would give, but relative comparisons between methods are valid.\n\n**BM25 over TF-IDF:** BM25 adds term frequency saturation and document length normalization which matters here since FiQA passages vary a lot in length \u2014 from 2-line Reddit comments to long financial explanations.\n\n**MiniLM vs BGE:** MiniLM slightly outperformed BGE on our evaluation set (MRR 0.68 vs 0.66). Both are strong but MiniLM's smaller size also made it faster. BGE is generally considered better for retrieval tasks but the gap here was small.\n\n**Similarity metrics:** Cosine (inner product on normalized vectors) vs L2 distance. Cosine was more stable for variable-length passages \u2014 L2 is magnitude-sensitive and gets thrown off by longer documents.\n\n**Fusion:** RRF underperformed on our eval set (MRR 0.48) because BM25 was weak on these semantic queries and RRF doesn't discriminate \u2014 it gives equal weight to both retrievers. Weighted fusion (alpha=0.7) was better (MRR 0.64) since it lets the dense model dominate. This aligns with known RRF behavior: it works best when both retrievers have similar quality.\n\n**Challenges faced:**\n- ID type mismatch between qrels (integers) and corpus (strings) \u2014 fixed with str() casting\n- Relevant documents in qrels often not in the 5000-doc sample \u2014 filtered eval to only queries with at least one relevant doc in sample\n- BGE encoding took 966 seconds even on 5000 docs \u2014 much slower than MiniLM despite same architecture size\n- BeIR/fiqa loads corpus, queries, and qrels as three separate HuggingFace configs \u2014 had to load and join them carefully before any processing could start\n\n**Limitations:**\n- 5000-doc sample means many relevant docs simply aren't indexed \u2014 hurts recall numbers\n- Only 10 evaluation queries \u2014 not enough for statistical confidence\n- All 10 queries were semantic in nature \u2014 doesn't test BM25's strengths fairly\n- Template-based responses lack fluency \u2014 an LLM reader would improve answer quality\n\n**Future work:** Full corpus with GPU encoding, FinBERT embeddings for finance-specific representations, LLM reader layer on top (proper RAG), ColBERT for token-level late interaction, and a larger evaluation set with diverse query types.", | |
| "metadata": { | |
| "id": "kDvk1DzaOa3f" | |
| } | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment