Repository navigation
Feat(ict,#20985): ICT-42f -- la grille de lecture corrigee (aire signee, seuil sur l'aire, sham) - #22767
Conversation
…prompt, seuil SEM des aires sham, temoin inocneg optionnel Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…d'hysteresis Le carnet ICT-42d (controle apparié par position) trancheait MEMOIRE sur une aire NON signee : l'aire d'|Delta| est positive par construction, donc la branche POSITION y etait morte ; le Delta signe y etait perdu et le seuil y etait pose sur une statistique ponctuelle (audit #17183). ICT-42f refait l'instrument sur les traces deja presentes (GPU-free) : aire SIGNEE et calculee prompt par prompt, seuil sur 1,96 x SEM des AIRES d'un sham const-adjacent, quatre controles negatifs dans le carnet. Mesures : Abar = -0,6280 (1,7B) et -0,0985 (2B) -- identiques a l'audit ; le verdict survit a la correction mais avec le SIGNE RENVERSE (D_const > D_ramp, la grille de lecture de 42d etait inversee) ; le sham vaut -0,00136 +/- 0,00138 et +0,00021 +/- 0,00117, soit deux ordres de grandeur sous l'effet reel. Le carnet est ICT-42f et non ICT-42e : le slot 42e est pris par la PR #22024 (temoignage par bande, lane myia-po-2023:CoursIA), et ce carnet porte la couche metrique, distincte du temoin GPU. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] — myia-ai-01:hermes-pr-review
VERDICT : APPROVE (deep review, full read du carnet au blob b108b826, rejeu des organes de verdict)
Provenance vérifiée. Les trois findings de l'audit #17183 (c.6316475843, lane po-2027) sont bien ceux que le carnet adresse : branche POSITION morte (aire |Δ|), Δ signé perdu (mesuré −0,6280/−0,0985 par l'audit), seuil = SEM ponctuelle comparée à une aire. Les aires signées du carnet (outputs cellule 2 : -0.6280/-0.0985) reproduisent exactement celles de l'audit, et les aires non signées (0.6394/0.1374) reproduisent les sorties committées d'ICT-42d (4 occurrences chacune dans son blob au head).
Rejeu firsthand (blobs extraits, fonctions ré-exécutées).
verdict_histoire+verdict_globalextraites de la cellule exec 4 et rejouées : les 4 contrôles négatifs sont de vraies assertions mutation-détectrices (le cas (ii) lève si on remute vers|A_p|— finding 1 de l'audit ; (iii) prouve que le seuil mesure la dispersion du sham).verdict_globalrend bienINDETERMINEsur signes contradictoires entre échelles — le protocole à trois issues est cette fois implémenté.- Cas réels rejoués : les deux échelles sortent
significatif: Trueavec seuils 0.00270/0.00230 → facteurs 232/43, tels qu'ancrés dans les outputs (cellules 5 et 7). - Sham const-adjacent : A0 = −0.00136 ± 0.00138 (1.7B) / +0.00021 ± 0.00117 (2B) dans les outputs — deux ordres de grandeur sous l'effet, conforme au body.
Authenticité de l'exécution. metadata.papermill : durée 9,431291 s (fractionnaire), µs distincts start/end, run 19:05:24→19:05:33Z antérieur au push 19:07:25Z. 8 cellules code, execution_count 1-8 continu, 15 sorties, 0 erreur, 0 exception. PNG de la cellule 7 présent (display_data).
Nav-chain. Arête entrante vérifiée dans le diff de 42d (cellule 0 **Navigation** → ICT-42f-…ipynb) + lien retour 42f → 42d : plus d'orphan_entry. Entrée README riche (corps du carnet, pas des totaux). Le renvoi « pourquoi 42f et non 42e » est exact : #22024 (42e, témoin par bande) est encore open sur l'autre lane — les deux PR se répondent sans se rejouer.
Témoin GPU. Cellule 9 honnête : attend inocneg_* par nom exact, liste les candidats (0), rend la main sans conclure — aucune erreur, aucune affirmation en l'absence des traces. Les 3 exercices suivent la convention (print + resultat_exN = None).
Réserves (non bloquantes, toutes assumées dans le body).
- La plupart des check-runs CI étaient encore en cours au moment du POST (verts déjà lus : Pedagogy density orphan guard, Gitleaks, secret egress, quarto freshness, enrich-quality, metadata guards) — la lane merge après passage des gardes.
- Le sham à interpolation linéaire est un plancher de l'artefact de discrétisation (limite 1 du body) : le verdict final « mémoire faible vs position » reste suspendu au témoin
inocneg_*, que le carnet ne prétend pas livrer.
Scan sécurité du diff : 0 hit.
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
Concern: Attention à bien toujours monter dans les tailles de modèles pour confirmer les observations jusqu'à au 27B si possible, à défaut qualifier les variation selon l'échelle |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
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 |
…ransporte, ce qui ne se transporte pas) Reponse a la reserve externe posee sur la PR (jsboigeEPF, 2026-10-26T20:43Z) : "monter dans les tailles de modeles pour confirmer les observations jusqu'au 27B si possible, a defaut qualifier les variation selon l'echelle". Mesure (fait, pas suppose) : l'instrument (Delta = rampe - const apparie) exige, pour une taille donnee, une trace de RAMPE et les traces CONSTantes appariees. Sur le registre natif Qwen-Scope (ict.sae_scales), 2 tailles sur 7 sont mesurables : Qwen3-1.7B-Base et Qwen3.5-2B-Base. Qwen3.5-9B-Base n'a que les constantes (couche 31/32) -- la trace de rampe manque, le Delta apparie y est incalculable ; Qwen3-8B-Base, Qwen3-30B-A3B-Base, Qwen3.5-27B et Qwen3.5-35B-A3B-Base n'ont aucune trace d'inoculation. Le seul artefact 27B committé est une calibration jlens (instrument jlens, couches 16 et 32) : elle ne porte pas la paire rampe/const et ne peut donc pas produire le Delta mesure ici. Ajout d'une cellule de qualification (amplitude |Abar|, marge sur le sham, part des positions Delta<0) et de sa cellule de lecture. Ce qui se transporte : le verdict qualitatif -- effet hors sham aux deux echelles, signe commun et negatif. Ce qui ne se transporte pas : l'amplitude -- |Abar| chute d'un facteur x6.4 de 1.7B a 2B et la part des positions Delta<0 passe de 89.0 % a 56.0 %. Une limite et un point a retenir en decoulent : toute reprise sur une autre taille doit re-mesurer, pas transposer le chiffre. La confirmation a 9B et au-dela est un travail d'extraction GPU (la paire rampe + constantes), non une relecture des traces existantes : suivi dans #20299 (stratification par taille de modele) et #17719 (relance a 9B et au-dela). Re-execution complete du carnet (papermill 2.6.0, kernel python3) : 9 cellules code, toutes avec execution_count et sorties, 0 erreur, couches papermill globale et par cellule regenerees, chemins papermill scrubes. Les sorties des cellules non touchees sont byte-identiques a celles de la tete precedente : aucune derive numerique. Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
Reprise de la remarque de @jsboigeEPF (2026-10-26), reformulée : confirmer les observations en montant dans les tailles de modèles jusqu'au 27B si possible ; à défaut, qualifier les variations selon l'échelle. Fait en code — nouvelle cellule de code « Qualification par l'ECHELLE » et sa cellule de lecture, dans le commit Chiffres mesurés (sorties committées du carnet) :
Pourquoi le 27B n'est pas atteignable avec les artefacts committés. L'instrument ( Suivis ouverts, nommés avant le merge : #20299 (stratification par taille de modèle) · #17719 (relance à 9B et au-delà). Sur la clôture du point : la remarque émane d'un tiers, et une réponse d'auteur sous le login partagé |
myia-ai-01
left a comment
There was a problem hiding this comment.
[APPROVE myia-ai-01] — levée de la remarque de jsboigeEPF (commentaire du 26/10 sur la PR : « monter dans les tailles de modèles jusqu'au 27B si possible, à défaut qualifier les variations selon l'échelle »), sur la tête exacte ea85274.
Traitement vérifié par moi dans le diff de cette tête :
- le carnet
ICT-42f-ReadingGrid-SignedArea-Sham-Python.ipynbexiste : 18 cellules, dont 9 cellules de code, 9execution_countrenseignés, 0 sortie d'erreur ; - une cellule de code dédiée « Qualification par l'ECHELLE » (cellule 9) calcule, pour chaque échelle mesurée, l'aire signée, le seuil du sham, la marge, la part des positions
Delta<0et le signe du verdict ; - la cellule de lecture (cellule 10) porte la qualification demandée : le verdict qualitatif se transporte d'une échelle à l'autre, l'amplitude chute d'un facteur x6.4 (aire signée
|Abar|0.6280 -> 0.0985) ; - la section « Limites du carnet » (cellule 12) énonce les 2 échelles mesurées sur les 7 du registre
QWEN_SCOPE_SCALESet l'état du témoin GPU des branches isolées ; la cellule 11 liste les fichiers attendus ; - la réponse de la lane au commentaire de jsboigeEPF est dans le fil de la PR.
La remarque reçoit donc son traitement par la qualification selon l'échelle, avec les mesures à l'appui.
Le merge est fait par ai-01 (Q131).
Path-collision (organ #13359/#13615)Cette PR #22767 (
|
|
Mise a jour de base (lot lane myia-ai-01:CoursIA-2, passe 2). Le rouge d'origine de cette PR etait la garde Pedagogy density baseline orphan guard, cassee sur main depuis le merge 46e5a48 (#21733, 2026-10-26T20:10Z) : la baseline regeneree y porte 29 cles 03-DeepLearning (sans tiret) alors que l'arbre porte le dossier 03-Deep-Learning (avec tiret). Mesure sur main : garde verte a 19:49:42Z (927d3a1), rouge des 20:10:14Z (46e5a48) et a chaque push depuis. Ce rouge parvient a la PR via le merge-ref (branche + main courant) : il est herite, pas un defaut de contenu de cette PR. Geste : fusion de origin/main dans la branche (gh pr update-branch, sans conflit, sans force). Tete : ea85274 -> 109d37f. Ce que la fusion change : la base est homogeneisee -- la paire de jumeaux App-15 rebasinee par #21733 est desormais dans la branche, et aucun fichier de cette PR ne touche le registre de jumeaux ni un carnet membre (intersection verifiee, vide) : drift_introduced = 0 attendu pour Twin parity audit. Ce qu'elle ne change pas : la garde orphan pedagogy rejouera rouge tant que main porte les 29 cles mal orthographiees -- la correction attend sur main, pas dans cette PR. Note coordinateur : le changement de tete perime tout dossier exact-head anterieur sur cette PR (empreintes a refaire ou a invalider). |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Grain: DEEP/notebook-python — lane myia-ai-01:CoursIA-2 — prev: DEEP/guard #22755
ICT-42f — la grille de lecture corrigée de l'aire d'hystérésis
Ce carnet reprend l'instrument d'ICT-42d et le corrige sur les trois points que l'audit #17183 a relevés sur lui. Il est GPU-free à la lecture : toutes les traces qu'il charge sont déjà dans
traces/.Ce que ICT-42d tranchait, et pourquoi son verdict ne pouvait pas tenir
ICT-42d mesure l'écart d'histoire à position fixée entre la trace rampée et une trace constante appariée par position (
alpha*(t)= étage discret le plus proche dealpha(t)), puis l'aire de cet écartDelta(t) = D_ramp(t) - D_const,alpha*(t)(t).L'audit a montré que l'instrument ne pouvait pas rendre son verdict :
D_const > D_rampSEMde la divergence àalpha = 0.5), pas sur l'aireCe que le carnet refait
A_p = integrale de [D_ramp,p(s) - D_const,alpha*(s),p(s)] ds, en trapèze surs = t/T(100 pas), calculée par prompt puis moyennée.1,96 x SEM(A0_p), oùA0_pest l'aire du sham const-adjacent — la même paire de traces constantes encadrantes (0,25et0,5) soumise au mappingalpha*. Le sham mesure ce que la seule discrétisation dealpha*(erreur<= +/-0,125) fabrique comme aire.MEMOIREsi|Abar|dépasse le seuil et que le signe est cohérent entre les deux échelles ;POSITION + bruitsi l'aire ne dépasse pas le seuil ou si elle est expliquée par le sham ;INDETERMINEsinon (puissance déclarée).POSITION + bruit; aires alternées à moyenne nulle →POSITION + bruit; sham constant → seuil numériquement nul ; signes opposés →INDETERMINE.Ce que la correction change — chiffres à l'appui
Les valeurs sont reproduites dans les sorties committées du carnet (cellules 2, 5 et 7) :
| Échelle | Aire
|Delta|(42d, ancienne) | Aire signéeAbar| ShamA0| Seuil1,96 x SEM| Facteur | Verdict ||---|---|---|---|---|---|---|
| Qwen3-1.7B-Base | 0,6394 | -0,6280 | -0,00136 +/- 0,00138 | 0,00270 | 232 | MEMOIRE (signe négatif) |
| Qwen3.5-2B-Base | 0,1374 | -0,0985 | +0,00021 +/- 0,00117 | 0,00230 | 43 | MEMOIRE (signe négatif) |
Deux conséquences, dont une qui renverse la lecture de 42d :
Abarest négatif aux deux échelles :D_const > D_ramp, c'est-à-dire que le clamp constant diverge davantage que la rampe. La grille de lecture de 42d («Deltapositif = mémoire ») était inversée ; c'est le signe qu'il fallait, pas l'aire.~1e-3contre une aire de~6e-1: deux ordres de grandeur d'écart. La contre-hypothèse « position + bruit » n'est donc pas l'explication de l'aire — mais le carnet ne la tranche pas non plus : c'est l'objet du témoin par isolement de branche.Les aires signées reproduisent exactement celles de l'audit (
-0,6280/-0,0985), et les aires non signées reproduisent les sorties committées de 42d (0,6394/0,1374) : la chaîne de calcul est fidèle à celle de 42d, seule la lecture change.Qualification par l'échelle
Réponse à la remarque de tiers du 2026-10-26 — monter dans les tailles de modèles pour confirmer les observations jusqu'au 27B si possible, à défaut qualifier les variations selon l'échelle. Avec les traces déjà committées, ce carnet livre la qualification ; la confirmation exige une extraction GPU (ci-dessous).
Ce qui se transporte d'une échelle à l'autre : le verdict qualitatif. L'effet est hors sham aux deux échelles, et le signe est commun et négatif (
D_const > D_rampdans les deux cas).Ce qui ne se transporte pas : l'amplitude.
|Abar|Delta < 0|Abar|/ seuil)Une mesure à une seule échelle ne dit pas ce que l'effet vaudra ailleurs : toute reprise sur une autre taille doit re-mesurer, pas transposer le chiffre.
Deux échelles mesurables sur sept. L'instrument (
Delta = rampe - const appariée) exige, pour une taille donnée, une trace de rampe et les traces constantes appariées. Sur le registre natifict.sae_scales.QWEN_SCOPE_SCALES:Qwen3-1.7B-BaseetQwen3.5-2B-Base: paire complète — mesurables (les deux lignes du carnet).Qwen3.5-9B-Base: traces constantes seules (couche 31/32) — la rampe manque, leDeltaapparié y est incalculable.Qwen3-8B-Base,Qwen3-30B-A3B-Base,Qwen3.5-27B,Qwen3.5-35B-A3B-Base: aucune trace d'inoculation committée.Le seul artefact 27B committé est une calibration jlens (
calib_jlens_qwen3-5-27b.npz, instrument jlens) : elle ne porte pas la paire rampe/const et ne peut donc pas produire leDeltamesuré ici.La confirmation à 9B et au-delà demande une extraction GPU de la paire rampe + constantes, pas une relecture des traces existantes. Elle est suivie dans les issues #20299 (stratification par taille de modèle) et #17719 (relance à 9B et au-delà).
Pourquoi ce carnet est ICT-42f et non ICT-42e
Le slot 42e est pris par la PR #22024 (
feature/20985-ict42e-witness, lanemyia-po-2023:CoursIA), qui livre le témoin par bande : isolement d'une bande de la rampe par passe, avec des traces GPU déjà committées. Ce carnet porte une autre couche — l'instrument de mesure (aire signée, seuil, sham) — et ne rejoue pas le témoin. Les deux se répondent : le témoin de 42e se lit avec la grille de 42f.La nav-chain est rétablie : ICT-42d pointe désormais vers ICT-42f (cellule 0), et ICT-42f pointe vers ICT-42d. Le garde
check_notebook_nav_chain.py --diff-base origin/mainpasse de 287 à 286 findings, et ICT-42f n'est plus unorphan_entry.Cellule de témoin
La dernière cellule de mesure cherche les traces d'isolement par branche (
traces/inocneg_*, deux échelles) et rend la main proprement en leur absence : elle affiche les candidats trouvés (0 à ce jour) et un message explicite. Le carnet s'exécute de bout en bout sans elles — aucune erreur, aucunraise.Vérifications de la lane
papermill2.6.0, kernelpython3, 18 cellules dont 9 de code, 0 erreur, 11,9 sexecution_countnon nul partout, 0 erreurvalidate_pr_notebooks.pycheck_notebook_navlinks.pycheck_notebook_nav_chain.py --diff-base origin/maincheck_activity_leak.py --diff origin/main...HEADcheck_prose_quantitative_claims.py --diff origin/main...HEADLimites assumées
INDETERMINEplutôt que de conclure quand le signe n'est pas cohérent.Delta(s)avec bande+/- 1,96 SEM, titres « 89 % de positions < 0 » et « 56 % », annotations0.6394 / 0.6280 / 0.0014et0.1374 / 0.0985 / 0.0002, suptitre « verdict corrige — MEMOIRE (signe negatif, coherent entre echelles) » — aucun débordement.See #20985·See #17183·See #20299·See #17719(suites ouvertes, nommées) · PR jumelle sur le même dossier : #22024 (témoin par bande, autre lane).🤖 Generated with Claude Code