{ "cells": [ { "cell_type": "markdown", "id": "4698bafe", "metadata": {}, "source": [ "# Telemetry Report Comparison\n", "\n", "This notebook demonstrates how to load multiple telemetry tuning reports,\n", "merge them, and visualize objective improvements using the helper\n", "`analyze_tuner_reports.py`.\n" ] }, { "cell_type": "markdown", "id": "ee331d4e", "metadata": {}, "source": [ "## Setup\n", "\n", "We'll reuse the CLI helpers that generated the latest `demo_tuner_report.csv`\n", "under `docs/examples/analytics/data/tuner_reports/`.\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "44107d2b", "metadata": { "execution": { "iopub.execute_input": "2025-11-16T19:37:56.441691Z", "iopub.status.busy": "2025-11-16T19:37:56.440776Z", "iopub.status.idle": "2025-11-16T19:37:57.028905Z", "shell.execute_reply": "2025-11-16T19:37:57.027872Z" } }, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import pandas as pd\n", "\n", "try:\n", " import altair as alt\n", "except ImportError: # pragma: no cover - optional for CI\n", " alt = None\n", "if alt is not None:\n", " alt.renderers.enable(\"mimetype\")\n", "\n", "\n", "CANDIDATE_DIRS = [\n", " Path(\"data/tuner_reports\"),\n", " Path(\"../data/tuner_reports\"),\n", " Path(\"examples/analytics/data/tuner_reports\"),\n", " Path(\"docs/examples/analytics/data/tuner_reports\"),\n", " Path.cwd() / \"data/tuner_reports\",\n", " Path.cwd() / \"examples/analytics/data/tuner_reports\",\n", "]\n", "\n", "DATA_DIR = None\n", "for candidate in CANDIDATE_DIRS:\n", " candidate = candidate.resolve() if not candidate.is_absolute() else candidate\n", " if (candidate / \"demo_tuner_report.csv\").exists():\n", " DATA_DIR = candidate\n", " break\n", "\n", "if DATA_DIR is None:\n", " print(\"Telemetry reports not found. Generating synthetic sample data instead.\")\n", " BASELINE = None\n", " EXPERIMENT = None\n", "else:\n", " BASELINE = DATA_DIR / \"demo_tuner_report.csv\"\n", " EXPERIMENT = DATA_DIR / \"demo_tuner_report.csv\" # replace with new report as needed" ] }, { "cell_type": "markdown", "id": "643aa5c5", "metadata": {}, "source": [ "## Load Reports\n", "We can either call the helper script via `subprocess` or load the CSVs directly\n", "for ad-hoc comparisons.\n", "\n", "\n", "> CI executes with a lightweight telemetry sweep, so the required CSV files are generated automatically.\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "30dfc140", "metadata": { "execution": { "iopub.execute_input": "2025-11-16T19:37:57.032857Z", "iopub.status.busy": "2025-11-16T19:37:57.032629Z", "iopub.status.idle": "2025-11-16T19:37:57.066807Z", "shell.execute_reply": "2025-11-16T19:37:57.066155Z" } }, "outputs": [ { "data": { "text/html": [ "
| \n", " | algorithm | \n", "scenario | \n", "runs | \n", "best_objective | \n", "mean_objective | \n", "best_run_id | \n", "best_started_at | \n", "best_config | \n", "summary_best | \n", "summary_configurations | \n", "summary_updated_at | \n", "label | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "bayes | \n", "FHOPS MiniToy | \n", "1 | \n", "3.0 | \n", "3.0 | \n", "73a84eb549714c6da52b92ffda8752b6 | \n", "2025-11-11T21:15:55+00:00 | \n", "iters=50; operators=(block_insertion:1.9858747... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "baseline | \n", "
| 1 | \n", "grid | \n", "FHOPS MiniToy | \n", "1 | \n", "9.0 | \n", "9.0 | \n", "f590aa00bb3543debcaebd6bdf288e6b | \n", "2025-11-11T21:15:54+00:00 | \n", "iters=50; operators=(block_insertion:0.0, cros... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "baseline | \n", "
| 2 | \n", "random | \n", "FHOPS MiniToy | \n", "1 | \n", "-6.0 | \n", "-6.0 | \n", "ad611c7346f84950be678527ae2de434 | \n", "2025-11-11T21:15:53+00:00 | \n", "batch_size=2; iters=50; operators=(block_inser... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "baseline | \n", "
| 3 | \n", "bayes | \n", "FHOPS MiniToy | \n", "1 | \n", "3.0 | \n", "3.0 | \n", "73a84eb549714c6da52b92ffda8752b6 | \n", "2025-11-11T21:15:55+00:00 | \n", "iters=50; operators=(block_insertion:1.9858747... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "experiment | \n", "
| 4 | \n", "grid | \n", "FHOPS MiniToy | \n", "1 | \n", "9.0 | \n", "9.0 | \n", "f590aa00bb3543debcaebd6bdf288e6b | \n", "2025-11-11T21:15:54+00:00 | \n", "iters=50; operators=(block_insertion:0.0, cros... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "experiment | \n", "
| 5 | \n", "random | \n", "FHOPS MiniToy | \n", "1 | \n", "-6.0 | \n", "-6.0 | \n", "ad611c7346f84950be678527ae2de434 | \n", "2025-11-11T21:15:53+00:00 | \n", "batch_size=2; iters=50; operators=(block_inser... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "experiment | \n", "
| \n", " | algorithm | \n", "scenario | \n", "runs_baseline | \n", "best_objective_baseline | \n", "mean_objective_baseline | \n", "best_run_id_baseline | \n", "best_started_at_baseline | \n", "best_config_baseline | \n", "summary_best_baseline | \n", "summary_configurations_baseline | \n", "... | \n", "runs_experiment | \n", "best_objective_experiment | \n", "mean_objective_experiment | \n", "best_run_id_experiment | \n", "best_started_at_experiment | \n", "best_config_experiment | \n", "summary_best_experiment | \n", "summary_configurations_experiment | \n", "summary_updated_at_experiment | \n", "best_delta | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "bayes | \n", "FHOPS MiniToy | \n", "1 | \n", "3.0 | \n", "3.0 | \n", "73a84eb549714c6da52b92ffda8752b6 | \n", "2025-11-11T21:15:55+00:00 | \n", "iters=50; operators=(block_insertion:1.9858747... | \n", "NaN | \n", "NaN | \n", "... | \n", "1 | \n", "3.0 | \n", "3.0 | \n", "73a84eb549714c6da52b92ffda8752b6 | \n", "2025-11-11T21:15:55+00:00 | \n", "iters=50; operators=(block_insertion:1.9858747... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "
| 1 | \n", "grid | \n", "FHOPS MiniToy | \n", "1 | \n", "9.0 | \n", "9.0 | \n", "f590aa00bb3543debcaebd6bdf288e6b | \n", "2025-11-11T21:15:54+00:00 | \n", "iters=50; operators=(block_insertion:0.0, cros... | \n", "NaN | \n", "NaN | \n", "... | \n", "1 | \n", "9.0 | \n", "9.0 | \n", "f590aa00bb3543debcaebd6bdf288e6b | \n", "2025-11-11T21:15:54+00:00 | \n", "iters=50; operators=(block_insertion:0.0, cros... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "
| 2 | \n", "random | \n", "FHOPS MiniToy | \n", "1 | \n", "-6.0 | \n", "-6.0 | \n", "ad611c7346f84950be678527ae2de434 | \n", "2025-11-11T21:15:53+00:00 | \n", "batch_size=2; iters=50; operators=(block_inser... | \n", "NaN | \n", "NaN | \n", "... | \n", "1 | \n", "-6.0 | \n", "-6.0 | \n", "ad611c7346f84950be678527ae2de434 | \n", "2025-11-11T21:15:53+00:00 | \n", "batch_size=2; iters=50; operators=(block_inser... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "
3 rows × 21 columns
\n", "