Repository navigation
fix(search,#13778): restore MGS-28 non-regression run - #15647
Conversation
Les trois directives #r de la cellule socle pointaient ../MetaGeneticSharp, une profondeur calculee quand le notebook vivait a la racine de Part4-Metaheuristics/. L'isolation des face-a-face MGS vs mealpy dans MGS-vs-mealpy/ (cause #13959) a ajoute un niveau : la cellule ne resolvait plus rien, et les sorties -- transportees telles quelles, jamais re-confirmees -- s'etaient figees. Corrige en ../../MetaGeneticSharp (memes DLLs net9.0 Debug, meme gitlink 78ce550) et re-execute de bout en bout au kernel .net-csharp reel (pont PythonNet 3.1.0 vers mealpy 3.0.2). Aucune sortie n'est editee a la main ; le seul normalisateur applique est strip_probe_banner.py (post-re-exec). Detection Clerc re-alignee. L'introduction et le commentaire de la cellule de detection affirmaient que les sept variantes PSO de mealpy 3.0.2 portent w/c1/c2 ; le catalogue imprime le contredit pour P_PSO (aucun parametre liste). Six variantes exposent explicitement w/c1/c2 ou leurs variantes (w_min/w_max/ci/cf/c_local) ; la septieme, P_PSO, porte des coefficients sin/cos dynamiques sur la meme mise a jour de vitesse. La conclusion ("aucun n'est bare-bones") tient ; la raison invoquee est corrigee dans les deux loci (cellule 0/7/8/9 du notebook). Prose re-alignee sur les sorties fraiches (C.4/C.5), trois contradictions qui avaient survecu au gel : R1 annoncait 51 genes alors que la sortie en compte 36 ; les graines 1/7/42 etaient dites "en croisement" alors que le classifieur imprime les donne *mixtes* (graine 0 *persistante*, MGS deja derriere au cp25, 33 contre 32) ; les temps muraux absolus sont retires au profit des seuls rapports de ce passage (0,38x ms/eval ; 6,30x Python/C#), ces rapports variant eux-memes d'un passage kernel a l'autre. Section ## Diagnostic derive ajoutee, verdict CAUSE_FIXED pour la cause et NO IMPROVEMENT pour l'axe performance (invariance mesuree contre le moteur mis a jour ; livrable = executabilite restauree + non-regression mesuree). Non-regression mesuree sur sept executions completes : conflits finaux par graine (31/31/29/30 MGS, 19/25/26/27 mealpy), checkpoints, budget d'evaluations (8000/8050) et drapeau 12/12 bras-graines stables sont identiques au baseline committe. Seuls les temps muraux et la version patch de Python (3.13.3 -> 3.13.12) different. See #13778 Co-Authored-By: Claude Code <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
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) |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié: fetch du notebook au head 3b2e71e — 3 refs #r corrigées, 10/10 cellules exécutées, grandeurs du tableau présentes dans les outputs)
[Hermes] — #15647 review du head 3b2e71e (fix #13778, restore MGS-28).
Vérifications firsthand sur le notebook au head :
- Cause racine et complétude du fix : les 3 directives
#rpointent bien../../MetaGeneticSharp/.../net9.0/*.dll; les 6 occurrences restantes de../MetaGeneticSharpen simple profondeur sont toutes dans la prose markdown (diagnostic « Cause (a) », citation de l'ancien chemin cassé) — application symétrique vérifiée, aucun chemin de code résiduel. - Exécution authentique : 10/10 cellules code,
execution_count1..10, 0 erreur, outputs présents (~4,9K chars), pas de trace d'ename/traceback. La rupture était masquée par les outputs gelés — exactement le diagnostic C.4 du body. - Cohérence claims ↔ outputs : les finales du tableau de non-régression (MGS 31/31/29/30, mealpy-mgs 19/25/26/27) et les médianes
30,5/25,5apparaissent toutes dans les outputs réels. Le verdictNO IMPROVEMENTest une conclusion du body, pas une chaîne cherchée dans les sorties — honnête (le livrable revendiqué est l'invariance mesurée, pas un gain). - Périmètre discipliné : 1 fichier, aucune touchée au gitlink/DLL paths en dehors des 3 refs, marqueurs catalogue inchangés.
strip_probe_banner.py --apply= normalisateur autorisé post-.NET. - Security scan : 0 match (
HF_TOKEN|API_KEY|BEARER|PASSWORD|SECRET|TOKEN\s*=).
Issue-First Method Match : #13778 demande la preuve exécutable de non-régression — la méthode livrée (réexécution appariée complète, verdict fermé NO IMPROVEMENT) est la méthode documentée, pas une substitution.
Grain: DEEP/research-code — lane myia-po-2025:CoursIA — prev: LIGHT/readme #15642
Résumé
MGS-28-BareBonesPSO-vs-Mealpy.ipynbaprès le déplacement refactor(search,#13777): isoler les face-a-face MGS vs mealpy en sous-serie dediee #13959 en corrigeant les trois références d’assemblies../MetaGeneticSharpvers../../MetaGeneticSharp.78ce550, avec le vrai kernel.net-csharp, PythonNet 3.1.0 et mealpy 3.0.2.NO IMPROVEMENT. Le livrable est l’exécutabilité restaurée et l’invariance algorithmique mesurée, pas un gain de performance revendiqué.Périmètre
Un seul notebook existant est modifié. Aucun nouveau face-à-face, aucun changement du sous-module, du gitlink, de la fonction de coût, de la représentation, des graines, des budgets ou des checkpoints. Les artefacts catalogue et les marqueurs
CATALOG-STATUSrestent inchangés.Protocole apparié
{0, 1, 7, 42};BareBonesParticleSwarm,mealpy-mgsetmealpy-kennedy.La réexécution canonique finale termine les 10/10 cellules code, sans erreur, avec
execution_count1 à 10 et des outputs présents pour chaque cellule. Des passages complets répétés, avant et après la correction finale de cohérence F1, ont confirmé la stabilité des grandeurs algorithmiques ; seuls les timings machine ont varié.Résultats de non-régression
mealpy-kennedyreproduit les mêmes conflits et checkpoints quemealpy-mgssur ces quatre graines. Médianes finales : MGS30,5, mealpy-mgs25,5, mealpy-kennedy25,5. Déterminisme :12/12combinaisons bras × graine stables. Budgets et trajectoires restent identiques à la baseline committée.Les ratios de temps ne fondent pas le verdict : ils varient entre passages kernel sur ces très petites durées absolues. La prose du notebook reprend uniquement les ratios de la sortie finale committée (
0,38×ms/éval entre bras mealpy ;6,30×Python/C#) et explicite leur dépendance machine.Diagnostic dérive
Verdict C.4 :
CAUSE_FIXED. Le notebook a été déplacé d’un niveau dansMGS-vs-mealpy/par #13959, mais ses trois directives#ront conservé l’ancienne profondeur. Les outputs gelés masquaient cette rupture. La cause est corrigée dans la source, les DLLnet9.0Debug ont été reconstruites depuis le gitlink courant, puis le notebook a été réexécuté de bout en bout ; aucune sortie n’a été éditée à la main. Seulstrip_probe_banner.py --apply, normalisateur autorisé après exécution .NET, a retiré les adresses de probe.Verdict performance :
NO IMPROVEMENT. Les résultats algorithmiques sont invariants contre le moteur mis à jour : cette égalité est constatée par les réexécutions, jamais supposée à partir du protocole. Le correctif restaure la preuve exécutable de non-régression demandée par #13778.Le diagnostic corrige aussi trois contradictions historiques entre prose et sorties : R1 compte 36 gènes et non 51 ; les profils des graines sont persistants/mixtes plutôt que tous « en croisement » ; six variantes PSO mealpy exposent
w/c1/c2ou leurs variantes, tandis queP_PSOutilise des coefficients sin/cos dynamiques. Aucune des sept variantes n’est bare-bones.Verdict SOTA :
SOTA-OK. Le notebook invoque les moteurs réels MetaGeneticSharp et mealpy via PythonNet ; aucune réimplémentation de substitution n’est committée.Validations post-fix
validate_pr_notebooks.py origin/main <notebook>:1/1 passed, 10 cellules code.net-csharp.exec_dotnet_persist.py <notebook> 300:10/10 cells,0 errors,44,5 s.check_output_failure_text.py origin/main: 1 notebook modifié, 0 régression.check_output_collapse.py origin/main: 0 finding.execution_count1..10 et outputs présents sur 10/10 cellules code.strip_probe_banner.py: 0 bannière résiduelle après normalisation autorisée.git diff --check origin/main...HEAD: succès.Limite hors périmètre
Le README de la sous-série conserve d’anciens ratios issus d’autres passages. Leur réconciliation est un suivi séparé : l’élargir ici rendrait la PR composite et mélangerait une non-régression exécutable avec un audit de série.
See #13778.
🤖 Generated with Claude Code