Skip to content

Add: ICT-35c profil de profondeur humour SAE (#14035 tranche 2) - #16901

Merged
myia-ai-01 merged 8 commits into
mainfrom
feature/14035-depth-profile
Sep 20, 2026
Merged

myia-ai-01 merged 8 commits into
mainfrom
feature/14035-depth-profile

Conversation

@jsboige

@jsboige jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: DEEP/notebook-python #16849

Summary

Tranche 2 de #14035 (phase observationnelle, suite de #16895) : profil de profondeur du differentiel humour. Objection a la tranche 1 : un verdict INCONCLUSIVE a une seule profondeur (12/24) ne borne rien ailleurs. Cette tranche fait varier UNE seule chose — la profondeur de capture — corpus, paires, protocole pre-registre, graine et SAE inchanges.

Livrables :

  • traces/humor35b_qwen35-2b-base_layer{4,19}of24_{trained,control}.npz — captures GPU po-2024 neuves (--layer-frac 0.1667 / 0.8333 (l'extracteur tronque : couches 4 et 19 de 24), seed 42, SAE-Res-W32K-L0_50, disponibilité toutes couches vérifiée contre ict/sae_scales.py) ; les traces 12/24 sont celles recommittées par la tranche 1
  • ICT-35c-HumorDepthProfile-SAE.ipynb — notebook 14 cellules : chargement 6 traces (manifestes + L0 mesurés), mesure pre-registree par couche (trained + control), Jaccard top-5 entre couches et trained-vs-control, 3 exercices stubs C.1
  • Aucune modification de ict/humor_pairs.py : la mesure est réutilisée telle quelle (la fixture synthetique de la tranche 1 la gele deja en regression)

Resultat : INCONCLUSIVE stable a toutes les profondeurs

Couche trained delta_pair p99 null ratio_ctrl n|z|>3 control delta_pair p99 n|z|>3 verdict
early 4/24 18.4938 22.8993 0.9526 0 18.8027 21.9155 0 INCONCLUSIVE
mid 12/24 (t1) 27.8327 35.8102 0.9726 0 22.0069 27.6215 0 INCONCLUSIVE
late 19/24 90.9880 121.4721 0.9564 1 70.0960 89.7911 0 INCONCLUSIVE

Trois constats : (a) l'amplitude croit avec la profondeur (18.5 -> 27.8 -> 91.0) mais le null croise croit en lockstep -- ratio_vs_ctrl dans [0.95, 0.97] a toutes les profondeurs ; (b) une seule feature |z|>3 sur toute l'experience (trained late ; seuil verdict >=3 non atteint, control 0) ; (c) top-5 disjoints partout : Jaccard 0.00 entre les trois couches trained ET 0.00 trained-vs-control a chaque couche -- aucune signature voyage avec la profondeur, aucune ne ressemble a ce que lit la permutation. La tranche 1 bornait un etage ; cette tranche borne early/mid/late du residual stream.

Validation

  • Papermill end-to-end : 14 cellules, 0 erreur, execution_count reels, outputs commits (C.2)
  • Assertions in-cell : manifestes (layer/n_layers/seed) verifies par assert a l'execution
  • grep C.1 : aucun raise NotImplementedError / assert False / 1/0 (stubs None + print)
  • Tests : ict/tests/test_humor_pairs.py 11 passed inchanges (aucune fonction mesure modifiee)

Notes review

  • Branche stackee sur feature/14035-humor-pairs-sae (dependance au module corpus + traces 12/24) : rebase --onto prevu au merge de Add: ICT-35b paires minimales humour/unfun sur SAE (#14035 tranche 1) #16895 — le diff de CETTE PR se reduira alors a ses propres fichiers
  • SAE de la couche 19 non cache au premier tir (telechargement HF au lancement) — documente dans la provenance du notebook

🤖 Generated with Claude Code

jsboige and others added 8 commits September 19, 2026 16:55
…uctible + tests

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…llule 4 GT-24b)

La cellule 4 de GT-24b resout son cache en chemin relatif : depuis un cwd sans
cache, l'exec declenchait un fetch GitHub raw (fragile reseau, regression
mesuree ce cycle depuis la racine du worktree). L'exec se fait desormais dans
le dossier portant le cache (ICT-Series, emplacement du pilote ICT-35), avec
restauration du cwd appelant. Test de regression cwd-independant (6/6 verts).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…teurs main + builder prompts-json

Table d'edits main par blague (setup verbatim | punchline verbatim | punchline
neutre | controle de distance d'edition), re-verifiee au chargement contre le
texte commite (span unique, suffixe exact, setup prefixe commun). build_pairs
produit humour/unfun/ctrl_edit ; build_prompts_json serialise au contrat
extract_sae_traces.py --prompts-json ({set_name: [textes]}). p01 (punchline
absente du texte commite) et p17 (saut de ligne inline) exclues ; 28 paires,
complement >=30 via instances Argumentum au cycle suivant. 8/8 tests verts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…04/05

Les instances Argumentum sont tronquees a ~150 caracteres par le banc GT-24b
(punchline jamais commitee) : inutilisables pour le pairing. Les one-liners
edge-04 (Chapman) et edge-05 (Cooper) completenent - label
recadrage_sans_riere documentee dans la table, l'incongruite portee par le
texte etant le critere. Plancher protocolaire >=30 atteint (8/8 tests verts).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ires x 3 jeux, 1868 tokens

Extraction via scripts/extract_sae_traces.py --stage full : Qwen3.5-2B-Base x
Qwen-Scope W32K-L0_50, couche 12/24 (layer-frac 0.5, transposable), k=50
auto-detecte, seed 42. Variantes trained (443 Ko) + control (permutation
embeddings, 438 Ko), VRAM pic 4.5 GiB sur RTX 3070. L0 moyen=50.00 exact sur
les deux runs (garde assert_l0_release_consistent passee). Verdict
pre-registre AVANT mesure : c.5743321902.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
measure_humor_differential : delta_pair vs null croise (brassage des
unfun entre paires, ecart c.5743498870), delta_ctrl distance d'edition,
z features par flip de signe intra-paire. Verdict pre-registre
c.5743321902 ; l'ecart c.5743512349 (criterion delta_pair>p99 mal
dirige pour un shift systematique) est fige en test de regression :
fixture synthetique injectant +2.0 sur features (3,5,7) des zones
humour -> la jambe feature-z detecte (>=3 features |z|>3, top-3 exact),
le verdict reste INCONCLUSIVE car la composante constante est invisible
au null croise. 11/11 tests verts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
17 cellules, outputs reels (papermill, 0 erreur, exec 1-13) : reproduction
CORPUS_DUR 120 instances, 30 paires minimales (exclusions p01/p17 et
heterogeneite edge-04/05 documentees), provenance des captures GPU
(Qwen3.5-2B-Base x SAE-W32K, layer 12/24, L0=50.00 mesure), mesures
pre-registrees trained+control, verdict INCONCLUSIVE jambe par jambe
(delta_pair 27.83 < p99 35.81, ratio 0.97, 0 feature |z|>3 ; top-5
trained/control disjoints, amplitude sous le bruit permute). 3 exercices
stubs C.1 (delta par paire, zone dernier token, stabilite top features).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…che 2)

Captures SAE couches 4/24 et 19/24 (layer-frac 0.1667/0.8333, l'extracteur
tronque), notebook 14 cellules executees : INCONCLUSIVE stable aux trois
profondeurs, amplitude et null croissent en lockstep (ratio ~0.96), top-5
disjoints entre couches et vs controle (Jaccard 0.00 partout).

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

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

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

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 18
  • 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

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2024:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-19) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.9s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.5s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.4s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 37.1s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.6s

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

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM — tranche 2 de #14035 vérifiée firsthand : les 15 valeurs du tableau de résultats, les 6 traces npz et l'absence de stubs piégés sont tous authentifiés dans le diff ; design expérimental propre (une seule variable, la profondeur).

[Hermes] — Review ICT-35c (profil de profondeur du différentiel humour), head fa2f0e7e2d.

Vérifications (firsthand, grep ciblés sur le diff) :

  1. Table de résultats authentifiée 15/15 : chacune des valeurs du tableau (18.4938/22.8993/0.9526, 27.8327/35.8102/0.9726, 90.9880/121.4721/0.9564 + les 3 contrôles 18.8027/22.0069/70.0960 et leurs p99) apparaît dans les lignes ajoutées — les outputs committés portent bien les chiffres du body.
  2. 6 traces npz présentes : layer{4,12,19}of24 × {trained,control} — cohérent avec « 12/24 = celles de la tranche 1, 4/19 = captures neuves ».
  3. Pas de stubs piégés : 0 NotImplementedError, 0 assert False/1/0 dans les lignes ajoutées — cohérent avec la claim « stubs None + print ». execution_count réels (séquences 1-9 par notebook).
  4. Design : une seule variable — corpus/paires/protocole/graine/SAE inchangés, seule la profondeur varie ; l'objection à la tranche 1 (« un verdict à une profondeur ne borne rien ailleurs ») est adressée par construction. Les 3 constats (amplitude croît mais ratio_ctrl ∈ [0.95, 0.97], 1 seul |z|>3 sur toute l'expérience, Jaccard 0.00 partout — 12 mentions) sont la signature d'un INCONCLUSIVE honnête, pas d'un verdict peint en vert.
  5. Security scan : les 4 mentions OPENROUTER_API_KEY sont des références de documentation/env-var (os.environ.get, commentaires de reproduction) — aucune valeur en dur, pas de leak.

