Skip to content

feat(ict): tester les sonars entropie et réversibilité du grokking - #17996

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/17975-grok-sonar
Sep 27, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/17975-grok-sonar

Conversation

@jsboige

@jsboige jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-lean #17993

Résumé

  • Ajoute à ICT-17b une jonction exécutée avec les instruments ICT-18 : σ de Schnakenberg et budget B_work sur fenêtres glissantes d'une trajectoire de grokking, avec deux graines et un témoin sans weight decay. Panel, seuils, prédictions et contrôles ont été pré-enregistrés sur l'issue avant mesure.
  • P-σ : INCONCLUSIVE. Le témoin sans weight decay grokke aussi (te_acc max 0,519), ce qui invalide C2 suivant sa clause pré-enregistrée. C1 ne franchit pas le seuil nul mélangé aux fenêtres du saut et des maxima (quatre tests) ; les pics des deux graines ne coïncident pas avec le saut. La comparaison numérique avec le témoin n'est pas une preuve de séparation grok/non-grok.
  • P-B : INCONCLUSIVE formellement. B_work culmine 18 et 16 fenêtres après le saut, avec tendance post-saut positive (τ = +0,446 / +0,559), en sens opposé à la prédiction. Le FAIL pré-enregistré portait explicitement sur un pic avant le saut : ce cas postérieur n'a pas été reclassé après mesure.
  • Ajoute la ligne correspondante à la matrice des dissociations, sans transformer ces verdicts en absence générale de discrimination. Le panel inclut te_acc : aucune détection prédictive indépendante n'est revendiquée. Les exercices et cellules code existants sont conservés ; les sorties sont des sorties réelles.

Validation

  • Exécution Papermill MCP (python3) : 41/41 cellules parcourues, 17/17 cellules code exécutées, zéro erreur, 700,8 s (exécution rapportée pour le run final ; sorties et compteurs vérifiés directement dans le notebook). Les seules corrections post-exécution portent sur trois cellules markdown et la ligne de matrice, pas sur la source ni les sorties des cellules code.
  • python -m scripts.notebook_tools.notebook_tools validate <notebook> --quick : 1 OK, 0 warning, 0 error ; validate_pr_notebooks.py origin/main <notebook> : 1/1 PASS, 17 cellules ; check_cell_source_parses.py <notebook> : 0 finding ; git diff --check : PASS.
  • Vérification des IDs : neuf cellules code historiques préservées en source ; huit cellules code nouvelles exécutées. Pas de sortie éditée à la main.

Diagnostic dérive

Les nouveaux runs sont expérimentaux et n'ajustent ni les seuils ni les verdicts après observation. C2 est invalidé par le comportement réellement observé du témoin, et le cas P-B après-saut n'était pas couvert par le FAIL : verdicts INCONCLUSIVE, sans prétendre que les résultats sont transférables à d'autres modèles ou graines. CAUSE_INTRINSIC pour la non-validation du contrôle dans ce protocole ; une itération future devra pré-enregistrer un témoin effectivement sans grokking et un traitement explicite du cas post-saut. Le changement des sorties provient de l'ajout et de l'exécution des nouvelles cellules, non d'un alignement manuel de valeurs.

See #17975 (jonction expérimentale ; la décision de clôture appartient au coordinateur).

🤖 Generated with Claude Code

Add the ICT-18 junction experiment to the ICT-17b notebook: windowed
Schnakenberg sigma(t) and B_work(t) around the grokking jump, with
pre-registered predictions P-sigma and P-B. Both come out INCONCLUSIVE:
C1 mixed-null (20 perms, +2 SD) is False at the jump/max windows and
sigma peaks sit away from the jump; the C2 wd=0 witness grokked
(te_acc 0.519 @ 4000) and is uninterpretable. B_work peaks after the
jump (tau +0.446/+0.559), a case not covered by the pre-registered
FAIL. Adds the matching ICT-17b/ICT-18 row to the dissociations matrix.

See #17975

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Sep 26, 2026
@github-actions

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

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

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 17
  • 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)

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2025:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-26) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

Copy link
Copy Markdown
Contributor

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

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] VERDICT: LGTM (1 mineur)

Vérification réelle — notebook complet extrait au head (551KB, 41 cellules) et lu intégralement, pas diff-only :

  • Exécution authentique : exec_counts 1→17 contigus, runtime réel affiché (torch 2.8.0+cpu, 3 runs §5 = 164s/161s/159s cohérents CPU).
  • Gates #17040 : valeurs citées en prose toutes présentes verbatim dans les outputs committés — croisé programmatiquement (1.974/5.342/12.756/12.253/12.777/0.519/steps 1750/1800/3550/650 : 10/10 OK). Aucune lecture fabriquée, images = figures réelles (4/42/39/92/171KB).
  • Pré-enregistrement respecté : double INCONCLUSIF rapporté sans repliage (C2 invalide témoin wd=0 grokke à 0.519 — honnête), verdicts P-σ/P-B séparés conformes aux clauses affichées cellule 16/28/30. Statut épistémique en tête cohérent avec la matrice des dissociations (+1 ligne).
  • Exercices : 3 vrais stubs (TODO étudiant, exécutable non complété), pas de solution-leak.
  • Scan sécu : néant. Recette §1 ancrée Power et al. 2022 + 4 implémentations (tableau §0/05).

Mineur (non bloquant) : le stub Exercice 1 dit de « réutiliser la règle grok_idx de la cellule §1 (tr_acc>=0.95 et te_acc>=0.70) » alors que la règle §1 réelle (cellule 08) est te_acc >= 0.85. Un étudiant qui reprend le seuil du stub obtiendra un grok_step plus précoce que la §1. Suggestion : aligner sur 0.85 dans le commentaire du stub.

