Skip to content

fix(notebook,#14806): de-pin cellules 0/44 rl_1_intro_cartpole — valeurs stochastiques en ordre de grandeur - #14882

Merged
jsboige merged 2 commits into
mainfrom
feature/9434-rl1-cartpole-depin-residue
Sep 6, 2026
Merged

jsboige merged 2 commits into
mainfrom
feature/9434-rl1-cartpole-depin-residue

Conversation

@jsboige

@jsboige jsboige commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2027:CoursIA-2 — prev: MED/notebook-python #14792

Objet

Tranche résiduelle du mandat #9434 (« les données quantitatives doivent être tenues
par la CI, pas épinglées dans la prose manuscrite ») sur
MyIA.AI.Notebooks/RL/rl_1_intro_cartpole.ipynb.
La tranche principale a été livrée par la PR mergée #14792 (de-pin markdown-only des
cellules 2, 4, 6, 19, 21, 22, 24, 26, 28, 30). Deux cellules markdown gardaient des valeurs
exactes dérivées épinglées, hors du périmètre déclaré de #14792 — ce résidu est signalé par
l'adjoint po-2025 en review COMMENTED sur #14792 (« résidu maintenu explicitement »), et
tracé pour ne pas être toléré en silence.

Ce qui change

Deux cellules markdown seulement, conversion des valeurs stochastiques exactes en
ordre de grandeur + note explicite du ± restant :

  1. Cell 0 (intro, ### Sortie cle du notebook) : 405 ± 108 → ~405 ± ~108, avec
    l'explication que le ± reflète la variabilité des conditions initiales (seuls le modèle et
    l'échantillonnage sont seedés). Corrigé au passage la coquille determiiste →
    deterministe (même ligne).
  2. Cell 44 (Exercice 1 : Comparaison d'algorithmes, ### Résultats attendus) :
    405 +/- 108 → ~405 +/- ~108, 350 +/- 120 → ~350 +/- ~120, 380 +/- 130 →
    ~380 +/- ~130, plus la note : SEED = 42 seede le modèle et l'échantillonnage, pas
    les états initiaux des épisodes d'évaluation.

Pourquoi : la cellule 13 fixe SEED = 42 qui seede le modèle, mais les épisodes
d'évaluation (env.reset() sans graine) tirent des conditions initiales aléatoires non
seedées → ces moyennes/écart-types exacts dérivent à chaque exécution. Les convertir en
ordre de grandeur raccorde la cellule 44 avec la cellule 28 (dé-pinnée en ~405 +/- ~108
par la tranche principale).

Validation (markdown-only, C.2)

  • Markdown seul : les deux cellules modifiées sont markdown ; aucun execution_count
    ni outputs touché. C.2 s'applique par son exception mot-only — pas de
    re-exécution requise
    (et le notebook entraîne un modèle SB3, coût non nécessaire ici).
  • check_cell_source_parses.py : 0 finding.
  • check_c2_compliance.py --path <nb> : 1/1 compliant.
  • check_null_exec.py (H.3) : OK (aucune cellule code null+empty).
  • Diff minimal (7+/5−, 1 fichier) : seules les lignes source des cellules 0 et 44
    changent ; pas de churn EOL ni de reformat JSON.
  • Pre-commit (gitleaks · strip .NET probe/papermill · H.3 · Aucun garde ne parse la source des cellules : une cellule non compilable portant une sortie traverse les 60+ checks #13326 cell-source) : tout
    vert
    .

Scope

…urs stochastiques en ordre de grandeur

Tranche residuelle du mandat #9434 (la principale #14792 est mergee). Les cellules 0
(intro) et 44 (Exercice 1) epinglaient des moyennes/ecart-types exacts issus d'un
echantillonnage MDP non seede (SEED=42 seede le modele et l'echantillonnage, pas les
episodes d'evaluation) -> ces valeurs derivent a chaque execution. Converties en ordre
de grandeur (~405 +/- ~108, ~350 +/- ~120, ~380 +/- ~130) avec la note explicite du
+/- restant (variabilite des conditions initiales, pas stochasticite du modele).
Markdown-only (C.2 : pas de re-execution). Coquille 'determiiste' -> 'deterministe'.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

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

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

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

prev: genre mots-clé fermant -- bloquant (#10093).

prev: reference(s) fail invariant(s) (prev-not-merged -> [14879]) -> point prev: at a MERGED PR of the same lane, distinct from the current PR. See #13475.

Une prev: dont le genre est fix/close/resolve (ou une inflexion) fait que GitHub interprète <genre> #N comme un ordre de fermeture automatique dès que le texte atterrit dans un message de commit -- c'est exactement ce qui a fermé #10067 (sans la merger) au squash-merge de #10063. Les 14 genres canoniques ne contiennent AUCUN mot-clé fermant : utilisez refactor, guard, ou tooling à la place.

Pour passer ce gate, réécrivez le champ prev: (dans le body ET dans chaque commit concerné) avec un genre non-fermant :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<refactor|guard|tooling|...> #<PR>

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

⚠️ Detector abstained (merge-base introuvable, shallow fetch or unanchored branch).

c.415 (#11873): scope = notebooks CHANGED in this PR, not the whole corpus.
See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 pathologie.

@github-actions

github-actions Bot commented Sep 6, 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 8.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 13.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 11.0s
Search-1-StateSpace.ipynb ✅ SUCCESS 10.5s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 10.8s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 70.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 9.0s

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

@jsboige
jsboige merged commit af67f48 into main Sep 6, 2026
64 checks passed
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.

1 participant