Repository navigation
fix(probas,#14122): DecInfer — purge CS1701 famille A (DisplayAs) + graine Rand d'Infer.NET - #17513
Conversation
…raine Rand d'Infer.NET
CS1701 (AspNetCore.Html.Abstractions 2.2 vs 8.0) est emis par
Microsoft.DotNet.Interactive quand display(HTML(x)) lie IHtmlContent :
x.DisplayAs("text/html") rend le meme SVG sans lier ce type. 10 sites
sur 7 notebooks (01, 03, 04, 05, 07, 08, 10), 10 avertissements -> 0.
DecInfer-07 : champ _utilities jamais lu retire (CS0169 -> 0).
La re-execution a mis au jour une derive non seedee : Gaussian.Sample()
et Beta.Sample() tirent dans Microsoft.ML.Probabilistic.Math.Rand, pas
dans le System.Random seede par l'auteur. Rand.Restart(seed) rend 04 et
10 deterministes (deux executions identiques) ; la prose de 04 cell 40,
10 cells 17/20/27 est realignee sur les sorties.
Effets de la re-execution : DecInfer-07 cell 34 rend enfin son graphe
(main portait « Aucun fichier .gv trouve » sous une prose qui le decrit) ;
DecInfer-01 cell 28 affiche « Exercice 2 » conforme a la source.
See #14122
Co-Authored-By: Claude Opus 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) |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] VERDICT: APPROVE — head 1c0cf2d8 (clusterManager-Myia, non-auteur)
Full read des 7 notebooks DecInfer au head (extraction complète + vue structurelle, pas diff-only). Vérifications exécutées :
Purge vérifiée : 0 warning CS1701/CS0169 résiduel sur les 7 fichiers ; 0 display(HTML( restant ; exactement 10 sites DisplayAs (2+1+1+3+1+1+1) comme annoncé au body ; champ _utilities retiré de DecInfer-07.
Correctif causal validé : Rand.Restart présent aux 4 sites annoncés (04 cell 39 : 42 ; 10 cells 19/22/26 : 7, 100+run, 11). Le diagnostic (Infer.NET Rand global vs System.Random local) est la bonne cause — les baselines System.Random ne bougent pas dans le tableau comparatif du body, cohérent.
Ancrages prose↔outputs (critère 2 #17040), tous exacts :
- 04 : table E[U] MD40 (0.5101/0.4884) = outputs cell 39 verbatim ; note bruit Monte Carlo cite la graine réelle du code ;
- 10 : trace MD20 ↔ output cell 19 (
[4, 7, 189]) ; MD23 (6,1 / 17,5 / 19,3) = output cell 22 verbatim ; - 07 : SVG factor-graph cell 34 bien présent inline (~4 KB), le graphe promis au body est rendu.
Gates #17040 structurels : 7/7 propres (0 header dupliqué, 0 prose empilée) ; organes corroborants dans le périmètre (H.4 outputs PASS 118 cells, golden-set 8/8 — couvre bien les fichiers du PR).
Mineur (non bloquant) : MD40 dit « environ 4.3 % » — l'écart 0.0217 donne 4.25–4.44 % selon la base ; « environ » couvre, mais une base explicite éviterait l'ambiguïté.
|
[ADJOINT PREFLIGHT] Motif READY. Lane myia-po-2025:CoursIA, tête 1c0cf2d. Structure mesurée sur les 7 notebooks à la tête :
Le périmètre du diff source correspond au body :
J'ai vérifié à l'œil les ancrages prose/sortie :
La lecture « bras 1 plus probablement meilleur que bras 2 » est donc portée par la sortie, pas plaquée. Le diagnostic C.4 (cause e, Hermes a approuvé à cette tête exacte (08:28Z). Sa remarque sur « environ 4.3 % » est notée non bloquante, et l'écart relatif de 0.0217 donne bien 4.25 à 4.44 % selon la base choisie. Checks : 0 rouge, 0 en vol, DWELL écoulé. B.0 rc=0. |
…raine Rand d'Infer.NET (#17513) CS1701 (AspNetCore.Html.Abstractions 2.2 vs 8.0) est emis par Microsoft.DotNet.Interactive quand display(HTML(x)) lie IHtmlContent : x.DisplayAs("text/html") rend le meme SVG sans lier ce type. 10 sites sur 7 notebooks (01, 03, 04, 05, 07, 08, 10), 10 avertissements -> 0. DecInfer-07 : champ _utilities jamais lu retire (CS0169 -> 0). La re-execution a mis au jour une derive non seedee : Gaussian.Sample() et Beta.Sample() tirent dans Microsoft.ML.Probabilistic.Math.Rand, pas dans le System.Random seede par l'auteur. Rand.Restart(seed) rend 04 et 10 deterministes (deux executions identiques) ; la prose de 04 cell 40, 10 cells 17/20/27 est realignee sur les sorties. Effets de la re-execution : DecInfer-07 cell 34 rend enfin son graphe (main portait « Aucun fichier .gv trouve » sous une prose qui le decrit) ; DecInfer-01 cell 28 affiche « Exercice 2 » conforme a la source. See #14122 Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Grain: MED/notebook-dotnet — lane myia-po-2025:CoursIA — prev: DEEP/qc #17509
Résumé
Purge des avertissements de compilation de la série
Probas/DecisionTheory/DecInfer/dans le cadre de l'EPIC #14122, sur 7 notebooks : 11 avertissements → 0 (10 CS1701, 1 CS0169), sans perte de rendu. La ré-exécution a mis au jour une dérive non seedée, corrigée à la source, et deux sorties périmées demain.See #14122
Classification par instance (grille #14122)
Microsoft.AspNetCore.Html.Abstractions2.2 contre 8.0), émis parMicrosoft.DotNet.Interactivequanddisplay(HTML(x))lieIHtmlContentx.DisplayAs("text/html"), qui rend le même HTML sans lier ce type (famille A, recette de #14394 / #14399 / #14401), puis ré-exécution_utilitiesdéclaré, jamais lu)#pragma warning disableest inerte ici : CS1701 est émis à la résolution de la référence, pas dans le code de la cellule.Avant / après
DisplayAsSur les 7 notebooks : 0 erreur, 0
execution_countnul, séquences d'exécution continues. Nombre de cellules, et sources markdown hors des 4 cellules réalignées ci-dessous, identiques àmain.Diagnostic dérive
Cause (e) : stochasticité non seedée.
Gaussian.Sample()(DecInfer-04) etBeta.Sample()(DecInfer-10) tirent dansMicrosoft.ML.Probabilistic.Math.Rand, le générateur global d'Infer.NET. Les graines posées par l'auteur surSystem.Randomn'y arrivent jamais. La preuve se lit dans les sorties, sur un même code :mainLes baselines, qui tirent dans
System.Random, ne bougent jamais. Tout ce qui passe par Infer.NET bouge, et la prose de 04 cell 40 était déjà désalignée surmain(0.5100 et 0.4852 contre 0,5084 et 0,4861 en sortie).Correctif :
Rand.Restart(seed)à côté de chaque graine existante (04 cell 39 : 42, qui remplace unnew Random(42)jamais utilisé ; 10 cells 19, 22 et 26 : 7,100 + runet 11). Deux exécutions successives rendent des sorties identiques. Les seules différences entre elles sont le port du bandeauprobeAddresses, retiré ensuite, les noms horodatés des fichiers.gvet les durées de la cell 16, qui sont des temps réels.Prose réalignée sur la sortie seedée, en markdown seul et après exécution :
maindécrivait déjà mal le pas 1 (« bras 2 sort à 0,67 »).main: ce seuil ne se lit pas de façon stable. Deux renvois de position faux sont corrigés au passage : « cellule suivante » et « juste en dessous » désignaient le §4.1, qui est au-dessus.Verdict :
CAUSE_FIXED.Autres effets de la ré-exécution
mainy portait le bandeau d'échec « Aucun fichier .gv trouve », sous une cell 35 qui décrit « le graphe de facteurs ci-dessus ». La ré-exécution rend le graphe réel (4 nœuds, 3 arêtes).mainannonçait « Exercice 3 » alors que la source dit « Exercice 2 ». La sortie est désormais conforme.mainsont remplacées par celles, accentuées, de la source actuelle.<div>de chargement de dotnet-interactive apparaît dans la cellule#r. C'est la sortie normale du noyau ;mainle porte déjà dans 07 et 08.mainstockait chaque flux sous forme de chaîne unique. Papermill écrit la forme canonique nbformat, une liste de lignes, ce qui explique l'essentiel des lignes de diff de ce notebook, à contenu identique.Validation
.net-csharp,--cwdsur le dossier de la série, Graphviz 14.1.5 dans lePATH:rc=0sur les 7 notebooks.strip_probe_banner.py --applyetscrub_papermill_paths.py --applypassés après exécution.scrub_papermill_paths.py --outputs --scan: 0 fuite de chemin.validate_pr_notebooks.py origin/main: 7/7 PASS, 118 cellules de code.check_output_failure_text.py: 0 régression.check_output_collapse.pyetcheck_source_collapse.py: 0 signalement.grep -E "raise NotImplementedError|assert False|1/0": 0 sur les 7 notebooks.🤖 Generated with Claude Code