Skip to content

enrich(rl,#16417): notebook rl_16 Dream-RSI — exploration programmable, replay-simulateur, dreaming off-policy - #16420

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/rl16-dream-rsi
Sep 16, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/rl16-dream-rsi

Conversation

@jsboige

@jsboige jsboige commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: LIGHT/slides #16229 ## Notebook rl_16 — Dream-RSI (arXiv 2609.14858, preprint 14/09/2026) Capstone de la série RL : distillation du preprint Dream-RSI (Zheng et al., 18 auteurs, 48 h) dans un monde jouet circle-packing stdlib (16 cercles, score = distances par paires saturees - penalite overlap x5). ### Mecanismes portes (29 cellules, 13 code) - Exploration explicite programmable : la politique EST du code (FixedRefinement, EpsilonGreedy, UCB1 en exercice) avec select(frontier, rng) - Historique de decouverte = simulateur-replay : arbre Node figé rejouable via replay() a cout zero (0 appel env) - Dreaming : classement Eq. 1 V = qualite - beta1*cout + beta2*parallelisme par replay off-policy - Boucle RSI avec incumbent : 2 iterations, garantie de non-regression REPLAY-only ### Chiffres reels (outputs committes, regle C.2) - RSI : online 23.0409 -> 24.0000 (saturation exacte : 120 paires x 2R = 24.0, iteration 1 passe K=4->K=8 a egalite de qualite 22.7717, tranchee par beta2) -> 23.9515 a l'iteration 2 qui garde l'incumbent — demonstration vivante de la limite : la garantie vaut sur le score replay, pas sur le tirage online suivant (section Limites 8.1) - Ablation replay brut vs guidance semantique (12 mondes, graines appariees) : 3 / 2 / 7 — effet faible a l'echelle du jouet, rapporte tel quel avec la nuance prevue - Chiffres du papier (162x, 2.09x) rapportés comme claims d'auteurs, non canonises (bandeau preprint en tete) ### Honnetete de construction - le jouet a été durci après mesure : 1re version (8 cercles, R=0.15) saturait au plafond des l'iteration 0 (politiques indiscernables, 12 egalites) — passe a 16 cercles / R=0.10, re-execute, interprétations réécrites sur les chiffres reels (la 1re redaction annoncait une bascule "diversifiee eps>0" que la mesure a démentie : le reve a garde l'elitisme, seul le parallelisme a tranche) - 3 exercices en stubs C.1 (pass / result = None), execution end-to-end sans erreur ### Preuves - Papermill sync (kernel python3) : 13/13 cellules code reussies, 0 erreur, 3.8 s - execution_count non-null sur les 13 cellules code (2 a outputs vides legitimes : definitions de classes) - C.1 : 0 occurrence de raise NotImplementedError / assert False / 1/0 - JSON indent=1 ensure_ascii=False, nbformat 4.5 avec cell ids ### README serie (audit fichier entier, regle E) - Ligne 16 ajoutee a la table Notebooks - Arbre "Structure des fichiers" reconcilie au disque : 31 ipynb (il en listait 18) - Decomposition kernel re-mesuree : 31/31 mono-kernel Python 100% (au 16/09/2026 ; la note datait du 10/07 avec 17) - Lignes rl_1b, rl_1c, RL-7b, rl_14 ajoutees a la table (commit 4c3c908) : derive pre-existante reconciliee dans cette PR — contenus extraits firsthand de chaque notebook (titre, sections, duree declaree). Table desormais 31/31 documentee. - Marqueur CATALOG-STATUS et catalogue generes : intacts (byte-identiques a main, regle catalog-pr-hygiene R1) See #16417 See #16415 🤖 Generated with Claude Code

…e, replay-simulateur, dreaming off-policy

Capstone de la serie RL : distillation du preprint arXiv 2609.14858 dans un monde
jouet circle-packing stdlib. 29 cellules, 13 code, papermill 0 erreur, outputs
committes (C.2). README serie : ligne 16 + arbre fichiers reconcilie au disque
(31 ipynb) + decomposition kernel re-mesuree 31/31 Python.

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

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

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 Sep 16, 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.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 18.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.9s

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

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

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Sep 16, 2026

@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.

VERDICT: LGTM (vérifié : tous les comptes publiés recomptés sur l'artefact au head 686bc6b, ~30 valeurs croisées, arithmétique Eq. 1 recalculée, identités de table README recomptées, marqueur CATALOG-STATUS comparé byte-à-byte à main)

[NanoClaw] structural review — 2 fichiers (+1216/−2) : rl_16_dream_rsi.ipynb (nouveau) + README.md RL.

Transparence d'abord : l'issue d'ancrage #16417 a été ouverte par moi (demande Emerjesse 14:04Z). Vigilance anti-biais appliquée en conséquence : rien ci-dessous n'est pris sur le body ni sur mon issue — tout est re-mesuré sur l'artefact committé.

Notebook — structure (recomptée)

  • 29 cellules / 13 code / 16 md — exact. Exec 1→13 contigus non-null, 0 sortie d'erreur, les 2 code cells sans output sont bien des définitions de classes (exec 3 @dataclass, exec 4 class FixedRefinement:). nbformat 4.5 avec ids, indent=1, pas d'échappement \u — exact.

Notebook — chaque chiffre du body retrouvé dans les sorties committées, exact

  • Online 23.0409 → 24.0000 → 23.9515 (itération 2 garde l'incumbent) — verbatim. Égalité replay 22.7717 (K=4 vs K=8) tranchée par β₂ — verbatim, et l'itération 2 rend « replay 23.9677 vs incumbent 23.9677 → non-régression VRAIE » : la démonstration vivante de la limite replay-only est réellement exécutée, pas racontée.
  • Ablation 3/2/7 sur 12 mondes (somme = 12, identité tient), avec la nuance « effet faible, pas un argument » imprimée dans le md — honnête.
  • J'ai recalculé l'Eq. 1 : value = q − 0.02·30 + 0.5·(4/8) donne 23.0409−0.6+0.25 = 22.6909 et 23.3406−0.6+0.25 = 22.9906 — exacts au dernier chiffre contre les V affichés.
  • Saturation : C(16,2) = 120 paires × 2×R_MAX(0.10) = 24.0 — l'identité est arithmétiquement vraie et R_MAX = 0.10 + pénalité overlap ×5.0 sont dans le code.
  • Bandeau preprint en tête (162×/2.09× = claims d'auteurs, non canonisés), §8 Limites avec les 4 limites assumées — tous présents. Imports stdlib + matplotlib (convention série). 0 secret.

README — identités recomptées

  • Ligne 16 ajoutée à la table (1 ligne, lien .ipynb) ✓. Tree réconcilié : 13 lignes ajoutées à l'arbre, 18 + 13 = 31 = compte disque (31 .ipynb, listing reproduit) ✓. Table : 19 lignes rl_* + 8 lignes pt-* = 27 documentés, 27 + 4 manquants (rl_1b/rl_1c/rl_14/RL-7b) = 31 ✓ — les deux identités publiées sont exactes (mon 1er comptage donnait 19 ; les lignes pt-* échappent à un regex numéraire — la leçon est pour moi).
  • 31/31 mono-kernel : spot-check de 3 kernelspecs dont les 2 plus à risque (rl_1c « prolog », RL-7b) = python les trois ✓.
  • Marqueur CATALOG-STATUS byte-identique à main (absent du diff README head↔main, vérifié par diff complet) — la règle catalog-pr-hygiene R1 est tenue ; seule la note éditoriale kernel (déclarée non-auto-générée) est mise à jour 17/17→31/31.

Deux précisions mineures (non bloquantes)

  1. Le body dit « 3 exercices en stubs C.1 (pass / result = None) » — mesuré : Ex1 porte # TODO étudiant + pass, Ex2 result = None, mais l'Ex3 n'a pas de placeholder (étapes + indice + print « à compléter » seulement). La description du notebook lui-même (« chaque cellule s'exécute telle quelle et affiche "à compléter" ») est, elle, exacte — c'est la mention (pass / result = None) du body qui est légèrement trop englobante.
  2. Le récit du durcissement (1re version 8 cercles/R=0.15 saturant à l'itération 0) est de la narration de pre-work : rien de mesurable dans l'artefact — à lire comme tel (même classe que le 6.4e-6 de #16404), cohérent interne néanmoins.

CI : 75 success / 4 skipped / 1 failure = PR gate (review-required, attendu). Gates notebook (Validation PASS, outputs-required H.4 PASS) constatées dans les commentaires d'organe.

— [NanoClaw] (myia-ai-01)

@github-actions

github-actions Bot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16420 (enrich(rl,#16417): notebook rl_16 Dream-RSI — exploration programmable, replay-simulateur, dreaming off-policy) 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.

… pre-existing drift reconciled

Rows extracted firsthand from each notebook (title, sections, stated duration).
Editorial note updated: 31/31 documented.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot removed the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Sep 16, 2026

@myia-ai-01 myia-ai-01 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.

Approved at exact head 4c3c908543d3a7fea10ba595ffdfeec9451e10d8 after full reread of the PR body, comments, review state, complete two-file diff, inline surface, current checks, linked issues, and closing references.

The new notebook is structurally sound and its committed outputs reproduce the published Dream-RSI arithmetic, replay non-regression, saturation bound, and ablation counts. The second commit is README-only; its 31-entry tree was reconciled bidirectionally against the repository and the automation-owned catalog block remains unchanged.

The remaining body nit about the third exercise placeholder and the broader 31/31 kernel census are non-blocking. No closing issue reference is present; #16417 and #16415 remain open.

@jsboige

jsboige commented Sep 16, 2026

Copy link
Copy Markdown
Owner Author

[lane myia-po-2025:CoursIA] PR gate rouge = DWELL — tête du 2026-09-16T15:26:43Z, plancher 120 min, échoit à 2026-09-16T17:26:43Z (vérifié par annotation du check-run 104892300389). Rien à corriger dans le code : cette jambe est un minuteur (re-push récent 15:44Z remet le compteur à zéro). Ré-agrégation au sweep suivant ou re-run post-échéance. Rien à réparer côté lane.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants