|
Download README.md from NagaYu/flashback-first-bad-step: direct link, hf CLI and curl.
- Browser
- Download file 3.31 kB
-
https://huggingface.co/NagaYu/flashback-first-bad-step/resolve/main/README.md
- Command line
-
hf download hf://NagaYu/flashback-first-bad-step/README.md
-
curl -L -o README.md https://huggingface.co/NagaYu/flashback-first-bad-step/resolve/main/README.md
3.31 kB
| license: apache-2.0 | |
| library_name: flashback | |
| tags: | |
| - anomaly-detection | |
| - distributed-training | |
| - observability | |
| - debugging | |
| - machine-learning | |
| - flashback | |
| metrics: | |
| - mae | |
| model-index: | |
| - name: flashback-first-bad-step | |
| results: | |
| - task: | |
| type: anomaly-detection | |
| name: First-bad-step localisation | |
| dataset: | |
| name: Flashback Forensics | |
| type: NagaYu/flashback-forensics | |
| split: test | |
| metrics: | |
| - type: mae | |
| name: Mean absolute step error | |
| value: 0.00 | |
| - type: accuracy | |
| name: Exact-step hit rate | |
| value: 1.000 | |
| # Flashback: first-bad-step detector | |
| Given a run's **sketch index** -- a few hundred bytes of summary statistics per | |
| training step -- this model reports the step at which the run first went wrong. | |
| It is small on purpose: 10 logistic weights plus 9 fitted | |
| consensus hyperparameters. The interesting part is not the model, it is that | |
| the *input* is cheap enough to record for every step of every run. | |
| ## Results on held-out runs | |
| | detector | mean abs. error (steps) | exact | within 2 | never detected | | |
| |---|---:|---:|---:|---:| | |
| | loss curve alone | 0.50 | 2/6 | 4/6 | 2 | | |
| | **this model** | **0.00** | **6/6** | **6/6** | **0** | | |
| Train split: 12 runs, MAE 0.00. | |
| Splits are by run: no step of a test run appears in training. | |
| ## Usage | |
| ```python | |
| from flashback.detector import FirstBadStepDetector | |
| from flashback.sketch import StepSketchIndex | |
| from huggingface_hub import snapshot_download | |
| det = FirstBadStepDetector.load(snapshot_download("<user>/flashback-first-bad-step")) | |
| report = det.predict(StepSketchIndex("runs/my-run/sketch", mode="r")) | |
| print(report.first_bad_step, report.confidence, report.top_metrics) | |
| ``` | |
| To produce the sketch index in the first place, add three lines to your | |
| training loop: | |
| ```python | |
| from flashback.integrations import FlashbackCallback | |
| trainer = Trainer(..., callbacks=[FlashbackCallback("runs/my-run")]) | |
| ``` | |
| ## Fitted configuration | |
| ```json | |
| { | |
| "win": 32, | |
| "gap": 1, | |
| "mode": "diff", | |
| "k_cal": 8.0, | |
| "k_min": 8.0, | |
| "min_votes": 3, | |
| "vote_window": 2, | |
| "exclude": [ | |
| "lr", | |
| "step_wall_ms", | |
| "batch_id_mean", | |
| "batch_uniq_frac" | |
| ], | |
| "use_logistic": true, | |
| "logistic_threshold": 0.5, | |
| "version": "1" | |
| } | |
| ``` | |
| ## Feature weights | |
| | feature | weight | | |
| |---|---:| | |
| | `bias` | -9.8951 | | |
| | `log1p_max_z` | +0.1471 | | |
| | `log1p_top5_mean_z` | +0.1950 | | |
| | `frac_metrics_firing` | +18.4084 | | |
| | `hard_signal` | +1.2226 | | |
| | `log1p_z_grad_norm` | +0.3008 | | |
| | `log1p_z_update_max` | +0.1584 | | |
| | `log1p_z_loss` | +0.0378 | | |
| | `log1p_z_hist_tail` | +0.2497 | | |
| | `rel_position` | +15.0875 | | |
| ## Limitations | |
| - It needs a **healthy stretch** of the run to calibrate against; a run that is | |
| broken from step 0 has no baseline and will not be localised. | |
| - It reports *regime changes*, so a fault that ramps in smoothly over hundreds | |
| of steps has no single correct answer and the reported step will be early or | |
| late by roughly the ramp length. | |
| - It was fitted on small Transformers (a few hundred thousand to a few million | |
| parameters). The features are scale-free by construction, but transfer to | |
| very large models is **not** demonstrated here. | |
| - No claim of bitwise determinism is made anywhere in Flashback; this is a | |
| statistical detector over recorded statistics. | |
| Generated by Flashback v0.1.0. | |