Réserves mineures (non bloquantes) :

  • Branche stackée sur feature/14035-humor-pairs-sae : le rebase --onto prévu au merge de #16895 réduira le diff — la présente review couvre le head actuel incluant les fichiers hérités (ICT-35b, humor_pairs.py, tests) ; je note que le diff contient aussi la tranche 1, déjà reviewée ailleurs si #16895 est couvert.
  • SAE couche 19 non caché au premier tir (téléchargement HF au lancement) : documenté dans la provenance, acceptable.

(contrainte token : COMMENT only — opener jsboige, cap self-review #3219 ; #15511 : verdict favorable, relais au siège qualifiant si merge nécessaire)

[Hermes hermes-pr-review, cycle :18 19/09, host c92df397a786]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16901 (Add: ICT-35c profil de profondeur humour SAE (#14035 tranche 2)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Sep 19, 2026
@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA
pr: 16901
head: fa2f0e7
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 83ab219384427ad29db793ab3676c139f385ae243c6e82bdd85a894d718369ea
diff-files: 10
diff-additions: 1979
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Dossier de prevalidation tierce (gate #16907, Phase 4) — premier dossier sur cette PR.

Verifications firsthand au head exact fa2f0e7

Contrainte de pile (a consommer dans l'ordre)

#16895 AVANT #16901 — apres merge de #16895, la branche de #16901 doit etre rafraichie (gh pr update-branch) : son diff se reduira a son perimetre propre (35c + traces layers 4/19) et perimera ce constat exact-head. Dossier frais attendu avant merge.

Disposition : READY (sous condition d'ordre de pile ci-dessus). Aucun merge, APPROVED ou CHANGES_REQUESTED effectue ici.

@jsboige

jsboige commented Sep 20, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16901
head: fa2f0e7
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 1ef8221bb84ff1888564f7ad26ac8abeea82e2bc8538fd11d29a1d4d33b45be9
diff-files: 10
diff-additions: 1979
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 9a8f69c into main Sep 20, 2026
81 of 82 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants