From 4583bb217c02872e2c27c12740c8d6a9b7323394 Mon Sep 17 00:00:00 2001
From: Mon <91261297+mon-jai@users.noreply.github.com>
Date: Mon, 8 Dec 2025 01:31:36 +0800
Subject: [PATCH 1/2] Add machine learning benchmark report
Due to a bug in the GitHub renderer, the notebook currently couldn't be previewed on GitHub.
https://github.com/orgs/community/discussions/155944
---
reports/.gitkeep | 0
reports/machine_learning_benchmark.ipynb | 4867 ++++++++++++++++++++++
2 files changed, 4867 insertions(+)
delete mode 100644 reports/.gitkeep
create mode 100644 reports/machine_learning_benchmark.ipynb
diff --git a/reports/.gitkeep b/reports/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/reports/machine_learning_benchmark.ipynb b/reports/machine_learning_benchmark.ipynb
new file mode 100644
index 0000000..45d623a
--- /dev/null
+++ b/reports/machine_learning_benchmark.ipynb
@@ -0,0 +1,4867 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "provenance": [],
+ "gpuType": "T4",
+ "toc_visible": true
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ },
+ "accelerator": "GPU",
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "e9b09ac7c2174367b05883f3d3aff6f9": {
+ "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_3587d23b09674e159c548c0bde943697",
+ "IPY_MODEL_7a44cf5adb954842af61929ac583fa64",
+ "IPY_MODEL_5ea5a900d66a495b83c3960f4653ec2d"
+ ],
+ "layout": "IPY_MODEL_ae56cf5f251a486cbc353019959e499d"
+ }
+ },
+ "3587d23b09674e159c548c0bde943697": {
+ "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_ecd8422537864ec6abaa7cae1856f9df",
+ "placeholder": "",
+ "style": "IPY_MODEL_eb783c612bf74aa082cbf3e21bfc1e01",
+ "value": "README.md: "
+ }
+ },
+ "7a44cf5adb954842af61929ac583fa64": {
+ "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_e45393cafd624c7596f2e3c2e71702a0",
+ "max": 1,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_92799625f0ca4c8ba569fc606a5ac338",
+ "value": 1
+ }
+ },
+ "5ea5a900d66a495b83c3960f4653ec2d": {
+ "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_0b4f9fabaa7a42c7b237b4212a725882",
+ "placeholder": "",
+ "style": "IPY_MODEL_9c691f808bf14ffb816825cc553ed20b",
+ "value": " 6.81k/? [00:00<00:00, 241kB/s]"
+ }
+ },
+ "ae56cf5f251a486cbc353019959e499d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ecd8422537864ec6abaa7cae1856f9df": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "eb783c612bf74aa082cbf3e21bfc1e01": {
+ "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": ""
+ }
+ },
+ "e45393cafd624c7596f2e3c2e71702a0": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "20px"
+ }
+ },
+ "92799625f0ca4c8ba569fc606a5ac338": {
+ "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": ""
+ }
+ },
+ "0b4f9fabaa7a42c7b237b4212a725882": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "9c691f808bf14ffb816825cc553ed20b": {
+ "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": ""
+ }
+ },
+ "b198f8bede6f4f3f8ab85a5c23410281": {
+ "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_d8b910cc334641b082407da4cd5bffb6",
+ "IPY_MODEL_722aed840ffe4a43b0bb096cf9990f69",
+ "IPY_MODEL_d65f247cab59485caa160e3ab90bf026"
+ ],
+ "layout": "IPY_MODEL_20918cbed5c943d5bcb17fa88f927980"
+ }
+ },
+ "d8b910cc334641b082407da4cd5bffb6": {
+ "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_1b69a97f14254e1da5f66c4154d8c0b2",
+ "placeholder": "",
+ "style": "IPY_MODEL_46561cbd61a74cad90f78a31925509c7",
+ "value": "amazon_polarity/train-00000-of-00004.par(…): 100%"
+ }
+ },
+ "722aed840ffe4a43b0bb096cf9990f69": {
+ "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_465070b9e6874eff863e01bd75b01457",
+ "max": 259761770,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_30e99ca83c434ce4a6c10eb312cd6dfc",
+ "value": 259761770
+ }
+ },
+ "d65f247cab59485caa160e3ab90bf026": {
+ "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_e7276b51b1ea417390c894ae0e541ebd",
+ "placeholder": "",
+ "style": "IPY_MODEL_95798fe15239480ba87d19192d296187",
+ "value": " 260M/260M [00:07<00:00, 85.6MB/s]"
+ }
+ },
+ "20918cbed5c943d5bcb17fa88f927980": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1b69a97f14254e1da5f66c4154d8c0b2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "46561cbd61a74cad90f78a31925509c7": {
+ "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": ""
+ }
+ },
+ "465070b9e6874eff863e01bd75b01457": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "30e99ca83c434ce4a6c10eb312cd6dfc": {
+ "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": ""
+ }
+ },
+ "e7276b51b1ea417390c894ae0e541ebd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "95798fe15239480ba87d19192d296187": {
+ "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": ""
+ }
+ },
+ "e875ad47edfa447bae6f45ad5d17714a": {
+ "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_546746a37b414bbf9dd081a4038a408f",
+ "IPY_MODEL_ea1ba4cbd8c746bd9d7db42bac7a8839",
+ "IPY_MODEL_4c775268eec448b39638db557958b029"
+ ],
+ "layout": "IPY_MODEL_d0cf8be2ce0345059651084052734a59"
+ }
+ },
+ "546746a37b414bbf9dd081a4038a408f": {
+ "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_d73a05d171444e66bddf66596c4d68f6",
+ "placeholder": "",
+ "style": "IPY_MODEL_66e3a13e9bf04ded8303be8e431c21e8",
+ "value": "amazon_polarity/train-00001-of-00004.par(…): 100%"
+ }
+ },
+ "ea1ba4cbd8c746bd9d7db42bac7a8839": {
+ "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_f209f065e7c744a08a3457726781338c",
+ "max": 258363554,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_bbc5c01c4a17435790467edebfae6167",
+ "value": 258363554
+ }
+ },
+ "4c775268eec448b39638db557958b029": {
+ "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_ec2d264d3791489f807207045fcda35d",
+ "placeholder": "",
+ "style": "IPY_MODEL_ce7fafb4755d442e82c14c451b8159df",
+ "value": " 258M/258M [00:05<00:00, 121MB/s]"
+ }
+ },
+ "d0cf8be2ce0345059651084052734a59": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "d73a05d171444e66bddf66596c4d68f6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "66e3a13e9bf04ded8303be8e431c21e8": {
+ "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": ""
+ }
+ },
+ "f209f065e7c744a08a3457726781338c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "bbc5c01c4a17435790467edebfae6167": {
+ "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": ""
+ }
+ },
+ "ec2d264d3791489f807207045fcda35d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ce7fafb4755d442e82c14c451b8159df": {
+ "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": ""
+ }
+ },
+ "c4eda03bbf964c0d8de7758722619fa4": {
+ "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_22478687fe0448b69baf6f7dd908f3fc",
+ "IPY_MODEL_f0de16e3ad7a429292a5cb6b379c1ab3",
+ "IPY_MODEL_9a2fca6103a64a72875098081b181ab2"
+ ],
+ "layout": "IPY_MODEL_8459c016a078475b877bea4b5a787a66"
+ }
+ },
+ "22478687fe0448b69baf6f7dd908f3fc": {
+ "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_fe593dcb41ad4ae8a82bbec02aa3727f",
+ "placeholder": "",
+ "style": "IPY_MODEL_31da5a4d89d442f6ac10d2d3e998b9dc",
+ "value": "amazon_polarity/train-00002-of-00004.par(…): 100%"
+ }
+ },
+ "f0de16e3ad7a429292a5cb6b379c1ab3": {
+ "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_9e985af96ba84ce5942fdc0e6b433e36",
+ "max": 255471883,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_3290118fcc4343f48290853a7ca7a9b2",
+ "value": 255471883
+ }
+ },
+ "9a2fca6103a64a72875098081b181ab2": {
+ "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_bec15ef07c874e0f9adc7777eeffaeb9",
+ "placeholder": "",
+ "style": "IPY_MODEL_3b57c2f561f946c7885e517fc765bde5",
+ "value": " 255M/255M [00:04<00:00, 76.8MB/s]"
+ }
+ },
+ "8459c016a078475b877bea4b5a787a66": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "fe593dcb41ad4ae8a82bbec02aa3727f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "31da5a4d89d442f6ac10d2d3e998b9dc": {
+ "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": ""
+ }
+ },
+ "9e985af96ba84ce5942fdc0e6b433e36": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "3290118fcc4343f48290853a7ca7a9b2": {
+ "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": ""
+ }
+ },
+ "bec15ef07c874e0f9adc7777eeffaeb9": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "3b57c2f561f946c7885e517fc765bde5": {
+ "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": ""
+ }
+ },
+ "466ee7b9b4314fe185f2e95e65787368": {
+ "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_00673fe888754d00ac42786670672893",
+ "IPY_MODEL_1c97876e5aa24717bf2f1a5ab50b53ed",
+ "IPY_MODEL_5072c9d6eacd4987aa8768eaa3d14ee0"
+ ],
+ "layout": "IPY_MODEL_796c152c3d1d490996adbcce33e9dd67"
+ }
+ },
+ "00673fe888754d00ac42786670672893": {
+ "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_1eaa76f0d53045929f88c1670ffce1ff",
+ "placeholder": "",
+ "style": "IPY_MODEL_8e4a0faca6964389816e6c20c8e7ef5d",
+ "value": "amazon_polarity/train-00003-of-00004.par(…): 100%"
+ }
+ },
+ "1c97876e5aa24717bf2f1a5ab50b53ed": {
+ "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_a540fd76d900440fa6fb3429e2e535e0",
+ "max": 254410930,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_07620dcc7b014eeab2bd847df1ec150b",
+ "value": 254410930
+ }
+ },
+ "5072c9d6eacd4987aa8768eaa3d14ee0": {
+ "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_ee23a71e4a144e63ba9d42413da7ea5e",
+ "placeholder": "",
+ "style": "IPY_MODEL_cc3117a4286941a3b52608ae183a017b",
+ "value": " 254M/254M [00:01<00:00, 228MB/s]"
+ }
+ },
+ "796c152c3d1d490996adbcce33e9dd67": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1eaa76f0d53045929f88c1670ffce1ff": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "8e4a0faca6964389816e6c20c8e7ef5d": {
+ "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": ""
+ }
+ },
+ "a540fd76d900440fa6fb3429e2e535e0": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "07620dcc7b014eeab2bd847df1ec150b": {
+ "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": ""
+ }
+ },
+ "ee23a71e4a144e63ba9d42413da7ea5e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "cc3117a4286941a3b52608ae183a017b": {
+ "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": ""
+ }
+ },
+ "195bb41efd7341298f9e770444b20914": {
+ "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_82da0b7625254032adb1490ee13301fd",
+ "IPY_MODEL_4ff2c74d3b5a45d8b604f8924be05464",
+ "IPY_MODEL_c29c521b900243b2aad1b954b1cf001b"
+ ],
+ "layout": "IPY_MODEL_d0e748ae3c7f49d3b1482ac2a36ea9e7"
+ }
+ },
+ "82da0b7625254032adb1490ee13301fd": {
+ "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_e074cad8fbc045a3880aa9703e8d08b2",
+ "placeholder": "",
+ "style": "IPY_MODEL_ea4bd15944954cc1a8f6bcc0334b4bbd",
+ "value": "amazon_polarity/test-00000-of-00001.parq(…): 100%"
+ }
+ },
+ "4ff2c74d3b5a45d8b604f8924be05464": {
+ "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_d7e73f7d0b64487e864eef85ea7a6c96",
+ "max": 117422360,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_f4515ac1497e43df8262e82c2548f1b2",
+ "value": 117422360
+ }
+ },
+ "c29c521b900243b2aad1b954b1cf001b": {
+ "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_03a21315985d4493b6884a3379f9213d",
+ "placeholder": "",
+ "style": "IPY_MODEL_9245059b9d1746b0b295c7e3098851e0",
+ "value": " 117M/117M [00:01<00:00, 17.2MB/s]"
+ }
+ },
+ "d0e748ae3c7f49d3b1482ac2a36ea9e7": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "e074cad8fbc045a3880aa9703e8d08b2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ea4bd15944954cc1a8f6bcc0334b4bbd": {
+ "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": ""
+ }
+ },
+ "d7e73f7d0b64487e864eef85ea7a6c96": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "f4515ac1497e43df8262e82c2548f1b2": {
+ "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": ""
+ }
+ },
+ "03a21315985d4493b6884a3379f9213d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "9245059b9d1746b0b295c7e3098851e0": {
+ "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": ""
+ }
+ },
+ "142163f8585d4d9b833792771d76960f": {
+ "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_7ed66d2bce3649729f03175f2dd3ef4e",
+ "IPY_MODEL_d0bcc429ce54484e9edf5ab92646e333",
+ "IPY_MODEL_30d7990199ad471da587dafbccacf065"
+ ],
+ "layout": "IPY_MODEL_aa04339a34c746a8a7c182fa5017e332"
+ }
+ },
+ "7ed66d2bce3649729f03175f2dd3ef4e": {
+ "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_282bf0d0484a40d8999bf5a0f505d1e7",
+ "placeholder": "",
+ "style": "IPY_MODEL_39b9065670204e0499e21e94eb3ada5c",
+ "value": "Generating train split: 100%"
+ }
+ },
+ "d0bcc429ce54484e9edf5ab92646e333": {
+ "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_8efca2469e9b4aec9749b5d71276eea5",
+ "max": 3600000,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_83ab0aed70bc43de92a73ee9b30df7aa",
+ "value": 3600000
+ }
+ },
+ "30d7990199ad471da587dafbccacf065": {
+ "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_c3d0bb97b633458d9ecadb548c313f5a",
+ "placeholder": "",
+ "style": "IPY_MODEL_9974b9d4018c407f9c55e530b9cd10f1",
+ "value": " 3600000/3600000 [00:16<00:00, 193992.69 examples/s]"
+ }
+ },
+ "aa04339a34c746a8a7c182fa5017e332": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "282bf0d0484a40d8999bf5a0f505d1e7": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "39b9065670204e0499e21e94eb3ada5c": {
+ "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": ""
+ }
+ },
+ "8efca2469e9b4aec9749b5d71276eea5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "83ab0aed70bc43de92a73ee9b30df7aa": {
+ "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": ""
+ }
+ },
+ "c3d0bb97b633458d9ecadb548c313f5a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "9974b9d4018c407f9c55e530b9cd10f1": {
+ "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": ""
+ }
+ },
+ "5863e2cb2ba14a7e80f99c0926b433c9": {
+ "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_edce6976fecb4b10962a30cf92468498",
+ "IPY_MODEL_39aa66717d6249449bfec7906c3353bf",
+ "IPY_MODEL_931dd90e8908487197f8a1d167144df1"
+ ],
+ "layout": "IPY_MODEL_60a6f0420dcb445da4ca9d5d7cfbb2dc"
+ }
+ },
+ "edce6976fecb4b10962a30cf92468498": {
+ "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_813a118bfc914d1799846f01beb159bd",
+ "placeholder": "",
+ "style": "IPY_MODEL_93225cd1d64844a5b28402aaa581ab0f",
+ "value": "Generating test split: 100%"
+ }
+ },
+ "39aa66717d6249449bfec7906c3353bf": {
+ "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_a6131535305344a98611172811109b45",
+ "max": 400000,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_f9cac0c062654374a2784ec5feac9b40",
+ "value": 400000
+ }
+ },
+ "931dd90e8908487197f8a1d167144df1": {
+ "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_b2af4e800994474d80707761c039b69d",
+ "placeholder": "",
+ "style": "IPY_MODEL_b77d676071094802bfbede1cbefa2cc0",
+ "value": " 400000/400000 [00:02<00:00, 169250.70 examples/s]"
+ }
+ },
+ "60a6f0420dcb445da4ca9d5d7cfbb2dc": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "813a118bfc914d1799846f01beb159bd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "93225cd1d64844a5b28402aaa581ab0f": {
+ "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": ""
+ }
+ },
+ "a6131535305344a98611172811109b45": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "f9cac0c062654374a2784ec5feac9b40": {
+ "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": ""
+ }
+ },
+ "b2af4e800994474d80707761c039b69d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b77d676071094802bfbede1cbefa2cc0": {
+ "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": ""
+ }
+ },
+ "9068d0c276964335b73c58216da9656d": {
+ "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_3895ed82638943758491afccdb828fd9",
+ "IPY_MODEL_eb4ce1f0c49d458693d225d5620ae3bf",
+ "IPY_MODEL_2259f89acfaa4ab5aeee9e0f9216ef36"
+ ],
+ "layout": "IPY_MODEL_93ddc605f5334f1da787e181266d8bfe"
+ }
+ },
+ "3895ed82638943758491afccdb828fd9": {
+ "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_58c813c53d1f492f867718d02ba04a5d",
+ "placeholder": "",
+ "style": "IPY_MODEL_222716afe7fa48a0b655b4c5a9cca846",
+ "value": "Creating json from Arrow format: 100%"
+ }
+ },
+ "eb4ce1f0c49d458693d225d5620ae3bf": {
+ "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_e262d9ec7a4e4dce97d699e7d87b0108",
+ "max": 3600,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_048c7d4f16ba406a9c80dfb8396feccb",
+ "value": 3600
+ }
+ },
+ "2259f89acfaa4ab5aeee9e0f9216ef36": {
+ "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_2ad00c27852b4d34b4c0f3254ec07bda",
+ "placeholder": "",
+ "style": "IPY_MODEL_ce68ac2e0389406b97061c1d0833c825",
+ "value": " 3600/3600 [00:28<00:00, 149.69ba/s]"
+ }
+ },
+ "93ddc605f5334f1da787e181266d8bfe": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "58c813c53d1f492f867718d02ba04a5d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "222716afe7fa48a0b655b4c5a9cca846": {
+ "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": ""
+ }
+ },
+ "e262d9ec7a4e4dce97d699e7d87b0108": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "048c7d4f16ba406a9c80dfb8396feccb": {
+ "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": ""
+ }
+ },
+ "2ad00c27852b4d34b4c0f3254ec07bda": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ce68ac2e0389406b97061c1d0833c825": {
+ "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": ""
+ }
+ },
+ "6f4b9a0d96cd44d5aef88c9a1746d28a": {
+ "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_e1ce74de926546f7b7edb785645d94a7",
+ "IPY_MODEL_b46dc10473594a22a23e6c9bfe635e1e",
+ "IPY_MODEL_c9991a8fc39d414e95e99da16a734142"
+ ],
+ "layout": "IPY_MODEL_a34d936936114a1896f919e5d996e256"
+ }
+ },
+ "e1ce74de926546f7b7edb785645d94a7": {
+ "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_8d5f8abe931e469990e70083937b1d86",
+ "placeholder": "",
+ "style": "IPY_MODEL_a2a52084d98d4cbbb066058b24f23596",
+ "value": "Creating json from Arrow format: 100%"
+ }
+ },
+ "b46dc10473594a22a23e6c9bfe635e1e": {
+ "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_b29ecf40cdae4e80be6d937b2b9a6bd6",
+ "max": 400,
+ "min": 0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_2464a1ca08fb4726afab6db87dc284ab",
+ "value": 400
+ }
+ },
+ "c9991a8fc39d414e95e99da16a734142": {
+ "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_c7f99ac5a8924a2fa989e2d7b557abf4",
+ "placeholder": "",
+ "style": "IPY_MODEL_b6d3645d20624cec9e1042651a8a6118",
+ "value": " 400/400 [00:02<00:00, 222.28ba/s]"
+ }
+ },
+ "a34d936936114a1896f919e5d996e256": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "8d5f8abe931e469990e70083937b1d86": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "a2a52084d98d4cbbb066058b24f23596": {
+ "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": ""
+ }
+ },
+ "b29ecf40cdae4e80be6d937b2b9a6bd6": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "2464a1ca08fb4726afab6db87dc284ab": {
+ "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": ""
+ }
+ },
+ "c7f99ac5a8924a2fa989e2d7b557abf4": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b6d3645d20624cec9e1042651a8a6118": {
+ "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": "code",
+ "source": [
+ "# @title ⚙️ Runtime Specifications\n",
+ "import platform\n",
+ "import psutil\n",
+ "import os\n",
+ "import sys\n",
+ "import torch\n",
+ "import tensorflow\n",
+ "\n",
+ "def get_size(bytes_val, suffix=\"B\"):\n",
+ " \"\"\"Scale bytes to its proper format (e.g., 1024 -> 1KB).\"\"\"\n",
+ " if bytes_val is None:\n",
+ " return \"N/A\"\n",
+ "\n",
+ " factor = 1024\n",
+ " for unit in [\"\", \"K\", \"M\", \"G\", \"T\", \"P\"]:\n",
+ " if bytes_val < factor:\n",
+ " # Ensure the value is converted to float for proper division and formatting\n",
+ " return f\"{float(bytes_val):.2f}{unit}{suffix}\"\n",
+ " bytes_val /= factor\n",
+ "\n",
+ "print(\"--- System and Environment ---\")\n",
+ "print(f\"OS/Platform: {platform.system()} ({platform.release()})\")\n",
+ "print(f\"Kernel Version: {platform.version()}\")\n",
+ "print(f\"Python Version: {sys.version.split()[0]} ({platform.architecture()[0]})\")\n",
+ "print(f\"PyTorch Version: {torch.__version__}\")\n",
+ "print(f\"TensorFlow Version: {tensorflow.__version__}\")\n",
+ "print()\n",
+ "\n",
+ "print(\"--- CPU and System RAM ---\")\n",
+ "print(\"CPU Details (from `!lscpu`): \")\n",
+ "!lscpu | grep 'Model name\\|Socket(s)\\|Core(s) per socket\\|Thread(s) per core\\|CPU MHz'\n",
+ "mem = psutil.virtual_memory()\n",
+ "print(f\"System RAM: {get_size(mem.total)}\")\n",
+ "print()\n",
+ "\n",
+ "# Check for GPU (CUDA)\n",
+ "if torch.cuda.is_available():\n",
+ " device_name = torch.cuda.get_device_name(0)\n",
+ " device_props = torch.cuda.get_device_properties(0)\n",
+ " print(\"--- Accelerator: GPU (CUDA) ---\")\n",
+ " print(f\"Device Name: {device_name}\")\n",
+ " print(f\"CUDA Cores: {device_props.multi_processor_count * 64} (Approx)\")\n",
+ " print(f\"Global Memory: {get_size(device_props.total_memory)}\")\n",
+ " print(f\"CUDA Capability: {device_props.major}.{device_props.minor}\")\n",
+ "if 'TPU_NAME' in os.environ:\n",
+ " print(\"--- Accelerator: TPU ---\")\n",
+ " print(f\"**TPU Name:** {os.environ['TPU_NAME']}\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "IxofynaY2gB_",
+ "outputId": "b32ca55d-d573-4aa8-de68-af2b7a954a1e"
+ },
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--- System and Environment ---\n",
+ "OS/Platform: Linux (6.6.105+)\n",
+ "Kernel Version: #1 SMP Thu Oct 2 10:42:05 UTC 2025\n",
+ "Python Version: 3.12.12 (64bit)\n",
+ "PyTorch Version: 2.9.0+cu126\n",
+ "TensorFlow Version: 2.19.0\n",
+ "\n",
+ "--- CPU and System RAM ---\n",
+ "CPU Details (from `!lscpu`): \n",
+ "Model name: Intel(R) Xeon(R) CPU @ 2.00GHz\n",
+ "Thread(s) per core: 2\n",
+ "Core(s) per socket: 1\n",
+ "Socket(s): 1\n",
+ "System RAM: 12.67GB\n",
+ "\n",
+ "--- Accelerator: GPU (CUDA) ---\n",
+ "Device Name: Tesla T4\n",
+ "CUDA Cores: 2560 (Approx)\n",
+ "Global Memory: 14.74GB\n",
+ "CUDA Capability: 7.5\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 1. Configuration & Helper Functions\n",
+ "\n",
+ "We define a standardized benchmarking function to ensure fair comparison across all formats. This function measures:\n",
+ "\n",
+ "1. Loading Time: Time taken to read data from disk into RAM.\n",
+ "2. Training Time: Time taken to vectorize text and train the model.\n",
+ "3. Peak Memory: Maximum RAM usage during the process.\n",
+ "4. Performance: Accuracy and F1 Score."
+ ],
+ "metadata": {
+ "id": "hxkKUGQBzfpV"
+ }
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "b8614c08",
+ "outputId": "7a45e44d-54aa-4b3d-a1b4-37707a570f5d"
+ },
+ "source": [
+ "# @title 1.1 Setup & Dependencies\n",
+ "# Install necessary libraries for the benchmark and SchemaForge\n",
+ "!pip install -q datasets pandas scikit-learn matplotlib seaborn psutil pyarrow fastavro ijson\n",
+ "\n",
+ "import os\n",
+ "import sys\n",
+ "import time\n",
+ "import psutil\n",
+ "import shutil\n",
+ "import subprocess\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "from datasets import load_dataset\n",
+ "from sklearn.feature_extraction.text import TfidfVectorizer\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.pipeline import make_pipeline\n",
+ "from sklearn.metrics import accuracy_score, f1_score\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "# Configure plotting\n",
+ "sns.set_theme(style=\"whitegrid\")\n",
+ "plt.rcParams['figure.figsize'] = (12, 6)\n",
+ "\n",
+ "print(\"✅ Environment setup complete.\")"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/3.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m194.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m92.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/149.0 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m149.0/149.0 kB\u001b[0m \u001b[31m14.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h✅ Environment setup complete.\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# @title 1.2 Define Benchmarking Utilities (Optimized for Scale)\n",
+ "\n",
+ "class BenchmarkTracker:\n",
+ " def __init__(self):\n",
+ " self.results = []\n",
+ "\n",
+ " def measure(self, format_name, load_func, train_func):\n",
+ " \"\"\"\n",
+ " Generic function to measure load and train performance.\n",
+ " \"\"\"\n",
+ " print(f\"--- Benchmarking: {format_name} ---\")\n",
+ "\n",
+ " process = psutil.Process(os.getpid())\n",
+ " mem_before = process.memory_info().rss / (1024 * 1024)\n",
+ "\n",
+ " # --- Measure Loading ---\n",
+ " print(f\" ⏳ Loading data...\")\n",
+ " start_load = time.perf_counter()\n",
+ " X_train, y_train, X_test, y_test = load_func()\n",
+ " end_load = time.perf_counter()\n",
+ " load_time = end_load - start_load\n",
+ " print(f\" ✅ Loaded {len(y_train):,} rows in {load_time:.2f}s\")\n",
+ "\n",
+ " # --- Measure Training ---\n",
+ " print(f\" ⚙️ Training model...\")\n",
+ " start_train = time.perf_counter()\n",
+ " model = train_func(X_train, y_train)\n",
+ " end_train = time.perf_counter()\n",
+ " train_time = end_train - start_train\n",
+ "\n",
+ " # --- Measure Memory Peak ---\n",
+ " mem_after = process.memory_info().rss / (1024 * 1024)\n",
+ " peak_memory_usage = max(0, mem_after - mem_before)\n",
+ "\n",
+ " # --- Evaluate ---\n",
+ " # Predict on a subset of test data to save inference time in benchmark\n",
+ " subset_test_size = 10000\n",
+ " y_pred = model.predict(X_test[:subset_test_size])\n",
+ " acc = accuracy_score(y_test[:subset_test_size], y_pred)\n",
+ " f1 = f1_score(y_test[:subset_test_size], y_pred, average='weighted')\n",
+ "\n",
+ " print(f\" ⏱️ Train Time: {train_time:.4f}s\")\n",
+ " print(f\" 💾 Mem Delta: {peak_memory_usage:.2f} MB\")\n",
+ " print(\"-\" * 30)\n",
+ "\n",
+ " self.results.append({\n",
+ " \"Format\": format_name,\n",
+ " \"Load Time (s)\": load_time,\n",
+ " \"Training Time (s)\": train_time,\n",
+ " \"Total Time (s)\": load_time + train_time,\n",
+ " \"Peak Memory Delta (MB)\": peak_memory_usage,\n",
+ " \"Accuracy\": acc,\n",
+ " \"F1 Score\": f1\n",
+ " })\n",
+ "\n",
+ " def get_summary(self):\n",
+ " return pd.DataFrame(self.results)\n",
+ "\n",
+ "# Initialize tracker\n",
+ "tracker = BenchmarkTracker()\n",
+ "\n",
+ "# OPTIMIZED Model Architecture for Large Datasets\n",
+ "from sklearn.linear_model import SGDClassifier\n",
+ "\n",
+ "def train_standard_model(X_train, y_train):\n",
+ " \"\"\"\n",
+ " Pipeline: TF-IDF + SGDClassifier.\n",
+ " SGDClassifier is much faster for large datasets (1M+ rows) than standard LogisticRegression.\n",
+ " \"\"\"\n",
+ " model = make_pipeline(\n",
+ " # Limit features to keep memory usage stable during vectorization\n",
+ " TfidfVectorizer(max_features=10000, stop_words='english'),\n",
+ " # Log loss = Logistic Regression via SGD\n",
+ " SGDClassifier(loss='log_loss', max_iter=1000, tol=1e-3, n_jobs=-1, random_state=42)\n",
+ " )\n",
+ " model.fit(X_train, y_train)\n",
+ " return model\n",
+ "\n",
+ "print(\"✅ Benchmarking utilities ready.\")"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "Ti7DuqC8zrXl",
+ "outputId": "9b2ac768-7b40-436e-9f46-92da4b0f3017"
+ },
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "✅ Benchmarking utilities ready.\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "36252453",
+ "outputId": "0ce19bb0-9685-4f15-b70f-a3ee763b7ba2"
+ },
+ "source": [
+ "# @title 1.3 Define Global Constants and Paths\n",
+ "\n",
+ "# Dataset Configuration\n",
+ "DATASET_NAME = \"amazon_polarity\"\n",
+ "TRAIN_SPLIT = \"train\"\n",
+ "TEST_SPLIT = \"test\"\n",
+ "\n",
+ "# Directory and File Paths\n",
+ "SCHEMA_BENCH_ROOT = \"schemaforge_bench\"\n",
+ "DATA_DIR = os.path.join(SCHEMA_BENCH_ROOT, \"data\")\n",
+ "OUTPUT_DIR = os.path.join(SCHEMA_BENCH_ROOT, \"output\")\n",
+ "SCHEMA_REPORT_PREFIX = os.path.join(SCHEMA_BENCH_ROOT, \"schema_report\")\n",
+ "SCHEMA_REPORT_PATH = f\"{SCHEMA_REPORT_PREFIX}.json\"\n",
+ "\n",
+ "# Create necessary directories\n",
+ "os.makedirs(DATA_DIR, exist_ok=True)\n",
+ "os.makedirs(OUTPUT_DIR, exist_ok=True)\n",
+ "\n",
+ "print(\"✅ Global constants and paths defined.\")"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "✅ Global constants and paths defined.\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 2. Baseline: Hugging Face datasets\n",
+ "\n",
+ "We use the AG News dataset (Text Classification). We load it directly using the Hugging Face datasets library, which relies on Arrow format internally (memory-mapped), usually providing a very fast baseline."
+ ],
+ "metadata": {
+ "id": "mBCOX3hUzsun"
+ }
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 532,
+ "referenced_widgets": [
+ "e9b09ac7c2174367b05883f3d3aff6f9",
+ "3587d23b09674e159c548c0bde943697",
+ "7a44cf5adb954842af61929ac583fa64",
+ "5ea5a900d66a495b83c3960f4653ec2d",
+ "ae56cf5f251a486cbc353019959e499d",
+ "ecd8422537864ec6abaa7cae1856f9df",
+ "eb783c612bf74aa082cbf3e21bfc1e01",
+ "e45393cafd624c7596f2e3c2e71702a0",
+ "92799625f0ca4c8ba569fc606a5ac338",
+ "0b4f9fabaa7a42c7b237b4212a725882",
+ "9c691f808bf14ffb816825cc553ed20b",
+ "b198f8bede6f4f3f8ab85a5c23410281",
+ "d8b910cc334641b082407da4cd5bffb6",
+ "722aed840ffe4a43b0bb096cf9990f69",
+ "d65f247cab59485caa160e3ab90bf026",
+ "20918cbed5c943d5bcb17fa88f927980",
+ "1b69a97f14254e1da5f66c4154d8c0b2",
+ "46561cbd61a74cad90f78a31925509c7",
+ "465070b9e6874eff863e01bd75b01457",
+ "30e99ca83c434ce4a6c10eb312cd6dfc",
+ "e7276b51b1ea417390c894ae0e541ebd",
+ "95798fe15239480ba87d19192d296187",
+ "e875ad47edfa447bae6f45ad5d17714a",
+ "546746a37b414bbf9dd081a4038a408f",
+ "ea1ba4cbd8c746bd9d7db42bac7a8839",
+ "4c775268eec448b39638db557958b029",
+ "d0cf8be2ce0345059651084052734a59",
+ "d73a05d171444e66bddf66596c4d68f6",
+ "66e3a13e9bf04ded8303be8e431c21e8",
+ "f209f065e7c744a08a3457726781338c",
+ "bbc5c01c4a17435790467edebfae6167",
+ "ec2d264d3791489f807207045fcda35d",
+ "ce7fafb4755d442e82c14c451b8159df",
+ "c4eda03bbf964c0d8de7758722619fa4",
+ "22478687fe0448b69baf6f7dd908f3fc",
+ "f0de16e3ad7a429292a5cb6b379c1ab3",
+ "9a2fca6103a64a72875098081b181ab2",
+ "8459c016a078475b877bea4b5a787a66",
+ "fe593dcb41ad4ae8a82bbec02aa3727f",
+ "31da5a4d89d442f6ac10d2d3e998b9dc",
+ "9e985af96ba84ce5942fdc0e6b433e36",
+ "3290118fcc4343f48290853a7ca7a9b2",
+ "bec15ef07c874e0f9adc7777eeffaeb9",
+ "3b57c2f561f946c7885e517fc765bde5",
+ "466ee7b9b4314fe185f2e95e65787368",
+ "00673fe888754d00ac42786670672893",
+ "1c97876e5aa24717bf2f1a5ab50b53ed",
+ "5072c9d6eacd4987aa8768eaa3d14ee0",
+ "796c152c3d1d490996adbcce33e9dd67",
+ "1eaa76f0d53045929f88c1670ffce1ff",
+ "8e4a0faca6964389816e6c20c8e7ef5d",
+ "a540fd76d900440fa6fb3429e2e535e0",
+ "07620dcc7b014eeab2bd847df1ec150b",
+ "ee23a71e4a144e63ba9d42413da7ea5e",
+ "cc3117a4286941a3b52608ae183a017b",
+ "195bb41efd7341298f9e770444b20914",
+ "82da0b7625254032adb1490ee13301fd",
+ "4ff2c74d3b5a45d8b604f8924be05464",
+ "c29c521b900243b2aad1b954b1cf001b",
+ "d0e748ae3c7f49d3b1482ac2a36ea9e7",
+ "e074cad8fbc045a3880aa9703e8d08b2",
+ "ea4bd15944954cc1a8f6bcc0334b4bbd",
+ "d7e73f7d0b64487e864eef85ea7a6c96",
+ "f4515ac1497e43df8262e82c2548f1b2",
+ "03a21315985d4493b6884a3379f9213d",
+ "9245059b9d1746b0b295c7e3098851e0",
+ "142163f8585d4d9b833792771d76960f",
+ "7ed66d2bce3649729f03175f2dd3ef4e",
+ "d0bcc429ce54484e9edf5ab92646e333",
+ "30d7990199ad471da587dafbccacf065",
+ "aa04339a34c746a8a7c182fa5017e332",
+ "282bf0d0484a40d8999bf5a0f505d1e7",
+ "39b9065670204e0499e21e94eb3ada5c",
+ "8efca2469e9b4aec9749b5d71276eea5",
+ "83ab0aed70bc43de92a73ee9b30df7aa",
+ "c3d0bb97b633458d9ecadb548c313f5a",
+ "9974b9d4018c407f9c55e530b9cd10f1",
+ "5863e2cb2ba14a7e80f99c0926b433c9",
+ "edce6976fecb4b10962a30cf92468498",
+ "39aa66717d6249449bfec7906c3353bf",
+ "931dd90e8908487197f8a1d167144df1",
+ "60a6f0420dcb445da4ca9d5d7cfbb2dc",
+ "813a118bfc914d1799846f01beb159bd",
+ "93225cd1d64844a5b28402aaa581ab0f",
+ "a6131535305344a98611172811109b45",
+ "f9cac0c062654374a2784ec5feac9b40",
+ "b2af4e800994474d80707761c039b69d",
+ "b77d676071094802bfbede1cbefa2cc0"
+ ]
+ },
+ "collapsed": true,
+ "id": "9214cb29",
+ "outputId": "875f3bab-6132-4cbf-95fd-2665cc4baa4d"
+ },
+ "source": [
+ "# @title 2.1 Benchmark Hugging Face Baseline\n",
+ "\n",
+ "def load_hf_baseline():\n",
+ " \"\"\"\n",
+ " Loads a subset of the Amazon Polarity dataset using Hugging Face datasets\n",
+ " for benchmarking purposes.\n",
+ " \"\"\"\n",
+ " # Loading a subset for training (e.g., first 20,000 rows)\n",
+ " dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n",
+ " test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n",
+ "\n",
+ " return (\n",
+ " dataset['content'],\n",
+ " dataset['label'],\n",
+ " test_dataset['content'],\n",
+ " test_dataset['label']\n",
+ " )\n",
+ "\n",
+ "# Run Baseline\n",
+ "tracker.measure(\n",
+ " format_name=\"HF Dataset (Arrow)\",\n",
+ " load_func=load_hf_baseline,\n",
+ " train_func=train_standard_model\n",
+ ")"
+ ],
+ "execution_count": 5,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--- Benchmarking: HF Dataset (Arrow) ---\n",
+ " ⏳ Loading data...\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.12/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n",
+ "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
+ "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
+ "You will be able to reuse this secret in all of your notebooks.\n",
+ "Please note that authentication is recommended but still optional to access public models or datasets.\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "README.md: 0.00B [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "e9b09ac7c2174367b05883f3d3aff6f9"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "amazon_polarity/train-00000-of-00004.par(…): 0%| | 0.00/260M [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "b198f8bede6f4f3f8ab85a5c23410281"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "amazon_polarity/train-00001-of-00004.par(…): 0%| | 0.00/258M [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "e875ad47edfa447bae6f45ad5d17714a"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "amazon_polarity/train-00002-of-00004.par(…): 0%| | 0.00/255M [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "c4eda03bbf964c0d8de7758722619fa4"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "amazon_polarity/train-00003-of-00004.par(…): 0%| | 0.00/254M [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "466ee7b9b4314fe185f2e95e65787368"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "amazon_polarity/test-00000-of-00001.parq(…): 0%| | 0.00/117M [00:00, ?B/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "195bb41efd7341298f9e770444b20914"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "Generating train split: 0%| | 0/3600000 [00:00, ? examples/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "142163f8585d4d9b833792771d76960f"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "Generating test split: 0%| | 0/400000 [00:00, ? examples/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "5863e2cb2ba14a7e80f99c0926b433c9"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " ✅ Loaded 3,600,000 rows in 52.54s\n",
+ " ⚙️ Training model...\n",
+ " ⏱️ Train Time: 317.4109s\n",
+ " 💾 Mem Delta: 2193.22 MB\n",
+ "------------------------------\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 3. Setup SchemaForge & Convert Data\n",
+ "\n",
+ "Now we clone SchemaForge, prepare the input JSON data (simulating a raw data ingestion scenario), and use the tool to generate CSV, Parquet, and Feather files."
+ ],
+ "metadata": {
+ "id": "QJkmkLVMz2HQ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 154,
+ "referenced_widgets": [
+ "9068d0c276964335b73c58216da9656d",
+ "3895ed82638943758491afccdb828fd9",
+ "eb4ce1f0c49d458693d225d5620ae3bf",
+ "2259f89acfaa4ab5aeee9e0f9216ef36",
+ "93ddc605f5334f1da787e181266d8bfe",
+ "58c813c53d1f492f867718d02ba04a5d",
+ "222716afe7fa48a0b655b4c5a9cca846",
+ "e262d9ec7a4e4dce97d699e7d87b0108",
+ "048c7d4f16ba406a9c80dfb8396feccb",
+ "2ad00c27852b4d34b4c0f3254ec07bda",
+ "ce68ac2e0389406b97061c1d0833c825",
+ "6f4b9a0d96cd44d5aef88c9a1746d28a",
+ "e1ce74de926546f7b7edb785645d94a7",
+ "b46dc10473594a22a23e6c9bfe635e1e",
+ "c9991a8fc39d414e95e99da16a734142",
+ "a34d936936114a1896f919e5d996e256",
+ "8d5f8abe931e469990e70083937b1d86",
+ "a2a52084d98d4cbbb066058b24f23596",
+ "b29ecf40cdae4e80be6d937b2b9a6bd6",
+ "2464a1ca08fb4726afab6db87dc284ab",
+ "c7f99ac5a8924a2fa989e2d7b557abf4",
+ "b6d3645d20624cec9e1042651a8a6118"
+ ]
+ },
+ "id": "50649dfc",
+ "outputId": "a806f88e-b4f8-4d13-ef7e-001308f8deb5"
+ },
+ "source": [
+ "# @title 3.1 Prepare Input Data for SchemaForge\n",
+ "# SchemaForge requires raw JSON files as input.\n",
+ "# We will export the HF dataset to a raw JSON format to simulate the \"Chaos\" state.\n",
+ "\n",
+ "import gc\n",
+ "\n",
+ "print(\"📥 Loading raw dataset for export (this may take a minute)... \")\n",
+ "# Use the predefined constants for dataset name and splits\n",
+ "raw_data = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n",
+ "test_data = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n",
+ "\n",
+ "print(\"💾 Saving training data to JSON Lines (NDJSON)...\")\n",
+ "# Using lines=True (NDJSON) is much more memory efficient for 1M+ rows\n",
+ "raw_data.to_json(os.path.join(DATA_DIR, \"train_data.json\"), orient=\"records\", lines=True)\n",
+ "\n",
+ "print(\"💾 Saving test data to JSON Lines (NDJSON)...\")\n",
+ "test_data.to_json(os.path.join(DATA_DIR, \"test_data.json\"), orient=\"records\", lines=True)\n",
+ "\n",
+ "# Free up memory immediately\n",
+ "del raw_data\n",
+ "del test_data\n",
+ "gc.collect()\n",
+ "\n",
+ "print(f\"✅ Data exported to JSON in '{DATA_DIR}'\")"
+ ],
+ "execution_count": 6,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "📥 Loading raw dataset for export (this may take a minute)... \n",
+ "💾 Saving training data to JSON Lines (NDJSON)...\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "Creating json from Arrow format: 0%| | 0/3600 [00:00, ?ba/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "9068d0c276964335b73c58216da9656d"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "💾 Saving test data to JSON Lines (NDJSON)...\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "Creating json from Arrow format: 0%| | 0/400 [00:00, ?ba/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "6f4b9a0d96cd44d5aef88c9a1746d28a"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "✅ Data exported to JSON in 'schemaforge_bench/data'\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# @title 3.2 Clone SchemaForge\n",
+ "!git clone https://github.com/Syntax-Error-1337/SchemaForge.git schemaforge_tool --depth 1\n",
+ "!cd schemaforge_tool && pip install -r requirements.txt"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "aQcp-jxNz782",
+ "outputId": "657ff2b2-2bcd-4955-b8f1-d072b336b487"
+ },
+ "execution_count": 7,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Cloning into 'schemaforge_tool'...\n",
+ "remote: Enumerating objects: 46, done.\u001b[K\n",
+ "remote: Counting objects: 100% (46/46), done.\u001b[K\n",
+ "remote: Compressing objects: 100% (39/39), done.\u001b[K\n",
+ "remote: Total 46 (delta 5), reused 30 (delta 4), pack-reused 0 (from 0)\u001b[K\n",
+ "Receiving objects: 100% (46/46), 41.65 KiB | 13.88 MiB/s, done.\n",
+ "Resolving deltas: 100% (5/5), done.\n",
+ "Requirement already satisfied: pandas>=2.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 1)) (2.2.2)\n",
+ "Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 2)) (18.1.0)\n",
+ "Requirement already satisfied: pytest>=7.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 3)) (8.4.2)\n",
+ "Requirement already satisfied: ijson>=3.2.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 4)) (3.4.0.post0)\n",
+ "Collecting json5>=0.9.0 (from -r requirements.txt (line 5))\n",
+ " Downloading json5-0.12.1-py3-none-any.whl.metadata (36 kB)\n",
+ "Requirement already satisfied: fastavro>=1.8.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 6)) (1.12.1)\n",
+ "Requirement already satisfied: psutil>=5.9.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 7)) (5.9.5)\n",
+ "Requirement already satisfied: numpy>=1.26.0 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2.0.2)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2.9.0.post0)\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2025.2)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2025.2)\n",
+ "Requirement already satisfied: iniconfig>=1 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (2.3.0)\n",
+ "Requirement already satisfied: packaging>=20 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (25.0)\n",
+ "Requirement already satisfied: pluggy<2,>=1.5 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (1.6.0)\n",
+ "Requirement already satisfied: pygments>=2.7.2 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (2.19.2)\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0.0->-r requirements.txt (line 1)) (1.17.0)\n",
+ "Downloading json5-0.12.1-py3-none-any.whl (36 kB)\n",
+ "Installing collected packages: json5\n",
+ "Successfully installed json5-0.12.1\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "8ca7948e",
+ "outputId": "ae9b924c-e496-401b-8e02-1ac28ba73a63"
+ },
+ "source": [
+ "# @title 3.3 Run SchemaForge Pipeline (Scan & Convert)\n",
+ "\n",
+ "# 1. Scan Schemas\n",
+ "# We run from inside 'SchemaForge', so we point to data using relative paths from schemaforge_tool\n",
+ "print(\"🔍 Running SchemaForge: scan-schemas...\")\n",
+ "!cd schemaforge_tool && python -m src.cli scan-schemas \\\n",
+ " --data-dir ../{DATA_DIR} \\\n",
+ " --output-report ../{SCHEMA_REPORT_PREFIX}.md\n",
+ "\n",
+ "# 2. Convert to CSV\n",
+ "print(\"🔄 Converting to CSV...\")\n",
+ "!cd schemaforge_tool && python -m src.cli convert \\\n",
+ " --format csv \\\n",
+ " --data-dir ../{DATA_DIR} \\\n",
+ " --output-dir ../{OUTPUT_DIR}/csv \\\n",
+ " --schema-report ../{SCHEMA_REPORT_PATH}\n",
+ "\n",
+ "# 3. Convert to Parquet\n",
+ "print(\"🔄 Converting to Parquet...\")\n",
+ "!cd schemaforge_tool && python -m src.cli convert \\\n",
+ " --format parquet \\\n",
+ " --data-dir ../{DATA_DIR} \\\n",
+ " --output-dir ../{OUTPUT_DIR}/parquet \\\n",
+ " --schema-report ../{SCHEMA_REPORT_PATH}\n",
+ "\n",
+ "# 4. Convert to Feather (Fast I/O)\n",
+ "print(\"🔄 Converting to Feather...\")\n",
+ "!cd schemaforge_tool && python -m src.cli convert \\\n",
+ " --format feather \\\n",
+ " --data-dir ../{DATA_DIR} \\\n",
+ " --output-dir ../{OUTPUT_DIR}/feather \\\n",
+ " --schema-report ../{SCHEMA_REPORT_PATH}\n",
+ "\n",
+ "print(f\"\\n✅ Conversion Complete! Formats ready in '{OUTPUT_DIR}/'\")"
+ ],
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "🔍 Running SchemaForge: scan-schemas...\n",
+ "2025-12-07 17:08:48,602 - __main__ - INFO - Starting schema scan...\n",
+ "2025-12-07 17:08:48,603 - src.schema_reader.inference - INFO - Found 2 JSON file(s) in ../schemaforge_bench/data\n",
+ "2025-12-07 17:08:48,649 - src.schema_reader.inference - INFO - Processing file: train_data.json\n",
+ "2025-12-07 17:08:48,650 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n",
+ "2025-12-07 17:08:48,651 - src.schema_reader.inference - INFO - Processing file: test_data.json\n",
+ "2025-12-07 17:08:48,652 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n",
+ "2025-12-07 17:08:49,350 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-07 17:08:55,748 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-07 17:09:02,968 - src.schema_reader.inference - INFO - Streaming first 10000 records from test_data.json\n",
+ "2025-12-07 17:09:02,973 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from test_data.json\n",
+ "2025-12-07 17:09:04,111 - src.schema_reader.inference - INFO - Successfully inferred schema for test_data.json: 3 fields\n",
+ "2025-12-07 17:09:41,007 - src.schema_reader.inference - INFO - Streaming first 10000 records from train_data.json\n",
+ "2025-12-07 17:09:41,011 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from train_data.json\n",
+ "2025-12-07 17:09:41,234 - src.schema_reader.inference - INFO - Successfully inferred schema for train_data.json: 3 fields\n",
+ "2025-12-07 17:09:42,370 - __main__ - INFO - Successfully scanned 2 file(s)\n",
+ "2025-12-07 17:09:42,372 - src.schema_reader.reporting - INFO - Schema report written to ../schemaforge_bench/schema_report.md\n",
+ "2025-12-07 17:09:42,373 - src.schema_reader.reporting - INFO - Schemas saved to JSON: ../schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:09:42,373 - __main__ - INFO - Schema report generated: ../schemaforge_bench/schema_report.md\n",
+ "🔄 Converting to CSV...\n",
+ "2025-12-07 17:09:44,410 - __main__ - INFO - Starting conversion to csv...\n",
+ "2025-12-07 17:09:44,413 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:09:44,413 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:09:44,441 - src.converter.csv - INFO - Converting train_data.json to CSV...\n",
+ "2025-12-07 17:09:44,441 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
+ "2025-12-07 17:09:44,443 - src.converter.csv - INFO - Converting test_data.json to CSV...\n",
+ "2025-12-07 17:09:44,443 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
+ "2025-12-07 17:09:45,922 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-07 17:09:47,895 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-07 17:10:05,340 - src.converter.csv - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/csv/test_data.csv\n",
+ "2025-12-07 17:11:34,670 - src.converter.csv - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/csv/train_data.csv\n",
+ "2025-12-07 17:11:36,106 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
+ "🔄 Converting to Parquet...\n",
+ "2025-12-07 17:11:37,309 - __main__ - INFO - Starting conversion to parquet...\n",
+ "2025-12-07 17:11:37,309 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:11:37,310 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:11:37,332 - src.converter.parquet - INFO - Converting train_data.json to Parquet...\n",
+ "2025-12-07 17:11:37,332 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
+ "2025-12-07 17:11:37,333 - src.converter.parquet - INFO - Converting test_data.json to Parquet...\n",
+ "2025-12-07 17:11:37,333 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
+ "2025-12-07 17:11:37,683 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-07 17:11:40,471 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-07 17:11:49,605 - src.converter.parquet - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/parquet/test_data.parquet\n",
+ "2025-12-07 17:12:53,257 - src.converter.parquet - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/parquet/train_data.parquet\n",
+ "2025-12-07 17:12:54,037 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
+ "🔄 Converting to Feather...\n",
+ "2025-12-07 17:12:54,871 - __main__ - INFO - Starting conversion to feather...\n",
+ "2025-12-07 17:12:54,878 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:12:54,878 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-07 17:12:54,896 - src.converter.feather - INFO - Converting train_data.json to Feather...\n",
+ "2025-12-07 17:12:54,897 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
+ "2025-12-07 17:12:54,898 - src.converter.feather - INFO - Converting test_data.json to Feather...\n",
+ "2025-12-07 17:12:54,898 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
+ "2025-12-07 17:12:55,553 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-07 17:12:58,511 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-07 17:13:06,899 - src.converter.feather - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/feather/test_data.feather\n",
+ "2025-12-07 17:14:19,605 - src.converter.feather - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/feather/train_data.feather\n",
+ "2025-12-07 17:14:20,452 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
+ "\n",
+ "✅ Conversion Complete! Formats ready in 'schemaforge_bench/output/'\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 4. Benchmark Converted Formats\n",
+ "\n",
+ "Now we benchmark the loading and training efficiency for the formats generated by SchemaForge."
+ ],
+ "metadata": {
+ "id": "2XizdDLVz_Vu"
+ }
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "6c6df480",
+ "outputId": "412ba5fb-a48e-4baa-cabc-bbd51d251d55"
+ },
+ "source": [
+ "# @title 4.1 Benchmark CSV\n",
+ "\n",
+ "def load_csv_format():\n",
+ " # Load Train\n",
+ " df_train = pd.read_csv(os.path.join(OUTPUT_DIR, \"csv\", \"train_data.csv\"))\n",
+ " # Load Test\n",
+ " df_test = pd.read_csv(os.path.join(OUTPUT_DIR, \"csv\", \"test_data.csv\"))\n",
+ "\n",
+ " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n",
+ "\n",
+ "tracker.measure(\n",
+ " format_name=\"CSV (Pandas)\",\n",
+ " load_func=load_csv_format,\n",
+ " train_func=train_standard_model\n",
+ ")"
+ ],
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--- Benchmarking: CSV (Pandas) ---\n",
+ " ⏳ Loading data...\n",
+ " ✅ Loaded 3,600,000 rows in 34.58s\n",
+ " ⚙️ Training model...\n",
+ " ⏱️ Train Time: 176.7297s\n",
+ " 💾 Mem Delta: 2295.14 MB\n",
+ "------------------------------\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "bd83abbb",
+ "outputId": "a9924b69-652a-4ebf-9e0c-8886ab154ef5"
+ },
+ "source": [
+ "# @title 4.2 Benchmark Parquet\n",
+ "\n",
+ "def load_parquet_format():\n",
+ " # Load Train\n",
+ " df_train = pd.read_parquet(os.path.join(OUTPUT_DIR, \"parquet\", \"train_data.parquet\"))\n",
+ " # Load Test\n",
+ " df_test = pd.read_parquet(os.path.join(OUTPUT_DIR, \"parquet\", \"test_data.parquet\"))\n",
+ "\n",
+ " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n",
+ "\n",
+ "tracker.measure(\n",
+ " format_name=\"Parquet (PyArrow)\",\n",
+ " load_func=load_parquet_format,\n",
+ " train_func=train_standard_model\n",
+ ")"
+ ],
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--- Benchmarking: Parquet (PyArrow) ---\n",
+ " ⏳ Loading data...\n",
+ " ✅ Loaded 3,600,000 rows in 12.65s\n",
+ " ⚙️ Training model...\n",
+ " ⏱️ Train Time: 172.0169s\n",
+ " 💾 Mem Delta: 2155.44 MB\n",
+ "------------------------------\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "731384f9",
+ "outputId": "533e9ad6-9c44-4f24-a07f-769b775387a5"
+ },
+ "source": [
+ "# @title 4.3 Benchmark Feather\n",
+ "\n",
+ "def load_feather_format():\n",
+ " # Load Train\n",
+ " df_train = pd.read_feather(os.path.join(OUTPUT_DIR, \"feather\", \"train_data.feather\"))\n",
+ " # Load Test\n",
+ " df_test = pd.read_feather(os.path.join(OUTPUT_DIR, \"feather\", \"test_data.feather\"))\n",
+ "\n",
+ " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n",
+ "\n",
+ "tracker.measure(\n",
+ " format_name=\"Feather (Arrow IPC)\",\n",
+ " load_func=load_feather_format,\n",
+ " train_func=train_standard_model\n",
+ ")"
+ ],
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--- Benchmarking: Feather (Arrow IPC) ---\n",
+ " ⏳ Loading data...\n",
+ " ✅ Loaded 3,600,000 rows in 9.03s\n",
+ " ⚙️ Training model...\n",
+ " ⏱️ Train Time: 169.1621s\n",
+ " 💾 Mem Delta: 2384.89 MB\n",
+ "------------------------------\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# 5. Analysis & Visualization\n",
+ "\n",
+ "We aggregate the results into a clean DataFrame and visualize the trade-offs between load time, memory usage, and storage efficiency."
+ ],
+ "metadata": {
+ "id": "VCPcR34-0RRY"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# @title 5.1 Results Summary\n",
+ "results_df = tracker.get_summary()\n",
+ "\n",
+ "# Normalize columns for better visualization comparison if needed,\n",
+ "# but raw values are usually better for technical benchmarks.\n",
+ "display(results_df.round(4))"
+ ],
+ "metadata": {
+ "id": "OxcT34jU0TEr",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 175
+ },
+ "outputId": "b2ce3ad4-86e6-49ab-a928-0b2703e40f91"
+ },
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " Format Load Time (s) Training Time (s) Total Time (s) \\\n",
+ "0 HF Dataset (Arrow) 52.5374 317.4109 369.9483 \n",
+ "1 CSV (Pandas) 34.5824 176.7297 211.3121 \n",
+ "2 Parquet (PyArrow) 12.6510 172.0169 184.6680 \n",
+ "3 Feather (Arrow IPC) 9.0286 169.1621 178.1907 \n",
+ "\n",
+ " Peak Memory Delta (MB) Accuracy F1 Score \n",
+ "0 2193.2188 0.8397 0.8396 \n",
+ "1 2295.1406 0.8397 0.8396 \n",
+ "2 2155.4414 0.8397 0.8396 \n",
+ "3 2384.8945 0.8397 0.8396 "
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Format | \n",
+ " Load Time (s) | \n",
+ " Training Time (s) | \n",
+ " Total Time (s) | \n",
+ " Peak Memory Delta (MB) | \n",
+ " Accuracy | \n",
+ " F1 Score | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " HF Dataset (Arrow) | \n",
+ " 52.5374 | \n",
+ " 317.4109 | \n",
+ " 369.9483 | \n",
+ " 2193.2188 | \n",
+ " 0.8397 | \n",
+ " 0.8396 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " CSV (Pandas) | \n",
+ " 34.5824 | \n",
+ " 176.7297 | \n",
+ " 211.3121 | \n",
+ " 2295.1406 | \n",
+ " 0.8397 | \n",
+ " 0.8396 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Parquet (PyArrow) | \n",
+ " 12.6510 | \n",
+ " 172.0169 | \n",
+ " 184.6680 | \n",
+ " 2155.4414 | \n",
+ " 0.8397 | \n",
+ " 0.8396 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Feather (Arrow IPC) | \n",
+ " 9.0286 | \n",
+ " 169.1621 | \n",
+ " 178.1907 | \n",
+ " 2384.8945 | \n",
+ " 0.8397 | \n",
+ " 0.8396 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "summary": "{\n \"name\": \"display(results_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Format\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"CSV (Pandas)\",\n \"Feather (Arrow IPC)\",\n \"HF Dataset (Arrow)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Load Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 20.3171261697285,\n \"min\": 9.0286,\n \"max\": 52.5374,\n \"num_unique_values\": 4,\n \"samples\": [\n 34.5824,\n 9.0286,\n 52.5374\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Training Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 72.45455524414368,\n \"min\": 169.1621,\n \"max\": 317.4109,\n \"num_unique_values\": 4,\n \"samples\": [\n 176.7297,\n 169.1621,\n 317.4109\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Total Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 90.42220472794557,\n \"min\": 178.1907,\n \"max\": 369.9483,\n \"num_unique_values\": 4,\n \"samples\": [\n 211.3121,\n 178.1907,\n 369.9483\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Peak Memory Delta (MB)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 103.59179237997483,\n \"min\": 2155.4414,\n \"max\": 2384.8945,\n \"num_unique_values\": 4,\n \"samples\": [\n 2295.1406,\n 2384.8945,\n 2193.2188\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Accuracy\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 0.8397,\n \"max\": 0.8397,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.8397\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"F1 Score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 0.8396,\n \"max\": 0.8396,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.8396\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ }
+ },
+ "metadata": {}
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# @title 5.2 Visualizing the Benchmark\n",
+ "fig, axes = plt.subplots(1, 3, figsize=(20, 6))\n",
+ "\n",
+ "# 1. Total Time Comparison (Load + Train)\n",
+ "sns.barplot(\n",
+ " data=results_df,\n",
+ " x=\"Format\",\n",
+ " y=\"Total Time (s)\",\n",
+ " ax=axes[0],\n",
+ " palette=\"viridis\",\n",
+ " hue=\"Format\",\n",
+ " legend=False\n",
+ ")\n",
+ "axes[0].set_title(\"Total Pipeline Time (Load + Train)\")\n",
+ "axes[0].set_ylabel(\"Time (seconds)\")\n",
+ "\n",
+ "# 2. Loading Time Only (Zoom in on I/O efficiency)\n",
+ "sns.barplot(\n",
+ " data=results_df,\n",
+ " x=\"Format\",\n",
+ " y=\"Load Time (s)\",\n",
+ " ax=axes[1],\n",
+ " palette=\"rocket\",\n",
+ " hue=\"Format\",\n",
+ " legend=False\n",
+ ")\n",
+ "axes[1].set_title(\"Data Loading Time Only\")\n",
+ "axes[1].set_ylabel(\"Time (seconds)\")\n",
+ "\n",
+ "# 3. Memory Footprint\n",
+ "sns.barplot(\n",
+ " data=results_df,\n",
+ " x=\"Format\",\n",
+ " y=\"Peak Memory Delta (MB)\",\n",
+ " ax=axes[2],\n",
+ " palette=\"mako\",\n",
+ " hue=\"Format\",\n",
+ " legend=False\n",
+ ")\n",
+ "axes[2].set_title(\"Peak Memory Usage Delta\")\n",
+ "axes[2].set_ylabel(\"Memory (MB)\")\n",
+ "\n",
+ "plt.tight_layout()\n",
+ "plt.show()"
+ ],
+ "metadata": {
+ "id": "51F8exY90T_g",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 384
+ },
+ "outputId": "2a9227cb-4640-468d-c6f0-d3323aaed6c4"
+ },
+ "execution_count": 13,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAB7MAAAJICAYAAAAD5cCDAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxppJREFUeJzs3XlcVdX+//H3AUFBQdTUVEQBgxxAsFIJ1FTURAsrzcwxDTNT024l17S0ug7dSnPMgTTzljk1qDhrmkNW5pBlKoFjaeYAGCjT/v3hl/PzCCochnOQ1/PxuI+HZ++11/4czupxP2d/zlrLZBiGIQAAAAAAAAAAAAAA7IiDrQMAAAAAAAAAAAAAAOBGFLMBAAAAAAAAAAAAAHaHYjYAAAAAAAAAAAAAwO5QzAYAAAAAAAAAAAAA2B2K2QAAAAAAAAAAAAAAu0MxGwAAAAAAAAAAAABgdyhmAwAAAAAAAAAAAADsDsVsAAAAAAAAAAAAAIDdoZgNAAAAAAAAAAAAALA7FLOBO9zu3bvl7++v3bt3F0p/0dHRatOmTaH0dTO5xVwc9y2Iwv47F5Z//vlHISEh+vrrr20dSq5WrFghf39/nTp1ytahFKqCjNd3331X3bp1K+SIAACAvcotH+rdu7d69+5tw6hu7dSpU/L399eKFStsHUqxsNdcHwAA5E10dLSCg4NtHQaQK3JN4PbK2DoA4E7k7++fp3YLFy5Us2bNbtnmww8/VL169RQeHl4Yod3UihUr9O9//9v82tnZWTVr1lRoaKgGDx6su+66q0jvb4+io6P1xRdf3LbdY489pscee6wYIsq/hQsXqnz58urUqZP52LRp0zR9+nTt2rVLlStXtmF0xa8w/9ssKn379tXHH3+sTZs2qW3btjaJAQCA/Mgtj6xYsaL8/f3VqlUrPf7446pQoYJVff/000/asWOH+vbtK3d398IKuVTnQzeT/Te5naZNm2rChAnFEFH+GYahr776SkuXLtXhw4eVnp4uLy8vdejQQf3795erq6utQwQAoFQric8fs3Mkk8mkLVu2qEaNGhbnL1++rAcffFBXr15Vz5499frrr9soUtuJjo7WunXrtHfv3lzPBwcHq0OHDpo4cWIxR1Z4ivI7T25Wrlyp8+fPq1+/foXWJ1CSUcwGisA777xj8fqrr77Sjh07chz39fW9bV+zZ89Whw4diryYnW3YsGHy9PRUWlqa9uzZo88++0xbt27VqlWr5OLiorfeekuGYRRLLNezxX27d++ukJAQ8+tTp05p6tSp6t69u+677z7zcS8vLzVu3FgHDhyQk5NTscZ4K+np6Vq4cKH69esnR0dHW4djFwrzv81bKch4rVq1qtq2bauPPvqIYjYAoETJziMzMjL0999/6/vvv9f48eO1YMECzZw5U/fee2+++9y7d6+mT5+uxx57rFCL2fYuJiam2O/Zrl07eXl5mV+npKRo7Nixateundq1a2c+ftddd6lWrVo6cOCAypSxn0cKmZmZ+te//qU1a9bo/vvv15AhQ+Ti4qIff/xRM2bM0Lp16zR//ny7fEgOAEBpc7vnj/bI2dlZq1atUlRUlMXx9evX2ygi2EJRfOfJzapVq3T06FGK2cD/sZ9vnsAdJDIy0uL1/v37tWPHjhzH7VHLli0VEBAgSerWrZs8PDw0f/58bdq0SZ07d7ZZsdYW9w0ODrZYgujnn3/W1KlTFRQUlOtnWbZs2eIM77a++eYbXbhwQR07drR1KEWiTZs2euyxxzR06NA8X2Ptf5upqan5+jJV0PHasWNHvfjiizp58qRq165doL4AACgu1+eRkvTcc89p165dGjRokAYPHqzY2FiVK1fOhhGWHM7OzsV+z3vvvdfi4duFCxc0duxY+fv7l4jcd968eVqzZo369++vkSNHmo93795dHTt21AsvvKDo6GjNmzfPhlECAADp9s8f7VGrVq20evXqHMXsVatW6aGHHtK6detsFFnBpKSksHpNPvCdB7AN9swGbCQlJUUTJ05Uq1at1KhRI3Xo0EExMTEWszn9/f2VkpKiL774Qv7+/vL391d0dLQk6fTp0xo7dqw6dOigwMBANWvWTMOGDSv0vYebN28uSeZ+b9wLOHu/vJiYGC1YsECtW7dWYGCgevXqpSNHjuTo7/fff9ewYcPUtGlTBQQE6PHHH9emTZtuG8et7vv5558rPDxcjRo10hNPPKEDBw4U2n3zKre9TXr37q3OnTvrt99+U69evdS4cWO1a9dOa9eulSR9//336tatmwIDA9WhQwft3LkzR79nz57Vv//9bz344INq1KiROnXqpGXLluUppo0bN6pWrVoWM2zyY9euXXr66acVFBSk+++/X88//7x+//13izb5GYdHjx5Vnz59FBgYqJYtW2rmzJnKysqyKrailP25HTx4UD179lTjxo31/vvvS7r2Nx04cKDCwsLUqFEjhYeHa8aMGcrMzLToo6Dj9cEHH5SkQh2jAADYQkhIiAYPHqzTp0/r66+/Nh//7bffFB0drbZt2yogIEChoaH697//rYsXL5rbTJs2zbx6Stu2bc35cHaesXz5cvXp00chISFq1KiRIiIi9OmnnxZq/LbKh27cMzs714yNjdWsWbPMD9H69u2r48eP57j+f//7n9q2bavAwEB17dpVP/74Y6Huw53bntnZe1H+8ccfeu655xQcHKwWLVrof//7nyTp8OHD6tOnj4KCgtS6dWutXLkyR79JSUn6z3/+Y/6O1K5dO82ZM+e2OeOVK1cUExOjunXr6l//+leO823atFGXLl307bffat++fRbHn3vuOf3444/q2rWrAgIC1LZtW3355Ze3vN/UqVPVsGFDXbhwIce5MWPG6P7779fVq1dv2QcAAPj/bnz+KF1bTe/xxx9XYGCgmjZtqhEjRujPP/+0uO7HH3/UsGHD9NBDD6lRo0Zq1aqVxo8frytXrtz2nocOHVLz5s3Vu3dv/fPPP7dt37lzZx06dMgiFzx37py+++67mxbg09LSNHXqVLVr184c3zvvvKO0tDSLdv7+/nrzzTe1Zs0aRUREKDAwUN27d9fhw4clSYsXL1a7du0UEBCg3r1755pnrlmzxvz3atasmV5++WWdPXvWok12vnbixAlFRUUpODhYL7/8crHnNunp6Zo+fbrat2+vgIAANWvWTD169NCOHTvMbfLyfSHb7t279fjjjysgIEDh4eFavHixpk2blut2g3kZV/l1s+88knXPpHv37q1vvvlGp0+fNn8Hyn7OmJaWpg8++ECPP/647rvvPgUFBenpp5/Wd999V6D3ANg7ZmYDNmAYhp5//nnt3r1bXbt2Vf369fXtt9/qnXfe0dmzZzVq1ChJ15ZEHj16tAIDA/Xkk09Kkrkw+fPPP2vv3r3q1KmT7r77bp0+fVqfffaZ+vTpo9WrVxfakjwnTpyQJHl4eNyy3Zdffql//vlHTz/9tK5evapPPvlEffv21cqVK81L+R09elQ9evRQ9erVFRUVJVdXV61Zs0YvvPCCpk2bZrF8YV6tWrVK//zzj7p37y6TyaR58+Zp6NCh2rhxo3l2bFHcN68SExM1aNAgRURE6OGHH9Znn32ml156SVlZWRo/fryeeuopde7cWTExMRo2bJi++eYb8/4qf//9t5588kmZTCb17NlTlStX1rZt2/Taa6/p8uXLt11mZu/evWrYsKFVce/cuVNRUVHy9PTUkCFDdOXKFS1atEg9evTQihUr5OnpKSnv4/DcuXPq06ePMjMzNXDgQLm4uGjJkiV2N6Mn26VLlxQVFaVOnTrp0UcfVZUqVSRJX3zxhVxdXfXMM8/I1dVV3333naZOnarLly9bzAC6mbyMV0lyc3OTl5eXfvrpJ5YTAgCUeJGRkXr//fe1fft2c067c+dOnTx5Uo8//riqVq2qo0ePasmSJYqLi9OSJUtkMpnUrl07HTt2TKtWrdK///1vVapUSZLMe1x/9tlnuueee9SmTRuVKVNGW7Zs0bhx42QYhnr27FnguO0xH5o7d65MJpP69++vy5cva968eXr55Ze1dOlSc5tPP/1Ub775pu6//37169dPp0+f1gsvvCB3d3fdfffdBf673EpmZqaioqJ0//336+WXX9bKlSv15ptvysXFRZMnT9Yjjzyi9u3ba/HixRo5cqSCgoLMq9CkpqaqV69eOnv2rJ566inVqFFDe/fu1fvvv69z587ptddeu+l99+zZo8TERPXp0+emS5936dJFK1as0JYtWxQUFGQ+fvz4cb344ovq2rWrHnvsMS1fvlzR0dFq2LCh7rnnnlz7ioyM1IwZMxQbG6tevXqZj6elpWndunVq37693ea5AADYoxufP86aNUsffPCBOnbsqK5du+rChQtatGiRevbsqS+//NK8/czatWt15coV9ejRQx4eHjpw4IAWLVqkM2fOaOrUqTe934EDB/Tss8+qUaNGmjlzZp5m0j7wwAO6++67tWrVKr344ouSpNjYWLm6uuqhhx7K0T4rK0vPP/+89uzZoyeffFK+vr46cuSIPv74Yx07dkwzZ860aP/jjz9q8+bNevrppyVJc+bM0aBBg/Tss8/q008/1dNPP63ExETNmzdPo0aN0sKFC83XZu/nHBAQoJdeeknnz5/XwoUL9dNPP1n8vSQpIyNDAwYM0H333aeRI0eqXLlyCg4OLtbcZvr06Zo9e7Z5ks/ly5d18OBB/fLLLwoNDZWUt+8LkvTrr7/q2WefVdWqVTV06FBlZWVpxowZ5u8M18vruLJGbt95rH0mPWjQICUnJ+vMmTPmfbrLly8v6doe7UuXLlXnzp3VrVs3/fPPP1q2bJmeffZZLV26VPXr17f6PQB2zQBQ5MaNG2f4+fmZX2/YsMHw8/MzZs6cadFu6NChhr+/v3H8+HHzsaCgIGPkyJE5+kxNTc1xbO/evYafn5/xxRdfmI999913hp+fn/Hdd9/dMsbly5cbfn5+xs6dO43z588bf/75p7F69WqjadOmRmBgoHHmzBnDMAxj5MiRRuvWrc3XnTx50vDz87NoYxiGsX//fsPPz88YP368+Vjfvn2Nzp07G1evXjUfy8rKMrp37260b9/+ljHf7L5NmzY1Ll26ZD6+ceNGw8/Pz9i8eXO+73s7Bw4cMPz8/Izly5fnOJdbzL169TL8/PyMlStXmo/9/vvvhp+fn3Hvvfca+/btMx//9ttvc/Q9atQoIzQ01Lhw4YLFvUaMGGHcd999uY6BbOnp6Ya/v78xceLEHOemTp1q+Pn5GefPn7/p9ZGRkUZISIhx8eJF87FDhw4Z9957r/Hqq6+aj+V1HP7nP/8x/Pz8jP3795uPnT9/3rjvvvsMPz8/4+TJkzeN5WZat25tTJ06Nd/XXe/G/zYN4/9/bp999lmO9rm93zFjxhiNGze2GF8FGa/Z+vfvb3Ts2NGq9wUAQHHKziMPHDhw0zb33Xef0aVLF/Pr3P4/ddWqVYafn5/xww8/mI/NmzfvprlCbn3079/faNu27W1jtvd8qFevXkavXr3Mr7NzzY4dO1rkHB9//LHh5+dnHD582DAMw7h69arRtGlT44knnjDS09PN7VasWGH4+flZ9Hk758+fN/z8/HLNt7Jzm+tz15EjRxp+fn7Ghx9+aD6WmJhoBAYGGv7+/sbq1avNx7Nz4uv7njFjhhEUFGQkJCRY3Ovdd9816tevb/zxxx83jXXBggWGn5+fsWHDhpu2uXTpkuHn52cMGTLEfKx169Y5xtz58+eNRo0aWeTRueX63bt3N7p162Zxj/Xr1+fpuxcAAKVVXp4/njp1yqhfv74xa9Ysi2sPHz5sNGjQwOJ4bnnY7NmzDX9/f+P06dPmYyNHjjSCgoIMwzCMH3/80WjSpIkxcOBAi7zqZq7PGydOnGi0a9fOfO6JJ54woqOjDcMwDD8/P2PcuHHmc19++aVx7733WuQZhmEYn332meHn52fs2bPHfMzPz89o1KiRRT64ePFiw8/PzwgNDTWSk5PNx9977z2L3DEtLc0ICQkxOnfubFy5csXcbsuWLYafn5/xwQcfWPwd/Pz8jHfffTfH+yxIbnP93zc3Nz7ffvTRR42BAwfess+8fl947rnnjMaNG1s8lz527JjRoEEDi2d++RlXubHmO09BnoUPHDjQ4tlitoyMjBzjNjEx0XjwwQeNf//737d8D0BJxjLjgA1s27ZNjo6OOZb569+/vwzD0LZt227bx/W/GExPT9fFixfl5eUld3d3/frrr1bH1q9fP4WEhKhVq1YaMWKEypcvr+nTp6t69eq3vC48PNyiTWBgoBo3bqytW7dKujbT9bvvvlPHjh11+fJlXbhwQRcuXNDFixcVFhamY8eO5Vj6Ji8iIiJUsWJF8+v7779fknTy5MkivW9eubq6qlOnTubXPj4+cnd3l6+vrxo3bmw+nv3v7LgNw9D69evVpk0bGYZhjvvChQsKCwtTcnKyfvnll5veNzExUYZhWPWLwr/++kuHDh3SY489ZjEj/95779WDDz5o/kylvI/DrVu3KigoSIGBgeZjlStX1iOPPJKnmNLS0iz+BhcuXFBWVpZSU1NzHC8Mzs7Oevzxx3Mcv/79Zo+n+++/X6mpqYqPj79tv7cbr9dzd3fPdekkAABKIldXV4vlG6///9SrV6/qwoUL5nzoVjnO9a7vIzk5WRcuXFDTpk118uRJJScnFyhee8yHJOnxxx+32E/7xlzi4MGDunTpkp588kmLGcqPPPKIRQ5SlLp162b+t7u7u7y9veXi4qKOHTuaj2fnxNfnQGvXrtV9990nd3d3i9zuwQcfVGZmpn744Yeb3jN7bGXPWMnN9bNZrlevXj3z31G69pl4e3vnmp9dLzIyUvv37zfPJJOklStXqkaNGmratOktrwUAoLS71fPHDRs2KCsrSx07drTICe666y7VqVPHYou/6/OwlJQUXbhwQcHBwTIMI9fno999952effZZhYSEaNq0aRZ5VV488sgjOn78uA4cOKDjx4/r559/vmkut3btWvn6+srHx8fifWQvqX79+5CuLVWdvfKP9P+fFbZv3968iqMkcy55ff53/vx59ejRw2L29EMPPSQfHx998803OWLr0aNHjmPFmdu4u7vr6NGjOnbs2E3b5OX7QmZmpnbt2qW2bdtaPJeuU6eOWrRo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5pNPPlFmZmbhB5wHGzdutNjn48CBA9q/f7/5vVSpUkVNmzbV559/rr/++ivH9YW11/GNbHXfgnJ0dFSHDh20bt06HTlyJMf5vMQdFBSkgwcP5vve1apVU/369fXll19ajL0jR45ox44datWqlUWcN8ptHLZq1Ur79u3TgQMHLN7DypUr8x2frWT/avX6X3+mpaXp008/LfR7JScn68SJEwoODi70vgEAKE67du3SzJkz5enpaZ7VcbPZJR9//HGOYy4uLpJyLj2e3ceNS3ovX768UOIuqflQo0aN5OHhoSVLligjI8N8fOXKlbddNtvWOnbsqL179+rbb7/NcS4pKcni/dzIxcVF/fv3V0JCgiZPnpzj/DfffKMvvvhCYWFhCgoKKrSYW7ZsqUqVKmnevHn64YcfmJUNAEAhaN++vRwdHTV9+vQcM3ANw9DFixcl5f6cxjAMLVy48KZ9Ozs7a/r06QoICNCgQYMs8rK88vLy0qhRo/Svf/3LvH91bjp27KizZ89qyZIlOc5duXJFKSkp+b53bho1aqQqVapo8eLFSktLMx/funWrfv/9dz300EN57sva3Cb7+e+iRYtynMt+/n398+7szzBb+fLl5eXlZY4/r98XHB0d9eCDD2rTpk0Wz6WPHz+eI6fM67iyRm7feQr6TNrFxSXXSWu5fQ/av3+/9u3bZ3X8QEnAzGzABtq0aaNmzZpp8uTJ5hkSO3bs0KZNm9S3b1+LJUYaNmyoXbt2af78+apWrZo8PT3VuHFjPfTQQ/rqq69UoUIF1atXT/v27dPOnTvl4eFhk/fk5eWlHj16qEePHkpLS9PChQvl4eFhsUzgG2+8oaefflqPPPKInnzySdWuXVt///239u3bpzNnzujrr78ukthsdd+C+te//qXdu3frySefVLdu3VSvXj0lJibql19+0a5du/T999/f8vq2bdvqq6++UkJCQq6/OFywYEGO5bQdHBw0aNAgvfrqq4qKilL37t3VtWtXXblyRYsWLZKbm5vFLyLzOg6fffZZffXVV3r22WfVp08fubi4aMmSJapZs2ah7HFdHIKDg1WxYkVFR0erd+/eMplM+uqrr4pkWc+dO3fKMAy1bdu20PsGAKCobNu2TfHx8crMzNTff/+t3bt3a8eOHapZs6ZmzZqlsmXLSrq2/98DDzygefPmKT09XdWrV9eOHTtyXe2kYcOGkqTJkycrIiJCTk5Oat26tUJDQ+Xk5KRBgwbpqaee0j///KOlS5eqSpUqOnfuXJ5jvtPyIWdnZw0dOlRvvfWW+vbtq44dO+r06dNasWJFkW6tUxgGDBigzZs3a9CgQXrsscfUsGFDpaam6siRI1q3bp02bdqUYz/u6w0cOFCHDh3S3LlztW/fPrVv317lypXTnj179PXXX8vX11eTJk0q1JidnJzUqVMnLVq0SI6OjurUqVOh9g8AQGnk5eWl4cOH67333tPp06cVHh6u8uXL69SpU9q4caOefPJJDRgwQD4+PvLy8tKkSZN09uxZVahQQevWrbvtlnvlypXT7Nmz1adPH0VFRemTTz6Rn59fvmLs27fvbdtERkZqzZo1euONN7R79241adJEmZmZio+P19q1azVv3rxC2erRyclJL7/8sv7973+rV69e6tSpk86fP6+FCxeqVq1a6tevX776sia3qV+/vrp166aFCxfq+PHj5pnIO3fu1NatW9WtWzeL1Qc7deqkpk2bqmHDhvLw8NDPP/+sdevWqVevXpLy931hyJAh2r59u/m5dFZWlhYtWqR77rlHhw4dMrfL67i6nbx+55EK9ky6YcOGio2N1YQJExQQECBXV1e1adNGDz30kNavX68XXnhBDz30kE6dOqXFixerXr16hfYDCcAeUcwGbMDBwUGzZs3S1KlTFRsbqxUrVqhWrVp69dVX1b9/f4u20dHRev311zVlyhRduXJFjz32mBo3bqzXXntNDg4OWrlypa5evaomTZpo/vz5N91jrqh16dJFDg4O+vjjj3X+/HkFBgZqzJgxFktD16tXT8uXL9f06dP1xRdf6NKlS6pcubIaNGigF154ochis9V9C+quu+7S0qVLNWPGDG3YsEGfffaZPDw8VK9ePb388su3vb5169aqVKmS1qxZo8GDB+c4P3v27BzHHB0dNWjQID344IOaN2+epk6dqqlTp6pMmTJ64IEH9Morr5iXyZGU53FYrVo1LVy4UG+//bbmzJkjDw8PPfXUU6pWrZpee+01K/46xa9SpUr68MMPNWnSJE2ZMkXu7u569NFHFRISkqdkNz/Wrl2r++67z+4fOgMAcL3spe2cnJzk4eEhPz8/jRo1So8//rjF1jqS9N577+mtt97Sp59+KsMwFBoaqrlz5+bYTy4wMFAvvviiFi9erG+//VZZWVnatGmTfHx8NHXqVE2ZMkWTJk3SXXfdpR49eqhy5coaNWpUnmO+E/OhXr16yTAMzZ8/X5MmTdK9996rWbNm6e2337Z4uGZvXFxc9Mknn2j27Nlau3atvvzyS1WoUEF169bV0KFD5ebmdsvrHR0dNWXKFH355ZdaunSpPvjgA6Wnp8vLy0svvPCC+vfvX+C9EHMTGRmpRYsWKSQkJMe2OAAAwDoDBw5U3bp1tWDBAs2YMUPStT2mQ0ND1aZNG0nXcs4PP/xQb7/9tmbPnq2yZcuqXbt26tmzpyIjI2/Zf4UKFRQTE6NevXqpf//++t///pdjeeyCcnBw0IwZM7RgwQJ99dVX2rBhg1xcXOTp6anevXsX6lLXjz/+uMqVK6e5c+fq3Xfflaurq8LDw/XKK6/I3d09X31Zm9u8+eab8vPz0/Lly/X+++9Lkry9vTV69Gj17NnTom3v3r21efNm7dixQ2lpaapZs6aGDx9u8Xwtr98XGjVqpLlz5+qdd97RBx98oBo1amjYsGGKj483b+mZLS/j6nby852nIM+kn376aR06dEgrVqzQggULVKtWLbVp00aPP/64/v77b33++efavn276tWrp//+979au3btbSc+ASWZySiKKWUASo1Tp06pbdu2evXVVwu9oIeCmzFjhlasWKH169ffdIke2Jdz586pbdu2ev/99xUeHm7rcAAAwB0gKytLISEhateund5++21bh3NH+e233xQZGZljv04AAICS6E7JbQYPHqy4uDitX7/e1qEAKATsmQ0Ad7B+/fopJSVFq1evtnUoyKOPP/5Yfn5+FLIBAIBVrl69mmMblC+//FKXLl1S06ZNbRTVnWvJkiVydXVV+/btbR0KAABAgZXE3ObKlSsWr48dO6Zt27aR+wJ3EJYZB4A7WPny5bVr1y5bh4F8yMsS8gAAADezb98+TZgwQQ8//LA8PDz066+/atmyZfLz89PDDz9s6/DuGJs3b1ZcXJyWLFminj17FskS5gAAAMWlJOc24eHheuyxx1S7dm2dPn1aixcvlpOTk8224wRQ+ChmAwAAAABwh6hVq5buvvtuffLJJ0pMTFTFihUVGRmpl19+Wc7OzrYO747x9ttv6++//1bLli01dOhQW4cDoBCsWbNGX3/9tX755RclJSWpTp066t27t5544gmZ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rNXOvH79+vL19dXOnTtv6myk/Px8/ec//1GnTp3k4eFxw7aNGjWSm5ubxo8fr+eee07Nmze3vOdXi4mJUc2aNbV+/Xq1adPGMt186Z6uXbvecD1fffXVde/BdC3zzqxWrVo6ceKEAgMD1b17d912222WeyJlZ2dryJAhVvPNmjVLHTt21KxZs7R//37NmTNH9erVU58+fSTJEnDatGmjsWPH6tSpU4UGnKI+J5I0ZcoUffnllxo1apTuuusunT171iYwltb7eSPm/cXp06f12muv6fLly5YD4rhx4yztLl++rNatW6tVq1b69NNP1bt3b8tzGRkZSkxMVNOmTS3TRo4cqTp16mjevHmWfZCnp6deeumlYvfx66+/1pYtW7R48WLFxcVJklq3bq2zZ89qzpw5atu2rerVqyc/Pz/9/PPPioiIKHKZ3333XaGfY+nKwT8/P18FBQU6duyYpk2bJh8fH8XGxqpSpUrq1auX1q5dqxEjRli2be3atbr//vvl4+NjWc769estZ/V6eHioc+fO+uijj/T777/rtttus1pnhw4d9MILL1gem8dww4YN9Y9//MMyffPmzTp48KAWLVqke++9V9KVL4WdOnXSggULNGfOHN1111268847tXfvXsXExGjfvn264447FB4erj179qht27bav3+/8vLy1KJFC6t+3H777Tp//rzNcadSpUoymUxKSkrSyJEj1atXLw0dOlRnz57VG2+8oczMTMtlWi5evKjLly9r5MiR8vPz0y+//KK3335bgwcPtpypO3fuXD3zzDNq1qyZJfzWq1fPsr4tW7bop59+0sSJE/Xbb79pypQpevXVVy3ryM3N1cCBA3Xu3DmNGDFCtWrV0kcffaRBgwZZvqBf/V6npaVp+PDh8vHxue4XgAMHDig7O1vNmze3ec4c7J977jmrYG/+Y8fVrt3nm82YMUNt27bVG2+8oYKCAkuwT01N1ejRo3X77bfr3Xff1cCBA/X++++rSZMmVsE+JibGEuwrV66sffv2qW3btpZg//jjjxe6XcVx9Ref4hwHzCIjI2/4ZQLOhXxJviRfki/Jl+RLqezzpZubmw4cOGB1HCFbki3tQbZ0PeRL8iX5knxJviRfSuRLiXxZkfIlxWw7ZWdnq3HjxoU+V7VqVZtp06dPt7o/QL169bRp06YSr79OnTo6dOiQ5fFj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tgRwK3J3dAcAwBkNGzZMdevWtZoWHBzsoN6UzP79+zV37lz17NlTPj4+ju4OAADALY18CQAAgNJCtgRwK6GYDQCFaNOmjcLCwkp1mdnZ2apatWqpLhMAAACugXwJAACA0kK2BHAr4TLjAFBMycnJ6tu3ryIiItSiRQv99a9/1Y8//mjVZs6cOQoJCdHx48c1atQotWzZUn379pUkdejQQYMGDdKuXbvUq1cvhYeHq3v37tq1a5ck6bPPPlP37t0VFhamXr166fDhw1bL/v777zVmzBh17NhRYWFhat26tcaOHavffvvNav3Tpk2TJHXs2NFyuaFTp06V5UsDAACAEiBfAgAAoLSQLQFUNPwyGwAKceHCBZ0/f95qmp+fn7766is9/fTTqlu3roYMGaKLFy9qxYoV6tOnj9atW2dzeZ/hw4fr7rvv1siRI2UYhmX6Tz/9pFGjRunRRx9Vjx49tGTJEj377LOaNGmSZs6cqT59+kiSFi5cqBEjRigpKUlublfOP/rqq6+UmpqqXr16qWbNmvrhhx+0evVqHT9+XKtXr5bJZNL999+vkydPav369Ro7dqxq1Khh2QYAAACUP/IlAAAASgvZEsCthGI2ABRiwIABNtOOHj2qadOmydfXV6tWrVL16tUlSffdd5969uypOXPm6LXXXrOap2HDhnrjjTdslpWSkqL3339fkZGRkqQGDRroySef1IQJE/TJJ5/ozjvvlCT5+vpq4sSJ2rNnj6KjoyVJffv21RNPPGG1vIiICD3//PPat2+fWrRooYYNGyo0NFTr16/XfffdZxNUAQAAUL7IlwAAACgtZEsAtxKK2QBQiIkTJyowMNBq2pkzZ3TkyBE99dRTljAoXQl9sbGx2rZtm81yHn300UKX36BBA0sYlKSmTZtKkmJiYixh8OrpqamplkBYpUoVy/OXLl3S77//bml36NAhtWjRojibCgAAgHJAvgQAAEBpIVsCuJVQzAaAQoSHhyssLMxq2oEDByTJJihKUv369bVjxw5lZ2eratWqlunXO6uwTp06Vo+9vb0lSbVr17aaXq1aNUlSZmamZVp6errmzp2rjRs36ty5c1bts7KybrRZAAAAcBDyJQAAAEoL2RLArYRiNgCUIU9Pz0KnV6pUqVjTr75nzYgRI7R//349+eSTatSokapWraqCggI99dRTVu0AAABQ8ZAvAQAAUFrIlgBcAcVsALCT+RI6KSkpNs+dOHFCNWrUsDqzsSxkZGQoOTlZQ4cO1ZAhQyzTT548adPWZDKVaV8AAABwc8iXAAAAKC1kSwAVlZujOwAAruKOO+5Qo0aN9OGHH1pdOufYsWPauXOn2rZtW+Z9uN7Zj8uWLbOZ5uXlJYnL9wAAADgr8iUAAABKC9kSQEXFL7MBoBj+7//+T08//bR69+6tRx55RBcvXtSKFSvk7e1tdbZhWalWrZpatmypRYsWKS8vT7Vq1dLOnTt16tQpm7aNGzeWJM2cOVNdu3aVh4eH2rdvX+ZnYAIAAMB+5EsAAACUFrIlgIqIX2YDQDHExsZq0aJFql69umbPnq0lS5aoadOmeu+99+Tv718ufXjjjTcUFxenf/7zn5oxY4bc3d2VmJho0y48PFzDhw/X999/r7Fjx+r555/X+fPny6WPAAAAsA/5EgAAAKWFbAmgIjIZhmE4uhMAAAAAAAAAAAAAAFyNX2YDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6fw/5R+B3xhRTbgAAAAASUVORK5CYII=\n"
+ },
+ "metadata": {}
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From a640b930f319edbfff894e43c08887be0388fff5 Mon Sep 17 00:00:00 2001
From: mon-jai <91261297+mon-jai@users.noreply.github.com>
Date: Tue, 9 Dec 2025 03:18:43 +0800
Subject: [PATCH 2/2] Update benchmark notebook after edit and rerun
---
reports/machine_learning_benchmark.ipynb | 977 +++++++++++------------
1 file changed, 487 insertions(+), 490 deletions(-)
diff --git a/reports/machine_learning_benchmark.ipynb b/reports/machine_learning_benchmark.ipynb
index 45d623a..5d6555d 100644
--- a/reports/machine_learning_benchmark.ipynb
+++ b/reports/machine_learning_benchmark.ipynb
@@ -4,8 +4,7 @@
"metadata": {
"colab": {
"provenance": [],
- "gpuType": "T4",
- "toc_visible": true
+ "gpuType": "T4"
},
"kernelspec": {
"name": "python3",
@@ -17,7 +16,7 @@
"accelerator": "GPU",
"widgets": {
"application/vnd.jupyter.widget-state+json": {
- "e9b09ac7c2174367b05883f3d3aff6f9": {
+ "5a0ac8c1198c4c2daa6a2f42fb999fcc": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -32,14 +31,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_3587d23b09674e159c548c0bde943697",
- "IPY_MODEL_7a44cf5adb954842af61929ac583fa64",
- "IPY_MODEL_5ea5a900d66a495b83c3960f4653ec2d"
+ "IPY_MODEL_b9685968526f418e8a5acda06fbf1968",
+ "IPY_MODEL_b9a1a30ac1a643afbdf7be645963a9b7",
+ "IPY_MODEL_6c0b61d869b04183a4245019cbab68bd"
],
- "layout": "IPY_MODEL_ae56cf5f251a486cbc353019959e499d"
+ "layout": "IPY_MODEL_bd7508dc556342e987d4b1015a9ecfab"
}
},
- "3587d23b09674e159c548c0bde943697": {
+ "b9685968526f418e8a5acda06fbf1968": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -54,13 +53,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_ecd8422537864ec6abaa7cae1856f9df",
+ "layout": "IPY_MODEL_5223bcca9c90442e98a3b98c8fcb4203",
"placeholder": "",
- "style": "IPY_MODEL_eb783c612bf74aa082cbf3e21bfc1e01",
+ "style": "IPY_MODEL_e99ad09ab6ef46cca9407848423713df",
"value": "README.md: "
}
},
- "7a44cf5adb954842af61929ac583fa64": {
+ "b9a1a30ac1a643afbdf7be645963a9b7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -76,15 +75,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_e45393cafd624c7596f2e3c2e71702a0",
+ "layout": "IPY_MODEL_6d222d2e3d234c2a8323b3fb9ec000b3",
"max": 1,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_92799625f0ca4c8ba569fc606a5ac338",
+ "style": "IPY_MODEL_b82668e264924b5dbd35b2d57b5039de",
"value": 1
}
},
- "5ea5a900d66a495b83c3960f4653ec2d": {
+ "6c0b61d869b04183a4245019cbab68bd": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -99,13 +98,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_0b4f9fabaa7a42c7b237b4212a725882",
+ "layout": "IPY_MODEL_f5b10a15ab0e468784e322135cf9c324",
"placeholder": "",
- "style": "IPY_MODEL_9c691f808bf14ffb816825cc553ed20b",
- "value": " 6.81k/? [00:00<00:00, 241kB/s]"
+ "style": "IPY_MODEL_40f0bda9fded407983e4f0c62fbd2dda",
+ "value": " 6.81k/? [00:00<00:00, 352kB/s]"
}
},
- "ae56cf5f251a486cbc353019959e499d": {
+ "bd7508dc556342e987d4b1015a9ecfab": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -157,7 +156,7 @@
"width": null
}
},
- "ecd8422537864ec6abaa7cae1856f9df": {
+ "5223bcca9c90442e98a3b98c8fcb4203": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -209,7 +208,7 @@
"width": null
}
},
- "eb783c612bf74aa082cbf3e21bfc1e01": {
+ "e99ad09ab6ef46cca9407848423713df": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -224,7 +223,7 @@
"description_width": ""
}
},
- "e45393cafd624c7596f2e3c2e71702a0": {
+ "6d222d2e3d234c2a8323b3fb9ec000b3": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -276,7 +275,7 @@
"width": "20px"
}
},
- "92799625f0ca4c8ba569fc606a5ac338": {
+ "b82668e264924b5dbd35b2d57b5039de": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -292,7 +291,7 @@
"description_width": ""
}
},
- "0b4f9fabaa7a42c7b237b4212a725882": {
+ "f5b10a15ab0e468784e322135cf9c324": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -344,7 +343,7 @@
"width": null
}
},
- "9c691f808bf14ffb816825cc553ed20b": {
+ "40f0bda9fded407983e4f0c62fbd2dda": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -359,7 +358,7 @@
"description_width": ""
}
},
- "b198f8bede6f4f3f8ab85a5c23410281": {
+ "f576a8515b084e95a80e997c17d2315a": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -374,14 +373,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_d8b910cc334641b082407da4cd5bffb6",
- "IPY_MODEL_722aed840ffe4a43b0bb096cf9990f69",
- "IPY_MODEL_d65f247cab59485caa160e3ab90bf026"
+ "IPY_MODEL_2a019390a6624c008fb2411f8d19cc82",
+ "IPY_MODEL_7f0e4487d7324fd0bcc40afa6fba7fe7",
+ "IPY_MODEL_2f1997b0ae6043bcb5f1ca32177ab50b"
],
- "layout": "IPY_MODEL_20918cbed5c943d5bcb17fa88f927980"
+ "layout": "IPY_MODEL_ae62a76dcbdc49fabf859a781350057f"
}
},
- "d8b910cc334641b082407da4cd5bffb6": {
+ "2a019390a6624c008fb2411f8d19cc82": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -396,13 +395,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_1b69a97f14254e1da5f66c4154d8c0b2",
+ "layout": "IPY_MODEL_3a7bf055d65b45afa17d4ca7ccda48dd",
"placeholder": "",
- "style": "IPY_MODEL_46561cbd61a74cad90f78a31925509c7",
+ "style": "IPY_MODEL_4e0c44ca02e348ad8ca18f88c8ba9370",
"value": "amazon_polarity/train-00000-of-00004.par(…): 100%"
}
},
- "722aed840ffe4a43b0bb096cf9990f69": {
+ "7f0e4487d7324fd0bcc40afa6fba7fe7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -418,15 +417,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_465070b9e6874eff863e01bd75b01457",
+ "layout": "IPY_MODEL_975c82fcad474cb3b93d33108d2cb90c",
"max": 259761770,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_30e99ca83c434ce4a6c10eb312cd6dfc",
+ "style": "IPY_MODEL_510533ee0c1d413e8fec253b46a3aa9b",
"value": 259761770
}
},
- "d65f247cab59485caa160e3ab90bf026": {
+ "2f1997b0ae6043bcb5f1ca32177ab50b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -441,13 +440,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_e7276b51b1ea417390c894ae0e541ebd",
+ "layout": "IPY_MODEL_31b1eb8b518045e99ec6f7cfa464fa8e",
"placeholder": "",
- "style": "IPY_MODEL_95798fe15239480ba87d19192d296187",
- "value": " 260M/260M [00:07<00:00, 85.6MB/s]"
+ "style": "IPY_MODEL_13439674899e48189b83ec73ba1f2dc7",
+ "value": " 260M/260M [00:05<00:00, 45.0MB/s]"
}
},
- "20918cbed5c943d5bcb17fa88f927980": {
+ "ae62a76dcbdc49fabf859a781350057f": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -499,7 +498,7 @@
"width": null
}
},
- "1b69a97f14254e1da5f66c4154d8c0b2": {
+ "3a7bf055d65b45afa17d4ca7ccda48dd": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -551,7 +550,7 @@
"width": null
}
},
- "46561cbd61a74cad90f78a31925509c7": {
+ "4e0c44ca02e348ad8ca18f88c8ba9370": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -566,7 +565,7 @@
"description_width": ""
}
},
- "465070b9e6874eff863e01bd75b01457": {
+ "975c82fcad474cb3b93d33108d2cb90c": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -618,7 +617,7 @@
"width": null
}
},
- "30e99ca83c434ce4a6c10eb312cd6dfc": {
+ "510533ee0c1d413e8fec253b46a3aa9b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -634,7 +633,7 @@
"description_width": ""
}
},
- "e7276b51b1ea417390c894ae0e541ebd": {
+ "31b1eb8b518045e99ec6f7cfa464fa8e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -686,7 +685,7 @@
"width": null
}
},
- "95798fe15239480ba87d19192d296187": {
+ "13439674899e48189b83ec73ba1f2dc7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -701,7 +700,7 @@
"description_width": ""
}
},
- "e875ad47edfa447bae6f45ad5d17714a": {
+ "31d696b7927f42ec9576f09be2c3d98b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -716,14 +715,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_546746a37b414bbf9dd081a4038a408f",
- "IPY_MODEL_ea1ba4cbd8c746bd9d7db42bac7a8839",
- "IPY_MODEL_4c775268eec448b39638db557958b029"
+ "IPY_MODEL_c850cb31ae67428faefed7398bf67387",
+ "IPY_MODEL_0c793656e98442a2981b3b7d3323dc85",
+ "IPY_MODEL_f01c5cb7bab34beeba25de2d2eec9744"
],
- "layout": "IPY_MODEL_d0cf8be2ce0345059651084052734a59"
+ "layout": "IPY_MODEL_b8ebf0e6597e4fd7a9d5109249ad48ca"
}
},
- "546746a37b414bbf9dd081a4038a408f": {
+ "c850cb31ae67428faefed7398bf67387": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -738,13 +737,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_d73a05d171444e66bddf66596c4d68f6",
+ "layout": "IPY_MODEL_bf214ab650d24e69b2d2aa851cbbf9ca",
"placeholder": "",
- "style": "IPY_MODEL_66e3a13e9bf04ded8303be8e431c21e8",
+ "style": "IPY_MODEL_4e04267df185487ea8f8392b8457df7c",
"value": "amazon_polarity/train-00001-of-00004.par(…): 100%"
}
},
- "ea1ba4cbd8c746bd9d7db42bac7a8839": {
+ "0c793656e98442a2981b3b7d3323dc85": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -760,15 +759,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_f209f065e7c744a08a3457726781338c",
+ "layout": "IPY_MODEL_980ffcc461a44efaaa1301cc8aadc3f5",
"max": 258363554,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_bbc5c01c4a17435790467edebfae6167",
+ "style": "IPY_MODEL_9c51dac5c5d9452b8d724059eac74438",
"value": 258363554
}
},
- "4c775268eec448b39638db557958b029": {
+ "f01c5cb7bab34beeba25de2d2eec9744": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -783,13 +782,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_ec2d264d3791489f807207045fcda35d",
+ "layout": "IPY_MODEL_abf3ba014071476ca0e1e3f49a52279b",
"placeholder": "",
- "style": "IPY_MODEL_ce7fafb4755d442e82c14c451b8159df",
- "value": " 258M/258M [00:05<00:00, 121MB/s]"
+ "style": "IPY_MODEL_9abbd9045722468c89fd04503c1a3d60",
+ "value": " 258M/258M [00:04<00:00, 96.9MB/s]"
}
},
- "d0cf8be2ce0345059651084052734a59": {
+ "b8ebf0e6597e4fd7a9d5109249ad48ca": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -841,7 +840,7 @@
"width": null
}
},
- "d73a05d171444e66bddf66596c4d68f6": {
+ "bf214ab650d24e69b2d2aa851cbbf9ca": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -893,7 +892,7 @@
"width": null
}
},
- "66e3a13e9bf04ded8303be8e431c21e8": {
+ "4e04267df185487ea8f8392b8457df7c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -908,7 +907,7 @@
"description_width": ""
}
},
- "f209f065e7c744a08a3457726781338c": {
+ "980ffcc461a44efaaa1301cc8aadc3f5": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -960,7 +959,7 @@
"width": null
}
},
- "bbc5c01c4a17435790467edebfae6167": {
+ "9c51dac5c5d9452b8d724059eac74438": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -976,7 +975,7 @@
"description_width": ""
}
},
- "ec2d264d3791489f807207045fcda35d": {
+ "abf3ba014071476ca0e1e3f49a52279b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1028,7 +1027,7 @@
"width": null
}
},
- "ce7fafb4755d442e82c14c451b8159df": {
+ "9abbd9045722468c89fd04503c1a3d60": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -1043,7 +1042,7 @@
"description_width": ""
}
},
- "c4eda03bbf964c0d8de7758722619fa4": {
+ "b61b9fbe801e4c4282808920aadf7371": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -1058,14 +1057,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_22478687fe0448b69baf6f7dd908f3fc",
- "IPY_MODEL_f0de16e3ad7a429292a5cb6b379c1ab3",
- "IPY_MODEL_9a2fca6103a64a72875098081b181ab2"
+ "IPY_MODEL_c78eba94196e43208d303301f1f72b13",
+ "IPY_MODEL_0907f6b5721e48919e5d3f1cdf3854f3",
+ "IPY_MODEL_bb3f0c309fa24719a04dc046d78dd1f4"
],
- "layout": "IPY_MODEL_8459c016a078475b877bea4b5a787a66"
+ "layout": "IPY_MODEL_136d295dbc7a4593a5876e077522e976"
}
},
- "22478687fe0448b69baf6f7dd908f3fc": {
+ "c78eba94196e43208d303301f1f72b13": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -1080,13 +1079,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_fe593dcb41ad4ae8a82bbec02aa3727f",
+ "layout": "IPY_MODEL_be7dac6179f14d49a04778141be5df99",
"placeholder": "",
- "style": "IPY_MODEL_31da5a4d89d442f6ac10d2d3e998b9dc",
+ "style": "IPY_MODEL_cdfc3ecc89e647ad8f593585b2a14c34",
"value": "amazon_polarity/train-00002-of-00004.par(…): 100%"
}
},
- "f0de16e3ad7a429292a5cb6b379c1ab3": {
+ "0907f6b5721e48919e5d3f1cdf3854f3": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -1102,15 +1101,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_9e985af96ba84ce5942fdc0e6b433e36",
+ "layout": "IPY_MODEL_b7e164a485124f5a8f716a31396debc9",
"max": 255471883,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_3290118fcc4343f48290853a7ca7a9b2",
+ "style": "IPY_MODEL_2a9fb5f144484df0895e426462dfa0a1",
"value": 255471883
}
},
- "9a2fca6103a64a72875098081b181ab2": {
+ "bb3f0c309fa24719a04dc046d78dd1f4": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -1125,13 +1124,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_bec15ef07c874e0f9adc7777eeffaeb9",
+ "layout": "IPY_MODEL_b9ec58743b2e467f8ea7452c53630156",
"placeholder": "",
- "style": "IPY_MODEL_3b57c2f561f946c7885e517fc765bde5",
- "value": " 255M/255M [00:04<00:00, 76.8MB/s]"
+ "style": "IPY_MODEL_71c0c4e453a24912b0d35f466079197b",
+ "value": " 255M/255M [00:02<00:00, 189MB/s]"
}
},
- "8459c016a078475b877bea4b5a787a66": {
+ "136d295dbc7a4593a5876e077522e976": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1183,7 +1182,7 @@
"width": null
}
},
- "fe593dcb41ad4ae8a82bbec02aa3727f": {
+ "be7dac6179f14d49a04778141be5df99": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1235,7 +1234,7 @@
"width": null
}
},
- "31da5a4d89d442f6ac10d2d3e998b9dc": {
+ "cdfc3ecc89e647ad8f593585b2a14c34": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -1250,7 +1249,7 @@
"description_width": ""
}
},
- "9e985af96ba84ce5942fdc0e6b433e36": {
+ "b7e164a485124f5a8f716a31396debc9": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1302,7 +1301,7 @@
"width": null
}
},
- "3290118fcc4343f48290853a7ca7a9b2": {
+ "2a9fb5f144484df0895e426462dfa0a1": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -1318,7 +1317,7 @@
"description_width": ""
}
},
- "bec15ef07c874e0f9adc7777eeffaeb9": {
+ "b9ec58743b2e467f8ea7452c53630156": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1370,7 +1369,7 @@
"width": null
}
},
- "3b57c2f561f946c7885e517fc765bde5": {
+ "71c0c4e453a24912b0d35f466079197b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -1385,7 +1384,7 @@
"description_width": ""
}
},
- "466ee7b9b4314fe185f2e95e65787368": {
+ "c1b5f033aa3148118570ccc325046c35": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -1400,14 +1399,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_00673fe888754d00ac42786670672893",
- "IPY_MODEL_1c97876e5aa24717bf2f1a5ab50b53ed",
- "IPY_MODEL_5072c9d6eacd4987aa8768eaa3d14ee0"
+ "IPY_MODEL_6169bca3f9ef4d6b99f5c39aa67f5561",
+ "IPY_MODEL_10d31a5c91b54f56bc6b30241f394788",
+ "IPY_MODEL_bac092e2447144909522015e017d3588"
],
- "layout": "IPY_MODEL_796c152c3d1d490996adbcce33e9dd67"
+ "layout": "IPY_MODEL_b6eb15c0ac7849e285f4aab02e0d4f7e"
}
},
- "00673fe888754d00ac42786670672893": {
+ "6169bca3f9ef4d6b99f5c39aa67f5561": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -1422,13 +1421,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_1eaa76f0d53045929f88c1670ffce1ff",
+ "layout": "IPY_MODEL_e06c9299fe874987bb822820d560a768",
"placeholder": "",
- "style": "IPY_MODEL_8e4a0faca6964389816e6c20c8e7ef5d",
+ "style": "IPY_MODEL_0278269c48074d9788c2eb54a296d9c5",
"value": "amazon_polarity/train-00003-of-00004.par(…): 100%"
}
},
- "1c97876e5aa24717bf2f1a5ab50b53ed": {
+ "10d31a5c91b54f56bc6b30241f394788": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -1444,15 +1443,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_a540fd76d900440fa6fb3429e2e535e0",
+ "layout": "IPY_MODEL_ee6ff7545b804e2ea643df3528a7361a",
"max": 254410930,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_07620dcc7b014eeab2bd847df1ec150b",
+ "style": "IPY_MODEL_56fdb04f02bc4c1bb3a43e1fa0652cde",
"value": 254410930
}
},
- "5072c9d6eacd4987aa8768eaa3d14ee0": {
+ "bac092e2447144909522015e017d3588": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -1467,13 +1466,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_ee23a71e4a144e63ba9d42413da7ea5e",
+ "layout": "IPY_MODEL_f3eb00e9817748c1ac14519a189dc684",
"placeholder": "",
- "style": "IPY_MODEL_cc3117a4286941a3b52608ae183a017b",
- "value": " 254M/254M [00:01<00:00, 228MB/s]"
+ "style": "IPY_MODEL_2985417fbe584ae288ee6d22fbde554e",
+ "value": " 254M/254M [00:02<00:00, 168MB/s]"
}
},
- "796c152c3d1d490996adbcce33e9dd67": {
+ "b6eb15c0ac7849e285f4aab02e0d4f7e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1525,7 +1524,7 @@
"width": null
}
},
- "1eaa76f0d53045929f88c1670ffce1ff": {
+ "e06c9299fe874987bb822820d560a768": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1577,7 +1576,7 @@
"width": null
}
},
- "8e4a0faca6964389816e6c20c8e7ef5d": {
+ "0278269c48074d9788c2eb54a296d9c5": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -1592,7 +1591,7 @@
"description_width": ""
}
},
- "a540fd76d900440fa6fb3429e2e535e0": {
+ "ee6ff7545b804e2ea643df3528a7361a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1644,7 +1643,7 @@
"width": null
}
},
- "07620dcc7b014eeab2bd847df1ec150b": {
+ "56fdb04f02bc4c1bb3a43e1fa0652cde": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -1660,7 +1659,7 @@
"description_width": ""
}
},
- "ee23a71e4a144e63ba9d42413da7ea5e": {
+ "f3eb00e9817748c1ac14519a189dc684": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1712,7 +1711,7 @@
"width": null
}
},
- "cc3117a4286941a3b52608ae183a017b": {
+ "2985417fbe584ae288ee6d22fbde554e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -1727,7 +1726,7 @@
"description_width": ""
}
},
- "195bb41efd7341298f9e770444b20914": {
+ "f97f673536e94561a7d341f6c69c0e7e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -1742,14 +1741,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_82da0b7625254032adb1490ee13301fd",
- "IPY_MODEL_4ff2c74d3b5a45d8b604f8924be05464",
- "IPY_MODEL_c29c521b900243b2aad1b954b1cf001b"
+ "IPY_MODEL_a606da5378ec455f9dbd4d895857458e",
+ "IPY_MODEL_cd50f2eade344c34b56eed1f699032aa",
+ "IPY_MODEL_6848b8d3dbaa43598010d060f72c8b5c"
],
- "layout": "IPY_MODEL_d0e748ae3c7f49d3b1482ac2a36ea9e7"
+ "layout": "IPY_MODEL_a2f29c5f75e9405f93cbf31992df957d"
}
},
- "82da0b7625254032adb1490ee13301fd": {
+ "a606da5378ec455f9dbd4d895857458e": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -1764,13 +1763,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_e074cad8fbc045a3880aa9703e8d08b2",
+ "layout": "IPY_MODEL_983f2d2a2ae849b18fdd88aa4937fe5b",
"placeholder": "",
- "style": "IPY_MODEL_ea4bd15944954cc1a8f6bcc0334b4bbd",
+ "style": "IPY_MODEL_50eb2633d2644371b5d382b345ce5080",
"value": "amazon_polarity/test-00000-of-00001.parq(…): 100%"
}
},
- "4ff2c74d3b5a45d8b604f8924be05464": {
+ "cd50f2eade344c34b56eed1f699032aa": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -1786,15 +1785,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_d7e73f7d0b64487e864eef85ea7a6c96",
+ "layout": "IPY_MODEL_ad635ba05af44dc9ac29f81b6fecd43c",
"max": 117422360,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_f4515ac1497e43df8262e82c2548f1b2",
+ "style": "IPY_MODEL_ae3d02e234734e8da4f468642f0860f9",
"value": 117422360
}
},
- "c29c521b900243b2aad1b954b1cf001b": {
+ "6848b8d3dbaa43598010d060f72c8b5c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -1809,13 +1808,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_03a21315985d4493b6884a3379f9213d",
+ "layout": "IPY_MODEL_ee1be19c8cfd4a4694ff9bc72d5a6384",
"placeholder": "",
- "style": "IPY_MODEL_9245059b9d1746b0b295c7e3098851e0",
- "value": " 117M/117M [00:01<00:00, 17.2MB/s]"
+ "style": "IPY_MODEL_76a75dfa593342c69026424c0c7591b7",
+ "value": " 117M/117M [00:02<00:00, 64.4MB/s]"
}
},
- "d0e748ae3c7f49d3b1482ac2a36ea9e7": {
+ "a2f29c5f75e9405f93cbf31992df957d": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1867,7 +1866,7 @@
"width": null
}
},
- "e074cad8fbc045a3880aa9703e8d08b2": {
+ "983f2d2a2ae849b18fdd88aa4937fe5b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1919,7 +1918,7 @@
"width": null
}
},
- "ea4bd15944954cc1a8f6bcc0334b4bbd": {
+ "50eb2633d2644371b5d382b345ce5080": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -1934,7 +1933,7 @@
"description_width": ""
}
},
- "d7e73f7d0b64487e864eef85ea7a6c96": {
+ "ad635ba05af44dc9ac29f81b6fecd43c": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -1986,7 +1985,7 @@
"width": null
}
},
- "f4515ac1497e43df8262e82c2548f1b2": {
+ "ae3d02e234734e8da4f468642f0860f9": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -2002,7 +2001,7 @@
"description_width": ""
}
},
- "03a21315985d4493b6884a3379f9213d": {
+ "ee1be19c8cfd4a4694ff9bc72d5a6384": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2054,7 +2053,7 @@
"width": null
}
},
- "9245059b9d1746b0b295c7e3098851e0": {
+ "76a75dfa593342c69026424c0c7591b7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -2069,7 +2068,7 @@
"description_width": ""
}
},
- "142163f8585d4d9b833792771d76960f": {
+ "c4dd07f49a534338a8718d6efc536156": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -2084,14 +2083,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_7ed66d2bce3649729f03175f2dd3ef4e",
- "IPY_MODEL_d0bcc429ce54484e9edf5ab92646e333",
- "IPY_MODEL_30d7990199ad471da587dafbccacf065"
+ "IPY_MODEL_b3c5dd42012c40a89cac005cb14b1596",
+ "IPY_MODEL_554e279ea4db4058b60068feca2d46db",
+ "IPY_MODEL_83e4452b683e4befa68cfa0baea303ee"
],
- "layout": "IPY_MODEL_aa04339a34c746a8a7c182fa5017e332"
+ "layout": "IPY_MODEL_56527a0eef604dc1b4af2fca80627068"
}
},
- "7ed66d2bce3649729f03175f2dd3ef4e": {
+ "b3c5dd42012c40a89cac005cb14b1596": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -2106,13 +2105,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_282bf0d0484a40d8999bf5a0f505d1e7",
+ "layout": "IPY_MODEL_8b2cc632c55e408a8fc7b03e268e5e6b",
"placeholder": "",
- "style": "IPY_MODEL_39b9065670204e0499e21e94eb3ada5c",
+ "style": "IPY_MODEL_a3ac227a919748b98c9aaab9afccb469",
"value": "Generating train split: 100%"
}
},
- "d0bcc429ce54484e9edf5ab92646e333": {
+ "554e279ea4db4058b60068feca2d46db": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -2128,15 +2127,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_8efca2469e9b4aec9749b5d71276eea5",
+ "layout": "IPY_MODEL_c028dfaae83c40979fea90f85344f354",
"max": 3600000,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_83ab0aed70bc43de92a73ee9b30df7aa",
+ "style": "IPY_MODEL_8a777d045fd7496ab95f4081ca88fc71",
"value": 3600000
}
},
- "30d7990199ad471da587dafbccacf065": {
+ "83e4452b683e4befa68cfa0baea303ee": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -2151,13 +2150,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_c3d0bb97b633458d9ecadb548c313f5a",
+ "layout": "IPY_MODEL_14f78810c9c94b3ba1308a9cfda15911",
"placeholder": "",
- "style": "IPY_MODEL_9974b9d4018c407f9c55e530b9cd10f1",
- "value": " 3600000/3600000 [00:16<00:00, 193992.69 examples/s]"
+ "style": "IPY_MODEL_9ac87e70aa7d451dafc62b592f5d45fa",
+ "value": " 3600000/3600000 [00:13<00:00, 164995.19 examples/s]"
}
},
- "aa04339a34c746a8a7c182fa5017e332": {
+ "56527a0eef604dc1b4af2fca80627068": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2209,7 +2208,7 @@
"width": null
}
},
- "282bf0d0484a40d8999bf5a0f505d1e7": {
+ "8b2cc632c55e408a8fc7b03e268e5e6b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2261,7 +2260,7 @@
"width": null
}
},
- "39b9065670204e0499e21e94eb3ada5c": {
+ "a3ac227a919748b98c9aaab9afccb469": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -2276,7 +2275,7 @@
"description_width": ""
}
},
- "8efca2469e9b4aec9749b5d71276eea5": {
+ "c028dfaae83c40979fea90f85344f354": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2328,7 +2327,7 @@
"width": null
}
},
- "83ab0aed70bc43de92a73ee9b30df7aa": {
+ "8a777d045fd7496ab95f4081ca88fc71": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -2344,7 +2343,7 @@
"description_width": ""
}
},
- "c3d0bb97b633458d9ecadb548c313f5a": {
+ "14f78810c9c94b3ba1308a9cfda15911": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2396,7 +2395,7 @@
"width": null
}
},
- "9974b9d4018c407f9c55e530b9cd10f1": {
+ "9ac87e70aa7d451dafc62b592f5d45fa": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -2411,7 +2410,7 @@
"description_width": ""
}
},
- "5863e2cb2ba14a7e80f99c0926b433c9": {
+ "61f3197c6f0547c4964e2c030df0ea3b": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -2426,14 +2425,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_edce6976fecb4b10962a30cf92468498",
- "IPY_MODEL_39aa66717d6249449bfec7906c3353bf",
- "IPY_MODEL_931dd90e8908487197f8a1d167144df1"
+ "IPY_MODEL_b7ed86d35ae746d2849b8e1e18a948e0",
+ "IPY_MODEL_a09064c441244fc7a333eb92a2e4edd8",
+ "IPY_MODEL_1478dc488d4f4d17abb26acc069c5ba7"
],
- "layout": "IPY_MODEL_60a6f0420dcb445da4ca9d5d7cfbb2dc"
+ "layout": "IPY_MODEL_eda83c1917d246178eb4c691fb943a77"
}
},
- "edce6976fecb4b10962a30cf92468498": {
+ "b7ed86d35ae746d2849b8e1e18a948e0": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -2448,13 +2447,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_813a118bfc914d1799846f01beb159bd",
+ "layout": "IPY_MODEL_1d955b2ca1834e0bacd41a97d690148d",
"placeholder": "",
- "style": "IPY_MODEL_93225cd1d64844a5b28402aaa581ab0f",
+ "style": "IPY_MODEL_87ad65daa34747daa1e9013faefca302",
"value": "Generating test split: 100%"
}
},
- "39aa66717d6249449bfec7906c3353bf": {
+ "a09064c441244fc7a333eb92a2e4edd8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -2470,15 +2469,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_a6131535305344a98611172811109b45",
+ "layout": "IPY_MODEL_d0ce34a0515643a48ceba993bd89e3bd",
"max": 400000,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_f9cac0c062654374a2784ec5feac9b40",
+ "style": "IPY_MODEL_b525492479004f5f90da96aff44fda79",
"value": 400000
}
},
- "931dd90e8908487197f8a1d167144df1": {
+ "1478dc488d4f4d17abb26acc069c5ba7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -2493,13 +2492,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_b2af4e800994474d80707761c039b69d",
+ "layout": "IPY_MODEL_d44f742be39e40e3a4d01facee41213e",
"placeholder": "",
- "style": "IPY_MODEL_b77d676071094802bfbede1cbefa2cc0",
- "value": " 400000/400000 [00:02<00:00, 169250.70 examples/s]"
+ "style": "IPY_MODEL_ade8859ae4804772ab10d9b5abba97de",
+ "value": " 400000/400000 [00:00<00:00, 404115.24 examples/s]"
}
},
- "60a6f0420dcb445da4ca9d5d7cfbb2dc": {
+ "eda83c1917d246178eb4c691fb943a77": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2551,7 +2550,7 @@
"width": null
}
},
- "813a118bfc914d1799846f01beb159bd": {
+ "1d955b2ca1834e0bacd41a97d690148d": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2603,7 +2602,7 @@
"width": null
}
},
- "93225cd1d64844a5b28402aaa581ab0f": {
+ "87ad65daa34747daa1e9013faefca302": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -2618,7 +2617,7 @@
"description_width": ""
}
},
- "a6131535305344a98611172811109b45": {
+ "d0ce34a0515643a48ceba993bd89e3bd": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2670,7 +2669,7 @@
"width": null
}
},
- "f9cac0c062654374a2784ec5feac9b40": {
+ "b525492479004f5f90da96aff44fda79": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -2686,7 +2685,7 @@
"description_width": ""
}
},
- "b2af4e800994474d80707761c039b69d": {
+ "d44f742be39e40e3a4d01facee41213e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2738,7 +2737,7 @@
"width": null
}
},
- "b77d676071094802bfbede1cbefa2cc0": {
+ "ade8859ae4804772ab10d9b5abba97de": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -2753,7 +2752,7 @@
"description_width": ""
}
},
- "9068d0c276964335b73c58216da9656d": {
+ "d7edd9e1cb5c49d7a628d608df6ca9aa": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -2768,14 +2767,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_3895ed82638943758491afccdb828fd9",
- "IPY_MODEL_eb4ce1f0c49d458693d225d5620ae3bf",
- "IPY_MODEL_2259f89acfaa4ab5aeee9e0f9216ef36"
+ "IPY_MODEL_c2413503263844ae87c509f01040e239",
+ "IPY_MODEL_b5350b54decd4a8b8c3fa55af35aa6a5",
+ "IPY_MODEL_9a31c5f1a7884b5d85b84be07ab3aed1"
],
- "layout": "IPY_MODEL_93ddc605f5334f1da787e181266d8bfe"
+ "layout": "IPY_MODEL_6924897a1a1043abb4c2314112822ec6"
}
},
- "3895ed82638943758491afccdb828fd9": {
+ "c2413503263844ae87c509f01040e239": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -2790,13 +2789,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_58c813c53d1f492f867718d02ba04a5d",
+ "layout": "IPY_MODEL_8c537726c7034e75b5a2906b5f23ff8a",
"placeholder": "",
- "style": "IPY_MODEL_222716afe7fa48a0b655b4c5a9cca846",
+ "style": "IPY_MODEL_ae695dc9063048d0979e462d4988d77f",
"value": "Creating json from Arrow format: 100%"
}
},
- "eb4ce1f0c49d458693d225d5620ae3bf": {
+ "b5350b54decd4a8b8c3fa55af35aa6a5": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -2812,15 +2811,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_e262d9ec7a4e4dce97d699e7d87b0108",
+ "layout": "IPY_MODEL_2bca204eb3e241c29e90ba15e61227af",
"max": 3600,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_048c7d4f16ba406a9c80dfb8396feccb",
+ "style": "IPY_MODEL_4725888641e8425c8db61ef836d5f283",
"value": 3600
}
},
- "2259f89acfaa4ab5aeee9e0f9216ef36": {
+ "9a31c5f1a7884b5d85b84be07ab3aed1": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -2835,13 +2834,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_2ad00c27852b4d34b4c0f3254ec07bda",
+ "layout": "IPY_MODEL_66f994463d2a41ec890e90fe7ee1e6fa",
"placeholder": "",
- "style": "IPY_MODEL_ce68ac2e0389406b97061c1d0833c825",
- "value": " 3600/3600 [00:28<00:00, 149.69ba/s]"
+ "style": "IPY_MODEL_e64efef822d846b7b5ee9b27ed780d34",
+ "value": " 3600/3600 [00:27<00:00, 210.11ba/s]"
}
},
- "93ddc605f5334f1da787e181266d8bfe": {
+ "6924897a1a1043abb4c2314112822ec6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2893,7 +2892,7 @@
"width": null
}
},
- "58c813c53d1f492f867718d02ba04a5d": {
+ "8c537726c7034e75b5a2906b5f23ff8a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -2945,7 +2944,7 @@
"width": null
}
},
- "222716afe7fa48a0b655b4c5a9cca846": {
+ "ae695dc9063048d0979e462d4988d77f": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -2960,7 +2959,7 @@
"description_width": ""
}
},
- "e262d9ec7a4e4dce97d699e7d87b0108": {
+ "2bca204eb3e241c29e90ba15e61227af": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -3012,7 +3011,7 @@
"width": null
}
},
- "048c7d4f16ba406a9c80dfb8396feccb": {
+ "4725888641e8425c8db61ef836d5f283": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -3028,7 +3027,7 @@
"description_width": ""
}
},
- "2ad00c27852b4d34b4c0f3254ec07bda": {
+ "66f994463d2a41ec890e90fe7ee1e6fa": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -3080,7 +3079,7 @@
"width": null
}
},
- "ce68ac2e0389406b97061c1d0833c825": {
+ "e64efef822d846b7b5ee9b27ed780d34": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -3095,7 +3094,7 @@
"description_width": ""
}
},
- "6f4b9a0d96cd44d5aef88c9a1746d28a": {
+ "79b9e2fee0f34577a0f2a566d848e8e7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"model_module_version": "1.5.0",
@@ -3110,14 +3109,14 @@
"_view_name": "HBoxView",
"box_style": "",
"children": [
- "IPY_MODEL_e1ce74de926546f7b7edb785645d94a7",
- "IPY_MODEL_b46dc10473594a22a23e6c9bfe635e1e",
- "IPY_MODEL_c9991a8fc39d414e95e99da16a734142"
+ "IPY_MODEL_4cf4537065b7434a87f4284c26b7c661",
+ "IPY_MODEL_7a2fa8ad072442c287e7cf33831a3c10",
+ "IPY_MODEL_ed89f367a6a24e3b9b5af45035d3cd84"
],
- "layout": "IPY_MODEL_a34d936936114a1896f919e5d996e256"
+ "layout": "IPY_MODEL_df97681806be49598f393f6c0c7b43ec"
}
},
- "e1ce74de926546f7b7edb785645d94a7": {
+ "4cf4537065b7434a87f4284c26b7c661": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -3132,13 +3131,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_8d5f8abe931e469990e70083937b1d86",
+ "layout": "IPY_MODEL_dc733b574c00437bbe91d282d51af34d",
"placeholder": "",
- "style": "IPY_MODEL_a2a52084d98d4cbbb066058b24f23596",
+ "style": "IPY_MODEL_d2e57805352d44d7bf42aba3ffdd1b89",
"value": "Creating json from Arrow format: 100%"
}
},
- "b46dc10473594a22a23e6c9bfe635e1e": {
+ "7a2fa8ad072442c287e7cf33831a3c10": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"model_module_version": "1.5.0",
@@ -3154,15 +3153,15 @@
"bar_style": "success",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_b29ecf40cdae4e80be6d937b2b9a6bd6",
+ "layout": "IPY_MODEL_7f14e5655eed4bb4a5f40e5d381517b6",
"max": 400,
"min": 0,
"orientation": "horizontal",
- "style": "IPY_MODEL_2464a1ca08fb4726afab6db87dc284ab",
+ "style": "IPY_MODEL_9a8cf916e4fc4a229f91462bfd038907",
"value": 400
}
},
- "c9991a8fc39d414e95e99da16a734142": {
+ "ed89f367a6a24e3b9b5af45035d3cd84": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"model_module_version": "1.5.0",
@@ -3177,13 +3176,13 @@
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
- "layout": "IPY_MODEL_c7f99ac5a8924a2fa989e2d7b557abf4",
+ "layout": "IPY_MODEL_43ba4e2bc78942509f1ec955c09e173a",
"placeholder": "",
- "style": "IPY_MODEL_b6d3645d20624cec9e1042651a8a6118",
- "value": " 400/400 [00:02<00:00, 222.28ba/s]"
+ "style": "IPY_MODEL_1897b3670ae74d878501f85890576230",
+ "value": " 400/400 [00:01<00:00, 232.91ba/s]"
}
},
- "a34d936936114a1896f919e5d996e256": {
+ "df97681806be49598f393f6c0c7b43ec": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -3235,7 +3234,7 @@
"width": null
}
},
- "8d5f8abe931e469990e70083937b1d86": {
+ "dc733b574c00437bbe91d282d51af34d": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -3287,7 +3286,7 @@
"width": null
}
},
- "a2a52084d98d4cbbb066058b24f23596": {
+ "d2e57805352d44d7bf42aba3ffdd1b89": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -3302,7 +3301,7 @@
"description_width": ""
}
},
- "b29ecf40cdae4e80be6d937b2b9a6bd6": {
+ "7f14e5655eed4bb4a5f40e5d381517b6": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -3354,7 +3353,7 @@
"width": null
}
},
- "2464a1ca08fb4726afab6db87dc284ab": {
+ "9a8cf916e4fc4a229f91462bfd038907": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"model_module_version": "1.5.0",
@@ -3370,7 +3369,7 @@
"description_width": ""
}
},
- "c7f99ac5a8924a2fa989e2d7b557abf4": {
+ "43ba4e2bc78942509f1ec955c09e173a": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"model_module_version": "1.2.0",
@@ -3422,7 +3421,7 @@
"width": null
}
},
- "b6d3645d20624cec9e1042651a8a6118": {
+ "1897b3670ae74d878501f85890576230": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"model_module_version": "1.5.0",
@@ -3497,9 +3496,9 @@
"base_uri": "https://localhost:8080/"
},
"id": "IxofynaY2gB_",
- "outputId": "b32ca55d-d573-4aa8-de68-af2b7a954a1e"
+ "outputId": "132e7103-b60c-4fd4-ab31-d0a06e970d6a"
},
- "execution_count": 1,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -3552,7 +3551,7 @@
"base_uri": "https://localhost:8080/"
},
"id": "b8614c08",
- "outputId": "7a45e44d-54aa-4b3d-a1b4-37707a570f5d"
+ "outputId": "a719671a-746e-41cd-e3eb-41b9bdd4e956"
},
"source": [
"# @title 1.1 Setup & Dependencies\n",
@@ -3565,6 +3564,7 @@
"import psutil\n",
"import shutil\n",
"import subprocess\n",
+ "import gc\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
@@ -3582,14 +3582,14 @@
"\n",
"print(\"✅ Environment setup complete.\")"
],
- "execution_count": 2,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
- "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/3.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m194.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m92.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25h\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/149.0 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m149.0/149.0 kB\u001b[0m \u001b[31m14.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/3.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/3.5 MB\u001b[0m \u001b[31m46.8 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m57.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/149.0 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m149.0/149.0 kB\u001b[0m \u001b[31m15.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h✅ Environment setup complete.\n"
]
}
@@ -3598,7 +3598,7 @@
{
"cell_type": "code",
"source": [
- "# @title 1.2 Define Benchmarking Utilities (Optimized for Scale)\n",
+ "# @title 1.2 Define Benchmarking Utilities\n",
"\n",
"class BenchmarkTracker:\n",
" def __init__(self):\n",
@@ -3683,9 +3683,9 @@
"base_uri": "https://localhost:8080/"
},
"id": "Ti7DuqC8zrXl",
- "outputId": "9b2ac768-7b40-436e-9f46-92da4b0f3017"
+ "outputId": "cea7f39c-4ac7-4adf-b016-8c008c42c712"
},
- "execution_count": 3,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -3703,7 +3703,7 @@
"base_uri": "https://localhost:8080/"
},
"id": "36252453",
- "outputId": "0ce19bb0-9685-4f15-b70f-a3ee763b7ba2"
+ "outputId": "6120c233-6ccc-4fdc-e45e-f39bceee1ebc"
},
"source": [
"# @title 1.3 Define Global Constants and Paths\n",
@@ -3726,7 +3726,7 @@
"\n",
"print(\"✅ Global constants and paths defined.\")"
],
- "execution_count": 4,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -3755,118 +3755,123 @@
"base_uri": "https://localhost:8080/",
"height": 532,
"referenced_widgets": [
- "e9b09ac7c2174367b05883f3d3aff6f9",
- "3587d23b09674e159c548c0bde943697",
- "7a44cf5adb954842af61929ac583fa64",
- "5ea5a900d66a495b83c3960f4653ec2d",
- "ae56cf5f251a486cbc353019959e499d",
- "ecd8422537864ec6abaa7cae1856f9df",
- "eb783c612bf74aa082cbf3e21bfc1e01",
- "e45393cafd624c7596f2e3c2e71702a0",
- "92799625f0ca4c8ba569fc606a5ac338",
- "0b4f9fabaa7a42c7b237b4212a725882",
- "9c691f808bf14ffb816825cc553ed20b",
- "b198f8bede6f4f3f8ab85a5c23410281",
- "d8b910cc334641b082407da4cd5bffb6",
- "722aed840ffe4a43b0bb096cf9990f69",
- "d65f247cab59485caa160e3ab90bf026",
- "20918cbed5c943d5bcb17fa88f927980",
- "1b69a97f14254e1da5f66c4154d8c0b2",
- "46561cbd61a74cad90f78a31925509c7",
- "465070b9e6874eff863e01bd75b01457",
- "30e99ca83c434ce4a6c10eb312cd6dfc",
- "e7276b51b1ea417390c894ae0e541ebd",
- "95798fe15239480ba87d19192d296187",
- "e875ad47edfa447bae6f45ad5d17714a",
- "546746a37b414bbf9dd081a4038a408f",
- "ea1ba4cbd8c746bd9d7db42bac7a8839",
- "4c775268eec448b39638db557958b029",
- "d0cf8be2ce0345059651084052734a59",
- "d73a05d171444e66bddf66596c4d68f6",
- "66e3a13e9bf04ded8303be8e431c21e8",
- "f209f065e7c744a08a3457726781338c",
- "bbc5c01c4a17435790467edebfae6167",
- "ec2d264d3791489f807207045fcda35d",
- "ce7fafb4755d442e82c14c451b8159df",
- "c4eda03bbf964c0d8de7758722619fa4",
- "22478687fe0448b69baf6f7dd908f3fc",
- "f0de16e3ad7a429292a5cb6b379c1ab3",
- "9a2fca6103a64a72875098081b181ab2",
- "8459c016a078475b877bea4b5a787a66",
- "fe593dcb41ad4ae8a82bbec02aa3727f",
- "31da5a4d89d442f6ac10d2d3e998b9dc",
- "9e985af96ba84ce5942fdc0e6b433e36",
- "3290118fcc4343f48290853a7ca7a9b2",
- "bec15ef07c874e0f9adc7777eeffaeb9",
- "3b57c2f561f946c7885e517fc765bde5",
- "466ee7b9b4314fe185f2e95e65787368",
- "00673fe888754d00ac42786670672893",
- "1c97876e5aa24717bf2f1a5ab50b53ed",
- "5072c9d6eacd4987aa8768eaa3d14ee0",
- "796c152c3d1d490996adbcce33e9dd67",
- "1eaa76f0d53045929f88c1670ffce1ff",
- "8e4a0faca6964389816e6c20c8e7ef5d",
- "a540fd76d900440fa6fb3429e2e535e0",
- "07620dcc7b014eeab2bd847df1ec150b",
- "ee23a71e4a144e63ba9d42413da7ea5e",
- "cc3117a4286941a3b52608ae183a017b",
- "195bb41efd7341298f9e770444b20914",
- "82da0b7625254032adb1490ee13301fd",
- "4ff2c74d3b5a45d8b604f8924be05464",
- "c29c521b900243b2aad1b954b1cf001b",
- "d0e748ae3c7f49d3b1482ac2a36ea9e7",
- "e074cad8fbc045a3880aa9703e8d08b2",
- "ea4bd15944954cc1a8f6bcc0334b4bbd",
- "d7e73f7d0b64487e864eef85ea7a6c96",
- "f4515ac1497e43df8262e82c2548f1b2",
- "03a21315985d4493b6884a3379f9213d",
- "9245059b9d1746b0b295c7e3098851e0",
- "142163f8585d4d9b833792771d76960f",
- "7ed66d2bce3649729f03175f2dd3ef4e",
- "d0bcc429ce54484e9edf5ab92646e333",
- "30d7990199ad471da587dafbccacf065",
- "aa04339a34c746a8a7c182fa5017e332",
- "282bf0d0484a40d8999bf5a0f505d1e7",
- "39b9065670204e0499e21e94eb3ada5c",
- "8efca2469e9b4aec9749b5d71276eea5",
- "83ab0aed70bc43de92a73ee9b30df7aa",
- "c3d0bb97b633458d9ecadb548c313f5a",
- "9974b9d4018c407f9c55e530b9cd10f1",
- "5863e2cb2ba14a7e80f99c0926b433c9",
- "edce6976fecb4b10962a30cf92468498",
- "39aa66717d6249449bfec7906c3353bf",
- "931dd90e8908487197f8a1d167144df1",
- "60a6f0420dcb445da4ca9d5d7cfbb2dc",
- "813a118bfc914d1799846f01beb159bd",
- "93225cd1d64844a5b28402aaa581ab0f",
- "a6131535305344a98611172811109b45",
- "f9cac0c062654374a2784ec5feac9b40",
- "b2af4e800994474d80707761c039b69d",
- "b77d676071094802bfbede1cbefa2cc0"
+ "5a0ac8c1198c4c2daa6a2f42fb999fcc",
+ "b9685968526f418e8a5acda06fbf1968",
+ "b9a1a30ac1a643afbdf7be645963a9b7",
+ "6c0b61d869b04183a4245019cbab68bd",
+ "bd7508dc556342e987d4b1015a9ecfab",
+ "5223bcca9c90442e98a3b98c8fcb4203",
+ "e99ad09ab6ef46cca9407848423713df",
+ "6d222d2e3d234c2a8323b3fb9ec000b3",
+ "b82668e264924b5dbd35b2d57b5039de",
+ "f5b10a15ab0e468784e322135cf9c324",
+ "40f0bda9fded407983e4f0c62fbd2dda",
+ "f576a8515b084e95a80e997c17d2315a",
+ "2a019390a6624c008fb2411f8d19cc82",
+ "7f0e4487d7324fd0bcc40afa6fba7fe7",
+ "2f1997b0ae6043bcb5f1ca32177ab50b",
+ "ae62a76dcbdc49fabf859a781350057f",
+ "3a7bf055d65b45afa17d4ca7ccda48dd",
+ "4e0c44ca02e348ad8ca18f88c8ba9370",
+ "975c82fcad474cb3b93d33108d2cb90c",
+ "510533ee0c1d413e8fec253b46a3aa9b",
+ "31b1eb8b518045e99ec6f7cfa464fa8e",
+ "13439674899e48189b83ec73ba1f2dc7",
+ "31d696b7927f42ec9576f09be2c3d98b",
+ "c850cb31ae67428faefed7398bf67387",
+ "0c793656e98442a2981b3b7d3323dc85",
+ "f01c5cb7bab34beeba25de2d2eec9744",
+ "b8ebf0e6597e4fd7a9d5109249ad48ca",
+ "bf214ab650d24e69b2d2aa851cbbf9ca",
+ "4e04267df185487ea8f8392b8457df7c",
+ "980ffcc461a44efaaa1301cc8aadc3f5",
+ "9c51dac5c5d9452b8d724059eac74438",
+ "abf3ba014071476ca0e1e3f49a52279b",
+ "9abbd9045722468c89fd04503c1a3d60",
+ "b61b9fbe801e4c4282808920aadf7371",
+ "c78eba94196e43208d303301f1f72b13",
+ "0907f6b5721e48919e5d3f1cdf3854f3",
+ "bb3f0c309fa24719a04dc046d78dd1f4",
+ "136d295dbc7a4593a5876e077522e976",
+ "be7dac6179f14d49a04778141be5df99",
+ "cdfc3ecc89e647ad8f593585b2a14c34",
+ "b7e164a485124f5a8f716a31396debc9",
+ "2a9fb5f144484df0895e426462dfa0a1",
+ "b9ec58743b2e467f8ea7452c53630156",
+ "71c0c4e453a24912b0d35f466079197b",
+ "c1b5f033aa3148118570ccc325046c35",
+ "6169bca3f9ef4d6b99f5c39aa67f5561",
+ "10d31a5c91b54f56bc6b30241f394788",
+ "bac092e2447144909522015e017d3588",
+ "b6eb15c0ac7849e285f4aab02e0d4f7e",
+ "e06c9299fe874987bb822820d560a768",
+ "0278269c48074d9788c2eb54a296d9c5",
+ "ee6ff7545b804e2ea643df3528a7361a",
+ "56fdb04f02bc4c1bb3a43e1fa0652cde",
+ "f3eb00e9817748c1ac14519a189dc684",
+ "2985417fbe584ae288ee6d22fbde554e",
+ "f97f673536e94561a7d341f6c69c0e7e",
+ "a606da5378ec455f9dbd4d895857458e",
+ "cd50f2eade344c34b56eed1f699032aa",
+ "6848b8d3dbaa43598010d060f72c8b5c",
+ "a2f29c5f75e9405f93cbf31992df957d",
+ "983f2d2a2ae849b18fdd88aa4937fe5b",
+ "50eb2633d2644371b5d382b345ce5080",
+ "ad635ba05af44dc9ac29f81b6fecd43c",
+ "ae3d02e234734e8da4f468642f0860f9",
+ "ee1be19c8cfd4a4694ff9bc72d5a6384",
+ "76a75dfa593342c69026424c0c7591b7",
+ "c4dd07f49a534338a8718d6efc536156",
+ "b3c5dd42012c40a89cac005cb14b1596",
+ "554e279ea4db4058b60068feca2d46db",
+ "83e4452b683e4befa68cfa0baea303ee",
+ "56527a0eef604dc1b4af2fca80627068",
+ "8b2cc632c55e408a8fc7b03e268e5e6b",
+ "a3ac227a919748b98c9aaab9afccb469",
+ "c028dfaae83c40979fea90f85344f354",
+ "8a777d045fd7496ab95f4081ca88fc71",
+ "14f78810c9c94b3ba1308a9cfda15911",
+ "9ac87e70aa7d451dafc62b592f5d45fa",
+ "61f3197c6f0547c4964e2c030df0ea3b",
+ "b7ed86d35ae746d2849b8e1e18a948e0",
+ "a09064c441244fc7a333eb92a2e4edd8",
+ "1478dc488d4f4d17abb26acc069c5ba7",
+ "eda83c1917d246178eb4c691fb943a77",
+ "1d955b2ca1834e0bacd41a97d690148d",
+ "87ad65daa34747daa1e9013faefca302",
+ "d0ce34a0515643a48ceba993bd89e3bd",
+ "b525492479004f5f90da96aff44fda79",
+ "d44f742be39e40e3a4d01facee41213e",
+ "ade8859ae4804772ab10d9b5abba97de"
]
},
- "collapsed": true,
"id": "9214cb29",
- "outputId": "875f3bab-6132-4cbf-95fd-2665cc4baa4d"
+ "outputId": "36baefbe-fbef-4d20-a781-6934bd2d6fbf"
},
"source": [
"# @title 2.1 Benchmark Hugging Face Baseline\n",
"\n",
+ "# Ensure data is cached locally before benchmarking to exclude network effects\n",
+ "cached_dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n",
+ "cached_test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n",
+ "\n",
+ "# Free up the cached variable immediately to prevent affecting the Baseline benchmark's result\n",
+ "del cached_dataset\n",
+ "del cached_test_dataset\n",
+ "gc.collect()\n",
+ "\n",
"def load_hf_baseline():\n",
" \"\"\"\n",
" Loads a subset of the Amazon Polarity dataset using Hugging Face datasets\n",
" for benchmarking purposes.\n",
" \"\"\"\n",
- " # Loading a subset for training (e.g., first 20,000 rows)\n",
" dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n",
" test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n",
"\n",
- " return (\n",
- " dataset['content'],\n",
- " dataset['label'],\n",
- " test_dataset['content'],\n",
- " test_dataset['label']\n",
- " )\n",
+ " df_train = dataset.to_pandas()\n",
+ " df_test = test_dataset.to_pandas()\n",
+ "\n",
+ " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n",
"\n",
"# Run Baseline\n",
"tracker.measure(\n",
@@ -3875,16 +3880,8 @@
" train_func=train_standard_model\n",
")"
],
- "execution_count": 5,
+ "execution_count": null,
"outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "--- Benchmarking: HF Dataset (Arrow) ---\n",
- " ⏳ Loading data...\n"
- ]
- },
{
"output_type": "stream",
"name": "stderr",
@@ -3906,7 +3903,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "e9b09ac7c2174367b05883f3d3aff6f9"
+ "model_id": "5a0ac8c1198c4c2daa6a2f42fb999fcc"
}
},
"metadata": {}
@@ -3920,7 +3917,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "b198f8bede6f4f3f8ab85a5c23410281"
+ "model_id": "f576a8515b084e95a80e997c17d2315a"
}
},
"metadata": {}
@@ -3934,7 +3931,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "e875ad47edfa447bae6f45ad5d17714a"
+ "model_id": "31d696b7927f42ec9576f09be2c3d98b"
}
},
"metadata": {}
@@ -3948,7 +3945,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "c4eda03bbf964c0d8de7758722619fa4"
+ "model_id": "b61b9fbe801e4c4282808920aadf7371"
}
},
"metadata": {}
@@ -3962,7 +3959,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "466ee7b9b4314fe185f2e95e65787368"
+ "model_id": "c1b5f033aa3148118570ccc325046c35"
}
},
"metadata": {}
@@ -3976,7 +3973,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "195bb41efd7341298f9e770444b20914"
+ "model_id": "f97f673536e94561a7d341f6c69c0e7e"
}
},
"metadata": {}
@@ -3990,7 +3987,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "142163f8585d4d9b833792771d76960f"
+ "model_id": "c4dd07f49a534338a8718d6efc536156"
}
},
"metadata": {}
@@ -4004,7 +4001,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "5863e2cb2ba14a7e80f99c0926b433c9"
+ "model_id": "61f3197c6f0547c4964e2c030df0ea3b"
}
},
"metadata": {}
@@ -4013,10 +4010,12 @@
"output_type": "stream",
"name": "stdout",
"text": [
- " ✅ Loaded 3,600,000 rows in 52.54s\n",
+ "--- Benchmarking: HF Dataset (Arrow) ---\n",
+ " ⏳ Loading data...\n",
+ " ✅ Loaded 3,600,000 rows in 6.28s\n",
" ⚙️ Training model...\n",
- " ⏱️ Train Time: 317.4109s\n",
- " 💾 Mem Delta: 2193.22 MB\n",
+ " ⏱️ Train Time: 174.5190s\n",
+ " 💾 Mem Delta: 2250.99 MB\n",
"------------------------------\n"
]
}
@@ -4040,40 +4039,38 @@
"base_uri": "https://localhost:8080/",
"height": 154,
"referenced_widgets": [
- "9068d0c276964335b73c58216da9656d",
- "3895ed82638943758491afccdb828fd9",
- "eb4ce1f0c49d458693d225d5620ae3bf",
- "2259f89acfaa4ab5aeee9e0f9216ef36",
- "93ddc605f5334f1da787e181266d8bfe",
- "58c813c53d1f492f867718d02ba04a5d",
- "222716afe7fa48a0b655b4c5a9cca846",
- "e262d9ec7a4e4dce97d699e7d87b0108",
- "048c7d4f16ba406a9c80dfb8396feccb",
- "2ad00c27852b4d34b4c0f3254ec07bda",
- "ce68ac2e0389406b97061c1d0833c825",
- "6f4b9a0d96cd44d5aef88c9a1746d28a",
- "e1ce74de926546f7b7edb785645d94a7",
- "b46dc10473594a22a23e6c9bfe635e1e",
- "c9991a8fc39d414e95e99da16a734142",
- "a34d936936114a1896f919e5d996e256",
- "8d5f8abe931e469990e70083937b1d86",
- "a2a52084d98d4cbbb066058b24f23596",
- "b29ecf40cdae4e80be6d937b2b9a6bd6",
- "2464a1ca08fb4726afab6db87dc284ab",
- "c7f99ac5a8924a2fa989e2d7b557abf4",
- "b6d3645d20624cec9e1042651a8a6118"
+ "d7edd9e1cb5c49d7a628d608df6ca9aa",
+ "c2413503263844ae87c509f01040e239",
+ "b5350b54decd4a8b8c3fa55af35aa6a5",
+ "9a31c5f1a7884b5d85b84be07ab3aed1",
+ "6924897a1a1043abb4c2314112822ec6",
+ "8c537726c7034e75b5a2906b5f23ff8a",
+ "ae695dc9063048d0979e462d4988d77f",
+ "2bca204eb3e241c29e90ba15e61227af",
+ "4725888641e8425c8db61ef836d5f283",
+ "66f994463d2a41ec890e90fe7ee1e6fa",
+ "e64efef822d846b7b5ee9b27ed780d34",
+ "79b9e2fee0f34577a0f2a566d848e8e7",
+ "4cf4537065b7434a87f4284c26b7c661",
+ "7a2fa8ad072442c287e7cf33831a3c10",
+ "ed89f367a6a24e3b9b5af45035d3cd84",
+ "df97681806be49598f393f6c0c7b43ec",
+ "dc733b574c00437bbe91d282d51af34d",
+ "d2e57805352d44d7bf42aba3ffdd1b89",
+ "7f14e5655eed4bb4a5f40e5d381517b6",
+ "9a8cf916e4fc4a229f91462bfd038907",
+ "43ba4e2bc78942509f1ec955c09e173a",
+ "1897b3670ae74d878501f85890576230"
]
},
"id": "50649dfc",
- "outputId": "a806f88e-b4f8-4d13-ef7e-001308f8deb5"
+ "outputId": "08ba526e-13b0-453b-826e-899cf8a1eff7"
},
"source": [
"# @title 3.1 Prepare Input Data for SchemaForge\n",
"# SchemaForge requires raw JSON files as input.\n",
"# We will export the HF dataset to a raw JSON format to simulate the \"Chaos\" state.\n",
"\n",
- "import gc\n",
- "\n",
"print(\"📥 Loading raw dataset for export (this may take a minute)... \")\n",
"# Use the predefined constants for dataset name and splits\n",
"raw_data = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n",
@@ -4093,7 +4090,7 @@
"\n",
"print(f\"✅ Data exported to JSON in '{DATA_DIR}'\")"
],
- "execution_count": 6,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -4112,7 +4109,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "9068d0c276964335b73c58216da9656d"
+ "model_id": "d7edd9e1cb5c49d7a628d608df6ca9aa"
}
},
"metadata": {}
@@ -4133,7 +4130,7 @@
"application/vnd.jupyter.widget-view+json": {
"version_major": 2,
"version_minor": 0,
- "model_id": "6f4b9a0d96cd44d5aef88c9a1746d28a"
+ "model_id": "79b9e2fee0f34577a0f2a566d848e8e7"
}
},
"metadata": {}
@@ -4159,9 +4156,9 @@
"base_uri": "https://localhost:8080/"
},
"id": "aQcp-jxNz782",
- "outputId": "657ff2b2-2bcd-4955-b8f1-d072b336b487"
+ "outputId": "b82d921b-024f-4b85-b27d-fbb2a3d8b1df"
},
- "execution_count": 7,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -4172,7 +4169,7 @@
"remote: Counting objects: 100% (46/46), done.\u001b[K\n",
"remote: Compressing objects: 100% (39/39), done.\u001b[K\n",
"remote: Total 46 (delta 5), reused 30 (delta 4), pack-reused 0 (from 0)\u001b[K\n",
- "Receiving objects: 100% (46/46), 41.65 KiB | 13.88 MiB/s, done.\n",
+ "Receiving objects: 100% (46/46), 41.65 KiB | 2.78 MiB/s, done.\n",
"Resolving deltas: 100% (5/5), done.\n",
"Requirement already satisfied: pandas>=2.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 1)) (2.2.2)\n",
"Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 2)) (18.1.0)\n",
@@ -4205,7 +4202,7 @@
"base_uri": "https://localhost:8080/"
},
"id": "8ca7948e",
- "outputId": "ae9b924c-e496-401b-8e02-1ac28ba73a63"
+ "outputId": "7d191f0a-325b-4199-b0ca-1369152dd19f"
},
"source": [
"# @title 3.3 Run SchemaForge Pipeline (Scan & Convert)\n",
@@ -4243,70 +4240,70 @@
"\n",
"print(f\"\\n✅ Conversion Complete! Formats ready in '{OUTPUT_DIR}/'\")"
],
- "execution_count": 8,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"🔍 Running SchemaForge: scan-schemas...\n",
- "2025-12-07 17:08:48,602 - __main__ - INFO - Starting schema scan...\n",
- "2025-12-07 17:08:48,603 - src.schema_reader.inference - INFO - Found 2 JSON file(s) in ../schemaforge_bench/data\n",
- "2025-12-07 17:08:48,649 - src.schema_reader.inference - INFO - Processing file: train_data.json\n",
- "2025-12-07 17:08:48,650 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n",
- "2025-12-07 17:08:48,651 - src.schema_reader.inference - INFO - Processing file: test_data.json\n",
- "2025-12-07 17:08:48,652 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n",
- "2025-12-07 17:08:49,350 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
- "2025-12-07 17:08:55,748 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
- "2025-12-07 17:09:02,968 - src.schema_reader.inference - INFO - Streaming first 10000 records from test_data.json\n",
- "2025-12-07 17:09:02,973 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from test_data.json\n",
- "2025-12-07 17:09:04,111 - src.schema_reader.inference - INFO - Successfully inferred schema for test_data.json: 3 fields\n",
- "2025-12-07 17:09:41,007 - src.schema_reader.inference - INFO - Streaming first 10000 records from train_data.json\n",
- "2025-12-07 17:09:41,011 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from train_data.json\n",
- "2025-12-07 17:09:41,234 - src.schema_reader.inference - INFO - Successfully inferred schema for train_data.json: 3 fields\n",
- "2025-12-07 17:09:42,370 - __main__ - INFO - Successfully scanned 2 file(s)\n",
- "2025-12-07 17:09:42,372 - src.schema_reader.reporting - INFO - Schema report written to ../schemaforge_bench/schema_report.md\n",
- "2025-12-07 17:09:42,373 - src.schema_reader.reporting - INFO - Schemas saved to JSON: ../schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:09:42,373 - __main__ - INFO - Schema report generated: ../schemaforge_bench/schema_report.md\n",
+ "2025-12-08 18:46:04,545 - __main__ - INFO - Starting schema scan...\n",
+ "2025-12-08 18:46:04,546 - src.schema_reader.inference - INFO - Found 2 JSON file(s) in ../schemaforge_bench/data\n",
+ "2025-12-08 18:46:04,572 - src.schema_reader.inference - INFO - Processing file: train_data.json\n",
+ "2025-12-08 18:46:04,573 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n",
+ "2025-12-08 18:46:04,574 - src.schema_reader.inference - INFO - Processing file: test_data.json\n",
+ "2025-12-08 18:46:04,575 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n",
+ "2025-12-08 18:46:05,067 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-08 18:46:10,694 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-08 18:46:19,325 - src.schema_reader.inference - INFO - Streaming first 10000 records from test_data.json\n",
+ "2025-12-08 18:46:19,325 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from test_data.json\n",
+ "2025-12-08 18:46:20,248 - src.schema_reader.inference - INFO - Successfully inferred schema for test_data.json: 3 fields\n",
+ "2025-12-08 18:46:58,099 - src.schema_reader.inference - INFO - Streaming first 10000 records from train_data.json\n",
+ "2025-12-08 18:46:58,102 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from train_data.json\n",
+ "2025-12-08 18:46:58,320 - src.schema_reader.inference - INFO - Successfully inferred schema for train_data.json: 3 fields\n",
+ "2025-12-08 18:46:59,479 - __main__ - INFO - Successfully scanned 2 file(s)\n",
+ "2025-12-08 18:46:59,480 - src.schema_reader.reporting - INFO - Schema report written to ../schemaforge_bench/schema_report.md\n",
+ "2025-12-08 18:46:59,480 - src.schema_reader.reporting - INFO - Schemas saved to JSON: ../schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:46:59,481 - __main__ - INFO - Schema report generated: ../schemaforge_bench/schema_report.md\n",
"🔄 Converting to CSV...\n",
- "2025-12-07 17:09:44,410 - __main__ - INFO - Starting conversion to csv...\n",
- "2025-12-07 17:09:44,413 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:09:44,413 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:09:44,441 - src.converter.csv - INFO - Converting train_data.json to CSV...\n",
- "2025-12-07 17:09:44,441 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
- "2025-12-07 17:09:44,443 - src.converter.csv - INFO - Converting test_data.json to CSV...\n",
- "2025-12-07 17:09:44,443 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
- "2025-12-07 17:09:45,922 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
- "2025-12-07 17:09:47,895 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
- "2025-12-07 17:10:05,340 - src.converter.csv - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/csv/test_data.csv\n",
- "2025-12-07 17:11:34,670 - src.converter.csv - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/csv/train_data.csv\n",
- "2025-12-07 17:11:36,106 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
+ "2025-12-08 18:47:01,008 - __main__ - INFO - Starting conversion to csv...\n",
+ "2025-12-08 18:47:01,009 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:47:01,010 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:47:01,033 - src.converter.csv - INFO - Converting train_data.json to CSV...\n",
+ "2025-12-08 18:47:01,034 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
+ "2025-12-08 18:47:01,035 - src.converter.csv - INFO - Converting test_data.json to CSV...\n",
+ "2025-12-08 18:47:01,035 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
+ "2025-12-08 18:47:02,501 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-08 18:47:06,406 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-08 18:47:22,764 - src.converter.csv - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/csv/test_data.csv\n",
+ "2025-12-08 18:48:51,356 - src.converter.csv - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/csv/train_data.csv\n",
+ "2025-12-08 18:48:51,993 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
"🔄 Converting to Parquet...\n",
- "2025-12-07 17:11:37,309 - __main__ - INFO - Starting conversion to parquet...\n",
- "2025-12-07 17:11:37,309 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:11:37,310 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:11:37,332 - src.converter.parquet - INFO - Converting train_data.json to Parquet...\n",
- "2025-12-07 17:11:37,332 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
- "2025-12-07 17:11:37,333 - src.converter.parquet - INFO - Converting test_data.json to Parquet...\n",
- "2025-12-07 17:11:37,333 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
- "2025-12-07 17:11:37,683 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
- "2025-12-07 17:11:40,471 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
- "2025-12-07 17:11:49,605 - src.converter.parquet - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/parquet/test_data.parquet\n",
- "2025-12-07 17:12:53,257 - src.converter.parquet - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/parquet/train_data.parquet\n",
- "2025-12-07 17:12:54,037 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
+ "2025-12-08 18:48:53,292 - __main__ - INFO - Starting conversion to parquet...\n",
+ "2025-12-08 18:48:53,292 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:48:53,293 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:48:53,313 - src.converter.parquet - INFO - Converting train_data.json to Parquet...\n",
+ "2025-12-08 18:48:53,314 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
+ "2025-12-08 18:48:53,315 - src.converter.parquet - INFO - Converting test_data.json to Parquet...\n",
+ "2025-12-08 18:48:53,315 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
+ "2025-12-08 18:48:53,674 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-08 18:49:00,067 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-08 18:49:04,518 - src.converter.parquet - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/parquet/test_data.parquet\n",
+ "2025-12-08 18:50:20,543 - src.converter.parquet - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/parquet/train_data.parquet\n",
+ "2025-12-08 18:50:21,374 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
"🔄 Converting to Feather...\n",
- "2025-12-07 17:12:54,871 - __main__ - INFO - Starting conversion to feather...\n",
- "2025-12-07 17:12:54,878 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:12:54,878 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
- "2025-12-07 17:12:54,896 - src.converter.feather - INFO - Converting train_data.json to Feather...\n",
- "2025-12-07 17:12:54,897 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
- "2025-12-07 17:12:54,898 - src.converter.feather - INFO - Converting test_data.json to Feather...\n",
- "2025-12-07 17:12:54,898 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
- "2025-12-07 17:12:55,553 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
- "2025-12-07 17:12:58,511 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
- "2025-12-07 17:13:06,899 - src.converter.feather - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/feather/test_data.feather\n",
- "2025-12-07 17:14:19,605 - src.converter.feather - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/feather/train_data.feather\n",
- "2025-12-07 17:14:20,452 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
+ "2025-12-08 18:50:22,837 - __main__ - INFO - Starting conversion to feather...\n",
+ "2025-12-08 18:50:22,838 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:50:22,838 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n",
+ "2025-12-08 18:50:22,865 - src.converter.feather - INFO - Converting train_data.json to Feather...\n",
+ "2025-12-08 18:50:22,865 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n",
+ "2025-12-08 18:50:22,867 - src.converter.feather - INFO - Converting test_data.json to Feather...\n",
+ "2025-12-08 18:50:22,868 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n",
+ "2025-12-08 18:50:24,483 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n",
+ "2025-12-08 18:50:27,295 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n",
+ "2025-12-08 18:50:35,792 - src.converter.feather - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/feather/test_data.feather\n",
+ "2025-12-08 18:52:00,644 - src.converter.feather - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/feather/train_data.feather\n",
+ "2025-12-08 18:52:01,646 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n",
"\n",
"✅ Conversion Complete! Formats ready in 'schemaforge_bench/output/'\n"
]
@@ -4331,7 +4328,7 @@
"base_uri": "https://localhost:8080/"
},
"id": "6c6df480",
- "outputId": "412ba5fb-a48e-4baa-cabc-bbd51d251d55"
+ "outputId": "356e7070-d503-44a3-fa22-61778175df85"
},
"source": [
"# @title 4.1 Benchmark CSV\n",
@@ -4350,7 +4347,7 @@
" train_func=train_standard_model\n",
")"
],
- "execution_count": 9,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -4358,10 +4355,10 @@
"text": [
"--- Benchmarking: CSV (Pandas) ---\n",
" ⏳ Loading data...\n",
- " ✅ Loaded 3,600,000 rows in 34.58s\n",
+ " ✅ Loaded 3,600,000 rows in 34.78s\n",
" ⚙️ Training model...\n",
- " ⏱️ Train Time: 176.7297s\n",
- " 💾 Mem Delta: 2295.14 MB\n",
+ " ⏱️ Train Time: 176.3890s\n",
+ " 💾 Mem Delta: 2298.81 MB\n",
"------------------------------\n"
]
}
@@ -4374,7 +4371,7 @@
"base_uri": "https://localhost:8080/"
},
"id": "bd83abbb",
- "outputId": "a9924b69-652a-4ebf-9e0c-8886ab154ef5"
+ "outputId": "4f1a5acf-eabc-4353-ad60-4b4ce70b5a1e"
},
"source": [
"# @title 4.2 Benchmark Parquet\n",
@@ -4393,7 +4390,7 @@
" train_func=train_standard_model\n",
")"
],
- "execution_count": 10,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -4401,10 +4398,10 @@
"text": [
"--- Benchmarking: Parquet (PyArrow) ---\n",
" ⏳ Loading data...\n",
- " ✅ Loaded 3,600,000 rows in 12.65s\n",
+ " ✅ Loaded 3,600,000 rows in 13.88s\n",
" ⚙️ Training model...\n",
- " ⏱️ Train Time: 172.0169s\n",
- " 💾 Mem Delta: 2155.44 MB\n",
+ " ⏱️ Train Time: 180.0725s\n",
+ " 💾 Mem Delta: 2028.25 MB\n",
"------------------------------\n"
]
}
@@ -4417,7 +4414,7 @@
"base_uri": "https://localhost:8080/"
},
"id": "731384f9",
- "outputId": "533e9ad6-9c44-4f24-a07f-769b775387a5"
+ "outputId": "e2dc793e-f0c3-4a70-dc2c-324115088098"
},
"source": [
"# @title 4.3 Benchmark Feather\n",
@@ -4436,7 +4433,7 @@
" train_func=train_standard_model\n",
")"
],
- "execution_count": 11,
+ "execution_count": null,
"outputs": [
{
"output_type": "stream",
@@ -4444,10 +4441,10 @@
"text": [
"--- Benchmarking: Feather (Arrow IPC) ---\n",
" ⏳ Loading data...\n",
- " ✅ Loaded 3,600,000 rows in 9.03s\n",
+ " ✅ Loaded 3,600,000 rows in 9.55s\n",
" ⚙️ Training model...\n",
- " ⏱️ Train Time: 169.1621s\n",
- " 💾 Mem Delta: 2384.89 MB\n",
+ " ⏱️ Train Time: 175.7252s\n",
+ " 💾 Mem Delta: 2329.90 MB\n",
"------------------------------\n"
]
}
@@ -4480,29 +4477,29 @@
"base_uri": "https://localhost:8080/",
"height": 175
},
- "outputId": "b2ce3ad4-86e6-49ab-a928-0b2703e40f91"
+ "outputId": "e775db8f-b2e8-4755-899e-b19a72efbe95"
},
- "execution_count": 12,
+ "execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
" Format Load Time (s) Training Time (s) Total Time (s) \\\n",
- "0 HF Dataset (Arrow) 52.5374 317.4109 369.9483 \n",
- "1 CSV (Pandas) 34.5824 176.7297 211.3121 \n",
- "2 Parquet (PyArrow) 12.6510 172.0169 184.6680 \n",
- "3 Feather (Arrow IPC) 9.0286 169.1621 178.1907 \n",
+ "0 HF Dataset (Arrow) 6.2827 174.5190 180.8017 \n",
+ "1 CSV (Pandas) 34.7801 176.3890 211.1692 \n",
+ "2 Parquet (PyArrow) 13.8773 180.0725 193.9499 \n",
+ "3 Feather (Arrow IPC) 9.5521 175.7252 185.2773 \n",
"\n",
" Peak Memory Delta (MB) Accuracy F1 Score \n",
- "0 2193.2188 0.8397 0.8396 \n",
- "1 2295.1406 0.8397 0.8396 \n",
- "2 2155.4414 0.8397 0.8396 \n",
- "3 2384.8945 0.8397 0.8396 "
+ "0 2250.9883 0.8397 0.8396 \n",
+ "1 2298.8125 0.8397 0.8396 \n",
+ "2 2028.2461 0.8397 0.8396 \n",
+ "3 2329.9023 0.8397 0.8396 "
],
"text/html": [
"\n",
- "