Repository navigation
[DecisionTheory/PyMC] Requalifier l'indispensabilité MCMC dans DecPyMC-7 #15109
Description
Contexte
Audit Astra/Fable reproduit indépendamment sur MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-7-Sequential.ipynb, commit 9cc4aa0cf242d8c3d96ac2c5da6f94f0deaafb4e, blob babd8e076c40ec7b560157db32af598400c1e234. Sur origin/main b646b2fca04083419a09cb076af2384db12b85a5, les cellules ont été décalées de 4 positions mais leurs IDs et SHA-256 sources sont inchangés : 90cda2a3 (index 56, 2e57b060...), df1a0888 (index 57, 67e4d396...), 7f6919a8 (index 58, e4cc0aeb...).
Le code est bien un Thompson Sampling approximatif par lots : il ajuste le posterior avec les seules observations disponibles, sélectionne une ligne jointe de moyennes posterior, choisit argmax, puis collecte le lot suivant. Aucune fuite temporelle n'a été détectée. Le finding porte sur la revendication distincte selon laquelle PyMC/NUTS devient « indispensable » pour le modèle gaussien à variance inconnue présenté ici.
Finding reproduit
Le modèle exact de la cellule df1a0888 est :
mu_i ~ Normal(0, 25);sigma ~ HalfNormal(2)commun ;y_ij | mu_i, sigma ~ Normal(mu_i, sigma²).
Sachant sigma, les moyennes sont conditionnellement conjuguées. On peut marginaliser analytiquement les mu_i, puis intégrer en une dimension sur log(sigma). Cette quadrature calcule les probabilités d'action pour le même modèle sans échantillon PyMC.
Exécution fraîche de la définition exacte extraite par AST :
| État avant décision | P(bras 1), quadrature | Fréquence maxima NUTS, 200 draws |
|---|---|---|
[0.45] vs [0.55] |
0.554319 | 0.535 |
[0.45] vs [0.55, 1.8, -0.2, 1.3] |
0.645127 | 0.580 |
[0] vs [0] |
0.500000 | 0.485 |
[0] vs [0, 4, -4, 0] |
0.500000 | 0.535 |
Le dernier cas contrôle une symétrie de signe malgré des tailles et dispersions différentes. La permutation des bras donne 0.5543185779 + 0.4456814221 = 1.000000000000004. Un cas à sigma connu donne 0.555954 analytiquement contre 0.556292 sur 500 000 tirages normaux.
La temporalité est correcte : les fits voient 2 puis 5 observations, jamais les 8 observations finalement retournées. Néanmoins, le trace retourné précède le dernier lot et n'est donc pas ajusté sur toutes les récompenses retournées.
Les petits fits NUTS reproduits montrent aussi des diagnostics insuffisants (jusqu'à 2 divergences, R-hat/ESS avertis). Cela ne prouve pas un biais, mais interdit de présenter leurs fréquences d'action comme une référence précise.
Portée
Le modèle n'est pas purement conjugué ; le finding ne prétend pas le contraire. Il montre seulement que « non-conjugué » n'implique pas « MCMC indispensable » : une marginalisation analytique et une quadrature 1D conviennent à ce modèle précis.
PyMC reste pertinent pour des modèles réellement plus complexes — mélanges, hiérarchies riches, vraisemblances non standard — mais cet avantage n'est pas démontré par la cellule actuelle. Les timings locaux de quadrature et NUTS ne doivent pas être épinglés dans la prose.
Correction demandée
- Présenter la cellule actuelle comme une illustration correcte de Thompson Sampling par lots avec NUTS, sans revendiquer l'indispensabilité ou un avantage comparatif démontré.
- Distinguer « applicable à une famille de modèles » de « nécessaire pour ce modèle précis ».
- Dire que le modèle actuel admet une alternative de marginalisation + quadrature ; réserver l'avantage PyMC aux extensions réellement plus complexes.
- Clarifier que le trace retourné précède le dernier lot, ou refaire un fit final si le trace doit représenter toutes les récompenses retournées.
- Ajouter un contrôle de diagnostics : une démonstration ne doit pas interpréter les probabilités d'action comme précises si divergences/R-hat/ESS sont insuffisants.
Critères d'acceptation
- Plus aucune affirmation « PyMC/MCMC indispensable » pour le modèle gaussien actuel.
- La politique est explicitement qualifiée de Thompson Sampling par lots.
- Aucune fuite temporelle : chaque fit ne voit que les récompenses antérieures à la décision.
- Le contrat du trace retourné est explicite ou le trace est réajusté après le dernier lot.
- Diagnostics suffisants, ou limites affichées honnêtement sans prétendre à une probabilité posterior précise.
- Si le notebook conserve un claim d'avantage MCMC, comparaison multi-trajectoires à une baseline non-MCMC appropriée avec métrique et budget annoncés.
- Notebook réexécuté intégralement après toute modification code, outputs réels, 0 erreur ; jamais d'édition manuelle des outputs.
- Aucun rapport d'audit committé ; catalogue et fichiers générés intacts.
Activity
jsboige commentedon Sep 7, 2026
Grain: MED/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/guard #15085
[CLAIMED] lane myia-po-2024:CoursIA-2 -- paths: MyIA.AI.Notebooks/Probas/DecisionTheory/PyMC/DecPyMC-7-Sequential.ipynb
Dispatch adjoint après finding Astra reproduit indépendamment. Préserver le Thompson Sampling par lots valide ; requalifier seulement l'indispensabilité MCMC et le contrat du trace.
Grain: MED/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/…
Grain: MED/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/…
Grain: MED/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/…