diff --git a/docs/examples/scibert/data.ipynb b/docs/examples/scibert/data.ipynb index f1a6b4a..47751fc 100644 --- a/docs/examples/scibert/data.ipynb +++ b/docs/examples/scibert/data.ipynb @@ -32,9 +32,16 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "cell-3", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:59.684612Z", + "iopub.status.busy": "2026-10-28T22:47:59.684455Z", + "iopub.status.idle": "2026-10-28T22:47:59.694166Z", + "shell.execute_reply": "2026-10-28T22:47:59.693485Z" + } + }, "outputs": [ { "name": "stdout", @@ -85,16 +92,35 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "cell-5", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:59.695771Z", + "iopub.status.busy": "2026-10-28T22:47:59.695589Z", + "iopub.status.idle": "2026-10-28T22:48:00.795320Z", + "shell.execute_reply": "2026-10-28T22:48:00.795003Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n", - "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n", + "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n" ] } @@ -116,9 +142,16 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "cell-7", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:00.796420Z", + "iopub.status.busy": "2026-10-28T22:48:00.796263Z", + "iopub.status.idle": "2026-10-28T22:48:00.798035Z", + "shell.execute_reply": "2026-10-28T22:48:00.797684Z" + } + }, "outputs": [], "source": [ "y1 = [e[0] for e in evaluations.values() if len(e) == 2]\n", @@ -137,9 +170,16 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "cell-9", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:00.798711Z", + "iopub.status.busy": "2026-10-28T22:48:00.798654Z", + "iopub.status.idle": "2026-10-28T22:48:00.806309Z", + "shell.execute_reply": "2026-10-28T22:48:00.806045Z" + } + }, "outputs": [ { "name": "stdout", @@ -170,9 +210,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "cell-11", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:00.807045Z", + "iopub.status.busy": "2026-10-28T22:48:00.806983Z", + "iopub.status.idle": "2026-10-28T22:48:00.808468Z", + "shell.execute_reply": "2026-10-28T22:48:00.808132Z" + } + }, "outputs": [], "source": [ "X = [s for s in evaluations.keys()]\n", @@ -181,9 +228,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "cell-12", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:00.809082Z", + "iopub.status.busy": "2026-10-28T22:48:00.809029Z", + "iopub.status.idle": "2026-10-28T22:48:00.861903Z", + "shell.execute_reply": "2026-10-28T22:48:00.861397Z" + } + }, "outputs": [ { "data": { @@ -191,7 +245,7 @@ "array([0.41666667, 0.25 , 0.16666667, 0.41666667, 0.5 ])" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -223,9 +277,16 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "cell-14", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:00.862626Z", + "iopub.status.busy": "2026-10-28T22:48:00.862564Z", + "iopub.status.idle": "2026-10-28T22:48:00.873305Z", + "shell.execute_reply": "2026-10-28T22:48:00.872879Z" + } + }, "outputs": [ { "data": { @@ -2150,7 +2211,7 @@ " ('classifier', LinearSVC(random_state=42))])" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -2164,9 +2225,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "cell-15", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:00.874007Z", + "iopub.status.busy": "2026-10-28T22:48:00.873948Z", + "iopub.status.idle": "2026-10-28T22:48:00.920993Z", + "shell.execute_reply": "2026-10-28T22:48:00.920537Z" + } + }, "outputs": [ { "name": "stdout", diff --git a/docs/examples/scibert/deploy.ipynb b/docs/examples/scibert/deploy.ipynb index 2467494..beb0f94 100644 --- a/docs/examples/scibert/deploy.ipynb +++ b/docs/examples/scibert/deploy.ipynb @@ -36,9 +36,16 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 1, "id": "cell-5", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:09.038647Z", + "iopub.status.busy": "2026-10-28T22:48:09.038493Z", + "iopub.status.idle": "2026-10-28T22:48:09.083813Z", + "shell.execute_reply": "2026-10-28T22:48:09.083283Z" + } + }, "outputs": [], "source": [ "from typing import List\n", @@ -68,16 +75,126 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 2, "id": "cell-7", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:09.084713Z", + "iopub.status.busy": "2026-10-28T22:48:09.084644Z", + "iopub.status.idle": "2026-10-28T22:48:11.256390Z", + "shell.execute_reply": "2026-10-28T22:48:11.256030Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n", - "\u001b[38;5;39mLatest version of scibert-highlights is 0 (from versions: 0)\u001b[0m\n", + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mLatest version of scibert-highlights is 0 (from versions: 0)\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "\u001b[38;5;39mFile scibert-highlights-0 found in cache\u001b[0m\n" ] } @@ -114,9 +231,16 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 3, "id": "cell-9", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:11.257418Z", + "iopub.status.busy": "2026-10-28T22:48:11.257269Z", + "iopub.status.idle": "2026-10-28T22:48:11.289789Z", + "shell.execute_reply": "2026-10-28T22:48:11.289400Z" + } + }, "outputs": [], "source": [ "from great_ai import GreatAI\n", @@ -155,21 +279,28 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 4, "id": "cell-11", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:11.290551Z", + "iopub.status.busy": "2026-10-28T22:48:11.290495Z", + "iopub.status.idle": "2026-10-28T22:48:11.803477Z", + "shell.execute_reply": "2026-10-28T22:48:11.803126Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "W1028 12:49:11.667000 52910 torch/distributed/elastic/multiprocessing/redirects.py:35] NOTE: Redirects are currently not supported in MacOs.\n" + "W1028 22:48:11.714000 21400 .venv/lib/python3.13/site-packages/torch/distributed/elastic/multiprocessing/redirects.py:35] NOTE: Redirects are currently not supported in MacOs.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "6ef4b00220304248a94035042cb5fa15", + "model_id": "494840f6abbc4b7aaad2ce762d1e32e8", "version_major": 2, "version_minor": 0 }, @@ -234,6 +365,374 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "3db5ee6325b74e25903d2d083b4a79ac": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "494840f6abbc4b7aaad2ce762d1e32e8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a60ffd19ff674f3087de262cca2823ea", + "IPY_MODEL_5dc69cd57cac4608a2b0d4b4a9a2150c", + "IPY_MODEL_4cd08817c5684abeb1146d2c8e2a4f95" + ], + "layout": "IPY_MODEL_d6a5b48086a84a2291dcfc6991c24af1", + "tabbable": null, + "tooltip": null + } + }, + "4cd08817c5684abeb1146d2c8e2a4f95": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_bd3bce93f04348f29314e8437dae3c49", + "placeholder": "​", + "style": "IPY_MODEL_94030007cfed4d96b4bb93184555c8d3", + "tabbable": null, + "tooltip": null, + "value": " 25/25 [00:00<00:00, 7301.55it/s]" + } + }, + "5dc69cd57cac4608a2b0d4b4a9a2150c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_6c5077713e5e47dea8ff3f067b042f73", + "max": 25.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_c232499e62a342ac8bc98cf0a598d75e", + "tabbable": null, + "tooltip": null, + "value": 25.0 + } + }, + "6c5077713e5e47dea8ff3f067b042f73": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "94030007cfed4d96b4bb93184555c8d3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "a60ffd19ff674f3087de262cca2823ea": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_b8cda8463d0d41269292fab71cd1333f", + "placeholder": "​", + "style": "IPY_MODEL_3db5ee6325b74e25903d2d083b4a79ac", + "tabbable": null, + "tooltip": null, + "value": "Loading weights: 100%" + } + }, + "b8cda8463d0d41269292fab71cd1333f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bd3bce93f04348f29314e8437dae3c49": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c232499e62a342ac8bc98cf0a598d75e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "d6a5b48086a84a2291dcfc6991c24af1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, diff --git a/docs/examples/scibert/train.ipynb b/docs/examples/scibert/train.ipynb index 21378b0..1bd0cc8 100644 --- a/docs/examples/scibert/train.ipynb +++ b/docs/examples/scibert/train.ipynb @@ -33,9 +33,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "824837fa", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:01.662218Z", + "iopub.status.busy": "2026-10-28T22:48:01.662116Z", + "iopub.status.idle": "2026-10-28T22:48:01.666110Z", + "shell.execute_reply": "2026-10-28T22:48:01.665368Z" + } + }, "outputs": [], "source": [ "from docs.notebook_support import FULL_RUN" @@ -45,7 +52,14 @@ "cell_type": "code", "execution_count": 2, "id": "cell-3", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:01.668881Z", + "iopub.status.busy": "2026-10-28T22:48:01.668590Z", + "iopub.status.idle": "2026-10-28T22:48:01.671716Z", + "shell.execute_reply": "2026-10-28T22:48:01.671164Z" + } + }, "outputs": [], "source": [ "# Dependencies are installed once with uv pip install --editable \".[notebooks]\"." @@ -63,14 +77,33 @@ "cell_type": "code", "execution_count": 3, "id": "cell-5", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:01.672826Z", + "iopub.status.busy": "2026-10-28T22:48:01.672654Z", + "iopub.status.idle": "2026-10-28T22:48:02.779481Z", + "shell.execute_reply": "2026-10-28T22:48:02.779085Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n", - "\u001b[38;5;39mLatest version of summary-train-dataset-small is 0 (from versions: 0)\u001b[0m\n", + "\u001b[38;5;39mFetching cached versions of summary-train-dataset-small\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mLatest version of summary-train-dataset-small is 0 (from versions: 0)\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "\u001b[38;5;39mFile summary-train-dataset-small-0 found in cache\u001b[0m\n" ] } @@ -98,19 +131,26 @@ "cell_type": "code", "execution_count": 4, "id": "cell-7", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:02.780351Z", + "iopub.status.busy": "2026-10-28T22:48:02.780206Z", + "iopub.status.idle": "2026-10-28T22:48:06.016248Z", + "shell.execute_reply": "2026-10-28T22:48:06.015930Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "W1028 12:48:58.270000 53390 torch/distributed/elastic/multiprocessing/redirects.py:35] NOTE: Redirects are currently not supported in MacOs.\n" + "W1028 22:48:05.341000 21083 .venv/lib/python3.13/site-packages/torch/distributed/elastic/multiprocessing/redirects.py:35] NOTE: Redirects are currently not supported in MacOs.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "2c74823d6364447a96609229fbbc5512", + "model_id": "030c8389c26f4710b9b00368799d1333", "version_major": 2, "version_minor": 0 }, @@ -126,13 +166,13 @@ "output_type": "stream", "text": [ "{'loss': '0.6939', 'grad_norm': '0.5046', 'learning_rate': '1.667e-05', 'epoch': '1'}\n", - "{'eval_loss': '0.6939', 'eval_f1': '0', 'eval_runtime': '0.0123', 'eval_samples_per_second': '974.9', 'eval_steps_per_second': '81.24', 'epoch': '1'}\n" + "{'eval_loss': '0.6939', 'eval_f1': '0', 'eval_runtime': '0.0101', 'eval_samples_per_second': '1194', 'eval_steps_per_second': '99.46', 'epoch': '1'}\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "23492278f66e46f09e9eee0680c21b92", + "model_id": "b5e504e0a749406d84ac9aed59bb92b4", "version_major": 2, "version_minor": 0 }, @@ -154,8 +194,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'train_runtime': '0.0882', 'train_samples_per_second': '544.2', 'train_steps_per_second': '34.01', 'train_loss': '0.6939', 'epoch': '1'}\n", - "{'validation_loss': '0.6939', 'validation_f1': '0', 'validation_runtime': '0.0025', 'validation_samples_per_second': '4804', 'validation_steps_per_second': '400.3', 'epoch': '1'}\n" + "{'train_runtime': '0.0727', 'train_samples_per_second': '660.4', 'train_steps_per_second': '41.28', 'train_loss': '0.6939', 'epoch': '1'}\n", + "{'validation_loss': '0.6939', 'validation_f1': '0', 'validation_runtime': '0.002', 'validation_samples_per_second': '5859', 'validation_steps_per_second': '488.3', 'epoch': '1'}\n" ] }, { @@ -163,9 +203,9 @@ "text/plain": [ "{'validation_loss': 0.693895161151886,\n", " 'validation_f1': 0.0,\n", - " 'validation_runtime': 0.0025,\n", - " 'validation_samples_per_second': 4804.013,\n", - " 'validation_steps_per_second': 400.334,\n", + " 'validation_runtime': 0.002,\n", + " 'validation_samples_per_second': 5859.33,\n", + " 'validation_steps_per_second': 488.278,\n", " 'epoch': 1.0}" ] }, @@ -319,12 +359,19 @@ "cell_type": "code", "execution_count": 5, "id": "cell-9", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:06.017061Z", + "iopub.status.busy": "2026-10-28T22:48:06.016986Z", + "iopub.status.idle": "2026-10-28T22:48:06.033739Z", + "shell.execute_reply": "2026-10-28T22:48:06.033464Z" + } + }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "634b947ab9ee4f20bef78f780d5441ba", + "model_id": "aabe5fce65e5437b8efd23af69665f74", "version_major": 2, "version_minor": 0 }, @@ -339,9 +386,118 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n", - "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n", - "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n", + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of scibert-highlights\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "\u001b[38;5;39mModel scibert-highlights uploaded with version 0\u001b[0m\n" ] }, @@ -392,6 +548,1094 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": { + "030c8389c26f4710b9b00368799d1333": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_3004de1ff760415289e94a310c2b2fcf", + "IPY_MODEL_caec9a9240e84f1db62cedb4556f08ce", + "IPY_MODEL_716e5e25f826435a938ab06f4d50e911" + ], + "layout": "IPY_MODEL_ad03d628dfc3420c99ad4fcaafb70298", + "tabbable": null, + "tooltip": null + } + }, + "24ebd849df3640e7b4157f75080face9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "25fb80064f7a4a0589337cf0fd31832c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3004de1ff760415289e94a310c2b2fcf": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_fadb9a18d5a14f63aec2573618ed4179", + "placeholder": "​", + "style": "IPY_MODEL_f14db5bdb17f4aea85f861aaac7021e1", + "tabbable": null, + "tooltip": null, + "value": "Map: 100%" + } + }, + "3d65cd4a18dc4e7da461e53fbaed7758": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "4a7f15e736254512bbd8dea7035986cd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "4b283f403f994200a699e924277e73d2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "5e799f2a39ed47b29b80ca7b45718b5d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "61b6b6ce71d9470dbc5d51cc0aea0a78": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_5e799f2a39ed47b29b80ca7b45718b5d", + "placeholder": "​", + "style": "IPY_MODEL_9c15d9e9e9994e42864282beea0f6c88", + "tabbable": null, + "tooltip": null, + "value": "Writing model shards: 100%" + } + }, + "716e5e25f826435a938ab06f4d50e911": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_b3786223ae9c4145a99e7fe376b71ec6", + "placeholder": "​", + "style": "IPY_MODEL_eaf61390fcb3402ba7053b55fbb3d00d", + "tabbable": null, + "tooltip": null, + "value": " 60/60 [00:00<00:00, 4872.00 examples/s]" + } + }, + "7d7c984d6e9d4b62a90a7bc64e494509": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_89fc92152f2c4a46beb0f6d972b785e7", + "max": 1.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_3d65cd4a18dc4e7da461e53fbaed7758", + "tabbable": null, + "tooltip": null, + "value": 1.0 + } + }, + "89fc92152f2c4a46beb0f6d972b785e7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "903911d2f26246f99335c2066c8f7f8b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_b8912b8352bf49c39cbc12a5ac1ee41b", + "placeholder": "​", + "style": "IPY_MODEL_4a7f15e736254512bbd8dea7035986cd", + "tabbable": null, + "tooltip": null, + "value": "Writing model shards: 100%" + } + }, + "9c15d9e9e9994e42864282beea0f6c88": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "9d002e61a9984a20a578bb70126eb527": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a023bee6f52b400a832d1a2007e28b0e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a0c5c560b4454b0b92a4a2c3123394dc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "a6aa0891d3804dd58461c1504098754a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_25fb80064f7a4a0589337cf0fd31832c", + "placeholder": "​", + "style": "IPY_MODEL_a0c5c560b4454b0b92a4a2c3123394dc", + "tabbable": null, + "tooltip": null, + "value": " 1/1 [00:00<00:00, 479.90it/s]" + } + }, + "a788077bc06745bf874cdb7ee9819920": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "aabe5fce65e5437b8efd23af69665f74": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_61b6b6ce71d9470dbc5d51cc0aea0a78", + "IPY_MODEL_cc1ae38167dc42e198eb4f79dc423613", + "IPY_MODEL_a6aa0891d3804dd58461c1504098754a" + ], + "layout": "IPY_MODEL_a023bee6f52b400a832d1a2007e28b0e", + "tabbable": null, + "tooltip": null + } + }, + "ad03d628dfc3420c99ad4fcaafb70298": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "adfdd16b8e0542ffb28c9a8d94a1ff54": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b3786223ae9c4145a99e7fe376b71ec6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b5e504e0a749406d84ac9aed59bb92b4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_903911d2f26246f99335c2066c8f7f8b", + "IPY_MODEL_7d7c984d6e9d4b62a90a7bc64e494509", + "IPY_MODEL_f5e59af6de4c4b65aa58a29a5a27cec6" + ], + "layout": "IPY_MODEL_fcc92bc6d302418ba2ff09d10c4fe423", + "tabbable": null, + "tooltip": null + } + }, + "b8912b8352bf49c39cbc12a5ac1ee41b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "caec9a9240e84f1db62cedb4556f08ce": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_9d002e61a9984a20a578bb70126eb527", + "max": 60.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_a788077bc06745bf874cdb7ee9819920", + "tabbable": null, + "tooltip": null, + "value": 60.0 + } + }, + "cc1ae38167dc42e198eb4f79dc423613": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_24ebd849df3640e7b4157f75080face9", + "max": 1.0, + "min": 0.0, + "orientation": "horizontal", + "style": "IPY_MODEL_4b283f403f994200a699e924277e73d2", + "tabbable": null, + "tooltip": null, + "value": 1.0 + } + }, + "dbe0e218fd854bc3a85c49ac53518a83": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "eaf61390fcb3402ba7053b55fbb3d00d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "f14db5bdb17f4aea85f861aaac7021e1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "StyleView", + "background": null, + "description_width": "", + "font_size": null, + "text_color": null + } + }, + "f5e59af6de4c4b65aa58a29a5a27cec6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "2.0.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "2.0.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "2.0.0", + "_view_name": "HTMLView", + "description": "", + "description_allow_html": false, + "layout": "IPY_MODEL_adfdd16b8e0542ffb28c9a8d94a1ff54", + "placeholder": "​", + "style": "IPY_MODEL_dbe0e218fd854bc3a85c49ac53518a83", + "tabbable": null, + "tooltip": null, + "value": " 1/1 [00:00<00:00, 346.01it/s]" + } + }, + "fadb9a18d5a14f63aec2573618ed4179": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fcc92bc6d302418ba2ff09d10c4fe423": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "2.0.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "2.0.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "2.0.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border_bottom": null, + "border_left": null, + "border_right": null, + "border_top": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + }, + "version_major": 2, + "version_minor": 0 + } } }, "nbformat": 4, diff --git a/docs/examples/simple-mag/train.ipynb b/docs/examples/simple-mag/train.ipynb index 173717a..00cf4f5 100644 --- a/docs/examples/simple-mag/train.ipynb +++ b/docs/examples/simple-mag/train.ipynb @@ -24,15 +24,21 @@ "\n", "Use Python 3.12 or 3.13 and install this checkout with `uv pip install --editable '.[notebooks]'`.\n", "See **Run notebooks locally** in the repository README for the kernel, execution order,\n", - "and full-data options. Run related notebooks from the same working directory\n", - "to share the default `.cache/` model store and `tracing_database.json` database.\n" + "and full-data options. Generated figures are saved in the working directory.\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "4a11c71a", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:48.995471Z", + "iopub.status.busy": "2026-10-28T22:47:48.995236Z", + "iopub.status.idle": "2026-10-28T22:47:49.001740Z", + "shell.execute_reply": "2026-10-28T22:47:49.000980Z" + } + }, "outputs": [], "source": [ "from docs.notebook_support import DATA_DIR, FULL_RUN, mag_lines" @@ -42,14 +48,219 @@ "cell_type": "code", "execution_count": 2, "id": "cell-3", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:49.003739Z", + "iopub.status.busy": "2026-10-28T22:47:49.003565Z", + "iopub.status.idle": "2026-10-28T22:47:52.423523Z", + "shell.execute_reply": "2026-10-28T22:47:52.422483Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 700/700 [00:01<00:00, 627.30it/s]\n", - "100%|██████████| 210/210 [00:01<00:00, 196.84it/s]\n" + "\r", + " 0%| | 0/700 [00:00\n", " \n", " 4\n", - " 0.004115\n", - " 0.000260\n", - " 0.001606\n", - " 0.000055\n", + " 0.003533\n", + " 0.000225\n", + " 0.001693\n", + " 0.000093\n", " 1.0\n", " True\n", " 0.9\n", @@ -208,10 +440,10 @@ " \n", " \n", " 6\n", - " 0.004385\n", - " 0.000527\n", - " 0.001801\n", - " 0.000060\n", + " 0.003541\n", + " 0.000153\n", + " 0.001560\n", + " 0.000040\n", " 1.0\n", " False\n", " 0.9\n", @@ -226,10 +458,10 @@ " \n", " \n", " 0\n", - " 0.009770\n", - " 0.003560\n", - " 0.002647\n", - " 0.000300\n", + " 0.008523\n", + " 0.003302\n", + " 0.002370\n", + " 0.000126\n", " 0.5\n", " True\n", " 0.9\n", @@ -244,10 +476,10 @@ " \n", " \n", " 2\n", - " 0.005172\n", - " 0.000944\n", - " 0.001999\n", - " 0.000186\n", + " 0.003354\n", + " 0.000213\n", + " 0.001738\n", + " 0.000117\n", " 0.5\n", " False\n", " 0.9\n", @@ -262,10 +494,10 @@ " \n", " \n", " 1\n", - " 0.004092\n", - " 0.001210\n", - " 0.002313\n", - " 0.000227\n", + " 0.003001\n", + " 0.000492\n", + " 0.001699\n", + " 0.000205\n", " 0.5\n", " True\n", " 0.9\n", @@ -280,10 +512,10 @@ " \n", " \n", " 3\n", - " 0.003984\n", - " 0.000263\n", - " 0.001870\n", - " 0.000106\n", + " 0.002694\n", + " 0.000210\n", + " 0.001664\n", + " 0.000100\n", " 0.5\n", " False\n", " 0.9\n", @@ -298,10 +530,10 @@ " \n", " \n", " 5\n", - " 0.002690\n", - " 0.000284\n", - " 0.001573\n", - " 0.000183\n", + " 0.002624\n", + " 0.000035\n", + " 0.002088\n", + " 0.000339\n", " 1.0\n", " True\n", " 0.9\n", @@ -316,10 +548,10 @@ " \n", " \n", " 7\n", - " 0.003193\n", - " 0.000383\n", - " 0.001686\n", - " 0.000183\n", + " 0.002653\n", + " 0.000031\n", + " 0.001487\n", + " 0.000070\n", " 1.0\n", " False\n", " 0.9\n", @@ -338,14 +570,14 @@ ], "text/plain": [ " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", - "4 0.004115 0.000260 0.001606 0.000055 \n", - "6 0.004385 0.000527 0.001801 0.000060 \n", - "0 0.009770 0.003560 0.002647 0.000300 \n", - "2 0.005172 0.000944 0.001999 0.000186 \n", - "1 0.004092 0.001210 0.002313 0.000227 \n", - "3 0.003984 0.000263 0.001870 0.000106 \n", - "5 0.002690 0.000284 0.001573 0.000183 \n", - "7 0.003193 0.000383 0.001686 0.000183 \n", + "4 0.003533 0.000225 0.001693 0.000093 \n", + "6 0.003541 0.000153 0.001560 0.000040 \n", + "0 0.008523 0.003302 0.002370 0.000126 \n", + "2 0.003354 0.000213 0.001738 0.000117 \n", + "1 0.003001 0.000492 0.001699 0.000205 \n", + "3 0.002694 0.000210 0.001664 0.000100 \n", + "5 0.002624 0.000035 0.002088 0.000339 \n", + "7 0.002653 0.000031 0.001487 0.000070 \n", "\n", " param_classifier__alpha param_classifier__fit_prior \\\n", "4 1.0 True \n", @@ -430,7 +662,14 @@ "cell_type": "code", "execution_count": 6, "id": "cell-7", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:53.536912Z", + "iopub.status.busy": "2026-10-28T22:47:53.536844Z", + "iopub.status.idle": "2026-10-28T22:47:53.592995Z", + "shell.execute_reply": "2026-10-28T22:47:53.592634Z" + } + }, "outputs": [ { "data": { @@ -2714,7 +2953,14 @@ "cell_type": "code", "execution_count": 7, "id": "cell-8", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:53.594117Z", + "iopub.status.busy": "2026-10-28T22:47:53.594030Z", + "iopub.status.idle": "2026-10-28T22:47:56.661828Z", + "shell.execute_reply": "2026-10-28T22:47:56.661325Z" + } + }, "outputs": [ { "name": "stdout", diff --git a/docs/examples/simple/data.ipynb b/docs/examples/simple/data.ipynb index 500ad9a..8190888 100644 --- a/docs/examples/simple/data.ipynb +++ b/docs/examples/simple/data.ipynb @@ -35,9 +35,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "a800dc4d", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:31.221616Z", + "iopub.status.busy": "2026-10-28T22:47:31.221419Z", + "iopub.status.idle": "2026-10-28T22:47:31.227624Z", + "shell.execute_reply": "2026-10-28T22:47:31.226922Z" + } + }, "outputs": [], "source": [ "from docs.notebook_support import DATA_DIR, FULL_RUN, mag_lines" @@ -47,7 +54,14 @@ "cell_type": "code", "execution_count": 2, "id": "cell-3", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:31.229286Z", + "iopub.status.busy": "2026-10-28T22:47:31.229129Z", + "iopub.status.idle": "2026-10-28T22:47:31.231400Z", + "shell.execute_reply": "2026-10-28T22:47:31.230864Z" + } + }, "outputs": [], "source": [ "PER_LABEL = None if FULL_RUN else 60" @@ -57,7 +71,14 @@ "cell_type": "code", "execution_count": 3, "id": "cell-4", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:31.232556Z", + "iopub.status.busy": "2026-10-28T22:47:31.232454Z", + "iopub.status.idle": "2026-10-28T22:47:31.318875Z", + "shell.execute_reply": "2026-10-28T22:47:31.318472Z" + } + }, "outputs": [ { "name": "stdout", @@ -90,7 +111,14 @@ "cell_type": "code", "execution_count": 4, "id": "cell-6", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:31.319705Z", + "iopub.status.busy": "2026-10-28T22:47:31.319649Z", + "iopub.status.idle": "2026-10-28T22:47:32.655835Z", + "shell.execute_reply": "2026-10-28T22:47:32.655342Z" + } + }, "outputs": [], "source": [ "from great_ai.utilities import clean\n", @@ -106,7 +134,14 @@ "cell_type": "code", "execution_count": 5, "id": "cell-7", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:32.656875Z", + "iopub.status.busy": "2026-10-28T22:47:32.656706Z", + "iopub.status.idle": "2026-10-28T22:47:32.658407Z", + "shell.execute_reply": "2026-10-28T22:47:32.657982Z" + } + }, "outputs": [], "source": [ "X, y = zip(*preprocessed_data) # X is the input, y is the expected output" @@ -129,8 +164,107 @@ "cell_type": "code", "execution_count": 6, "id": "cell-9", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:32.659171Z", + "iopub.status.busy": "2026-10-28T22:47:32.659099Z", + "iopub.status.idle": "2026-10-28T22:47:32.670028Z", + "shell.execute_reply": "2026-10-28T22:47:32.669511Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + } + ], "source": [ "import random\n", "from great_ai import add_ground_truth, delete_ground_truth\n", diff --git a/docs/examples/simple/deploy.ipynb b/docs/examples/simple/deploy.ipynb index ab6af0e..cf0441b 100644 --- a/docs/examples/simple/deploy.ipynb +++ b/docs/examples/simple/deploy.ipynb @@ -34,17 +34,133 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "cell-3", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:38.748279Z", + "iopub.status.busy": "2026-10-28T22:47:38.748156Z", + "iopub.status.idle": "2026-10-28T22:47:40.219787Z", + "shell.execute_reply": "2026-10-28T22:47:40.219011Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n", - "\u001b[38;5;39mLatest version of small-domain-prediction is 0 (from versions: 0)\u001b[0m\n", - "\u001b[38;5;39mFile small-domain-prediction-0 found in cache\u001b[0m\n", + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mLatest version of small-domain-prediction is 0 (from versions: 0)\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFile small-domain-prediction-0 found in cache\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "\u001b[38;5;39mFile small-domain-prediction-0 found in cache\u001b[0m\n" ] } @@ -139,15 +255,95 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "cell-5", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:40.220877Z", + "iopub.status.busy": "2026-10-28T22:47:40.220772Z", + "iopub.status.idle": "2026-10-28T22:47:41.416823Z", + "shell.execute_reply": "2026-10-28T22:47:41.416155Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 84/84 [00:01<00:00, 81.74it/s] " + "\r", + " 0%| | 0/84 [00:00 Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + } + ], "source": [ "from great_ai import query_ground_truth\n", "\n", @@ -29,9 +128,16 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "cell-3", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:47.931724Z", + "iopub.status.busy": "2026-10-28T22:47:47.931557Z", + "iopub.status.idle": "2026-10-28T22:47:48.314653Z", + "shell.execute_reply": "2026-10-28T22:47:48.314283Z" + } + }, "outputs": [ { "data": { diff --git a/docs/examples/simple/train.ipynb b/docs/examples/simple/train.ipynb index 1e883cd..7341ead 100644 --- a/docs/examples/simple/train.ipynb +++ b/docs/examples/simple/train.ipynb @@ -32,9 +32,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "d8ae0655", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:33.469672Z", + "iopub.status.busy": "2026-10-28T22:47:33.469359Z", + "iopub.status.idle": "2026-10-28T22:47:33.475106Z", + "shell.execute_reply": "2026-10-28T22:47:33.473998Z" + } + }, "outputs": [], "source": [ "from docs.notebook_support import FULL_RUN" @@ -44,8 +51,107 @@ "cell_type": "code", "execution_count": 2, "id": "cell-3", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:33.476993Z", + "iopub.status.busy": "2026-10-28T22:47:33.476853Z", + "iopub.status.idle": "2026-10-28T22:47:34.629711Z", + "shell.execute_reply": "2026-10-28T22:47:34.629235Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + } + ], "source": [ "from great_ai import query_ground_truth\n", "\n", @@ -61,7 +167,14 @@ "cell_type": "code", "execution_count": 3, "id": "cell-4", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:34.630652Z", + "iopub.status.busy": "2026-10-28T22:47:34.630494Z", + "iopub.status.idle": "2026-10-28T22:47:34.675524Z", + "shell.execute_reply": "2026-10-28T22:47:34.675167Z" + } + }, "outputs": [ { "data": { @@ -107,7 +220,14 @@ "cell_type": "code", "execution_count": 4, "id": "cell-6", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:34.676373Z", + "iopub.status.busy": "2026-10-28T22:47:34.676316Z", + "iopub.status.idle": "2026-10-28T22:47:34.683015Z", + "shell.execute_reply": "2026-10-28T22:47:34.682660Z" + } + }, "outputs": [], "source": [ "from sklearn.naive_bayes import MultinomialNB\n", @@ -128,7 +248,14 @@ "cell_type": "code", "execution_count": 5, "id": "cell-7", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:34.683793Z", + "iopub.status.busy": "2026-10-28T22:47:34.683737Z", + "iopub.status.idle": "2026-10-28T22:47:35.666188Z", + "shell.execute_reply": "2026-10-28T22:47:35.665816Z" + } + }, "outputs": [ { "name": "stdout", @@ -178,10 +305,10 @@ " \n", " \n", " 2\n", - " 0.002468\n", - " 0.000398\n", - " 0.001431\n", - " 0.000171\n", + " 0.002220\n", + " 0.000173\n", + " 0.001228\n", + " 0.000017\n", " 0.5\n", " False\n", " 0.9\n", @@ -196,10 +323,10 @@ " \n", " \n", " 6\n", - " 0.002088\n", - " 0.000166\n", - " 0.001113\n", - " 0.000053\n", + " 0.002214\n", + " 0.000084\n", + " 0.001206\n", + " 0.000011\n", " 1.0\n", " False\n", " 0.9\n", @@ -214,10 +341,10 @@ " \n", " \n", " 0\n", - " 0.010547\n", - " 0.005423\n", - " 0.001438\n", - " 0.000207\n", + " 0.008167\n", + " 0.004108\n", + " 0.001306\n", + " 0.000036\n", " 0.5\n", " True\n", " 0.9\n", @@ -232,10 +359,10 @@ " \n", " \n", " 4\n", - " 0.002662\n", - " 0.000426\n", - " 0.001162\n", - " 0.000068\n", + " 0.002201\n", + " 0.000114\n", + " 0.001167\n", + " 0.000094\n", " 1.0\n", " True\n", " 0.9\n", @@ -250,10 +377,10 @@ " \n", " \n", " 3\n", - " 0.001664\n", - " 0.000016\n", - " 0.001354\n", - " 0.000081\n", + " 0.001697\n", + " 0.000039\n", + " 0.001383\n", + " 0.000154\n", " 0.5\n", " False\n", " 0.9\n", @@ -268,10 +395,10 @@ " \n", " \n", " 7\n", - " 0.002125\n", - " 0.000228\n", - " 0.001368\n", - " 0.000247\n", + " 0.001766\n", + " 0.000113\n", + " 0.001158\n", + " 0.000053\n", " 1.0\n", " False\n", " 0.9\n", @@ -286,10 +413,10 @@ " \n", " \n", " 1\n", - " 0.001997\n", - " 0.000104\n", - " 0.001105\n", - " 0.000051\n", + " 0.001895\n", + " 0.000174\n", + " 0.001272\n", + " 0.000105\n", " 0.5\n", " True\n", " 0.9\n", @@ -304,10 +431,10 @@ " \n", " \n", " 5\n", - " 0.002135\n", - " 0.000251\n", - " 0.001422\n", - " 0.000479\n", + " 0.001901\n", + " 0.000075\n", + " 0.001156\n", + " 0.000107\n", " 1.0\n", " True\n", " 0.9\n", @@ -326,14 +453,14 @@ ], "text/plain": [ " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", - "2 0.002468 0.000398 0.001431 0.000171 \n", - "6 0.002088 0.000166 0.001113 0.000053 \n", - "0 0.010547 0.005423 0.001438 0.000207 \n", - "4 0.002662 0.000426 0.001162 0.000068 \n", - "3 0.001664 0.000016 0.001354 0.000081 \n", - "7 0.002125 0.000228 0.001368 0.000247 \n", - "1 0.001997 0.000104 0.001105 0.000051 \n", - "5 0.002135 0.000251 0.001422 0.000479 \n", + "2 0.002220 0.000173 0.001228 0.000017 \n", + "6 0.002214 0.000084 0.001206 0.000011 \n", + "0 0.008167 0.004108 0.001306 0.000036 \n", + "4 0.002201 0.000114 0.001167 0.000094 \n", + "3 0.001697 0.000039 0.001383 0.000154 \n", + "7 0.001766 0.000113 0.001158 0.000053 \n", + "1 0.001895 0.000174 0.001272 0.000105 \n", + "5 0.001901 0.000075 0.001156 0.000107 \n", "\n", " param_classifier__alpha param_classifier__fit_prior \\\n", "2 0.5 False \n", @@ -419,7 +546,14 @@ "cell_type": "code", "execution_count": 6, "id": "cell-8", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:35.667075Z", + "iopub.status.busy": "2026-10-28T22:47:35.667011Z", + "iopub.status.idle": "2026-10-28T22:47:35.717496Z", + "shell.execute_reply": "2026-10-28T22:47:35.716936Z" + } + }, "outputs": [ { "data": { @@ -2711,15 +2845,40 @@ "cell_type": "code", "execution_count": 7, "id": "cell-10", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:35.718404Z", + "iopub.status.busy": "2026-10-28T22:47:35.718242Z", + "iopub.status.idle": "2026-10-28T22:47:35.738575Z", + "shell.execute_reply": "2026-10-28T22:47:35.738292Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n", - "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n", - "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n", + "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of small-domain-prediction\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "\u001b[38;5;39mModel small-domain-prediction uploaded with version 0\u001b[0m\n" ] }, diff --git a/docs/surveys/surveys.ipynb b/docs/surveys/surveys.ipynb index f4b7fed..f3d3eaf 100644 --- a/docs/surveys/surveys.ipynb +++ b/docs/surveys/surveys.ipynb @@ -8,16 +8,22 @@ "\n", "Use Python 3.12 or 3.13 and install this checkout with `uv pip install --editable '.[notebooks]'`.\n", "See **Run notebooks locally** in the repository README for the kernel, execution order,\n", - "and full-data options. Run related notebooks from the same working directory\n", - "to share the default `.cache/` model store and `tracing_database.json` database.\n" + "and full-data options. Generated figures are saved in the working directory.\n" ], "metadata": {} }, { "id": "ba5f79ca", "cell_type": "code", - "metadata": {}, - "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:18.858795Z", + "iopub.status.busy": "2026-10-28T22:48:18.858521Z", + "iopub.status.idle": "2026-10-28T22:48:18.863019Z", + "shell.execute_reply": "2026-10-28T22:48:18.862079Z" + } + }, + "execution_count": 1, "source": [ "from docs.notebook_support import SURVEY_DIR" ], @@ -25,9 +31,460 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:18.864150Z", + "iopub.status.busy": "2026-10-28T22:48:18.864063Z", + "iopub.status.idle": "2026-10-28T22:48:19.025770Z", + "shell.execute_reply": "2026-10-28T22:48:19.025432Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
How many years of software engineering experience do you have?How many years of data science experience do you have?Write reusable scripts for data cleaning and mergingMake datasets available on shared infrastructureUse versioning for data, model, configurations and training scriptsContinuously monitor the behaviour of deployed modelsLog production predictions with the model’s version and input dataStore models in a single format for ease of useEquip with web interface, package image, provide REST APIProvide simple API for serving batch and real-time requestsIntegration with existing data infrastructureQuerying, visualising and understanding metrics and event loggingAllow experimentation with the inference codeKeep the model’s API and documentation togetherParallelise feature extractionCache predictionsAsync support for top-down chaining models
031Strongly agreeAgreeStrongly agreeNeither agree nor disagreeStrongly agreeStrongly agreeStrongly agreeStrongly agreeStrongly agreeStrongly agreeStrongly agreeStrongly agreeStrongly agreeNeither agree nor disagreeStrongly agree
162Neither agree nor disagreeAgreeNeither agree nor disagreeAgreeAgreeNeither agree nor disagreeDisagreeStrongly disagreeDisagreeStrongly disagreeDisagreeStrongly disagreeDisagreeStrongly agreeStrongly disagree
215Strongly disagreeDisagreeDisagreeStrongly disagreeDisagreeStrongly disagreeStrongly disagreeNeither agree nor disagreeStrongly disagreeDisagreeNeither agree nor disagreeAgreeStrongly disagreeStrongly disagreeDisagree
333AgreeAgreeDisagreeNeither agree nor disagreeAgreeNot applicableNot applicableNeither agree nor disagreeAgreeDisagreeAgreeStrongly agreeNot applicableNeither agree nor disagreeAgree
417Neither agree nor disagreeDisagreeNeither agree nor disagreeDisagreeStrongly disagreeNot applicableNot applicableDisagreeStrongly disagreeDisagreeDisagreeNeither agree nor disagreeStrongly disagreeStrongly agreeNot applicable
560Strongly agreeStrongly agreeAgreeNeither agree nor disagreeAgreeStrongly agreeAgreeStrongly agreeAgreeStrongly agreeDisagreeStrongly agreeAgreeStrongly agreeNot applicable
622DisagreeNeither agree nor disagreeAgreeStrongly agreeNeither agree nor disagreeDisagreeStrongly agreeDisagreeDisagreeAgreeNeither agree nor disagreeNeither agree nor disagreeNot applicableDisagreeStrongly agree
712DisagreeNeither agree nor disagreeDisagreeAgreeDisagreeStrongly disagreeStrongly agreeStrongly agreeStrongly disagreeDisagreeAgreeStrongly disagreeNot applicableStrongly disagreeStrongly disagree
801Strongly disagreeDisagreeStrongly disagreeDisagreeStrongly disagreeDisagreeAgreeStrongly disagreeDisagreeStrongly disagreeDisagreeStrongly disagreeDisagreeDisagreeStrongly disagree
971Strongly agreeStrongly agreeAgreeStrongly agreeAgreeAgreeStrongly agreeStrongly disagreeStrongly agreeNot applicableAgreeAgreeStrongly agreeStrongly agreeAgree
\n", + "
" + ], + "text/plain": [ + " How many years of software engineering experience do you have? \\\n", + "0 3 \n", + "1 6 \n", + "2 1 \n", + "3 3 \n", + "4 1 \n", + "5 6 \n", + "6 2 \n", + "7 1 \n", + "8 0 \n", + "9 7 \n", + "\n", + " How many years of data science experience do you have? \\\n", + "0 1 \n", + "1 2 \n", + "2 5 \n", + "3 3 \n", + "4 7 \n", + "5 0 \n", + "6 2 \n", + "7 2 \n", + "8 1 \n", + "9 1 \n", + "\n", + " Write reusable scripts for data cleaning and merging \\\n", + "0 Strongly agree \n", + "1 Neither agree nor disagree \n", + "2 Strongly disagree \n", + "3 Agree \n", + "4 Neither agree nor disagree \n", + "5 Strongly agree \n", + "6 Disagree \n", + "7 Disagree \n", + "8 Strongly disagree \n", + "9 Strongly agree \n", + "\n", + " Make datasets available on shared infrastructure \\\n", + "0 Agree \n", + "1 Agree \n", + "2 Disagree \n", + "3 Agree \n", + "4 Disagree \n", + "5 Strongly agree \n", + "6 Neither agree nor disagree \n", + "7 Neither agree nor disagree \n", + "8 Disagree \n", + "9 Strongly agree \n", + "\n", + " Use versioning for data, model, configurations and training scripts \\\n", + "0 Strongly agree \n", + "1 Neither agree nor disagree \n", + "2 Disagree \n", + "3 Disagree \n", + "4 Neither agree nor disagree \n", + "5 Agree \n", + "6 Agree \n", + "7 Disagree \n", + "8 Strongly disagree \n", + "9 Agree \n", + "\n", + " Continuously monitor the behaviour of deployed models \\\n", + "0 Neither agree nor disagree \n", + "1 Agree \n", + "2 Strongly disagree \n", + "3 Neither agree nor disagree \n", + "4 Disagree \n", + "5 Neither agree nor disagree \n", + "6 Strongly agree \n", + "7 Agree \n", + "8 Disagree \n", + "9 Strongly agree \n", + "\n", + " Log production predictions with the model’s version and input data \\\n", + "0 Strongly agree \n", + "1 Agree \n", + "2 Disagree \n", + "3 Agree \n", + "4 Strongly disagree \n", + "5 Agree \n", + "6 Neither agree nor disagree \n", + "7 Disagree \n", + "8 Strongly disagree \n", + "9 Agree \n", + "\n", + " Store models in a single format for ease of use \\\n", + "0 Strongly agree \n", + "1 Neither agree nor disagree \n", + "2 Strongly disagree \n", + "3 Not applicable \n", + "4 Not applicable \n", + "5 Strongly agree \n", + "6 Disagree \n", + "7 Strongly disagree \n", + "8 Disagree \n", + "9 Agree \n", + "\n", + " Equip with web interface, package image, provide REST API \\\n", + "0 Strongly agree \n", + "1 Disagree \n", + "2 Strongly disagree \n", + "3 Not applicable \n", + "4 Not applicable \n", + "5 Agree \n", + "6 Strongly agree \n", + "7 Strongly agree \n", + "8 Agree \n", + "9 Strongly agree \n", + "\n", + " Provide simple API for serving batch and real-time requests \\\n", + "0 Strongly agree \n", + "1 Strongly disagree \n", + "2 Neither agree nor disagree \n", + "3 Neither agree nor disagree \n", + "4 Disagree \n", + "5 Strongly agree \n", + "6 Disagree \n", + "7 Strongly agree \n", + "8 Strongly disagree \n", + "9 Strongly disagree \n", + "\n", + " Integration with existing data infrastructure \\\n", + "0 Strongly agree \n", + "1 Disagree \n", + "2 Strongly disagree \n", + "3 Agree \n", + "4 Strongly disagree \n", + "5 Agree \n", + "6 Disagree \n", + "7 Strongly disagree \n", + "8 Disagree \n", + "9 Strongly agree \n", + "\n", + " Querying, visualising and understanding metrics and event logging \\\n", + "0 Strongly agree \n", + "1 Strongly disagree \n", + "2 Disagree \n", + "3 Disagree \n", + "4 Disagree \n", + "5 Strongly agree \n", + "6 Agree \n", + "7 Disagree \n", + "8 Strongly disagree \n", + "9 Not applicable \n", + "\n", + " Allow experimentation with the inference code \\\n", + "0 Strongly agree \n", + "1 Disagree \n", + "2 Neither agree nor disagree \n", + "3 Agree \n", + "4 Disagree \n", + "5 Disagree \n", + "6 Neither agree nor disagree \n", + "7 Agree \n", + "8 Disagree \n", + "9 Agree \n", + "\n", + " Keep the model’s API and documentation together \\\n", + "0 Strongly agree \n", + "1 Strongly disagree \n", + "2 Agree \n", + "3 Strongly agree \n", + "4 Neither agree nor disagree \n", + "5 Strongly agree \n", + "6 Neither agree nor disagree \n", + "7 Strongly disagree \n", + "8 Strongly disagree \n", + "9 Agree \n", + "\n", + " Parallelise feature extraction Cache predictions \\\n", + "0 Strongly agree Neither agree nor disagree \n", + "1 Disagree Strongly agree \n", + "2 Strongly disagree Strongly disagree \n", + "3 Not applicable Neither agree nor disagree \n", + "4 Strongly disagree Strongly agree \n", + "5 Agree Strongly agree \n", + "6 Not applicable Disagree \n", + "7 Not applicable Strongly disagree \n", + "8 Disagree Disagree \n", + "9 Strongly agree Strongly agree \n", + "\n", + " Async support for top-down chaining models \n", + "0 Strongly agree \n", + "1 Strongly disagree \n", + "2 Disagree \n", + "3 Agree \n", + "4 Not applicable \n", + "5 Not applicable \n", + "6 Strongly agree \n", + "7 Strongly disagree \n", + "8 Strongly disagree \n", + "9 Agree " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import pandas as pd\n", "\n", @@ -38,9 +495,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.026577Z", + "iopub.status.busy": "2026-10-28T22:48:19.026513Z", + "iopub.status.idle": "2026-10-28T22:48:19.029777Z", + "shell.execute_reply": "2026-10-28T22:48:19.029465Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(2.5), np.float64(2.0))" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m = {\n", " \"Strongly agree\": 4 / 4,\n", @@ -79,9 +554,37 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.030529Z", + "iopub.status.busy": "2026-10-28T22:48:19.030475Z", + "iopub.status.idle": "2026-10-28T22:48:19.521482Z", + "shell.execute_reply": "2026-10-28T22:48:19.521094Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PearsonRResult(statistic=np.float64(-0.5440527060340572), pvalue=np.float64(0.10399880919437816))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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JSIiwozz8Prkk08kLCxM+vTpY9YV8W7jxo0r3GcCAAiIriOi03djov27YnSfab0o8uuM2MI6IwBQ+HT6rs6a0cGqOkZEu2ZoEYGN9+8CrcAKACg5NHi0rVfJ9mUA3LUXAAAU07v2AgAAFAbCCAAAsIoxIw5j8BoAoCggjDiK24cDAIoKumkcvn147ptlHUvJMOV6HACAYCGMOIbbhwMAihrCiGO4fTgAoKghjDiG24cDAIoawohjuH04AKCoIYw4htuHAwCKGsKIY7h9OACgqCGMOIjbhwMAihIWPXM4kHSOi+H24QAA6wgjDuP24QCAooBuGgAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVxWLRM4/HY76mpqbavhQAABAg7/u29328WIeRtLQ08zU2Ntb2pQAAgKt4H4+Ojs73eIjnSnGlCMjOzpYjR45IZGSkhISEFGpi04CTlJQkUVFR4iLXXwPXn79y/TXg+bv981f8DqRet98BjRgaRGrUqCGhoaHFu2VEn0DNmjWv2/fXF9/V/4Rerr8Grj9/5fprwPN3++ev+B2Iui6/A5drEfFiACsAALCKMAIAAKxyOoyEh4fLyJEjzVdXuf4auP78leuvAc/f7Z+/4ncg3PrvQLEYwAoAAEoup1tGAACAfYQRAABgFWEEAABYVSzWGbkeLly4IOvXr5eUlBRp2bKl3HjjjeKaY8eOyZo1a+SWW26Rpk2bimv2798ve/bskSpVqkjz5s2ldOnS4pLz58/Lt99+K8ePH5f69etLgwYNxFUrV66U5ORkuffee6Vs2bLigk2bNsmBAwf8yipXrix33323uEQX1dy6dav5f9C6dWupWrWquCAlJUUWL16c5zF9HW666aagXo+TYeTQoUPSuXNnycrKklq1apn/lP/4xz/k2WefFRccPnxYXnzxRRPGdGW8QYMGORVGEhMTzXPWP8QNGzaUH374wZR//vnn0qRJE3HBggULzO+A/uGtWLGirF27Vtq3by9z5sxx5s3Y65tvvpGePXtKenq6WYHyei6wWJS888475m/A7bff7ivTUOpSGNEPIw888ID5cHrrrbfK8OHD5bXXXpNHH31USrq0tDT54osvLnlv3Lhxo3z99ddBDyO6VKtz7rnnHk/79u0958+fN/tTp071hIWFeX744QePC3bt2uWZMWOGJzMz03Pbbbd5XnzxRY9LduzY4VmxYoVv/+LFi57evXt7mjVr5nHFokWLPMnJyb79I0eOeCpUqOAZP368xyXHjx/31K5d2zN69GidVehJSkryuKJv376eAQMGeFyVlpbmqVWrlqdfv37mb4BKT0/3fP311x5XDRw40LwmWVlZQX9s58aMnDx50jRNDR061Ncs/6c//ck01c+YMUNc0KhRI3nkkUekTJky4iJt/bjrrrt8+2FhYaZ5fufOnabJ1gU9evQwv/NeMTExZslm700pXaCrGjz++OOmlaxVq1biohMnTsj8+fNNy5hrd0WfNm2aHD16VMaNG2f+BqiIiAjp0qWLuOjcuXMyc+ZMGThw4GXvIXO9ONdNo81y+obTuHFjX5m+8PoG/f3331u9NtizfPlyiYuLs/Kf0BYNHosWLTJ/hPQNqXbt2vL000+LK8aOHWv6zV955RXTVeMiHSuhoezgwYPmZqQTJ040H1RcoOPlWrRoYbollyxZYj6cand1pUqVxEUzZ840XZVPPPGElcd3LozoHx91ww03+JXrL6C2msA92iKmm46jcIm3z1j/T2zbtk369u0rFSpUEBfo8x0zZoxs2bLF96nYNfqmM3nyZN+qm2+88YYMGDDADObWsSMlnQ5YvnjxogkkGsT1/4O2jmog69evn7hm8uTJ0q1bN2tjppwLI97/eGfPnvUr131tooNbtMtOm+q1qfaee+4Rl+gtvb1dkzqzSv8olytXTt58800p6bQFSLvqdPC6brt27TLlX375pbRt21aaNWsmJV3OrkoVHx8vo0ePlmXLljkRRvTv/YoVK2T16tXyxz/+0ZTpRAbttuvevbtTLSQ//PCDbNiw4ZIBrcHkTpv0/6lXr55v1HBO2kwZ9NHDsEqbZvv06SMJCQny3HPPOf3T0DEjOotCxw64QAOH0j++uumsEqWzCFztrtUWovLly5sprq68F+hUZm8QUTqzJiMjQ3bv3i2utYpUr17d6gcy51pGNHDoegqzZ8/2fTLQXzzd3nrrLduXhyBZunSp3H///eaT4LBhw5x73XXgnv7x8dJp7jt27DBjp1wwYcKES8YMrVq1St59910npvbqGjPaLZHz078GUR3Q6spg3l69epmf96+//irVqlUzZXv37jVfY2NjxRUXLlyQTz75RJ588kkpVcpeJHAujChtktdfRJ1Noun47bffNomwa9eu4gL9QzR37lzz7zNnzsiPP/5omut1HI0LI8l1vMB9991nPh3rG3LOWVRa7kJ3nX4C1MF62h2hnwRnzZplAoorM8pcl5mZadaV0fVVfv/735u1dzSgPfzww6aLwgXaEqgfSPRv3uDBg0040w+kTz31lNStW1dcsXDhQtMaprNobHL2rr36hqRpUAfv6ZuSDuZyZQVO70JnuWkwc2G8gPYR6yC1vEyaNMlMcXXh09Cnn35qFjjST0PaItK/f39nBrDmpmNGdADne++9d8ng9pJKp/JOmTLFDNrUFhJtKXblA1nOFsGpU6eamTWRkZFy5513mg8kLnn33Xfll19+Ma3ENjkbRgAAQNHg3ABWAABQtBBGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAiE3/D9BK9R2EInEDAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "from scipy import stats\n", @@ -98,9 +601,44 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.522297Z", + "iopub.status.busy": "2026-10-28T22:48:19.522214Z", + "iopub.status.idle": "2026-10-28T22:48:19.650855Z", + "shell.execute_reply": "2026-10-28T22:48:19.650524Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.5157738095238095\n" + ] + }, + { + "data": { + "text/plain": [ + "PearsonRResult(statistic=np.float64(0.6722543326178703), pvalue=np.float64(0.033211248815547774))" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ZqaxCDt2hK+rUiVcFt+li+ZBZPcexp9AMkQVyJw0aZLly5fPDb5QL00FR1OiwR89e/b0MzO96cEZ0bhxY39ZAcZFixaluP5bb73lL2ty+6mnnpru+44cyKRpyNHQsUrq9gAAAAAAAMjdVP6u0FfVquGBSQoDnXCC2cSJZsrP0+8IhubigOi2bdtcdqWCoppyvGDBAvdz79697d1333VZmL///rv99NNP9tJLL9kll1ziLhpopCxJleEqiKi+n8ldNNk6NWeeeabLVPUMU65xMryBRpHlwBnJUK2i0P6/3nzzTQtpRFgKlBn76aefJnl7AAAAAAAA5E7Kz+vQweyYY8JZoeoZesYZZuqWqH6hHTsqMS679zK+BVIyf8MNNxwyfVrZj4899pi7pGThwoUuKJoaBU1TmzCsIS+33Xab3a4utP8OOlLWaGeN54qgnp233HKLX67u3S45v/32m61bt86fZF+nTp1D1rngggtcX0WZP3++24ehQ4e6rNnEtm/fbldffbXt2rUrwe0BAAAAAACQO82bF84EjShItmbNzAYNMjvvPMWfsnPvEHhANCdRoPPpp592QUzp0qWLC1S2adPGypYt64YoPf/88/bVV1/5t+nQoYPVq1cv2W2OHDnSxiikb2annHKKff/994eso6Dr4MGDbdOmTe7nRx55xN555x23bfUULVq0qP3555/ufidOnGgbNmzwb3vxxRdHFRQGAAAAAABAzqEC4dmzw4HQOXPC1ynw2aaN2YABZqedlt17iEwLiJYpUyZBqXpmUCl+NAoXLmwzZ860Bg0a2NatW911moodOQU+0umnn25PPfVUhvevRIkSNmXKFBfc3KNcaJcivcgGDhyY4u2OPvpoGzduXIbvHwAAAAAAAFnjwAGz118PT41fsCB8ncrgVSqvwuXjjuOZiPmA6DPPPGM5ifqXasp8p06dbJ7ylZOhrE6V9EcbbE2NyvN1fz169Eh1yr1K6a+55hrXx1QBZQAAAAAAAORsGnHz4otmw4eb/fxz+DqFlW680axvX7NKlbJ7DxGXJfMeTa6fO3euff75527IkUrl1buzXLlyVqtWLbviiiusZs2aUW1LWZznnHOOWz722GNTXFcl9brfH374wWbPnu16pGqAkgZIFS9e3MqXL+/K81u2bGkVKlQI5LECAAAAAAAg82gMzLPPqq2i2dq1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ZClyaFJiCxYssG3btvk/16lTx4L2yiuv2F9qumJmhx9+uF122WWB3wcAAAAAAOnx3XdmQ4eavfZaeIK8NGyoORZmF16o7+kcVwCxJ9szRP/+++8khyKlR4sWLSxfvnxuWUHIqVOnprj++PHj/eVTTjklU0rZI8vlr732WvqAAgAAAACyVShkpo51F11kduqpZvrqrGBoixZmn3/+3+8IhgKIVdkaEA2FQv6wISlbtmyGtnfEEUdYkyZN/J/vueeeZIcraZjTCy+84P98zTXXZOi+k7uPb775xv+ZcnkAAAAAQHZR0HPmTLMGDcwaNTJ7912zvHn1fdjshx/M/vc/s3PO4fkBEPvSXDK/bt26Q4KMkZPa9fulajCSggMHDtjGjRvtxRdftNWrV7vrChQoEEgPzwceeMBmz57tllesWGHNmze3l156yWrUqOGvM2fOHJetuWfPHvfzUUcdZTfffHOy23zuuefs7bffdsvVq1e3UaNGRbUvup2nXr16LgsVAAAAAICstH+/mUZbqDT+p5/C1xUqZNa5c3hIUsTXZQCIC2kOiN566602ffr0ZH9/2223pWtHLr/88gyXzMuZZ55pt9xyiz355JPu53nz5tmxxx7r+osqA1VB0uXLl/vr582b15566ikrWrRostv84YcfbMaMGW452qCmgq2TJ0/2fyY7FAAAAACQlXbvNlNh5IgRZitXhq8rXtysRw+zXr3Mypfn+QAQn3LEUKWaNWtGnXUZjccee8wNS1IGqjdNfv78+Yesp6xUBU4zY9CRgsZbt251y4cddphdffXVgd8HAAAAAACJbd9u9tRT+m5stmFD+LojjggHQW+6yaxUKY4ZgPiW5oBolSpVDiltX7NmjV9GX7lyZStRokSK21AgslixYnbMMcfY+eefb23btnVBw6Ao63PSpEnWsmVLe+SRR+zrr79O8HtNnlcp/YMPPphpZeyRw5TatGljpfiLAwAAAADIRAp+Pv642ZgxZl6nuypVwmXxXbpokDGHHwAkT0iTjTJIAU2vjH7atGnu55xk/fr1rlR++/btVq5cOReILVmyZNS3X7hwof32229uWbdr3LhxiuvrkM6cOdNlpsqpp57qAslBUgBa+6LHlFoAGgAAAAAQu1QOr7L48ePVvi183Yknmg0caHbVVUpKyu49BIDMl5ZYWY4omc9s5cuXd5f0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KAAAAAAAGUdSsrJ0UTLvFVur07cO6ZkzZzRy5MhEjx8+fLh/u2HDhp6Eob/++qvq16/vD0Pr1KnDmqFABmKl84ShAAAAAACELk8C0Y8++kg20dRuwZodaiwMbdu2rf/+Sy+9pI0bNyZ4rM1onTFjhv9+p06dUvz669atc8JQW0LA3HDDDc7MUGZwAgAAAAAAAOlDSM0QNc8995yyZ8/ubB85ckR169bVhAkTdPz4cWffvn37nKD0rrvu8p9z5ZVXnnP/fH379lXhwoWdmzVJSoitQWizTHfv3u3ct2B0zpw5qdK5HgAAAAAAAEAaNVVK76zpk5XCd+zY0R+Atm/f3imBtRmkR48ePed4W1tg/PjxiZbIWrD6559/OtsHDx5M8Jhnn33W6Srvs2LFioC71t9///165ZVXAjoWAAAAAAAAQDoMRK183tbTtG7rtpjp6dOnL3qOrbdZsmTJFL/2fffdp5MnT+qxxx7TsWPH/OM5PwwtW7asJk2a5El3+fN7U9lCroGywBUAAAAAAABABgxEV69erSFDhuiTTz5RdHR0ks71skN9165dddNNN+ntt992us9v377dabRk5fQWgN5xxx3q3r07Je0AAAAAAABAGImIO39qYwq89dZbzqzMQGaDpnYger6zZ886M0STs6annedbgzQyMlL58+f/xzGHDx92ZqUmR44cOZQrV64knWMzUK3c32bf0rQJAAAAAAAA4SwmCVmZZzNErWv7ww8/7L9foEABNWjQQMuXL9e2bducfdZ0yAb07bff6sCBA84+m615zTXXONuBrrmZHJkyZUr2bFALKy8WWNpz00AJAAAAAAAACIMu8zYj9PHHH/ffb968ubZu3eqUzfvCTvPQQw9pxowZzrqivvB006ZNatKkid59991zjgUAAAAAAACAdBmILliwwD8L1MrJJ0yYkOjUVFvH84033lDbtm116tQpderUSatWrfJiKAAAAAAAAACQuoGolcD7/Oc//3HK5QPx0ksvKSIiwglFn3rqKS+GAgAAAAAAAACpG4haCbzP1Vdffc5jFnj6WJf3+CpWrKiqVas621988YWz+CkAAAAAAAAApBZPAtEjR474t8+fHZotWzb/9rFjx/5xbvny5Z0/bZaorScKAAAAAAAAAOk6EI0fgh49evScx6zdvc++ffv+cW5cXJx/+48//vBiOAAA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qqlBgwa64447lCdPHt4BeOq3337TDz/8oB9//FHbtm3Tvn37nJt9/RUsWFCXX365GjdurDZt2ih79uxcfaSJdevWqVmzZoqNjfXv++yzz1SzZk3eAaRY//79NWzYsCSdM3XqVNWpU4erD8/t379fM2bM0Jw5c7R9+3bnvv38V6JECV1xxRVq3ry5atWqpcyZM3P1kWz9+vXTBx98kKxzS5cure+//z4srj5d5hF0ixcvVocOHZxf0i6kUaNGevfdd1WmTJk0HRtC08GDB1WsWDGdOnXqgsdYIGrBPOClf//735o5c2ZAx1oY+tJLL6lHjx58IARP3HfffXrvvfcCOtY+lHzttdd09913c/WR6h8U1atXz/l5ML6ffvpJ11xzDVcfKda3b18NGDAgSed8/fXXatiwIVcfnrHfO1599VXnZ7tjx44leuxdd92liRMncvWRbN26ddOIESOSde7ll1/uTNwIB5TMI6jsk4cmTZokGob6fiixUHTv3r1pNjaELpuBklgYCqSWkydPBnzs4cOH1bNnT+cHGgsMgJQ6ceJEwMfa/7ft2rXTK6+8woVHqnrnnXf+EYYCQCixCjSb+fnf//73omGo4fcUBFPbtm3D5g2gZB5BY7/sW0melcs7X4yRkXr44YedEvkiRYpo69atGjVqlKZMmeI8bqX099xzj+bOncu7hhSzr7fKlSvrsssu89/27Nmjhx56iKuLVGNlyZUqVXJmPV177bUqX768Chcu7NyyZs3qlDBbGZV9ousLT0eOHKnatWurY8eOvDNIkUyZMjklyNdff72uvPJKlSpVSpdccokKFSrkhKW2hIPNYLZZpKdPn3bOsV/erIT+uuuu4+rDc7t27XLK+kzr1q2dpZOA1PT000+ra9euFz3OfhcBvHD27FmnQuirr746pyT5gQcecCb8WNWaTdbYsWOHli5dqtmzZzu/pwApYR9o2/e7QKxcuVItW7Z0tm2pBqsoCheUzCNonnnmGf3f//2f/5c0++Zvn5wltO7PU0895b9vgaitKQqk5AcTW0PUAqj47GuwVatWzjYl80gNFnJmy5btosctX75cN954o7O8g6lYsaITVgEpYTNOzv++lxBb49Z+SfPNYrEfjMeNG8fFh+duu+02Zw35/Pnza8WKFSpXrpz/MUrmkRol84MGDVLv3r25uEgztvzMY4895r9v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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import re\n", "\n", @@ -155,9 +693,311 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 6, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.651678Z", + "iopub.status.busy": "2026-10-28T22:48:19.651609Z", + "iopub.status.idle": "2026-10-28T22:48:19.655040Z", + "shell.execute_reply": "2026-10-28T22:48:19.654690Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
I believe the use of GreatAI improves the quality of AI deployments.I believe the use of GreatAI would increase my productivity.I believe the use of GreatAI can lead to robust and trustworthy deployments.Overall, I found GreatAI useful when working with AI.I found the GreatAI easy to learn.I found it is easy to employ GreatAI in practice.I found it is easy to integrate GreatAI into an existing project.Overall, I found GreatAI easy to use.Assuming GreatAI is applicable to my task, I predict that I will use it on a regular basis in the future.Overall, I intend to use the GreatAI in my personal or professional projects.
07777777777
17767567677
24456654454
36767767676
47767455566
56666666666
66664576677
77666453556
84555723333
97777565677
\n", + "
" + ], + "text/plain": [ + " I believe the use of GreatAI improves the quality of AI deployments. \\\n", + "0 7 \n", + "1 7 \n", + "2 4 \n", + "3 6 \n", + "4 7 \n", + "5 6 \n", + "6 6 \n", + "7 7 \n", + "8 4 \n", + "9 7 \n", + "\n", + " I believe the use of GreatAI would increase my productivity. \\\n", + "0 7 \n", + "1 7 \n", + "2 4 \n", + "3 7 \n", + "4 7 \n", + "5 6 \n", + "6 6 \n", + "7 6 \n", + "8 5 \n", + "9 7 \n", + "\n", + " I believe the use of GreatAI can lead to robust and trustworthy deployments. \\\n", + "0 7 \n", + "1 6 \n", + "2 5 \n", + "3 6 \n", + "4 6 \n", + "5 6 \n", + "6 6 \n", + "7 6 \n", + "8 5 \n", + "9 7 \n", + "\n", + " Overall, I found GreatAI useful when working with AI. \\\n", + "0 7 \n", + "1 7 \n", + "2 6 \n", + "3 7 \n", + "4 7 \n", + "5 6 \n", + "6 4 \n", + "7 6 \n", + "8 5 \n", + "9 7 \n", + "\n", + " I found the GreatAI easy to learn. \\\n", + "0 7 \n", + "1 5 \n", + "2 6 \n", + "3 7 \n", + "4 4 \n", + "5 6 \n", + "6 5 \n", + "7 4 \n", + "8 7 \n", + "9 5 \n", + "\n", + " I found it is easy to employ GreatAI in practice. \\\n", + "0 7 \n", + "1 6 \n", + "2 5 \n", + "3 6 \n", + "4 5 \n", + "5 6 \n", + "6 7 \n", + "7 5 \n", + "8 2 \n", + "9 6 \n", + "\n", + " I found it is easy to integrate GreatAI into an existing project. \\\n", + "0 7 \n", + "1 7 \n", + "2 4 \n", + "3 7 \n", + "4 5 \n", + "5 6 \n", + "6 6 \n", + "7 3 \n", + "8 3 \n", + "9 5 \n", + "\n", + " Overall, I found GreatAI easy to use. \\\n", + "0 7 \n", + "1 6 \n", + "2 4 \n", + "3 6 \n", + "4 5 \n", + "5 6 \n", + "6 6 \n", + "7 5 \n", + "8 3 \n", + "9 6 \n", + "\n", + " Assuming GreatAI is applicable to my task, I predict that I will use it on a regular basis in the future. \\\n", + "0 7 \n", + "1 7 \n", + "2 5 \n", + "3 7 \n", + "4 6 \n", + "5 6 \n", + "6 7 \n", + "7 5 \n", + "8 3 \n", + "9 7 \n", + "\n", + " Overall, I intend to use the GreatAI in my personal or professional projects. \n", + "0 7 \n", + "1 7 \n", + "2 4 \n", + "3 6 \n", + "4 6 \n", + "5 6 \n", + "6 7 \n", + "7 6 \n", + "8 3 \n", + "9 7 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tam = pd.read_csv(SURVEY_DIR / \"Technology acceptance model questionnaire.csv\")\n", "tam" @@ -166,9 +1006,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.655753Z", + "iopub.status.busy": "2026-10-28T22:48:19.655703Z", + "iopub.status.idle": "2026-10-28T22:48:19.743362Z", + "shell.execute_reply": "2026-10-28T22:48:19.742922Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.8813771517996869), array([0.688, 0.967]))" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import pingouin\n", "\n", @@ -184,9 +1042,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.744161Z", + "iopub.status.busy": "2026-10-28T22:48:19.744099Z", + "iopub.status.idle": "2026-10-28T22:48:19.747071Z", + "shell.execute_reply": "2026-10-28T22:48:19.746708Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.7729220222793487), array([0.403, 0.937]))" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "peou = [\n", " \"I found the GreatAI easy to learn.\",\n", @@ -200,9 +1076,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 9, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.747745Z", + "iopub.status.busy": "2026-10-28T22:48:19.747691Z", + "iopub.status.idle": "2026-10-28T22:48:19.750388Z", + "shell.execute_reply": "2026-10-28T22:48:19.749996Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(0.9538950715421306), array([0.814, 0.989]))" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "itu = [\n", " \"Assuming GreatAI is applicable to my task, I predict that I will use it on a regular basis in the future.\",\n", @@ -214,9 +1108,126 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 10, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.750990Z", + "iopub.status.busy": "2026-10-28T22:48:19.750941Z", + "iopub.status.idle": "2026-10-28T22:48:19.754251Z", + "shell.execute_reply": "2026-10-28T22:48:19.753978Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pupeouitu
07.007.007.0
16.756.007.0
24.754.754.5
36.506.506.5
46.754.756.0
56.006.006.0
65.506.007.0
76.254.255.5
84.753.753.0
97.005.507.0
\n", + "
" + ], + "text/plain": [ + " pu peou itu\n", + "0 7.00 7.00 7.0\n", + "1 6.75 6.00 7.0\n", + "2 4.75 4.75 4.5\n", + "3 6.50 6.50 6.5\n", + "4 6.75 4.75 6.0\n", + "5 6.00 6.00 6.0\n", + "6 5.50 6.00 7.0\n", + "7 6.25 4.25 5.5\n", + "8 4.75 3.75 3.0\n", + "9 7.00 5.50 7.0" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tam[\"pu\"] = tam[pu].mean(axis=1)\n", "tam[\"peou\"] = tam[peou].mean(axis=1)\n", @@ -227,9 +1238,30 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 11, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.754873Z", + "iopub.status.busy": "2026-10-28T22:48:19.754824Z", + "iopub.status.idle": "2026-10-28T22:48:19.756966Z", + "shell.execute_reply": "2026-10-28T22:48:19.756639Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "pu 6.125\n", + "peou 5.450\n", + "itu 5.950\n", + "dtype: float64" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tam[[\"pu\", \"peou\", \"itu\"]].mean()" ], @@ -237,9 +1269,30 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 12, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.757577Z", + "iopub.status.busy": "2026-10-28T22:48:19.757526Z", + "iopub.status.idle": "2026-10-28T22:48:19.759604Z", + "shell.execute_reply": "2026-10-28T22:48:19.759243Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "pu 6.375\n", + "peou 5.750\n", + "itu 6.250\n", + "dtype: float64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tam[[\"pu\", \"peou\", \"itu\"]].median()" ], @@ -247,9 +1300,30 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 13, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.760166Z", + "iopub.status.busy": "2026-10-28T22:48:19.760119Z", + "iopub.status.idle": "2026-10-28T22:48:19.762217Z", + "shell.execute_reply": "2026-10-28T22:48:19.761889Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "pu 0.859990\n", + "peou 1.039498\n", + "itu 1.321825\n", + "dtype: float64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tam[[\"pu\", \"peou\", \"itu\"]].std()" ], @@ -257,9 +1331,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 14, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.762756Z", + "iopub.status.busy": "2026-10-28T22:48:19.762714Z", + "iopub.status.idle": "2026-10-28T22:48:19.764568Z", + "shell.execute_reply": "2026-10-28T22:48:19.764260Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PearsonRResult(statistic=np.float64(0.5515422017785757), pvalue=np.float64(0.09838124227663884))" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stats.pearsonr(tam[\"peou\"], tam[\"pu\"])" ], @@ -267,9 +1359,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 15, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.765159Z", + "iopub.status.busy": "2026-10-28T22:48:19.765111Z", + "iopub.status.idle": "2026-10-28T22:48:19.766812Z", + "shell.execute_reply": "2026-10-28T22:48:19.766534Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PearsonRResult(statistic=np.float64(0.8066270322592025), pvalue=np.float64(0.004809023073122994))" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stats.pearsonr(tam[\"peou\"], tam[\"itu\"])" ], @@ -277,9 +1387,27 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:48:19.767398Z", + "iopub.status.busy": "2026-10-28T22:48:19.767356Z", + "iopub.status.idle": "2026-10-28T22:48:19.769008Z", + "shell.execute_reply": "2026-10-28T22:48:19.768714Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PearsonRResult(statistic=np.float64(0.7880605510627579), pvalue=np.float64(0.006774486564715021))" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stats.pearsonr(tam[\"pu\"], tam[\"itu\"])" ], @@ -293,15 +1421,16 @@ "name": "great-ai-local" }, "language_info": { - "name": "python", "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", + "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.13.5" } }, "nbformat": 4, diff --git a/docs/tutorial/deploy.ipynb b/docs/tutorial/deploy.ipynb index 1937989..0827b19 100644 --- a/docs/tutorial/deploy.ipynb +++ b/docs/tutorial/deploy.ipynb @@ -27,9 +27,136 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:27.038586Z", + "iopub.status.busy": "2026-10-28T22:47:27.038390Z", + "iopub.status.idle": "2026-10-28T22:47:28.222141Z", + "shell.execute_reply": "2026-10-28T22:47:28.221742Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of my-domain-predictor\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mLatest version of my-domain-predictor is 0 (from versions: 0)\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFile my-domain-predictor-0 found in cache\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFile my-domain-predictor-0 found in cache\u001b[0m\n" + ] + } + ], "source": [ "from great_ai import GreatAI, use_model\n", "from great_ai.utilities import clean\n", @@ -45,9 +172,36 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:28.223068Z", + "iopub.status.busy": "2026-10-28T22:47:28.222987Z", + "iopub.status.idle": "2026-10-28T22:47:28.234820Z", + "shell.execute_reply": "2026-10-28T22:47:28.234515Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Trace[str]({'created': '2026-10-28T22:47:28.223376',\n", + " 'exception': None,\n", + " 'feedback': None,\n", + " 'logged_values': { 'arg:sentence:length': 29,\n", + " 'arg:sentence:value': 'Mountains are just big rocks.'},\n", + " 'models': [{'key': 'my-domain-predictor', 'version': 0}],\n", + " 'original_execution_time_ms': 7.958,\n", + " 'output': 'sociology',\n", + " 'tags': ['predict_domain', 'online', 'development'],\n", + " 'trace_id': 'b48540f9-3162-47de-b035-bf11cc4d1581'})" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "predict_domain(\"Mountains are just big rocks.\")" ], @@ -74,9 +228,24 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:28.235605Z", + "iopub.status.busy": "2026-10-28T22:47:28.235548Z", + "iopub.status.idle": "2026-10-28T22:47:28.266237Z", + "shell.execute_reply": "2026-10-28T22:47:28.265852Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sociology\n" + ] + } + ], "source": [ "from fastapi.testclient import TestClient\n", "\n", @@ -114,15 +283,16 @@ "name": "great-ai-local" }, "language_info": { - "name": "python", "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", + "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.13.5" } }, "nbformat": 4, diff --git a/docs/tutorial/train.ipynb b/docs/tutorial/train.ipynb index 2c00097..8e7f604 100644 --- a/docs/tutorial/train.ipynb +++ b/docs/tutorial/train.ipynb @@ -30,8 +30,15 @@ { "id": "42ed923c", "cell_type": "code", - "metadata": {}, - "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:18.653947Z", + "iopub.status.busy": "2026-10-28T22:47:18.653802Z", + "iopub.status.idle": "2026-10-28T22:47:18.664778Z", + "shell.execute_reply": "2026-10-28T22:47:18.663856Z" + } + }, + "execution_count": 1, "source": [ "from docs.notebook_support import DATA_DIR, FULL_RUN, mag_lines" ], @@ -39,8 +46,15 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:18.667022Z", + "iopub.status.busy": "2026-10-28T22:47:18.666820Z", + "iopub.status.idle": "2026-10-28T22:47:18.669716Z", + "shell.execute_reply": "2026-10-28T22:47:18.669055Z" + } + }, "outputs": [], "source": [ "# Dependencies are installed once in the environment; no in-kernel installation needed." @@ -59,8 +73,15 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:18.671242Z", + "iopub.status.busy": "2026-10-28T22:47:18.671089Z", + "iopub.status.idle": "2026-10-28T22:47:21.261086Z", + "shell.execute_reply": "2026-10-28T22:47:21.260622Z" + } + }, "outputs": [], "source": [ "import json\n", @@ -89,9 +110,120 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:21.262422Z", + "iopub.status.busy": "2026-10-28T22:47:21.262265Z", + "iopub.status.idle": "2026-10-28T22:47:22.482973Z", + "shell.execute_reply": "2026-10-28T22:47:22.482099Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + " 0%| | 0/700 [00:00.sk-global {\n", + " /* Definition of color scheme common for light and dark mode */\n", + " --sklearn-color-text: #000;\n", + " --sklearn-color-text-muted: #666;\n", + " --sklearn-color-line: gray;\n", + " /* Definition of color scheme for unfitted estimators */\n", + " --sklearn-color-unfitted-level-0: #fff5e6;\n", + " --sklearn-color-unfitted-level-1: #f6e4d2;\n", + " --sklearn-color-unfitted-level-2: #ffe0b3;\n", + " --sklearn-color-unfitted-level-3: chocolate;\n", + " /* Definition of color scheme for fitted estimators */\n", + " --sklearn-color-fitted-level-0: #f0f8ff;\n", + " --sklearn-color-fitted-level-1: #d4ebff;\n", + " --sklearn-color-fitted-level-2: #b3dbfd;\n", + " --sklearn-color-fitted-level-3: cornflowerblue;\n", + "}\n", + "\n", + ".sk-global.light {\n", + " /* Specific color for light theme */\n", + " --sklearn-color-text-on-default-background: black;\n", + " --sklearn-color-background: white;\n", + " --sklearn-color-border-box: black;\n", + " --sklearn-color-icon: #696969;\n", + "}\n", + "\n", + ".sk-global.dark {\n", + " --sklearn-color-text-on-default-background: white;\n", + " --sklearn-color-background: #111;\n", + " --sklearn-color-border-box: white;\n", + " --sklearn-color-icon: #878787;\n", + "}\n", + "\n", + ".sk-global {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + ".sk-global pre {\n", + " padding: 0;\n", + "}\n", + "\n", + ".sk-global input.sk-hidden--visually {\n", + " border: 0;\n", + " clip-path: inset(100%);\n", + " height: 1px;\n", + " margin: -1px;\n", + " overflow: hidden;\n", + " padding: 0;\n", + " position: absolute;\n", + " width: 1px;\n", + "}\n", + "\n", + ".sk-global div.sk-dashed-wrapped {\n", + " border: 1px dashed var(--sklearn-color-line);\n", + " margin: 0 0.4em 0.5em 0.4em;\n", + " box-sizing: border-box;\n", + " padding-bottom: 0.4em;\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + ".sk-global div.sk-container {\n", + " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", + " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", + " so we also need the `!important` here to be able to override the\n", + " default hidden behavior on the sphinx rendered scikit-learn.org.\n", + " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", + " display: inline-block !important;\n", + " position: relative;\n", + "}\n", + "\n", + ".sk-global div.sk-text-repr-fallback {\n", + " display: none;\n", + "}\n", + "\n", + "div.sk-parallel-item,\n", + "div.sk-serial,\n", + "div.sk-item {\n", + " /* draw centered vertical line to link estimators */\n", + " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", + " background-size: 2px 100%;\n", + " background-repeat: no-repeat;\n", + " background-position: center center;\n", + "}\n", + "\n", + "/* Parallel-specific style estimator block */\n", + "\n", + ".sk-global div.sk-parallel-item::after {\n", + " content: \"\";\n", + " width: 100%;\n", + " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", + " flex-grow: 1;\n", + "}\n", + "\n", + ".sk-global div.sk-parallel {\n", + " display: flex;\n", + " align-items: stretch;\n", + " justify-content: center;\n", + " background-color: var(--sklearn-color-background);\n", + " position: relative;\n", + "}\n", + "\n", + ".sk-global div.sk-parallel-item {\n", + " display: flex;\n", + " flex-direction: column;\n", + "}\n", + "\n", + ".sk-global div.sk-parallel-item:first-child::after {\n", + " align-self: flex-end;\n", + " width: 50%;\n", + "}\n", + "\n", + ".sk-global div.sk-parallel-item:last-child::after {\n", + " align-self: flex-start;\n", + " width: 50%;\n", + "}\n", + "\n", + ".sk-global div.sk-parallel-item:only-child::after {\n", + " width: 0;\n", + "}\n", + "\n", + "/* Serial-specific style estimator block */\n", + "\n", + ".sk-global div.sk-serial {\n", + " display: flex;\n", + " flex-direction: column;\n", + " align-items: center;\n", + " background-color: var(--sklearn-color-background);\n", + " padding-right: 1em;\n", + " padding-left: 1em;\n", + "}\n", + "\n", + "\n", + "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", + "clickable and can be expanded/collapsed.\n", + "- Pipeline and ColumnTransformer use this feature and define the default style\n", + "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", + "*/\n", + "\n", + "/* Pipeline and ColumnTransformer style (default) */\n", + "\n", + ".sk-global div.sk-toggleable {\n", + " /* Default theme specific background. It is overwritten whether we have a\n", + " specific estimator or a Pipeline/ColumnTransformer */\n", + " background-color: var(--sklearn-color-background);\n", + "}\n", + "\n", + "/* Toggleable label */\n", + ".sk-global label.sk-toggleable__label {\n", + " cursor: pointer;\n", + " display: flex;\n", + " width: 100%;\n", + " margin-bottom: 0;\n", + " padding: 0.5em;\n", + " box-sizing: border-box;\n", + " text-align: center;\n", + " align-items: center;\n", + " justify-content: center;\n", + " gap: 0.5em;\n", + "}\n", + "\n", + ".sk-global label.sk-toggleable__label .caption {\n", + " font-size: 0.6rem;\n", + " font-weight: lighter;\n", + " color: var(--sklearn-color-text-muted);\n", + "}\n", + "\n", + ".sk-global label.sk-toggleable__label-arrow:before {\n", + " /* Arrow on the left of the label */\n", + " content: \"▸\";\n", + " float: left;\n", + " margin-right: 0.25em;\n", + " color: var(--sklearn-color-icon);\n", + "}\n", + "\n", + ".sk-global label.sk-toggleable__label-arrow:hover:before {\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + "/* Toggleable content - dropdown */\n", + "\n", + ".sk-global div.sk-toggleable__content {\n", + " display: none;\n", + " text-align: left;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + ".sk-global div.sk-toggleable__content.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + ".sk-global div.sk-toggleable__content pre {\n", + " margin: 0.2em;\n", + " border-radius: 0.25em;\n", + " color: var(--sklearn-color-text);\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + ".sk-global div.sk-toggleable__content.fitted pre {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + ".sk-global input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", + " /* Expand drop-down */\n", + " display: block;\n", + " width: 100%;\n", + " overflow: visible;\n", + "}\n", + "\n", + ".sk-global input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", + " content: \"▾\";\n", + "}\n", + "\n", + "/* Pipeline/ColumnTransformer-specific style */\n", + "\n", + ".sk-global div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + ".sk-global div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator-specific style */\n", + "\n", + "/* Colorize estimator box */\n", + ".sk-global div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + ".sk-global div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + ".sk-global div.sk-label label.sk-toggleable__label,\n", + ".sk-global div.sk-label label {\n", + " /* The background is the default theme color */\n", + " color: var(--sklearn-color-text-on-default-background);\n", + "}\n", + "\n", + "/* On hover, darken the color of the background */\n", + ".sk-global div.sk-label:hover label.sk-toggleable__label {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + "/* Label box, darken color on hover, fitted */\n", + ".sk-global div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Estimator label */\n", + "\n", + ".sk-global div.sk-label label {\n", + " font-family: monospace;\n", + " font-weight: bold;\n", + " line-height: 1.2em;\n", + "}\n", + "\n", + ".sk-global div.sk-label-container {\n", + " text-align: center;\n", + "}\n", + "\n", + "/* Estimator-specific */\n", + ".sk-global div.sk-estimator {\n", + " font-family: monospace;\n", + " border: 1px dotted var(--sklearn-color-border-box);\n", + " border-radius: 0.25em;\n", + " box-sizing: border-box;\n", + " margin-bottom: 0.5em;\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + "}\n", + "\n", + ".sk-global div.sk-estimator.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + "/* on hover */\n", + ".sk-global div.sk-estimator:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + ".sk-global div.sk-estimator.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", + "\n", + "/* Common style for \"i\" and \"?\" */\n", + "\n", + ".sk-estimator-doc-link,\n", + "a:link.sk-estimator-doc-link,\n", + "a:visited.sk-estimator-doc-link {\n", + " float: right;\n", + " font-size: smaller;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + " border-radius: 1em;\n", + " height: 1em;\n", + " width: 1em;\n", + " text-decoration: none !important;\n", + " margin-left: 0.5em;\n", + " text-align: center;\n", + " /* unfitted */\n", + " border: var(--sklearn-color-unfitted-level-3) 1pt solid;\n", + " color: var(--sklearn-color-unfitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted,\n", + "a:link.sk-estimator-doc-link.fitted,\n", + "a:visited.sk-estimator-doc-link.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + " border: var(--sklearn-color-fitted-level-3) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + "/* On hover */\n", + "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", + ".sk-estimator-doc-link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " border: var(--sklearn-color-fitted-level-0) 1pt solid;\n", + " color: var(--sklearn-color-unfitted-level-0);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover,\n", + "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", + ".sk-estimator-doc-link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + " border: var(--sklearn-color-fitted-level-0) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-0);\n", + " text-decoration: none;\n", + "}\n", + "\n", + "/* Span, style for the box shown on hovering the info icon */\n", + ".sk-estimator-doc-link span {\n", + " display: none;\n", + " z-index: 9999;\n", + " position: relative;\n", + " font-weight: normal;\n", + " right: .2ex;\n", + " padding: .5ex;\n", + " margin: .5ex;\n", + " width: min-content;\n", + " min-width: 20ex;\n", + " max-width: 50ex;\n", + " color: var(--sklearn-color-text);\n", + " box-shadow: 2pt 2pt 4pt #999;\n", + " /* unfitted */\n", + " background: var(--sklearn-color-unfitted-level-0);\n", + " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link.fitted span {\n", + " /* fitted */\n", + " background: var(--sklearn-color-fitted-level-0);\n", + " border: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + ".sk-estimator-doc-link:hover span {\n", + " display: block;\n", + "}\n", + "\n", + "/* \"?\"-specific style due to the `` HTML tag */\n", + "\n", + ".sk-global a.estimator_doc_link {\n", + " float: right;\n", + " font-size: 1rem;\n", + " line-height: 1em;\n", + " font-family: monospace;\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + " border-radius: 1rem;\n", + " height: 1rem;\n", + " width: 1rem;\n", + " text-decoration: none;\n", + " /* unfitted */\n", + " color: var(--sklearn-color-unfitted-level-1);\n", + " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", + "}\n", + "\n", + ".sk-global a.estimator_doc_link.fitted {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", + " color: var(--sklearn-color-fitted-level-1);\n", + "}\n", + "\n", + "/* On hover */\n", + ".sk-global a.estimator_doc_link:hover {\n", + " /* unfitted */\n", + " background-color: var(--sklearn-color-unfitted-level-3);\n", + " color: var(--sklearn-color-background);\n", + " text-decoration: none;\n", + "}\n", + "\n", + ".sk-global a.estimator_doc_link.fitted:hover {\n", + " /* fitted */\n", + " background-color: var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + ".sk-top-container.sk-global {\n", + " /* pydata-sphinx-theme hides overflow, so scrolling is disabled.\n", + " We need to set it to !important and add tabindex=\"0\" in the HTML\n", + " to allow keyboard-only users to navigate the display. */\n", + " overflow-x: scroll !important;\n", + " max-width: 100%;\n", + "}\n", + "\n", + ".estimator-table {\n", + " font-family: monospace;\n", + "}\n", + "\n", + ".estimator-table summary {\n", + " padding: .5rem;\n", + " cursor: pointer;\n", + "}\n", + "\n", + ".estimator-table summary::marker {\n", + " font-size: 0.7rem;\n", + "}\n", + "\n", + ".estimator-table details[open] {\n", + " padding-left: 0.1rem;\n", + " padding-right: 0.1rem;\n", + " padding-bottom: 0.3rem;\n", + "}\n", + "\n", + ".estimator-table .parameters-table {\n", + " margin-left: auto !important;\n", + " margin-right: auto !important;\n", + " margin-top: 0;\n", + "}\n", + "\n", + ".estimator-table .parameters-table tr:nth-child(odd) {\n", + " background-color: #fff;\n", + "}\n", + "\n", + ".estimator-table .parameters-table tr:nth-child(even) {\n", + " background-color: #f6f6f6;\n", + "}\n", + "\n", + ".estimator-table .parameters-table tr:hover td {\n", + " background-color: #e0e0e0;\n", + "}\n", + "\n", + ".estimator-table table :is(td, th) {\n", + " border: 1px solid rgba(106, 105, 104, 0.232);\n", + "}\n", + "\n", + "/*\n", + " `table td`is set in notebook with right text-align.\n", + " We need to overwrite it.\n", + "*/\n", + ".estimator-table table td.param {\n", + " text-align: left;\n", + " position: relative;\n", + " padding: 0;\n", + "}\n", + "\n", + ".user-set td {\n", + " color:rgb(255, 94, 0);\n", + " text-align: left !important;\n", + "}\n", + "\n", + ".user-set td.value {\n", + " color:rgb(255, 94, 0);\n", + " background-color: transparent;\n", + "}\n", + "\n", + ".default td, .estimator-table th {\n", + " color: black;\n", + " text-align: left !important;\n", + "}\n", + "\n", + ".user-set td i,\n", + ".default td i {\n", + " color: black;\n", + "}\n", + "\n", + "td.fitted-att-type {\n", + " white-space: preserve nowrap;\n", + "}\n", + "\n", + "/*\n", + " Styles for parameter documentation links\n", + " We need styling for visited so jupyter doesn't overwrite it\n", + "*/\n", + "a.param-doc-link,\n", + "a.param-doc-link:link,\n", + "a.param-doc-link:visited {\n", + " text-decoration: underline dashed;\n", + " text-underline-offset: .3em;\n", + " color: inherit;\n", + " display: block;\n", + " padding: .5em;\n", + "}\n", + "\n", + "@supports(anchor-name: --doc-link) {\n", + " a.param-doc-link,\n", + " a.param-doc-link:link,\n", + " a.param-doc-link:visited {\n", + " anchor-name: --doc-link;\n", + " }\n", + "}\n", + "\n", + "/* \"hack\" to make the entire area of the cell containing the link clickable */\n", + "a.param-doc-link::before {\n", + " position: absolute;\n", + " content: \"\";\n", + " inset: 0;\n", + "}\n", + "\n", + ".param-doc-description {\n", + " display: none;\n", + " position: absolute;\n", + " z-index: 9999;\n", + " left: 0;\n", + " padding: .5ex;\n", + " margin-left: 1.5em;\n", + " color: var(--sklearn-color-text);\n", + " box-shadow: .3em .3em .4em #999;\n", + " width: max-content;\n", + " text-align: left;\n", + " max-height: 10em;\n", + " overflow-y: auto;\n", + "\n", + " /* unfitted */\n", + " background: var(--sklearn-color-unfitted-level-0);\n", + " border: thin solid var(--sklearn-color-unfitted-level-3);\n", + "}\n", + "\n", + "@supports(position-area: center right) {\n", + " .param-doc-description {\n", + " position-area: center right;\n", + " position: fixed;\n", + " margin-left: 0;\n", + " }\n", + "}\n", + "\n", + "/* Fitted state for parameter tooltips */\n", + ".fitted .param-doc-description {\n", + " /* fitted */\n", + " background: var(--sklearn-color-fitted-level-0);\n", + " border: thin solid var(--sklearn-color-fitted-level-3);\n", + "}\n", + "\n", + ".param-doc-link:hover .param-doc-description {\n", + " display: block;\n", + "}\n", + "\n", + ".copy-paste-icon {\n", + " background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n", + " background-repeat: no-repeat;\n", + " background-size: 14px 14px;\n", + " background-position: 0;\n", + " display: inline-block;\n", + " width: 14px;\n", + " height: 14px;\n", + " cursor: pointer;\n", + " border: none;\n", + " padding: 0;\n", + " background-color: transparent;\n", + "}\n", + "\n", + ".copy-paste-icon:focus-visible {\n", + " outline: 1px solid currentColor;\n", + " outline-offset: 1px;\n", + "}\n", + "\n", + ".features {\n", + " font-family: monospace;\n", + " cursor: pointer;\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + " border: 1px dotted var(--sklearn-color-border-box);\n", + " border-radius: .20em;\n", + " margin-bottom: 0.5em;\n", + " font-size: inherit; /* Needed for jupyter */\n", + "}\n", + "\n", + ".features.fitted {\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + ".features summary {\n", + " cursor: pointer;\n", + " display: flex;\n", + " margin-bottom: 0;\n", + " text-align: center;\n", + " align-items: center;\n", + " justify-content: center;\n", + " gap: 0.5em;\n", + " padding: .25em;\n", + "}\n", + "\n", + ".features details[open] > summary {\n", + " color: var(--sklearn-color-text);\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + " border-radius: .20em 0 0 0;\n", + "}\n", + "\n", + ".features.fitted details[open] > summary {\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + " border-radius: .20em 0 0 0;\n", + "}\n", + "\n", + ".features details > summary .arrow::before {\n", + " content: \"▸\";\n", + " color: grey;\n", + "}\n", + "\n", + ".features details[open] > summary .arrow::before {\n", + " content: \"▾\";\n", + "}\n", + "\n", + ".features details:hover > summary {\n", + " margin: 0;\n", + " background-color: var(--sklearn-color-unfitted-level-2);\n", + "}\n", + "\n", + ".features.fitted details:hover > summary {\n", + " margin: 0;\n", + " background-color: var(--sklearn-color-fitted-level-2);\n", + "}\n", + "\n", + ".features .features-container {\n", + " max-height: 10em;\n", + " overflow: auto;\n", + " scrollbar-width: thin;\n", + " padding: .25em 0.1rem;\n", + " background-color: var(--sklearn-color-unfitted-level-0);\n", + " border-radius: 0 0 .5em .5em;\n", + "}\n", + "\n", + ".features.fitted .features-container {\n", + " background-color: var(--sklearn-color-fitted-level-0);\n", + "}\n", + "\n", + ".features .image-container {\n", + " block-size: 1em;\n", + " inline-size: 1em;\n", + " padding: 0;\n", + " margin: 0%;\n", + " display: flex;\n", + " justify-content: center;\n", + " align-items: center;\n", + "}\n", + "\n", + ".features .copy-paste-icon {\n", + " background-size: 1em 1em;\n", + " width: 1em;\n", + " height: 1em;\n", + " filter: grayscale(100%) opacity(60%);\n", + "}\n", + "\n", + ".features .features-container table {\n", + " width: 100%;\n", + " margin: 0.01em;\n", + "}\n", + "\n", + ".features .features-container table tr:nth-child(odd) {\n", + " background-color: #fff;\n", + "}\n", + "\n", + ".features .features-container table tr:nth-child(even) {\n", + " background-color: #f6f6f6;\n", + "}\n", + "\n", + ".features .features-container table tr:hover {\n", + " background-color: #e0e0e0;\n", + "}\n", + "\n", + ".features .features-container table {\n", + " table-layout: inherit;\n", + "}\n", + "\n", + ".features .features-container table td {\n", + " text-align: left;\n", + " padding: 0 0.5em;\n", + " border: 1px solid rgba(106, 105, 104, 0.232);\n", + " white-space: nowrap;\n", + " color: var(--sklearn-color-text);\n", + "}\n", + "\n", + ".total_features {\n", + " display: flex;\n", + " justify-content: center;\n", + " margin-top: 0.5em;\n", + "}\n", + "
Pipeline(steps=[('tfidfvectorizer', TfidfVectorizer()),\n",
+       "                ('linearsvc', LinearSVC(random_state=42))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('tfidfvectorizer', TfidfVectorizer()),\n", + " ('linearsvc', LinearSVC(random_state=42))])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn.pipeline import make_pipeline\n", "from sklearn.feature_extraction.text import TfidfVectorizer\n", @@ -160,8 +2814,15 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:23.727782Z", + "iopub.status.busy": "2026-10-28T22:47:23.727693Z", + "iopub.status.idle": "2026-10-28T22:47:23.739633Z", + "shell.execute_reply": "2026-10-28T22:47:23.739183Z" + } + }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -183,9 +2844,47 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:23.740364Z", + "iopub.status.busy": "2026-10-28T22:47:23.740307Z", + "iopub.status.idle": "2026-10-28T22:47:23.948937Z", + "shell.execute_reply": "2026-10-28T22:47:23.948633Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " business 0.50 0.53 0.52 30\n", + " economics 0.49 0.63 0.55 30\n", + " geography 0.44 0.37 0.40 30\n", + " medicine 0.67 0.60 0.63 30\n", + " politics 0.59 0.57 0.58 30\n", + " psychology 0.45 0.43 0.44 30\n", + " sociology 0.31 0.30 0.31 30\n", + "\n", + " accuracy 0.49 210\n", + " macro avg 0.49 0.49 0.49 210\n", + "weighted avg 0.49 0.49 0.49 210\n", + "\n" + ] + }, + { + "data": { + "image/png": "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hg2L999/P1577bWafRctWhRf/epX484770zD9GbNmqX3u+iii+J73/te5P4z/fSDDz6IU045JQ3Rk2Mmx5k/f35cd911ccYZZ6zXY1fXuP/0pz8dN998cxqkH3DAAekx77333nj11VfT/ZKLAcnxqqqq4pe//GV8/vOfX+0Yu+yyS9x6661pwD9y5Mj04sGf//zn9OePuv3229PHSC42JI+x5557xoMPPhgtW64sq5Gciz/96U8xderUaNeuXa37HnPMMek5Ouigg+r1OaNuFRVV0bHD4mjZckV077YwyssKUVm5wumiCSjE1781Irp0WxI3/WhwWooHAO+TND3+ngRYs+bl+SgUcukCuUmg37XVoqgor4rysnyU5QqRL/hIMlRL/l9JWjEqFOm46tJk05tCoRBHHHFEzJs3Lw3Ce/XqlYbh559/fowfPz7atGlTa/8TTjghnZn+3HPP1cxMf/LJJ9NwvVu3bun9qo85adKkNJSvngV/6aWXxplnnpnud/jhh6/zYyeSGfk9evSIN998M72AkHxaIHH11VfX2i85zje/+c046aSTYty4cbHJJpvUOkbyc/UxxowZkwb9yb5//etfax1nxIgR0bt377R/yb7JuJNQ/+c//3lceOGF6T7/8z//E7/+9a/jd7/7Xfp9tWTfZHb/LbfcUue5Ty4+JK1ach7YMFOmto/bf7Nzzc8nHjsyLvjK8Jg/vzKefaGP00ujOffCf8fQvafFfXdvEf942GsRwPskTZW/JwHq1q/j7LjtsL/GI+O3iEsf2y8K/6mrv3vPKfHLwx9Mv79l+G5OH1BUmmxN/SSgT2afX3HFFWmonkjKxCQheTJT/qMB9/3335/OpF+11My+++4bxx13XNxwww3pz88++2y8+OKLcdlll9Uqa/P9738/fYxrrrlmnR+72ocffhhXXXVVzScCkhI71VasWJGG6I8//nj84x//iEGDBqWfDnjhhRdqHSMp87PqMZJyOsknDR5++OG0HM+q5s6dG1deeWXNvnvssUc69gceeKBmn5122ik+9alPxc9+9rNa9/3pT38aLVq0iOOPP77OsSTjbN++fU2rPgfUn3vu2zaqqnKx59BJTiuN5rRzXo/PHfVOPHBv37j91u08EwDeJ8kQf08CrPTZfhPShXLv+vd2NYF+4p9Tesb4WZ3i0C3HO1VA0WmyM/WT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3va9730vTj755GgoQn0AAAAAAErKxRdfHOecc85q2w888MCYMGFC7Lrrrh97/2XLlsWkSZPiuuuui6OPPrrWbZ07d46GJNQHAAAAACgFyWKyxbqgbGHddk+C94+G7yNHjkxn4H/+85+PTTbZZK2O06VLl9h8881jY1JTHwAAAACAkverX/0qPQdnnXVWkz4XQn0AAAAAAEra0qVL4/e//3307t07DjrooLW+349+9KMYOHBgbL/99nHSSSfF8OHDo6EJ9QEAAAAAKArz5s2r1ZKwfm3cf//9MWvWrDj99NOjrGztYvODDz44fvjDH8Z9990X1157bUydOjV23333uPPOO6MhCfUBAAAAAEqppn6xtojo1atXtG/fvqZdffXVa116p7y8PA3118bWW28dDz/8cBx11FGx7bbbprP7H3300Rg8eHCcd955MX/+/GgoQn0AAAAAAIrC5MmTY+7cuTXtsssu+8T7vPvuu/H444/HIYccEpttttlaPU5yAeCjmjVrFscdd1wa6DdkGZ5mDXZkAAAAAADYiNq1a5e2dXHHHXdEPp+PM888c4Mfv1WrVunXJUuWREMxUx8AAAAAgJJUKBTiN7/5TfTs2TOdqb+hkhn/uVwudthhh2goQn0AAAAAAErS448/HhMnTozTTjutzpI6iTFjxsTmm28e3/ve92q2XXXVVfHggw/G4sWL05+Tr1deeWXce++98T//8z/pRYKGovwOAAAAAEAJyBVWtmKUW89xJQvklpWVfewCucuWLYtJkybFrFmzarYdeuihcc0118QJJ5wQLVu2jJkzZ6bB/w033BAXXnhhNCShPgAAAAAAJen666+P66677mNn1m+zzTbxzjvv1KrVP3jw4Bg2bFhavueDDz5Ig/327dtvlD4L9QEAAAAAKEmbbbbZJ+7TvHnzdBZ+XZL6+T169IiNSU19AAAAAADICDP1AQAAAABKQVJ3vkhr6kexjqsOZuoDAAAAAEBGCPUBAAAAACAjhPoAAAAAAJARQn0AAAAAAMgIC+UCAAAAAJSAXGFlK0a5Ih1XXczUBwAAAACAjBDqAwAAAABARgj1AQAAAAAgI9TUBwAAAAAoBUnd+WKtPV+IkmGmPgAAAAAAZIRQHwAAAAAAMkKoDwAAAAAAGSHUBwAAAACAjLBQLgAAAABAKbBQblEwUx8AAAAAADJCqA8A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eX/961/j5ZdfjlNPPTX22muvorbTvXv3rHd+S9JTHwAAAACAsvKrX/2qQUA/qaysjDXXXDPGjh0bs2fPjrZKUB8AAAAAoBykvPOlPC2mGTNmxLPPPhvLL798dOjQoah1UvqdtPyQIUNizz33jMcffzyam6A+AAAAAAAlYfLkyQ2mmTNnFr3u//zP/8Snn36a5dpfmIqKith3333jyiuvzC4EXH/99Vnv/u222y7+/Oc/R3MS1AcAAAAAoCQMHDgwevXqVTedf/75Ra2XgvK/+93vYvvtt4+TTz55ocunND233HJL/Nd//VesuOKKseWWW8Y999wT3/zmN+PHP/5xTJo0KZqLgXIBAAAAACgJH374YfTs2bPueadOnRa6zu233x4/+MEPYvPNN48777wzy61fTE/9ubVr1y7rvf/Pf/4zRowYEd/5zneiOQjqAwAAAABQEnr27NkgqL8w9913X3zve9+LTTbZJB588MHo3r37Yr1/7UWE5hxoV1AfAAAAAKAcLKEBZdukQtP36+GHH4599tknNtxww3jooYeiR48ei12MdGEg9fRP22wucuoDAAAAAFBWhg8fHnvssUesv/76MWzYsAX27n/11VejX79+2UC6tdLff//73+Pzzz/PnqfH0047Le6999445ZRTYtlll222sgvqAwAAAABQVs4+++yYPn16jB49OoYMGZIF7etPH3/8cd2yVVVVWdB+6tSpdfMOOuigePTRR7MBc7t16xb9+/fPLg78+c9/jt/85jfNWnbpdwAAAAAAKCt33XXXAvPe9+nTp+7vddZZJyZOnBhdunSpm7f66qvH1Vdfnf2dgv0pl36HDh2iJQjqAwAAAACUAzn16/Tq1SuKlXLkp97787O4g+s2lfQ7AAAAAACQE4L6AAAAAACQE4L6AAAAAACQE4L6AAAAAACQEwbKBQAAAAAoB9URURGlu29lQk99AAAAAADICUF9AAAAAADICUF9AAAAAADICTn1AQAAAADKQEWhkE2lqKJE96sxeuoDAAAAAEBOCOoDAAAAAEBOCOoDAAAAAEBOCOoDAAAAAEBOGCgXAAAAAKAcpMFkS3VA2UKJ7lcj9NQHAAAAAICcENQHAAAAAICcENQHAAAAAICckFMfAAAAAKAcVBciKgqlu29lQk99AAAAAADICUF9AAAAAADICUF9AAAAAADICUF9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f3lwzKluF1/P7BDX/GOj2PvnB8RjL/1nnBxoSR+N7RRHbb1a3H7l0tl39djRnePobVeL+2/o54OgVXw5rUt8/7K94qJ/bB5Vc9rFV9M7x+l/2yF+eM2uMWN2zTgQ0FJ8d9MW/Wj4d+LPr64fVdXtYtLMTvHTf24d33tw9/hiRpfWLhpAsyiZnvp///vf45prrsnSzaSe7inFzHXXXZflmj/00EOzZVKg/oorrojDDjssyym/7777ZoHwX//617H++uvHOeecU5fu5uabb85S+KQc92n5lMonDWSbBql9/PHHGy1DsdtfnHVTKp2LL764bsDeXXbZJcaOHRvPPPNMNqjv3Bc3kpVWWim7UJEG/029/WuPB83v3y8tnU3QlsyeXRnPPDconnmutUsCNWbNbh9PjhoST45yRGg7ZkyvjEdu7dPaxYA6c6or4/HXhmQTtDbf3bRFIz5dPpsAykHJ9NQ/8cQT469//WuWD/+mm26KBx54ILbddtt48803Y6211qpb7uCDD46RI0dmge603IgRI+Lcc8/NBsetnzt+u+22i9dffz123XXXePjhh+Puu+/O1knbrZUG5d1www0blKPY7S/OukcddVR2YaGysjK7mFEoFLLlU8qh1Nu/MUceeWTdgMIplQ8AAAAAUGbSeJ+lPJWJikKKCJN76WNcbrnlsosRN9544zyvp5z6p5xyStx2222x9957N2nbkydPzu542G7IidG+stMSLDUsuure8w4MDa1p6oqNX1SF1tLttucdfNqULw77VmsXARroNKV8fviTD59uXDL9LikB1TNmxHs/PysmTZrUoKMp+VUb39u+/xHRvl3HKEVV1bPikQlXl8V56xsjp/8J55aC9Sldz2677dboOqkn/4ABA+b7OgAAAAAAbV/J5NQvJ48++mhccsklWY/7/v37xwsvvBAXXXRRlioo5eKvlcYVeOyxx+LJJ5/MlrnqqquiQwcDaQEAAAAA5JWgfg6lAXzTwL133nlnDBs2LLt1Jg0SvP/++0dFRUXdctOmTcuC/d27d49rr73WALkAAAAAADknqJ9TQ4cOzaYF6d27dzz44IMtViYAAAAAoA1Lw6uW6hCrhRLdr0bIqQ8AAAAAADkhqA8AAAAAADkhqA8AAAAAADkhpz4AAAAAQDmQU78k6KkPAAAAAAA5IagPAAAAAAA5IagPAAAA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9tu3dhEAWq0uUwfSWu1K7VCgFKnbAP5DUJ+y8eWXX8aNN94Y48ePz3o0ffe7340OHTrUvf7GG2/EFVdcEccff3ysssoqdfOrq6vjxz/+cfzXf/1X7LzzznXzv/jii7j99tvjvffey3oMpB5SW221VYOcfT//+c9jv/32i80337wuh/NvfvObOPjgg2PVVVfNyvP+++/H6quvHgcccEB07NhxnnJ/+umncdddd8W7774bPXr0yMqx6aabNlhmYWUpdhmWrMceeyyefvrpmDZtWvZ5p3MhfYZze+KJJ+KZZ56J6dOnZ+fm3nvv3eBcmDVrVtx9993x8ssvR0VFRWy44Yax2267Rfv27RvkOU3n9llnnZXlmEw5odP5veeee2bbnFtTt5nK+Oijj0bv3r3j0EMPjT59+mTLPPXUU/HII49Ely5d4sADD4xBgwbNkyv1tddei1/+8pdN3u+07bQv6VbZ9H9y9913r3tfmi4dy4ceeijatWuXHcv1118/CxCloOOuu+7a5Hqntt5Mt+NPmDAhll122ewcql9/NuW969ePaRs33XRTvP3223HUUUdlz1M9XCudJwMHDsy2Vf+cq7+NIUOGLLDOry+dY/OrjydPnpzV5amsu+yyyzzrpteWW265OProo5v0edC4JVHvNKUOTp/v3/72t+y7MS3zve99r9FtLWpd1th6Ta2vi90XWsei1DvF1p31zd2ufOutt+L888+vO89effXV7O9tt902215j7dBa6X3vueeeeOedd6Jfv36xww47NDj3tBlbT/364fHHH8/+73fu3DmrH9Zcc815ll9QW+mWW26J559/Pjs/5z4P//nPf2bnzY9+9KNYccUVi26b1VpSbc35KXbddJ7//e9/b1CHP/nkk1nZfvvb32bLL8pxoGmKrTOKrfsWVEctqG5blLp1SbdptRuBliSnPmUhNY5TMObDDz/MGonpi/db3/pW1iiolRoh6RbmcePGNVg3BfXT/PqD8aQG5korrRR//etfs6BCuv05DaD3/e9/f6G5T9O81NhMjYAUMEvbP+GEE2LHHXecp9ypkZl+IKb36dq1a3z00UcxdOjQBsGtYspSzDIsOem8Sj+q04+c1DBMn126YLTGGms0yN+dPodtttkmOzfHjh2bfTapMbnBBhtkgZsknbPrrbdeds6mc/frr7+OY489NjbeeOMs8Dp3ntOLLroo/vd//zf70ZKCYWlb6bG+pm4zBQ0uvfTSbJvpx2b6YZXO5XQOpfO59gdTeq+07YXlSi1mv9O5mf6PpHM+Ba7S/7+U+sKgpovmzDPPjC233DLefPPN7MfxqaeemtUH6fNLgcKm1jvJBRdcEGuttVYWUEi9ptJnnQLil1xyySK9d239mM7XdAE1BfRTsCydU2m9VIfVTt26dcsuOqQf8P/4xz/m2UYK+C6szq+V/o8uqD7u2bNnlq86lXtuaX4K1s6ZM2cRPxnmtiTqnWLr4PSZr7POOtm5nH6cp+/KnXbaKQtmzW1R67LG1mtKfV3svtB6mlrvFFt3zm3udmU635Zffvns7759+9bVj+kiWGPL10oXsQYPHhxXXXVVVFZWZvVsuiCR/r8l2oytq7Z++NWvfpV9fql+SL8b1l133awurG9hbaVevXrF73//+7jjjjvmeZ9f/OIXWR1aew4VU5/VWpJtzcYUu24K+KZA74UXXpjV4elcT+VPF0Lqj4vSlONA0xVbZxRb9y2sjppf3baodeuSbtNqNwItqgAl7JVXXimk03zFFVcsjB8/vm7+G2+8UejYsWPh2GOPrZv3j3/8I1v28ccfb7CN2bNnZ/PPOuusunnf//73C6uuumphzpw5DZZ99dVX6/7+8MMPs/Uuv/zyecqz8sorFz755JO6+bfeems2P5Wh/rY6dOjQoIzJgw8+mC171113FV2WYpZhyfne975X6N69e2HMmDENzqOtttqqsMEGG9TN23fffQtdu3YtjB49usH677zzTuHrr7/O/t5+++0LvXv3bnD+jh07Ntv+7rvvXjdv7733zuadc845dfOqqqoK6667bmGzzTZrsP2mbLNbt26Fc889t27e559/XujSpUthxx13LPzsZz+rm//ll19my5500kkN3uvwww8vLLPMMg3mLWy/33333ewcv/HGGxu8nt4j/b+iaZ544onseF5wwQV186qrqwtHHnlkNv8nP/lJk+ud4cOHZ89PP/30Bssdf/zxhXbt2hVefPHFJr/3/OrrSZMmzXffUt22wgorLFKd35T6+IYbbsjmPfbYYw3e/+CDDy507tw5OzdZMpZEvVNsHbztttsWBgwYUPjss8/q5v3rX//K6sf0edfWw4tal81vvabU18XuC62nKfVOsXVnY23Ixua9/fbb2byrrrpq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qKZBS998881o3759NgZAY/8PS/040HKKadNqNwItRVAfAAAAAAByQk59AAAAAADICUF9AAAAAADICUF9AAAAAADICUF9AAAAAADICUF9AAByY+21145dd921wbyllloqjj/++Gjr5WzM4pS9oqIizjjjjEVatznKAwAAtAxBfQAAivLcc89lgeTaqV27dtG3b9/YaaedYvjw4bk7ip07d46TTz65tYsBAADQJIL6AAA0yYUXXhiFQiFmz54djz32WHz++eex3XbbxT//+c9WOZJfffVVXHLJJa3y3gAAAC1NUB8AgEVSWVkZ6623Xlx99dVZgF9gHQAAoPkJ6gMAsFhWX3317PHDDz/MHg866KBYYYUV4rPPPosDDjggevfuHZtssknd8ukiwEYbbRRdunSJnj17Zul7Xn755QbbnDZtWpxwwgnRv3//6N69e5affty4cU3KA/+Xv/wlNt1002z9pZdeOvbee+9444034pNPPsnSB82cOTMuvvjiunRCO+64Y4P1l3Q5m3I8a8vUvn377FgeccQRMWHChEaXHzZsWKy//vpZOqHVVlst2+/GFLM/AABA2yeoDwDAYnnzzTezx4EDB9bNq66ujqOOOioOPfTQePfdd+uC7ikAfuKJJ8bhhx+eXQR4/fXXY/nll48tt9wyXnvttbr1UwD+b3/7WxaI/uijj+L000/Ptjdr1qyiynTsscfGcccdF/vtt18WyE9Tutjwxz/+MZZddtksfVCnTp3ipJNOyv5O04MPPli3fkuVszGprLVlmjx5ctx0003x/PPPxz777JMd1/peeeWVuOqqq+L222/PypkuoqQLAJdffnmD5YrdHwAAIAcKAABQhH/+85+F1Hy88MILs+dVVVWFUaNGFTbbbLNC+/btC8OHD8/mH3jggdlyt99+e4P1//Wvf2Xzzz///Abz03ZWX331wt577509f/TRR7PlrrrqqgbLPfLII9n8XXbZpcH8Xr16FY477ri6588//3y23C9/+csF7k+nTp0KJ5100jzzm6ucjZm77PPz4IMPZtt89dVX6+al50svvXRh+vTpDZbdddddC3369CnMmDGjSfvTlPIAAACtR099AACa5LTTTstSw3To0CGGDh0avXr1iocffjjr9V0rvZ5S0dR33333ZY/77rvvPLn5t95663jyySez548++mj2uNtuuzVYLg3Gm1LcLMz999+fPaZe64uipco5PyNHjow99tgjlllmmew966cGGjNmTINlt99++yydTn1p3S+++KIutU6x+wMAAORD+9YuAAAA+XLhhRfGqaeeusBlUg77jh07NpiXctknKe97UptipvbvFLxOPv/882jXrl22jbmlQPfC1OaeT+llFkVLlbMxKVXRVlttFdtss0088sgjscoqq2RB+2eeeSa7aJIGJF7Y+9TOS2MaNGV/AACAfNBTHwCAJS714p9bv379ssfx48dHVVVVzJkzJ8sRn6YUXK7NF9+3b9/s74kTJ86zjfkNFltfbZA9vc+iaKlyNua2226L6dOnx5VXXhnrrLNOXS/8sWPHNrr8p59+Ot95qXxN2R8AACAfBPUBAGgRtel4br755gUut+2222aP9957b4P5jz32WEyZMqXo90kD2C5It27dYubMma1WzgVJg/jWd/311ze6XOrNP2PGjAbz7r777ujdu3dssMEGTdofAAAgH6TfAQCgRWy22WZxwgknxJlnnpn1Ft9nn32y3uQp5UzK+556t//+97/PguXf+c534ic/+UmWSibl7R81alT22je+8Y2Fvs+mm24aRx99dJx33nnRtWvX2H///bMe70899VQMGzYsLrvssmy5tddeO5599tmsZ3v9NDYtVc7G7LTTTnHWWWfFj3/84/jtb3+bXXT43e9+l41b0JiNN944DjnkkDj//POjZ8+eccUVV2Rl/OMf/1h3YaDY/QEAAPJBT30AAFpMCjan1DK33357rLXWWtG/f/848MADY+rUqXH66adny6Qc73fccUd897vfjcMOOyyWXXbZLECfgvFz5+mfn8svvzwuvvjirLd+yku/xhprxI033hgnnnhi3TLp9RTsX2mllRoMRtuS5ZxbSrmT3jMNcjto0KAsv/5yyy2XXThozLrrrhuHHnpoNjhuGkMg9ehPgf3jjz++yccdAADIh4pC7ShZAAAAAABAm6anPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAA5ISgPgAAAAAARD78f2UC+TnZt+LxAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from sklearn import metrics\n", "\n", @@ -213,9 +2912,146 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 9, + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-28T22:47:23.949712Z", + "iopub.status.busy": "2026-10-28T22:47:23.949648Z", + "iopub.status.idle": "2026-10-28T22:47:23.983489Z", + "shell.execute_reply": "2026-10-28T22:47:23.982773Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mGreatAI (v0.1.11): configured ✅\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of my-domain-predictor\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of my-domain-predictor\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of my-domain-predictor\u001b[0m\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mModel my-domain-predictor uploaded with version 0\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "'my-domain-predictor:0'" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from great_ai import save_model\n", "\n", @@ -239,15 +3075,16 @@ "name": "great-ai-local" }, "language_info": { - "name": "python", "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", + "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.13.5" } }, "nbformat": 4,