Repository navigation
fix(probas,#18545): DecPyMC-7 -- la comparaison VI/PI/RTDP mesure ses sweeps au lieu de les coder en dur - #19976
Conversation
… sweeps La cellule `measure_performance` presentait trois compteurs d'iterations litteraux (14, 3, 100) melanges, dans la meme ligne d'affichage, a des valeurs reellement mesurees (temps, erreur). Le tableau de synthese heritait de ces litteraux et les donnait pour des resultats. `value_iteration` et `policy_iteration` retournent desormais leur nombre de sweeps (patron deja en place dans `value_iteration_shaped`), RTDP expose des trials et non des iterations, et les TODO d'exercice suivent la signature. La prose de la synthese est corrigee sur deux points que la mesure contredit : PI n'est pas "le plus efficace" sur cette grille -- il est plus lent en temps que VI, chaque sweep balayant jusqu'a 50 fois l'espace d'etats -- et il ne converge pas "exactement" : l'evaluation de politique tronquee a 50 balayages laisse un ecart residuel de 4e-4. Re-execution papermill (72/72 cellules, 0 erreur) : 14 sweeps pour VI, 3 pour PI, ecart 4e-4, couverture RTDP 63,6 % -- la mesure confirme la prose corrigee. Les 6 PNG produits par le carnet sont regeneres. See #18545 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Kernel drift guard rouge: la premiere re-exec avait stampe 3.12.10 (interpreteur 3.12 par defaut) alors que le carnet porte 3.13.14 sur main et que la serie DecPyMC est majoritairement 3.13 (5/8). Re-exec in-place sous C:/Python313 (pymc 6.0.1, arviz 1.1.0): 72/72, 0 erreur, source byte-identique, valeurs deterministes inchangees (VI 14 sweeps / PI 3 sweeps erreur 4e-4 / RTDP 100 trials couverture 63.6%). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Rouge La re-exécution initiale avait tourné sous l'interpréteur 3.12 par défaut (stamp L'advisory |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
[ADJOINT PREFLIGHT] |
Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: MED/refactor #19972
Ce que corrige la PR
Audit de la partition #18545 (tranche 5 —
DecPyMC-7-Sequential.ipynb, seul notebook non coché de la checklist). Trois constats, tous vérifiés contre les sorties committées avant le fix :1. La comparaison VI/PI/RTDP présentait des compteurs codés en dur comme des mesures. Dans
measure_performance, les trois compteurs d'itérations étaient des littéraux ('iterations': 14,3,n_trials) mêlés, dans les mêmes lignes d'affichage, à des valeurs réellement mesurées (temps, erreur) — la forme la plus trompeuse du défaut. Le tableau « Résultats quantitatifs » de la cellule markdown héritait de ces littéraux.2. Le verdict « PI est le plus efficace … converger exactement » contredit sa propre mesure. La sortie montrait VI 0,52 ms / PI 1,33 ms (PI 2,6× plus lent) et une erreur PI de 4·10⁻⁴ (non nulle). La cause est structurelle : l'évaluation de politique de PI est tronquée à 50 balayages, et chaque sweep PI coûte jusqu'à 50 fois un sweep VI.
3. La synthèse finale reprenait
~14/~3sans qualifier la grille où ils sont observés.Le correctif
value_iterationetpolicy_iterationretournent désormais(V, policy, n_iterations)— patron déjà en place dans ce même carnet pourvalue_iteration_shaped(cellule §7, qui exposeiters_shaped).trials(et noniterations) ; la ligne du tableau rend « 100 trials ».# TODO etudiant : …).Tempsdu tableau mesuré.Re-exécution sous canon 3.13 (kernel drift, commit
c3ae90f14f)La première re-exécution avait tourné sous l'interpréteur 3.12 par défaut (stamp
3.12.10), déclenchant leKernel drift guard: le carnet porte3.13.14surmainet la série DecPyMC est majoritairement 3.13 (5/8 carnets). Re-exécution in-place sousC:/Python313(pymc 6.0.1, arviz 1.1.0) : source byte-identique entre les deux exécutions, valeurs déterministes inchangées (sweeps 14/3, erreur 4·10⁻⁴, couverture 63,6 %), seuls outputs + stamp bougent.Validation
python3=C:/Python313: pymc 6.0.1, arviz 1.1.0, py 3.13.3)execution_countnul, 0 sortie vide — durée ~104 s (commitc3ae90f14f)fast_lane.py --dry-run)check_markdown_claims_output.pyclaim-checkdu §7 restentSUPPORTED; unique finding inchangé (valeurs de l'énoncé d'exercice, préexistant)Les 6 PNG produits par le carnet (
vi_convergence_grid,reward_shaping_*,bandit_4strategies,arviz_trace_maintenance,posterior_predictive_maintenance) sont régénérés — ils sont non référencés hors du carnet et sont les sorties de l'exécution ci-dessus.Résiduel constaté, hors périmètre de cette PR
check_markdown_claims_output.py: 60 findings sur la série DecPyMC, quasi tous faux positifs (énoncés d'exercices, dérivations LaTeX analytiques, constantes de domaine). Rapporté sur [Audit #17073] Série DecPyMC — partition Hermes #18545.See #18545
🤖 Generated with Claude Code