Skip to content

fix(audit,#17073): 3.5 grokking/double descente — ré-ancrage Lectures sur sorties committées (3.6 : 0 finding) - #18859

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/17379-audit-35-36
Oct 2, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/17379-audit-35-36

Conversation

@jsboige

@jsboige jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: DEEP/notebook-python #18857

Audit #17073 (partition Hermes) — 3.5 ré-ancré, 3.6 audité 0 finding

Suite de la tranche fondations #18505 (3.0 + 3.1). Choix guidé par la cartographie collisions du jour : 3.2/3.3/3.4 occupés par #18712 (po-2027, glossaire), 3.4c par ma propre PR #18791 — les deux prochains libres dans l'ordre canonique sont 3.5 et 3.6 (le socle panorama, prérequis des 3.6b/c/d déjà audités).

Organes de la campagne (les deux carnets)

Organe 3.5 3.6
check_split_reading_cells 0 0
check_interp_positioning 0 0
check_output_failure_text 0 0
check_cell_source_parses 0 0
check_duplicate_sections 0 0
detect_cjk_residue 0 0
restore_accents_canonical --check 1 curable → 0 (curé) 0 curable

Findings CONFIRMED — 3.5 (2 + 1 cure mécanique), tous markdown-only

  1. stale-claim c.5 (garde gradient) — la Lecture disait « écart relatif de l'ordre de $10^{-7}$ à $10^{-9}$, cinq ordres de grandeur sous le seuil ». La sortie committée dit : Ecart relatif max gradient numerique vs analytique : 1.97e-07 (seuil 1e-6). Le $10^{-9}$ n'a aucun témoin committé (une seule valeur imprimée : le max), et 1.97e-07 est à un facteur ~5 (0,7 ordre de grandeur) du seuil — pas cinq ordres. Ré-ancré : « écart relatif max de $2\times 10^{-7}$, cinq fois sous le seuil de $10^{-6}$ ».
  2. ancrage mou c.13 (double descente) — « le pic tombe au seuil $M \approx n$ » alors que la sortie committée mesure le pic à M=105 pour n=80 (Pic du seuil : M=105, seuil marqué M = n = 80, grille de pas 10) : le pic empirique est à 1,3× n, sur la grille il tombe deux crans au-delà du seuil. Ré-ancré : « juste au-delà du seuil d'interpolation ($M = 105$ mesuré, pour $n = 80$) » + item 2 ajusté (« vient d'atteindre la capacité d'interpoler… avec presque aucun degré de liberté » — cohérent avec M légèrement > n, là où « exactement… sans aucun » décrivait M = n).
  3. Cure accent canonique — 1 accent (ligne Navigation : texte affiché du lien 3.6, la cible du lien reste le nom de fichier non accenté).

3.6 — audit 0 finding (vérifié, pas décompté)

Chaque claim chiffrée des six Lectures a été confrontée à sa sortie committée : GMM 8/8 / équilibre 0.999 / dispersion 0.99 (c.18 « GMM à 0,99 » ✓ exact) ; garde VAE 1.39e-08 / diffusion 3.22e-10 ; VAE 6.10 (« ~6 » ✓) ; GAN 2/8, occupation 93.7/6.2/0×6, dispersion 15.66 (« ~15 » ✓) ; DDPM 1.50 (« ~1,5 » ✓), ratios « quatre fois plus nette / dix fois mieux placée » = 6.04/1.51 = 4,0 et 15.54/1.51 = 10,3 ✓ ; multi-graines GAN 1.5 ± 0.5 ✓ exact (seeds 0/1/7/42) ; « T = 100 passes (1 seconde) » vs « 1.15 s pour 4096 points (100 passes) » ✓ ; budget identique vérifié au source (constante STEPS partagée, VAE imprime 6000 pas) ; renvois conclusion (2.8, 2.9, ICT-21, QC-Py-24) tous existants ✓ ; stubs C.1 conformes (3 exercices × 2 carnets) ✓.

Notes review

  • Diagnostic dérive : n/a — aucune sortie ré-alignée ; edits markdown-only (exception C.2), outputs intacts, git diff = 4 lignes.
  • Ratchets output/source-collapse : markdown-only, aucune cellule code touchée.
  • FP documentés : aucun (2 findings confirmés sur 2 candidats examinés ; les 9 formes d'accents hors table de 3.5 et 7 de 3.6 sont le résiduel connu, non curable par la table).

See #17073
See #17379

🤖 Generated with Claude Code

…tures sur les sorties commitees

Audit correctif campagne #17073 (partition Hermes), tranche 3.5+3.6 :
- c.5 (garde gradient) : 'ecart de l'ordre de 1e-7 a 1e-9, cinq ordres de
  grandeur sous le seuil' -> ancre sur la sortie commitee 'max 1.97e-07
  (seuil 1e-6)' = 'max 2e-7, cinq fois sous le seuil de 1e-6' (le 1e-9
  n'a aucun temoin commite, et 1.97e-07 est a 0.7 ordre du seuil, pas 5)
- c.13 (double descente) : 'le pic tombe au seuil M ~ n' -> 'juste au-dela
  du seuil (M=105 mesure pour n=80)' + item 2 re-ancre (le modele vient
  d'atteindre la capacite d'interpoler, avec presque aucun degre de
  liberte) -- le pic empirique est a 1,3x n, pas a n
- cure accent canonique : 1 accent (ligne Navigation, texte affiche
  seulement, cible du lien intacte)
- 3.6 audite : 0 finding (toutes les claims verifiees exactes contre les
  sorties commitees : GAN 1.5+/-0.5, GMM 0.99, VAE 6.10, DDPM 1.50,
  garde 1.39e-08, T=100 passes / 1.15 s)

Markdown-only (exception C.2) : aucune cellule code ni output touchée.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 2, 2026
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 9.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 8.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 9.3s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 8.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 9.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.1s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 45.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 5.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 30.5s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 11
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18859
head: 48f631d
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: bc7c1d17cf2109910c71c6b898f683da2cfd03e595421f19102156d74fd6636f
diff-files: 1
diff-additions: 4
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

note: Cinquieme dossier c368. fix(audit,#17073) 3.5 grokking/double descente re-ancrage. Note: edits markdown-only (exception C.2) -- Diagnostic derive : n/a, aucune sortie re-alignee, outputs intacts, git diff = 4 lignes. Les 2 findings CONFIRMED (stale-claim c.5, ancrage mou c.13) corrigent la prose sur des valeurs committées par re-lecture : 1.97e-07 max gradient vs 10^-7 a 10^-9 declare ; M=105/n=80 reel vs M~n declare. 1 cure accent canonique. 3.6 audite 0 finding. Lane porteuse myia-po-2024:CoursIA (DIFFERENTE de ma lane :CoursIA-3). Crible de fond : pas de cellule code, pas de re-execution, pas de re-alignement de perf/timing/accuracy (exception C.2 explicite), pas de hand-edit. Item 5 H ne s'applique pas (edits markdown-only). PR gate success a 16:43:47Z, 0 fails, B.0 rc=0. MED/notebook-python -> merge_ready eligible, dossier tiers debloque.

Lecon c368 : en c367 j'avais range #18859 par crainte C.4/H. Re-lecture du body : "Diagnostic derive : n/a -- aucune sortie re-alignee ; edits markdown-only (exception C.2)". Le cas est explicitement exempté. La prose est corrigee pour dire ce que l'output committe reellement dit (1.97e-07 et M=105), pas pour fabriquer un alignement byte-surgical. A re-tester systematiquement : body "Diagnostic derive n/a + edits markdown-only" = eligible READY.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants