Repository navigation
feat(ml,#14768): M18 TimesFM 2.5 zero-shot benchmark — 5/6 BEATS vs Log-HAR (§C strict) - #14778
Conversation
… 5/6 BEATS vs Log-HAR, strict §C protocol
Benchmark script + 31 tests + manifest + REGISTRY entry + doc. Real
checkpoint google/timesfm-2.5-200m-pytorch (SHA 1d952420fba8, 43720
series served, fail-explicit, no fallback). Walk-forward 5 folds,
horizons 1/5/22d, seeds {0,7,42,99} bit-identical (deterministic GPU),
symmetric per-fold train-tail debias (yhat + bias, M17 round-3 lesson),
DM two legs per #11010 (conjunction on MSE, linear = bias diagnostic).
Verdict vs Log-HAR: 5/6 BEATS (p<=0.0015 on 4 cells), 1/6 INCONCLUSIVE
(BTC h=22, log-HAR numerically better -4.8% but p=0.23), 0/6 NO BEATS;
ETH h=22 BEATS borderline (p=0.0445) flagged. Native quantile calibration:
80% coverage 0.774-0.814 vs nominal 0.80. Empirical note: HAR in levels
degenerates to near-persistence on this panel (MSE equal to 6 decimals,
distinct forecast hashes).
Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Revue coordinateur — §C point par point, mesuré sur le manifeste committéVérifié firsthand sur
§C-7 — le contrôle de biais manquait au body ; je le fournis, et il te donne raisonBiais signé moyen sur les 4 seeds, extrait de
La cellule BTC h22 est celle où Le manque était de présentation, pas de substance — la donnée était committée, elle n'était pas lue dans le body. Rien à corriger dans le livrable. Quantiles — j'ai cherché au mauvais endroit avant de conclureJ'ai d'abord cru l'axe quantile absent parce que les clés par modèle ne portent que Calibration mesurée, nominal 0,80 : C'est une vraie calibration, pas une visualisation. La note du manifeste — « quantiles evaluated on realized log_rv at step h (direct); point forecasts on the h-day mean target — separate functionals, never mixed » — est le genre de précision qui évite une comparaison illégitime, et elle est écrite au bon endroit. Checkpoint attesté par révision ( Découverte n°2 (
|
…BEATS vs log_har (#1454) (#18930) * Fix: harnais M18 manifeste vide en exit 0 (tuple _load_panel non unpack) + revalidation cluster 7 actifs -- NO BEATS vs log_har (Epic #1454, defrichage 3070) - m18_tsfm_benchmark.py: unpack (panel, failures) + validate_requested_panel + garde fail-closed (0 serie servie -> SystemExit) ; le harnais produisait un manifeste VIDE en exit 0 depuis la refonte M16 de har_asymmetric - m18_tsfm_cluster.py: couche d'agregation cluster (repli par actif regle M16, sign-test binomial exact, vues cluster {1,5,10} / protocol {1,5,22}, 4 baselines, fail-closed 112 lignes) + 11 tests - Run complet 7 actifs x 4 horizons x 4 graines bit-identiques (RTX 3070, 1462,9 s, 126 368 series servies) : NO BEATS cluster vs log_har (3/7 actifs BEATS - BTC ETH SOL - p=0,7734, les deux vues) ; le 5/6 BEATS #14778 se reproduit exactement sur BTC/ETH mais ne generalise pas aux 5 actifs yfinance courts (~721 j) ; aucun horizon NO BEATS (perte de puissance, profil M4) - Manifeste compact in-repo (36 301 octets, #15890), series completes sur GDrive - docs/M18_TimesFM.md section Revalidation cluster + entree REGISTRY See #1454 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix: prose-counts -- remplacer le compteur nu (112 lignes) par sa derivation protocole (#18930) Le garde #9377/#17645 bloque tout compteur quantitatif en prose sur ligne ajoutee. Le compte derive de la grille protocole (actifs x horizons x graines) et ne peut pas deriver : la derivation reste, le compte nu part. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix: restitution M18 -- exception SOL a h>=5 + rapport de biais signe (C-7, reprise prevalidation c.2026-10-03) La phrase "l edge ne replique plus a h>=5 sur les cinq actifs yfinance" etait fausse pour SOL (BEATS h=5, +9,27 %, p=0,028) et imprecise pour les autres (INCONCLUSIVE, pas NO BEATS). Corrigee aux deux occurrences (doc + REGISTRY) : 6/7 BEATS a h=1 ; a h>=5 l edge ne tient que sur BTC, ETH, SOL. Section ajoutee : biais signe moyen debiase par modele (vue cluster, n=21) -- tsfm -0,0522 vs log_har -0,0686 (moins sous-estimateur) mais plus biaisé que persistence/har_rv ; le BEATS vs persistence n est pas porte par le biais ; jambe linear = controle, la conjonction porte sur MSE. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Grain: MED/training -- lane myia-po-2026:CoursIA -- prev: MED/notebook-python #14742
Summary
Benchmark TimesFM 2.5-200M zero-shot contre persistence / EWMA / Log-HAR / HAR-RV sur RV crypto quotidienne, horizons 1/5/22 j, protocole §C strict aligne M17 round-3/4. Verdict SOTA: SOTA-OK — vrai checkpoint
google/timesfm-2.5-200m-pytorch(SHA1d952420fba8) charge sur GPU, 43 720 séries réellement servies (compteur), contrat fail-explicit : 0 fallback, abort sur tout échec de chargement/provenance (#14768 gardes anti-faux modèle).Verdict contre Log-HAR (baseline de référence) : 5/6 BEATS, 1/6 INCONCLUSIVE, 0/6 NO BEATS.
Lecture honnête : solide sur 4 cellules (p ≤ 0,0015) ; BTC h=22 le log-HAR est numériquement meilleur mais non significativement ; ETH h=22 BEATS au bord du seuil (fragile, flaggé). La littérature (Log-HAR très compétitif, gain TSFM non uniforme) est partiellement confirmée.
Protocole
har_model._make_split_indices, test de parité inclus)yhat + bias(leçon M17 round-3 signe)linear= diagnostic biaispanel_hash360 bars,bounds_train_testpar fold, SHA256 des prévisions par fold[mean, q0.1..q0.9], point = canal 5 = médiane — assert à chaque appelDécouvertes
Acceptance #14768 (7/7)
scripts/m18_tsfm_benchmark.py+scripts/tests/test_m18_tsfm_benchmark.py(31 passed)1d952420fba8+ 43 720 séries servies + fail-explicit (tests du contrat)per_fold_biaspar modèle/fold ; coûts N/A forecast pur documentédocs/M18_TimesFM.mdExécution : 867,5 s GPU (RTX 3090), timesfm 3.0.1 + torch 2.6.0+cu124, manifeste 192 Ko committé (précédents m4_dlinear ×4, m15 ×6).
Closes #14768