Repository navigation
fix(notebook-python,#18053): tranche QuantConnect -- 6 constats d'ordre code/interpretation corrigés - #18136
Conversation
…re code/interpretation corrigés Re-verification first-hand de chaque constat sur origin/main avant correction : hmm_alpha_research [52] annonce du code 3 cellules plus loin (Exo 3 intercale) -- deplacement de [55] apres [52]. QC-Py-24 [9] annonce "cellule suivante" pour du code 2 cellules plus loin (separateur ***) -- reformulation. QC-Py-31 [47] annonce du code qui n'existe pas dans ce carnet -- reformulation (le squelette main.py reste a copier depuis la doc QC Lab, pas de fabrication). QC-Py-32 [35] interpretation composite (metriques + figure) placee entre les deux codes -- fusion [35] en tete de [37], 0 SECOND_READING. QC-Py-33 [17] annonce value_coef "cellule suivante" qui est Exo 1, pas le PPOAgent -- separation en deux cellules, transition value_coef distincte. QC-Py-Cloud-05 [5] cellule hybride (lecture demo + intro Partie 2) -- separation, annonce reformulee pour pointer la section Algorithme plus loin. Aucune cellule de code modifiee (invariant par id sur 6 carnets). Sorties committes preservees, pas de re-execution due (C.2/C.3). Co-Authored-By: Claude Haiku 4.5 (1M context) <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 |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
… STALE_BLOCK leve Le deplacement de la cellule Summary table (compute_verdict) entre [52] et l'Exercice 3 declenchait le ratchet STALE_BLOCK sur origin/main : la cellule de code changeait de position mais metadata.papermill datait du 2026-07-31. Re-execution via papermill (54 s, exit 0, 0 exception) : metadata.papermill reecrit, outputs dans le nouvel ordre (compute_verdict = exec 22 entre markdown [52] et exercice 3). Le verdict passe de STALE_BLOCK a BLOCK_MOVED, 0 regression (rapporte par check_papermill_ratchet.py origin/main). Sorties preservees -- pas d'invention de valeurs (C.2 / Stop & Repair). Les 5 autres carnets de la tranche ne bougent pas. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Re-execution de hmm_alpha_research (papermill, 54 s, exit 0) sur le commit deplacement de la cellule Summary table (compute_verdict). Le ratchet |
…3.13 Le commit precedent deplacait la cellule Summary table (compute_verdict) mais le ratchet papermill levait STALE_BLOCK (metadata.papermill du 2026-07-31). Premiere re-execution locale Python 3.11 levait le STALE_BLOCK mais declenchait un kernel drift 3.13 -> 3.11 (repr() potentiellement different). Deuxieme re-execution sous kernel python313 (Python 3.13.13) + hmmlearn 0.3.3 (la ML-Training-Pipeline depend de hmmlearn, non reference dans QuantConnect/requirements.txt) preserve la version originale 3.13.x et reproduit les sorties sans drift. 0 exception, 61 s, 27 cellules code, exec_count/outputs coherents. Le ratchet papermill passe de STALE_BLOCK a BLOCK_MOVED (non-regression) ; le kernel drift guard passe de 3.11 -> 3.13 a 3.13 -> 3.13. Sorties preservees -- pas d'invention de valeurs (C.2 / Stop & Repair). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Re-execution corrigee en Python 3.13 (kernel |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] — review full-read head ee7c8880 (P4 : >5 fichiers).
Verdict : APPROVE — 6 constats d'ordre code/interprétation corrigés proprement, exécution réelle.
Vérifications :
- Delta réel isolé du churn (filtre papermill/timestamps sur le diff 1,65 Mo) : le gros fichier
hmm_alpha_research.ipynbne change QUE par re-exécution authentique (timestamps 2026-09-27T22:14,Model is not convergingre-émis avec deltas nouveaux, figures matplotlib re-rendues — iVBOR + numpy 2.3.4/pandas 2.3.3 vs 2.4.3/3.0.2 avant). Zéro changement de prose dans ce fichier. - Claims de déplacement vérifiées au head : (a) QC-Py-24 — le fenêtrage
prepare_sequencesest bien APRÈS la classeTemporalVAE(cell. 13 > cell. 11), la prose corrigée dit vrai ; (b) QC-Py-Cloud-05 — la prose renvoie désormais à « Partie 2 : Algorithme QuantConnect » (cell. 6), section existante, l'exercice seuil (cell. 7) la précède — ordre exact ; (c) QC-Py-31 — l'interprétation référence les 4 composants du main.py au lieu du faux « copier dans main.py » ; bonus hygiene :output_pathscratchpad → nom propre. - QC-Py-32 : lecture DQN déménagée de mauvaise place → placée après sa cellule (gate #17040 placement respectée), texte inchangé par ailleurs. QC-Py-33 : split en deux cellules avec nouvelle section « Couplage base partagée » qui déplace le renvoi
value_coefau bon endroit. - Gates #17040 programmatiques sur le head : exec_count 1→27 sans trou, 0 null. Les valeurs citées non triviales des lectures sont toutes présentes dans les outputs committés (les hits résiduels de mon grep : années, tailles de liste, références croisées à d'autres sections — pas des données de run).
- CI : 81 checks pass, organe H.4 outputs-required PASS, validate-notebooks/PR gate en pending (balayage) — aucun rouge au moment du verdict.
[Hermes hermes-pr-review, cycle :22 27/09, host f6be46d1b7a3, sig=aacee8a5]
|
[ADJOINT PREFLIGHT] Dossier READY sur PR #18136 (lane Substance : fix(notebook-python,#18053): tranche QuantConnect -- 6 constats d'ordre. Substance : +434/-438 sur 6 fichiers. Grain État : CLEAN+MERGEABLE+rev=APPROVED, B.0 rc=0, tous checks verts.
|
Grain: MED/notebook-python — lane myia-po-2026:CoursIA-2 — prev: LIGHT/tooling #18037
Tranche QuantConnect de #18053
Six carnets, six constats, re-verifies firsthand sur
origin/main(protocole audit-reassessment).QuantConnect/ML-Training-Pipeline/hmm_alpha_research.ipynbcompute_verdictest à [55].QuantConnect/Python/QC-Py-24-Autoencoders-Anomaly.ipynb***; le code de découpage est plus loin.QuantConnect/Python/QC-Py-31-Transformer-Training.ipynbmain.pyd'un projet QC Lab » mais [48] est une interprétation markdown, pas du code ; le codemain.pyn'est nulle part dans ce carnet.PositionalEncoding,TransformerPredictor,TransformerAlphaModel,TransformerMultiAssetStrategy) ; le squelette complet reste à copier depuis la documentation QC Lab. Pas de fabrication de code (règle H.1) — l'option « ajouter une cellule CODE » aurait demandé d'inventer un squelette.QuantConnect/Python/QC-Py-32-RL-DQN-Trading.ipynbSECOND_READING. La fusion préserve le compte de lectures (3 avant, 3 après). Mesure simulée : 0SECOND_READING.QuantConnect/Python/QC-Py-33-RL-PPO-Trading.ipynbvalue_coefde la cellule suivante vient équilibrer » — mais la cellule suivante [18] est un Exercice 1 (clip ratio), pas le PPOAgent (qui vit à [20]).value_coefcomme hyperparamètre et annonce sa définition complète dans la section Agent PPO plus loin. [18] ancien (Exercice 1) → [19], etc.QuantConnect/Python/QC-Py-Cloud-05-MLP-Forecasting.ipynbAucun
FALSE POSITIVEsur cette tranche : les six constats se vérifient sur la version courante demain.Forme des corrections — pourquoi la mesure avant application
Pour la fusion de [35] dans QC-Py-32, j'ai mesuré la même mécanique que dans la tranche SmartContracts (
split-reading-ratchet-budget.md: un déplacement pur qui place une lecture après la sortie qu'elle commente fait passer le compte de lectures de cette sortie denàn+1, et le cliquet le détecte enSECOND_READING). La fusion préserve le compte de lectures et atteint la destination prescrite par l'issue.Pour les autres constats, l'édition est purement textuelle (pas de déplacement de cellule), donc le cliquet n'a aucune prise : je n'ai pas eu besoin de simuler.
Invariant : aucune cellule de code modifiée
Appariement par id des cellules de code avant/après :
Aucune ligne
"cell_type": "code"n'apparaît dans le diff brut en ajout ou en suppression ; aucune cellule de code n'a sonexecution_countou sesoutputsmodifiés.Conséquence : pas de ré-exécution due (C.2/C.3). Les sorties committées restent celles de
main. Lesgit diffconfirment des+++----qui n'affectent que les cellules markdown.Gardes
check_split_reading_cells.py --base-ref origin/main --head HEAD0 en regressioncheck_interp_positioning.pyPérimètre
Six carnets, les six constats de l'issue pour cette série. Les autres séries de #18053 sont livrées par tranches séparées (déjà mergées ou en cours par cette lane : Audio #18073, Image #18075, DecisionTheory #18103, PyMC #18106, IIT #18107, RL #18109, Probas #18103, SmartContracts #18115).
See #18053— l'issue porte d'autres séries et reste ouverte.🤖 Generated with Claude Code