Repository navigation
enrich(rl,#16417): notebook rl_16 Dream-RSI — exploration programmable, replay-simulateur, dreaming off-policy - #16420
Conversation
…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>
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
clusterManager-Myia
left a comment
There was a problem hiding this comment.
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 4class 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.0sont 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 lignesrl_*+ 8 lignespt-*= 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 lignespt-*é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) =
pythonles 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)
- Le body dit « 3 exercices en stubs C.1 (
pass/result = None) » — mesuré : Ex1 porte# TODO étudiant+pass, Ex2result = 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. - 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)
Path-collision (organ #13359/#13615)Cette PR #16420 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
… 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>
myia-ai-01
left a comment
There was a problem hiding this comment.
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.
|
[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. |
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,UCB1en exercice) avecselect(frontier, rng)- Historique de decouverte = simulateur-replay : arbreNodefigé rejouable viareplay()a cout zero (0 appel env) - Dreaming : classement Eq. 1V = qualite - beta1*cout + beta2*parallelismepar 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_countnon-null sur les 13 cellules code (2 a outputs vides legitimes : definitions de classes) - C.1 : 0 occurrence deraise 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) - Lignesrl_1b,rl_1c,RL-7b,rl_14ajoutees 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