Skip to content

fix(search,#17863): MGS-08 — bancs GA seedés, sorties reproductibles (DLL rebuildée depuis dbcd404) - #18820

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/17863-mgs08-seed
Oct 2, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/17863-mgs08-seed

Conversation

@jsboige

@jsboige jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-dotnet — lane myia-po-2025:CoursIA — prev: DEEP/notebook-python #18819

Summary

Tranche MGS-08 de #17863 : reproductibilité du banc MGS-08-LandscapeExplorer.ipynb. Le notebook exécutait ses GA sur un FastRandomRandomization non seedé : population finale, meilleur individu et flipbook de convergence changeaient à chaque exécution.

Le seeding (pattern canonique MGS-05 / #12071) : FastRandomRandomization.ResetSeed(42) inséré dans les deux définitions de banc, immédiatement avant la création de MetaPopulation — couvre les 3 points d'appel (Sphere cellule du harnais, Sphere translatée bonus, flipbook Rastrigin 1000 individus). Commentaire-doctrine complet sur le premier site (pourquoi BasicRandomization.ResetSeed serait un no-op), référence courte sur le second. BasicRandomization.ResetSeed n'est PAS utilisé : le moteur lit RandomizationProvider.Current (FastRandom) — cf #12071, dont le périmètre n'avait pas couvert MGS-08.

Finding incident — DLL stale en contenu malgré une date fraîche : la première paire d'exécutions révélait un nondéterminisme résiduel sur la cellule « Exemple guidé N-D » (projection dim=10/30 via NDMaxProjectionAdapter), alors même qu'elle passe déjà rng: new Random(42). Cause mesurée : la MetaGeneticSharp.Extensions.dll chargée par les #r avait été compilée depuis un checkout antérieur au fix 607cf7a (per-pixel seeded RNG, bumpé le 27/08 via #13162) — preuve binaire : PixelSeed/m_pixelSeedBase absents des métadonnées de la DLL datée du 20/09, présents après rebuild depuis dbcd404. La date du binaire ne prouve pas son contenu ; le worktree rebuild depuis le source épinglé par le gitlink. Symptôme mesuré avant/après : gradient moyen d'image dim=10 à 1,18 vs 7,06 entre deux exécutions (pré-fix), identique après.

Acceptance #17863 (critère : deux exécutions → sorties identiques hors blob bootstrap kernel)

Deux exécutions complètes back-to-back (nbconvert, kernel .net-csharp) comparées cellule par cellule, output par output (hash du texte stream + hash des data de chaque output) :

  • 15/17 cellules code byte-identiques incluant les trois bancs GA seedés ;
  • les 2 écarts restants se réduisent, après le rebuild de DLL, au seul blob de bootstrap du kernel (cellule #r : diff limité au PID du process dans le context string de configuration .NET Interactive) ;
  • execution_count contigus, 0 erreur, 17/17 cellules code exécutées.

Les cellules de lecture MD ne citent aucune valeur stochastique (chiffres = refs de commit/lignes/config) — aucun re-ancrage nécessaire, vérifié cellule par cellule avant l'édition.

Sweep

Aucun référent ne cite MGS-08 au-delà du notebook lui-même (README généré par catalogue, laissé byte-identique). Sources non-exercice inchangées hors des deux insertions de seeding (+10 lignes exactement).

See #17863 (tranche MGS-08 ; restent MGS-09/13/15 et arbitrages 07b-d/17b/20) — claim : c.5946940161

🤖 Generated with Claude Code

…eproductibles (tranche #17863)

ResetSeed(42) dans RunGa et RunGaTraced avant creation de MetaPopulation
(pattern MGS-05/#12071). Re-execution x2 avec Extensions.dll rebuildee
depuis dbcd404 : 16/17 cellules identiques, seul ecart = PID du blob
bootstrap kernel. Voir #17863.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 11.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 16.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 13.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 17.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 9.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.0s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 54.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 10.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 35.4s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 17
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ 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 factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@jsboige

jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18820
head: 9e88f0d
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 50bdbc9a674a63341feed89649cd35a13e2611c93759d6a9fd498be48138cf06
diff-files: 1
diff-additions: 262
diff-deletions: 87
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit a26f1da into main Oct 2, 2026
91 of 97 checks passed
myia-ai-01 pushed a commit that referenced this pull request Oct 2, 2026
…README disait l'inverse (#18871)

Le paragraphe "Reproductibilite" affirmait "MGS-1 a MGS-9 sont stochastiques
(le RNG du framework n'y est pas seede)". Mesure firsthand sur origin/main
(2026-10-02) : les neuf notebooks MGS-01..09 appellent un seeding explicite
avant la creation de la population initiale (FastRandomRandomization.ResetSeed ;
SeededRandomization pour MGS-09) -- campagne #17863.

- paragraphe reancre sur l'etat mesure (+ renvoi #17863) ;
- lignes MGS-13 et MGS-15 ajoutees au tableau (strategie + controle
  deux-executions publie, ecart = blob bootstrap) ;
- caveat rendu explicite : controle valable hors blob bootstrap du kernel et
  a condition de batir les DLL #r depuis le gitlink courant du fork
  (avertissement #18820).

See #17863 -- residu README ; See #1203 (sous-grain).

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants