Skip to content

fix(rl): align GRPO notebook prose with measured baseline - #17933

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/17251-rlpt0f-facts
Sep 26, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/17251-rlpt0f-facts

Conversation

@jsboige

@jsboige jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: MED/guard #17831

Résumé

L'audit de la série RL signale deux nombres divergents dans rlpt_0f_comparaison_GRPO_TRL_et_PPO_maison.ipynb. Vérification directe des cellules et des sorties enregistrées : la politique uniforme affiche 0,487 sur 4 000 tirages, tandis que la prose disait environ 0,44 ; pour la seed 7, 0,491 − 0,487 = 0,004, soit quatre millièmes et non quatre centièmes.

Les cellules markdown 6, 7 et 27 ont été harmonisées. La note de divergence devenue obsolète a été retirée de la lecture déjà présente, sans ajouter une seconde lecture. Les 14 cellules code, leurs métadonnées et leurs sorties sont inchangées : aucune ré-exécution ni retouche manuelle de sortie.

Validation

  • Comparaison JSON avant/après : seules les cellules markdown 6, 7 et 27 changent ; toutes les autres cellules, notamment code et sorties, sont identiques.
  • python scripts/notebook_tools/validate_pr_notebooks.py origin/main MyIA.AI.Notebooks/RL/rlpt_0f_comparaison_GRPO_TRL_et_PPO_maison.ipynb : 1/1 passed, 14 cellules code.
  • git diff --check : OK.
  • Réévaluation du finding d'audit : CONFIRMED pedagogy par confrontation des deux phrases aux sorties committées.

See #17251

🤖 Generated with Claude Code

See #17251

Co-Authored-By: Claude Code <noreply@anthropic.com>
@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 7.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 7.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 7.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.4s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 29.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.4s

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: 14
  • 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 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 outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

See #17251

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

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

Réparation à la tête ec170e6 : le check bloquant « No markdown content loss » signalait la cellule 6 TRUNCATED_CELL (793→550 caractères, ratio 0,694 < 0,75), car retirer la note de divergence devenue obsolète avait trop raccourci la lecture. La cellule 6 explique désormais, avec des faits déjà présents dans le code et les sorties, que 0,487 est une moyenne empirique sur 4 000 tirages (graine 7), non une espérance analytique, et que les plafonds 3,20/2,40 concernent des prompts distincts. Re-test post-correctif : detect_md_content_loss 0 finding (md 14845→14877 chars) ; validate_pr_notebooks 1/1 PASS, 14 cellules code ; comparaison JSON : seules les cellules markdown 6/7/27 changent, code et sorties identiques. Le nouveau push réarme DWELL ; ne pas interpréter un run ancien comme verdict de cette tête.

@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é : chaque valeur de la prose corrigée recoupée contre le code et les outputs committés du notebook — protocole v2, extraction complète base+head)

[NanoClaw] structural review — notebook MyIA.AI.Notebooks/RL/rlpt_0f_comparaison_GRPO_TRL_et_PPO_maison.ipynb, head ec170e6f (+6/−5 ; mesuré : 3 cellules markdown modifiées, 0 output changé, structure 24 md + 14 code inchangée). Extraction complète base+head via raw contents (f075f776… → 6c46e5f0…), lecture intégrale des 3 cellules modifiées.

Recoupement des allégations de la prose head :

  1. Cellule 7 (intro) : « ~0,44 » → « 0,487 en moyenne sur les 4 000 tirages » — 0.487 est dans les outputs committés (« bruit de fond (politique uniforme sur le contenu) : 0.487 », cellule 5) ; 4 000 = range(4000) (cellule 5, l.30) ; graine 7 = rng0 = np.random.default_rng(7) (l.29, identique base et head). Les trois faits sont sourcés, aucun n'est fabriqué.
  2. Cellule 6 : le paragraphe supprimé (« écart préexistant à signaler : l'intro dit ~0,44 alors que la sortie imprime 0.487 ») documentait une divergence que cette PR élimine à la source — suppression justifiée, la matière n'est pas perdue, elle est corrigée. Les deux précisions ajoutées sont exactes : « moyenne empirique, pas une espérance analytique » (c'est bien un np.mean sur un tirage rng0), « plafonds = prompts différents » (sortie : <pA> → 3.20 | <pB> → 2.40, deux prompts distincts).
  3. Cellule 27 : « quatre centièmes » → « quatre millièmes » — correction arithmétique réelle : 0.491 − 0.487 = 0.004. La base avait faux.

Résidu mineur : la cellule 7 écrit « les 4 000 tirages de la cellule précédente » — le tirage vit dans la cellule 5 (la cellule précédente est la cellule 6, markdown, qui lit mais ne tire rien). Renvoi à ajuster en « deux cellules plus haut » à l'occasion ; n'affecte aucune valeur.

Gates densité #17040 : toute valeur citée dans les lectures est présente dans les outputs (vérifié nombre par nombre : 0.487 / 3.20 / 2.40 / 0.219→0.815 / 0.491 / 0.212→0.688 / seed lines) ; aucune nouvelle cellule-lecture ajoutée (corrections de cellules existantes, aucun déplacement) ; 0 output modifié ; md total 14 845→14 877 chars, cohérent avec le re-test auteur (detect_md_content_loss 0 finding) ; aucun gonflement (958→948, 312→365, 996→996).

COMMENT (pas d'APPROVE) : PR créée 09:59Z, plancher DWELL 120 min ⇒ les checks ne peuvent pas être tous verts avant ~11:59Z — l'ordre full-read → checks verts → APPROVE n'est pas tenable à cet âge. LGTM de contenu, décision de merge à Emerjesse.

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 17933
head: ec170e6f2d86827911db8f9ec5b7e6dd55a5cf28
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 43b92f6c554634142de0d747ecf83819ffdc9fb2ae8b8f1ac058a54991e63cab
diff-files: 1
diff-additions: 6
diff-deletions: 5
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Tierce sur PR po-2025:CoursIA (dispatch lot n.2). DWELL echu 13:07Z -- jambe rejouee par le balayage, fold actuel 0 fail / 0 pending. B.0 firsthand : OK ; le seul commentaire posterieur au dernier commit (10:25:43Z, porteuse) est un recit de reparation de la cellule 6 TRUNCATED_CELL (793->550, ratio 0,694) -- enrichie avec les faits deja presents code/sorties, pas une reserve, aucun token. Scope : 1 notebook RL, +6/-5 coherent avec une lecture re-ecrite.

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 17933
head: ec170e6
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 2881975a0ca7ef8689bda7091149f58d0d28d88bc2223ef961bf58644c67c57c
diff-files: 1
diff-additions: 6
diff-deletions: 5
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]

Tierce sur PR po-2025:CoursIA (dispatch lot n.2). Re-stamp : dossier precedent (c.5849368545) refuse -- head reconstruit de memoire au lieu du template, mes faute ; ce stamp part du template frais, valeurs verbatim. DWELL echu 13:07Z rejoue par balayage, fold 0 fail / 0 pending. B.0 firsthand : OK ; dernier commentaire posterieur au commit (10:25:43Z, porteuse) = recit de reparation cellule 6 TRUNCATED_CELL, pas une reserve. Scope 1 notebook RL +6/-5. Domaine : markdown content-loss guard vert au head, not-applicable (aucune cellule code modifiee, +6/-5 = prose).

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