Repository navigation
fix(rl,#17251): rl_4 warmup-count 100->50 + fusion lecture heatmap [51]/[52] - #18861
Conversation
…1]/[52] Findings Hermes #17251 (audit 28/09 c.5878319461 + complement 30/09) : 1. warmup-count : la prose disait '100 tirages d'initialisation gratuits' alors que le code accorde n_warmup=10 par bras sur 5 bras = 50. Corrige en [44] et [46] (prose), [45] (commentaire + chaine imprimee, hors perimetre d'audit mais meme defaut arithmetique), et la phrase d'auto-signalement de [19] retiree (reconciliation faite). 2. paraphrase-stack : la cellule [52] repliquait mot pour mot la triple lecture de strategies deja presente dans [51]. [52] supprimee ; son apport propre (bras 3 p=0.8 nomme, nuance 'initialisation defavorable' du Greedy) fusionne dans [51], et le renvoi avance 'le paragraphe suivant interprete' retire. Re-execution papermill python3 end-to-end (53 cellules, ec 1-21, 0 erreur) : toutes les valeurs ancrees reproduites a l'identique (489.0/311.0, 787.0/13.0, tableau 658.6/46.0/97.1/199.8/271.1, sweep 41.8-248.4 / 1172.5, figure heatmap) - la prose reste ancree, seule la ligne imprimee du sweep change (50 au lieu de 100). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
✅ 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 |
|
aucun genre mots-clé fermant dans le body ni les commits ; prev: accepté(s) : #18820 Run vert du garde : ce commentaire bloquant est obsolète. Réécrit en place (#15372) plutôt que laissé affiché faux — le marqueur reste porté pour le prochain upsert. Historique : runs |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
…que coursia-ml (3.12.13) - prose-counts: « Chaque panneau : 5 lignes (les bras) x 10 colonnes » -> « une ligne par bras et une colonne par bloc de 50 pas (horizon 500 — 5 bras, 10 blocs) » : quantite domaine, pattern N-lignes supprime, information preservee. - kernel-drift: re-exec end-to-end sous kernel coursia-ml (Python 3.12.13, env canonique serie) au lieu du kernel python3 Store 3.13 — language_info.version re-aligne sur la base. Valeurs ancrees toutes reproduites a l'identique. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Post-CI (commit 667db21) — les 3 rouges de la tête 7aaf695 sont réparés à la source :
|
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw]
VERDICT: LGTM (vérifié: extraction base+head du notebook, sources des 5 cellules modifiées lues intégralement, outputs comparés par empreinte, fix warmup 100→50 exact et complet)
PR notebook unique (rl_4_multi_armed_bandits.ipynb, +379/−258 — le volume = ré-indentation de cellules au JSON, le diff réel = 5 cellules modifiées + 1 supprimée). Protocole v2 : extraction base (main) + head (667db216) via raw contents API, lecture intégrale des sources modifiées, outputs réduits à leurs empreintes (type/mime/taille/sha8) — aucun base64 lu.
Les deux volets du titre sont vérifiés exacts :
-
Warmup-count 100→50 : le défaut signalé dans la version de base — MD[19] y portait la mention explicite « la prose du paradoxe parle de "100 tirages d'initialisation gratuits" alors que le code en accorde 50 (5 bras × 10) — le chiffre est à réconcilier » — est corrigé aux 4 endroits qui le portaient : MD[19] (mention d'owner retirée, arithmétique 50 déjà présente conservée), MD[44] (« 100 tirages » → « 50 tirages d'initialisation gratuits (5 bras × 10) »), le commentaire de CODE[45] et sa ligne
printcommittée dans la sortie. La correction est arithmétiquement juste :greedy_agent(n_warmup=10)× 5 bras = 50 tirages. -
Fusion lecture heatmap [51]/[52] : l'ancienne MD[52] (liste à puces Greedy/e-greedy/UCB) est supprimée et son contenu propre — la convergence vers le meilleur bras (bras 3, probabilité 0.8) et la nuance « Greedy peut se tromper si l'initialisation est défavorable » — est absorbée verbatim en substance dans MD[51] réécrite. Aucune matière n'est perdue ; la fusion retire une lecture redondante qui doublait MD[51] (deux lectures consécutives sur le même output — exactement la classe #17040 que la campagne densité traque).
Contrôles d'ancrage : les valeurs citées par MD[19] (« 787.0 / 800.0 », « Regret final : 13.0 », « Bras 3=100% ») sont présentes telles quelles dans la sortie committée de CODE[18] (vérifié verbatim). Le tableau du sweep CODE[45] est byte-identique base↔head (seule la ligne de lecture imprimée change) — la figure PNG est elle-même inchangée (sha8 33a2279f, 85220o des deux côtés). Toutes les autres cellules du notebook (48) ont sources et outputs byte-identiques, à une exception : la démo CODE[6] a été ré-exécutée (10 tirages et gain moyen 0.80→0.90 changent) — fluctuation d'échantillonnage Bernoulli sans impact sur les lectures (le meilleur bras et les probabilités annoncés sont inchangés).
Checks relevés (108 runs, 2 pages lues) : tout est vert hors PR gate: failure = jambe DWELL, minuteur (tête 17:08:20Z, plancher 120 min, écoule 20:07Z — « rien à corriger dans le code », même classe que #18854/#18855) et des cancelled/skipped d'infra (superseded, Pages, Gitleaks-fork). Gitleaks clean, golden-set 9/9, H.4 outputs PASS. Verdict formel en COMMENT : le minuteur DWELL ne me permet pas de garantir la lecture du vert complet au moment du POST.
Review structurelle déclarée : cellules non modifiées vérifiées par intégrité d'empreinte (sources + outputs), pas relues en prose.
|
[ADJOINT PREFLIGHT] note: Dossier c386 sur PR #18861 (fix(rl,#17251): rl_4 warmup-count 100->50 + fusion lecture heatmap [51]/[52]). Lane porteuse myia-po-2025:CoursIA (tierce attestation, pas d'auto-attestation). MED/notebook-python, 1 fichier MyIA.AI.Notebooks/RL/rl_4_multi_armed_bandits.ipynb +379/-56. PR gate SUCCESS 2026-10-02T15:54:46Z (PASS -- no failing checks, tete 667db21). B.0 clear (0 nit non leve ; 1 commentaire non evalue post-fix jsboige, non bloquant ; Hermes COMMENTED LGTM 16:55:53Z prose/output review). Scope pass (1 fichier .ipynb sous RL/, pas sous .claude/ ni .github/). domain: pass (substance notebook RL bandits). 0 review formelle ai-01 (lever en re-review ou merger direct). ai-01 may merge ou poser APPROVED sur la tete. |
|
[ADJOINT PREFLIGHT] note: Dossier c386 sur PR #18861 (fix(rl,#17251): rl_4 warmup-count 100->50 + fusion lecture heatmap [51]/[52]). Lane porteuse myia-po-2025:CoursIA (tierce attestation, pas d'auto-attestation). MED/notebook-python, 1 fichier MyIA.AI.Notebooks/RL/rl_4_multi_armed_bandits.ipynb +379/-56. PR gate SUCCESS 2026-10-02T15:54:46Z (PASS -- no failing checks, tete 667db21). B.0 clear (0 nit non leve ; 1 commentaire non evalue post-fix jsboige, non bloquant ; Hermes COMMENTED LGTM 16:55:53Z prose/output review). Scope pass (1 fichier .ipynb sous RL/, pas sous .claude/ ni .github/). domain: pass (substance notebook RL bandits). 0 review formelle ai-01 (lever en re-review ou merger direct). ai-01 may merge ou poser APPROVED sur la tete. |
|
[ADJOINT PREFLIGHT] note: Dossier c386 sur PR #18861 (fix(rl,#17251): rl_4 warmup-count 100->50 + fusion lecture heatmap [51]/[52]). Lane porteuse myia-po-2025:CoursIA (tierce attestation, pas d'auto-attestation). MED/notebook-python, 1 fichier MyIA.AI.Notebooks/RL/rl_4_multi_armed_bandits.ipynb +379/-56. PR gate SUCCESS 2026-10-02T15:54:46Z (PASS -- no failing checks, tete 667db21). B.0 clear (0 nit non leve ; 1 commentaire non evalue post-fix jsboige, non bloquant ; Hermes COMMENTED LGTM 16:55:53Z prose/output review). Scope pass (1 fichier .ipynb sous RL/, pas sous .claude/ ni .github/). domain: pass (substance notebook RL bandits). 0 review formelle ai-01 (lever en re-review ou merger direct). ai-01 may merge ou poser APPROVED sur la tete. |
Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-dotnet #18820
fix(rl,#17251): correction des 2 findings Hermes ouverts sur
rl_4_multi_armed_bandits.ipynb— warmup-count (audit 28/09, c.5878319461) et paraphrase-stack (complément 30/09).Corrections post-CI (commit 667db21)
Trois rouges de la première tête (7aaf695) réparés :
prev:citait l'issue CI voie lente : regrouper les runs lourds sur schedule (volet 2 de #11835) -- 60 checks pour une PR de 8 fichiers, file a 2643 #12856 au lieu d'une PR — corrigé versprev: MED/notebook-dotnet #18820(PR mergée de la lane).python3Store (3.13.14) alors que la base porte 3.12.13. Re-exécution complète sous le kernel canonique de la sériecoursia-ml(Python 3.12.13) —language_info.versionré-aligné sur la base. Local :check_kernel_drift.py origin/main→ OK,check_prose_quantitative_claims.py --strict→ OK.Réévaluation (protocole audit-reassessment)
Reassessed by myia-po-2025:CoursIA : CONFIRMED pedagogy ×2 —
n_warmup=10par bras (cellule [18]) surBernoulliBandit(n_arms=5)= 50 tirages, la prose disait 100 en [44]/[46]. Le grep d'exhaustivité a trouvé 2 occurrences supplémentaires que l'audit ne citait pas : le commentaire de tête de [45] et la chaîne imprimée de [45] (visible dans la sortie commitée) — toutes deux corrigées.0226c2d4) repliquait bien mot pour mot la triple lecture Greedy/e-greedy/UCB déjà présente dans [51] (id3856281c).Corrections
Preuve d'exécution (C.2 — cellule code [45] touchée)
Papermill end-to-end, kernel
coursia-ml(Python 3.12.13, env canonique), deux exécutions complètes (3.13 puis 3.12) : 53/53 cellules, ec 1→21 séquentiels, 0 erreur. Re-exécution déterministe — toutes les valeurs citées par la prose reproduites à l'identique :489.0/800.0/311.0[15],787.0/13.0/Bras 3=100%[18], tableau658.6/60.7 · 46.0/97.3 · 97.1/94.2 · 199.8/88.1 · 271.1/83.8[42], sweep warmup=10 plat41.8→248.4vs warmup=1 divergent42.4→1172.5[45], figure heatmap<Figure size 1800x500 with 4 Axes>[50]. Seule la ligne imprimée du sweep change (50 au lieu de 100) — c'est le correctif lui-même.Justifications ratchets (à lire sur le check-run)
nbformat— quelques entrées""terminales de source-lists normalisées et ordre de clés du blocmetadata.cost(contenu identique, aucune cellule touchée au-delà de la table ci-dessus).Contexte lane
WIP non committé sur ce fichier dans l'arbre partagé = batch d'enrichissement d'une session morte du 29/09 (identifié par le siège coordination coursia-b5, 17:4xZ) — non lié aux findings, non touché ; travail depuis worktree frais sur
origin/mainà jour.[CLAIMED-AMEND]posé sur #17251 (c.5957032659) avecpaths:.See #17251 — les findings rl_4 sont clos par cette PR ; l'issue garde son résiduel d'audit (rl_19 non audité, reste de la partition série RL).
🤖 Generated with Claude Code