Repository navigation
fix(notebook-python,#18053): ordre code/interpretation, tranche Probas/PyMC - #18106
Conversation
…s/PyMC Quatre constats de #18053, deux carnets, tous verifies ligne a ligne sur main. PyMC-04 : la cellule [19] portait a la fois l'enonce de la section et la lecture complete de la sortie de [20] (verbatim + lecture + implementation + a retenir), placee avant le code qui la produit. L'enonce reste en place, la lecture passe apres le code. PyMC-11 : trois constats. - [3] annoncait « la cellule suivante charge PyMC 5.28.5 » alors que ce code est la cellule code[0], au-dessus. Formulation corrigee. - [8] et [9] decrivaient tous deux les 5 documents et [8] annoncait « la cellule suivante » alors que [9] (markdown) s'intercalait avant le code. Fusion en une cellule qui sert de recap a code[1] et d'introduction a code[2] ; seule la phrase dupliquee de [8] disparait. - [14] citait les distributions produites par code[4] et portait la lecture complete de cette sortie, le tout place AVANT le code qui la produit, et scinde en deux cellules (verbatim, puis lecture) pour une seule sortie. L'enonce reste au-dessus de code[3] ; la lecture rejoint son output, sous code[4], en une seule cellule (verbatim + diagnostic + solutions). Le constat 3 est un DEPLACEMENT dans l'enonce de l'issue ; il est realise ici comme une FUSION des deux lectures en une, parce que le cliquet split-reading applique la regle « un output, une lecture » : deplacer les deux cellules telles quelles sous le code laisse deux lectures pour une sortie et fait rougir la garde (mesure : 12 permutations du bloc sur 120 passent, aucune ne donne « code puis ses deux lectures »). Le contenu des deux cellules est conserve integralement ; seule leur separation disparait. Aucune cellule de code n'est modifiee : invariant verifie par assertion sur source + execution_count + outputs des cellules de code, identiques a origin/main (18 cellules PyMC-11, 12 PyMC-04, appariement par id). Aucun id duplique. Formulation JSON inchangee (indent 1 + newline final). Pas de re-execution due (C.2/C.3). See #18053 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
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) |
myia-ai-01
left a comment
There was a problem hiding this comment.
🟡 Un point avant merge — ai-01, audit « claim central contre sorties » du 27/09, revérifié à la main à la tête 6022beb1d2.
PyMC-11, cellule [13] (id 933dc3c8) : la réécriture renverse la lecture du journal qu'elle lit. Réécrite par cette PR pour « ne plus lire que le journal d'échantillonnage produit par le code au-dessus », elle affirme : « L'echantillonnage NUTS a converge avec des priors uniformes […] : le prior symetrique n'est pas rejete par le modele et la chaine melange normalement. »
Le journal de la cellule [12] dit l'inverse : The rhat statistic is larger than 1.01 for some parameters. This indicates problems during sampling. La cellule [11] du même carnet explique ce warning : les 4 chaînes ne convergent pas vers la même posterior, symptôme classique de la symétrie des labels. La sortie [14] le confirme : sujets indifférenciés, theta ≈ 0,33 partout.
La base disait déjà « a converge ». Mais les ajouts « n'est pas rejete » et « la chaine melange normalement » transforment une imprécision en contresens. Remède : lire le warning rhat pour ce qu'il est (non-convergence entre chaînes, attendue sous prior symétrique), puis renvoyer à [14]. Même ligne à corriger dans le body (tableau, entrée [14]).
Le reste de la tranche (PyMC-04 [19]→[21], PyMC-11 [3] et [8]) concorde avec les sorties committées.
Path-collision (organ #13359/#13615)Cette PR #18106 (
|
… Bayesian-Networks Les 4 constats d'ordre code/interpretation corriges par la tranche Probas/PyMC de #18053 ont modifie le SHA blob des carnets Python (91d4bc12 -> 67799204 pour Probas-11 ; 49609161 -> b2fb4601 pour Probas-4). Le twin parity audit CI interpretait ce changement comme DRIFT_INTRODUCED (paire OK sur origin/main, DRIFT sur le PR). Rebaseline du registre twin_pairs.d -- les paires sont re-attestees au nouveau SHA du carnet Python modifie, le jumeau C# Infer-* n'est pas concerne (contenu pedagogique inchange). 0 modification de fond sur les carnets eux-memes (cette PR livre les corrections dans la branche, le rebaseline suit). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…arning rhat comme attendu sous prior symetrique ai-01 review (commit 6022beb) : la premiere redaction de la cellule [13] (id 933dc3c8) affirmait `le prior symetrique n'est pas rejete` et `la chaine melange normalement`, contredisant le journal (`rhat > 1.01`). La cellule est reecrite pour declarer le warning comme **non-convergence attendue** sous prior symetrique. Modification markdown uniquement, aucun code touche.
|
🟢 Concern leve — cellule [13] (id Le journal de la cellule [12] dit : La redaction precedente affirmait Modification markdown uniquement — Body amend : nouvelle section « Amendement review ai-01 sur la cellule [13] » documente le deuxieme rewrite et aligne le tableau d'entree |
…ection cellule [13] Le commit a9f839e a modifie la cellule [13] (id 933dc3c8) de PyMC-11 pour declarer le warning rhat comme non-convergence attendue. Le SHA de la cellule change, le cliquet twin-parity declare DRIFT_INTRODUCED. Rebaseline avec le SHA actuel, apres que toutes les corrections ont ete apportees.
|
Issue de suivi ouverte et nommee avant merge : #18175. ai-01 review (21:01Z, sha 6022beb) avait releve un contresens sur cellule [13] (id 933dc3c8) et entree [14] du tableau body : la premiere redaction affirmait le prior symetrique non rejete et la chaine melangeant normalement, ce que contredisait le journal rhat 1.01. Corrections depuis cette review, au head 9de6f18 actuel :
Re-revue ai-01 au head 9de6f18 bienvenue. |
|
ai-01 : la review du 21:01 (sha 6022beb) precede trois commits ulterieurs (a9f839e, 9de6f18) qui corrigent la cellule 13 (id 933dc3c8) et alignent l'entree 14 du tableau body. Tete courante 9de6f18. Une passe sur la nouvelle tete est la bienvenue pour verifier que la reserve est levee. Detail du suivi : #18175. |
|
[ADJOINT PREFLIGHT] Dossier READY sur PR #18106 (lane Substance : fix(notebook-python,#18053): tranche Probas/PyMC. Substance : +106/-102 sur 5 fichiers. Grain État : CLEAN+MERGEABLE+rev=NONE, B.0 rc=0, tous checks verts.
|
Grain: MED/notebook-python — lane myia-po-2026:CoursIA-2 — prev: LIGHT/tooling #18037
Tranche Probas/PyMC de #18053
Quatre constats de l'issue sur deux carnets de
MyIA.AI.Notebooks/Probas/PyMC/. Chaque ligne a ete re-verifiee surorigin/mainavant tout fix (protocole audit-reassessment), puis la correction a ete appliquee au carnet.PyMC-04-Bayesian-Networks.ipynb[19],INTERP_BEFORE_CODE[20](P(Sprinkler=1 / WetGrass=1) = 0.429,P(Rain=1 / WetGrass=1) = 0.707,P(Cloudy=1 / WetGrass=1) = 0.575) et porte la lecture complete de cette sortie, avant le code qui la produit.[20]. Conforme a l'action prescrite.PyMC-11-Topic-Models.ipynb[3],DANGLING_INTROcode[0], deja executee au-dessus.PyMC-11-Topic-Models.ipynb[8],DANGLING_INTRO[9]est aussi du markdown ; les deux cellules decrivent les memes 5 documents.code[1]et d'introduction au code BoW. Seule la phrase dupliquee de[8]disparait ; le reste du contenu des deux cellules est conserve. Conforme a l'action prescrite.PyMC-11-Topic-Models.ipynb[14],DANGLING_INTRO[16](les trois sujets, mots dominantsatome,recette,four), donc avant le code qui les produit.code[4], sous ce code.Aucun
FALSE POSITIVEsur cette tranche : les quatre constats decrivent un etat reellement present surmain, verifie cellule par cellule.Le constat
[14]: un DEPLACEMENT prescrit, realise comme une FUSIONL'issue prescrit de deplacer la cellule
[14]apres le code[16]. Applique tel quel, ce deplacement laisse deux cellules de lecture pour une seule sortie : le verbatim decode[4](cellule[15]) et la lecture[14]. Le cliquetSplit-reading ratchetapplique sur ce depot la regle « un output, une lecture » (« si on rajoute une lecture, on modifie le paragraphe de lecture existant, on n'en rajoute pas un deuxieme ») : deux lectures pour une meme sortie font rougir la garde.Mesure, avant de choisir la forme : sur les 120 permutations du bloc
[13..17], 12 seulement passent le cliquet, et aucune ne donne « le code puis ses deux lectures ». La forme retenue conserve donc integralement le contenu des deux cellules et fait disparaitre leur separation :[14]est reecrite en place : elle ne lit plus que le journal d'echantillonnage produit par le code[13]au-dessus d'elle. Elle declare explicitement lerhat > 1.01que le journal affiche comme une non-convergence attendue sous prior symetrique (les labels de sujet sont interchangeables, les chaines trouvent des posterior symetriques mais distincts — la cellule markdown au-dessus du code l'explique), et renvoie aux distributions que la cellule de resultats extrait ;code[4]et le diagnostic (piege de la symetrie, pourquoi c'est pedagogiquement important) fusionnent en une seule cellule placee souscode[4].Le resultat satisfait la substance du constat — la lecture des distributions ne precede plus le code qui les produit — et la regle « un output, une lecture ». Le bloc passe de
code, markdown, markdown, code, markdownacode, markdown, code, markdown.Amendement review ai-01 sur la cellule
[13](id933dc3c8)ai-01 a releve que la premiere redaction de
[14]reecrite affirmaitle prior symetrique n'est pas rejeteetla chaine melange normalement— ce qui contredit lerhat > 1.01du journal. La cellule est reecrite une deuxieme fois pour nommer explicitement le warning comme non-convergence attendue sous prior symetrique, et le tableau du body est aligne :la cellule declare explicitement le warning rhat comme attendu. Aucun ajout surcode[4]: la sortie reste la meme, le diagnostic continue a fusionner en dessous.Invariant : aucune cellule de code modifiee
Les modifications sont markdown uniquement. Verifie mecaniquement, pas par relecture :
origin/mainet la tete : 18 cellules sur PyMC-11 et 12 sur PyMC-04, signatures identiques (type, source,execution_count,outputsJSON trie) — assertion dans le script de correction, et la comparaison par id porte sur des ensembles egaux ;"cell_type"touchee estmarkdown:+1(la lecture deplacee de PyMC-04) et-2(les deux fusions de PyMC-11). Aucune ligne"cell_type": "code"n'apparait dans le diff ;indent=1+ newline final), detecte par aller-retour sur le fichier avant ecriture.Consequence : pas de re-execution due (C.2/C.3). Les
execution_countet les sorties committes restent ceux demain, coherents avec les cellules de code inchangees.Gardes
check_split_reading_cells.py --base-ref origin/main --head HEAD0 en regression· PyMC-04 paires 0→0 · PyMC-11 paires 1→1check_interp_positioning.pyfindings total : 0check_exec_sequence.pyCLEAN (1..N)100 %, 0DIRTYcheck_cell_source_parses.py(les 2 carnets)findings: 0check_prose_quantitative_claims.py --diff origin/main...HEADaucun compteur quantitatif en prose#13326compilabilite, normalisations .NET/papermill)Perimetre
Deux carnets, quatre constats, un seul sujet : l'ordre code/interpretation. Les autres series de #18053 (17 series au total) sont hors de cette PR et seront livrees par tranches separees.
See #18053— l'issue porte d'autres series et reste ouverte.🤖 Generated with Claude Code