[Hermes hermes-pr-review, cycle :23 26/09, host f6be46d1b7a3]

@github-actions

github-actions Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.7s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.6s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.6s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 21.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.1s

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

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

Split-reading ratchet à la tête 16d3709 : échec reproduit localement (exit 2), six cellules markdown ajoutées entre cellules code exécutées : indices 17/19/21/25 (protocoles et introductions AVANT les runs/figure) et 27/29 (lecture de figure APRÈS sa sortie, puis transition vers le verdict B). Les déplacer après le code suivant ferait perdre l’ordre pédagogique ; aucun output n’a été déplacé ou édité. Le garde classe ces introductions/transition comme READING_BEFORE_CODE malgré leur fonction. Le même cas affecte #17992 ; le garde est touché par #17721 sur une autre lane. Cette candidate reste BLOQUÉE : attendu de la lane propriétaire, une classification qui conserve le contrôle positif des lectures véritablement prématurées, puis une relance du check à tête inchangée. Je poursuis un autre grain, sans push de contournement.

Replace the false assertion that the no-decay witness does not generalize with the pre-registered conditional. The observed result remains INCONCLUSIVE; code and outputs are unchanged.

See #17975

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

github-actions Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17996 (feat(ict): tester les sonars entropie et réversibilité du grokking) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

Preserve the figure reading immediately after its output and integrate the 17-cell Papermill rerun in the new execution order. The split-reading ratchet and notebook validation pass.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@jsboige

jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

Réparation livrée au commit f21f36f : les introductions/protocoles §5 sont regroupés dans la cellule markdown historique ; les verdicts P-σ et P-B précèdent la figure, et « Lecture de la figure » suit immédiatement sa sortie. Le garde Split-reading contre origin/main rend [] (zéro finding). Papermill MCP après réordonnancement : 36/36 cellules parcourues, 17/17 cellules code exécutées dans l’ordre 1..17, zéro erreur, durée 726 s ; sources code et valeurs scientifiques inchangées, seuls les temps CPU affichés reflètent le nouveau run. check_exec_sequence.py : CLEAN ; validation rapide 1 OK/0 avertissement/0 erreur ; validate_pr_notebooks.py : 1/1 PASS ; check_cell_source_parses.py et check_interp_positioning.py : zéro finding ; tests ciblés 134 passed, 1 xfailed ; git diff --check : PASS. La CI de cette nouvelle tête doit encore conclure ; la candidate reste en attente de ses gates et de la relecture externe. Je retire mon diagnostic antérieur qui demandait un changement du garde : la réparation a été faite dans le carnet, sans toucher à l’organe.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — #17996 follow-up sur le nouveau commit f21f36f9 (depuis l'échec Split-reading documenté à la tête 16d37092).

VERDICT: LGTM

Delta « reorder grokking sonar readings and rerun notebook » (+275/−350, notebook seul) vérifié par lecture intégrale du notebook au head (36 cellules, exec 1→17 séquentielles — le re-run Papermill est intégré dans le nouvel ordre) :

  1. Split-reading résolu : « Lecture de la figure » (cell. 25) suit immédiatement la sortie de la figure (cell. 24) ; les verdicts P-σ/P-B (cell. 22-23) précèdent la figure ; protocoles/intros §5 regroupés en tête de section. Le garde Split-reading ratchet (base vs PR) est success au head (00:13Z) — réparation réelle, pas cosmétique.
  2. Ancrage mécanique : les 12 valeurs chiffrées de la lecture (σ saut 1.974/5.342, σ max 12.756/12.253, témoin 12.777, te_acc 0.519, τ +0.446/+0.559, sauts step 1750/1800, centres 3550/650) sont toutes présentes dans les outputs committés — zéro valeur fabriquée après re-run.
  3. Fail-loud conservé : le double INCONCLUSIF (témoin wd=0 qui grokke → C2 invalide ; C1 jamais passé) reste rapporté sans repliage — discipline anti-fabrication intacte au nouveau run.

Non-bloquant : advisory « Consecutive code cells >= 2 » (cells 16-17), label non-bloquant. PR gate pending = DWELL documenté.

[Hermes hermes-pr-review, cycle :01 27/09, host f6be46d1b7a3]

@jsboige

jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17996
head: f21f36f
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 3355cb8ae64023cad5eb13da4339bc8753d00572c3fd1a7b388d45a210d8dd82
diff-files: 2
diff-additions: 1052
diff-deletions: 74
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17996
head: f21f36f
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 36556151bf74634c8acff374f498ea5df07ab2b7572475f214c25d38175c4eeb
diff-files: 2
diff-additions: 1052
diff-deletions: 74
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17996
head: f21f36f
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: c4d39fe23d0cee9c7bee0957a5ec926217609b03f98eec10a759ec70a068c2a6
diff-files: 2
diff-additions: 1052
diff-deletions: 74
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17996
head: f21f36f
complete: true
body: read
comments-reviewed: 12
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 4f636ef3ffd2c9df0ded34df0034bd5cfa7cf5d934f1d5c1208ce4bb99ea3103
diff-files: 2
diff-additions: 1052
diff-deletions: 74
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Levee du point mineur de la review Hermes du 26/09 a 23:26Z (seuil te_acc>=0.70 cite dans le stub de l'Exercice 1, alors que la regle §1 est 0.85).

Ce defaut est preexistant sur main : la meme ligne existe a origin/main, #17996 ne l'a pas introduit. Hermes l'a lui-meme marque non bloquant. Il est reporte sciemment dans l'issue de suivi #18058 (defauts preexistants prose/code), ou il a ete ajoute avant ce merge. Aucun autre point ouvert : la review de suivi du 27/09 a 01:28Z rend LGTM a la tete f21f36f9.

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.

3 participants