From 3c5ef40a1b221dd17e4502d01adcb638fc6e0c34 Mon Sep 17 00:00:00 2001 From: Toonight Date: Thu, 30 Apr 2026 06:43:34 -0400 Subject: [PATCH] chore(classifier): record reconstructed wall-clock for the v0.2.0 collection run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The author's machine still had /tmp/mnemoscope-full.log from the original collection — its created/modified timestamps bound the wall-clock end-to-end: started_at: 2026-04-29T04:11:20-04:00 ended_at: 2026-04-30T03:13:50-04:00 wall_clock_s: 82950 (23h 02m 30s, ~207 s/cell over 400 cells) Both fields are flagged as *reconstructed* from the log mtime in measurements-meta.json#_note and model.json#dataset_collection.wall_clock_human; they bound the orchestrator's elapsed time but include any idle gaps between cells, so they are not equivalent to a sum of per-cell durations. Token totals stay null. The OpenAI-compat usage block was not persisted during this run, and inferring tokens from the haystack target sizes alone would be a guess, not an audit. b33b5dc already wired research/replication/run.py to capture tokens_in / tokens_out for every future cell. train.py re-ran on the unchanged measurements.csv with the same seed (42), re-selected rf at R²=0.5827 / MAE=0.1386, and re-emitted an ONNX file identical (byte-for-byte) to the published one. Only model.json changed, to embed the updated measurements-meta.json under dataset_collection. --- research/classifier/measurements-meta.json | 10 +++++----- research/classifier/model.json | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/research/classifier/measurements-meta.json b/research/classifier/measurements-meta.json index 35e9b81..6037ef5 100644 --- a/research/classifier/measurements-meta.json +++ b/research/classifier/measurements-meta.json @@ -1,5 +1,5 @@ { - "_note": "Hand-recorded from the v0.2.0 collection run done on the author's laptop before the audit fields were added to collect_measurements.py. Future runs will populate this file automatically, with per-cell tokens + wall-clock aggregated by the collector. Fields with `null` are unknown for this specific run; everything else came from the PR description (#1) and the row count of measurements.csv.", + "_note": "Hand-recorded from the v0.2.0 collection run done on the author's laptop before the audit fields were added to collect_measurements.py. Future runs will populate this file automatically, with per-cell tokens + wall-clock aggregated by the collector. Token totals remain `null` because the OpenAI-compat `usage` block was not persisted during this run; the started_at / ended_at / wall_clock_s fields below are *reconstructed* from the modification timestamps of the run's stdout log file (`/tmp/mnemoscope-full.log` on the author's machine), not measured by the collector — they bound the wall-clock but include any time the orchestrator spent idle between cells.", "model": "gemma4-ctx:latest", "model_base": "gemma4:26b", "model_quantization": "Q4_K_M", @@ -7,11 +7,11 @@ "endpoint": "http://localhost:11434/v1", "endpoint_kind": "ollama", "offline": false, - "started_at": null, - "ended_at": null, - "wall_clock_s": null, + "started_at": "2026-04-29T04:11:20-04:00", + "ended_at": "2026-04-30T03:13:50-04:00", + "wall_clock_s": 82950, "wall_clock_s_grading_only": null, - "wall_clock_human": "multi-hour, single-machine local run", + "wall_clock_human": "23h02m30s end-to-end (reconstructed from log file mtime, not measured by collector)", "variants_attempted": 50, "variants_kept": 50, "variants_skipped_no_needles": 0, diff --git a/research/classifier/model.json b/research/classifier/model.json index b602930..cadf0bd 100644 --- a/research/classifier/model.json +++ b/research/classifier/model.json @@ -23,7 +23,7 @@ }, "rows_train": 40, "rows_test": 10, - "onnx_round_trip_max_delta": 1.5894571991914574e-08, + "onnx_round_trip_max_delta": 1.5894571880892272e-08, "data_source": "classifier/measurements.csv", "seed": 42, "grader_models": [ @@ -31,7 +31,7 @@ ], "offline_rows": 0, "dataset_collection": { - "_note": "Hand-recorded from the v0.2.0 collection run done on the author's laptop before the audit fields were added to collect_measurements.py. Future runs will populate this file automatically, with per-cell tokens + wall-clock aggregated by the collector. Fields with `null` are unknown for this specific run; everything else came from the PR description (#1) and the row count of measurements.csv.", + "_note": "Hand-recorded from the v0.2.0 collection run done on the author's laptop before the audit fields were added to collect_measurements.py. Future runs will populate this file automatically, with per-cell tokens + wall-clock aggregated by the collector. Token totals remain `null` because the OpenAI-compat `usage` block was not persisted during this run; the started_at / ended_at / wall_clock_s fields below are *reconstructed* from the modification timestamps of the run's stdout log file (`/tmp/mnemoscope-full.log` on the author's machine), not measured by the collector \u2014 they bound the wall-clock but include any time the orchestrator spent idle between cells.", "model": "gemma4-ctx:latest", "model_base": "gemma4:26b", "model_quantization": "Q4_K_M", @@ -39,11 +39,11 @@ "endpoint": "http://localhost:11434/v1", "endpoint_kind": "ollama", "offline": false, - "started_at": null, - "ended_at": null, - "wall_clock_s": null, + "started_at": "2026-04-29T04:11:20-04:00", + "ended_at": "2026-04-30T03:13:50-04:00", + "wall_clock_s": 82950, "wall_clock_s_grading_only": null, - "wall_clock_human": "multi-hour, single-machine local run", + "wall_clock_human": "23h02m30s end-to-end (reconstructed from log file mtime, not measured by collector)", "variants_attempted": 50, "variants_kept": 50, "variants_skipped_no_needles": 0,