Repository navigation
research(ICT/IIT): SAE + J-lens multi-échelle — forme & dynamique des catastrophes sous perturbations appariées (6 tailles Qwen3) #8236
Description
Activity
Phase 0 — inventaire SAE verifie, pas suppose (ai-01, c.17)
Le corps de l'issue le demandait explicitement : « checkpoints Qwen3 exacts + couches couvertes a verifier en calibration Phase 0 — aucune spec fabriquee ici ». Voici la verification, faite contre l'API HuggingFace (
/api/models?author=Qwen&search=SAE, puissiblingsrepo par repo).Elle contredit la premisse « 6 tailles » sur trois points. Mieux vaut le savoir avant d'ecrire le protocole que pendant.
Ce qui existe reellement — 7 tailles, pas 6
taille repo SAE generation largeur couches couverture 1.7B SAE-Res-Qwen3-1.7B-BaseQwen3 W32K 28 0..27 (toutes) 2B SAE-Res-Qwen3.5-2B-BaseQwen3.5 W32K 24 0..23 (toutes) 8B SAE-Res-Qwen3-8B-BaseQwen3 W64K 36 0..35 (toutes) 9B SAE-Res-Qwen3.5-9B-BaseQwen3.5 W64K 32 0..31 (toutes) 27B SAE-Res-Qwen3.5-27B(pas-Base)Qwen3.5 W80K 64 0..63 (toutes) 30B-A3B SAE-Res-Qwen3-30B-A3B-BaseQwen3 W128K / W32K 48 0..47 (toutes) 35B-A3B SAE-Res-Qwen3.5-35B-A3B-BaseQwen3.5 W128K / W32K 40 0..39 (toutes) Chaque repo existe en deux variantes de parcimonie :
L0_50etL0_100.Les trois ecarts avec la spec de l'issue
1. Deux tailles annoncees n'existent pas.
0.7Bet4Bn'ont aucun SAE publie par Qwen. Le protocole a 6 tailles tel qu'ecrit est infaisable en l'etat.2. Trois tailles disponibles ne sont pas listees :
1.7B,9B(celle deja utilisee parextract_sae_traces.py),30B-A3B. En les integrant on retombe sur 7 points d'echelle, mieux repartis que les 6 vises.3. Melange de generations — le confondant a ne pas rater.
1.7B,8Bet30B-A3Bsont Qwen3 ;2B,9B,27B,35B-A3Bsont Qwen3.5. Une courbe « geometrie de la bifurcation vs taille » tracee sur les 7 melange donc deux familles de pre-entrainement. Toute rupture observee serait attribuable a la generation autant qu'a l'echelle — exactement le type d'artefact qui invaliderait une conclusion d'universalite. Deux issues possibles, a trancher avant de lancer : soit rester dans une seule generation (Qwen3.5 : 2B / 9B / 27B / 35B-A3B = 4 points), soit garder les 7 et traiter la generation comme covariable declaree, jamais l'ignorer.Deux contraintes methodologiques que l'inventaire revele
Profondeur relative, pas indice absolu. Toutes les tailles couvrent l'integralite de leurs couches — donc rien ne force le choix, et c'est la que le piege se loge. La couche 16 (celle des traces existantes
ict21_sae_layer16_*) vaut 67 % de la profondeur sur le 2B (24 couches) mais 25 % sur le 27B (64 couches). Comparer « la couche 16 » a travers la famille compare des sites fonctionnellement differents. Les comparaisons doivent se faire a profondeur relative appariee (p.ex. 0.25 / 0.50 / 0.75), l'indice absolu etant derive par taille.Largeur de dictionnaire non constante : W32K -> W80K/W128K selon la taille. Un comptage brut de features actives n'est pas comparable d'une taille a l'autre ; il faut normaliser par la largeur (ou raisonner a
L0fixe, qui lui est constant a 50 ou 100 par construction top-k).Etat de l'outillage (deja en place, a ne pas reecrire)
scripts/extract_sae_traces.pyimplemente deja la convention d'encodage officielle Qwen-Scope (W_enc/b_enc, top-k, pas deb_deca l'encodage), le modele-controle par permutation seedee des embeddings, et le stockage sparse exhaustif. Ses defauts sontQwen/Qwen3.5-9B-Base+SAE-Res-Qwen3.5-9B-Base-W64K-L0_50, couche 16 — donc parametrable par--model/--sae-repo/--layersans modification. Les tracestraces/ict21_sae_layer16_{control,trained}.npzexistent deja pour le 9B.Ce qui manque cote outillage n'est donc pas l'extraction, mais la table de correspondance taille -> (repo SAE, n_couches, largeur, generation) et la derivation profondeur-relative -> indice. C'est petit et c'est le vrai livrable Phase 0 restant.
Etat GPU
GPU 2 libre au moment de la mesure (118 MiB / 24564, 1 % util, 35 °C) ; vLLM occupe GPU 0-1 comme prevu. Les garde-fous de l'issue (
CUDA_VISIBLE_DEVICES=2strict, job unique serialise, abort > 85 °C) restent applicables tels quels.
Aucune extraction n'a ete lancee : la spec d'echelles doit etre corrigee d'abord, sinon on produit des traces sur un plan d'experience qui melange generation et taille. Le point 3 est celui qui merite une decision explicite avant de bruler du GPU.
Phase 0 — recensement SAE firsthand (2026-08-06, API HF interrogee directement)
Correction prealable, en toute honnetete. Un premier passage de recensement a conclu que cette issue « inventait une taille 0.7B » et « melangeait Qwen3 et Qwen3.5 ». Les deux verdicts etaient faux, le user l'a signale, et la re-verification firsthand lui donne raison :
- l'issue a ete redigee depuis la release SAE de Qwen, qui est elle-meme a cheval sur deux familles — ce n'est pas une confusion de l'issue, c'est la forme de ce que Qwen a livre ;
- « 0.7B » n'est pas une invention mais un quasi-match de
Qwen3.5-0.8B(0.7 vs 0.8).
Le vrai contenu de la Phase 0 est donc plus etroit — et plus utile — que ce que le premier passage annoncait.
Ce que Qwen a reellement publie : 14 repos = 7 backbones x 2 sparsites
GET /api/models?author=Qwen&search=SAE-Res— liste exhaustive, aucune extrapolation :Backbone Repo SAE ( L0_50+L0_100)Largeur Couches Qwen3-1.7B-Base SAE-Res-Qwen3-1.7B-Base-W32K-*32K 28 Qwen3-8B-Base SAE-Res-Qwen3-8B-Base-W64K-*64K 36 Qwen3-30B-A3B-Base (MoE) SAE-Res-Qwen3-30B-A3B-Base-W32K/W128K-*32K / 128K 48 Qwen3.5-2B-Base SAE-Res-Qwen3.5-2B-Base-W32K-*32K 24 Qwen3.5-9B-Base SAE-Res-Qwen3.5-9B-Base-W64K-*64K 32 Qwen3.5-27B SAE-Res-Qwen3.5-27B-W80K-*80K 64 Qwen3.5-35B-A3B-Base (MoE) SAE-Res-Qwen3.5-35B-A3B-Base-W32K/W128K-*32K / 128K 40 SAE residuelles, toutes couches de chaque backbone. Licence
qwen. Papier : arXiv 2605.11887 (Qwen-Scope). Demo : SpaceQwen/QwenScope.Aucun SAE Qwen3.6 a ce jour (la famille 3.6 se limite a
Qwen3.6-27B/Qwen3.6-35B-A3B+ FP8 cote modeles). Aucun SAE Qwen3 chez EleutherAI / Goodfire / Neuronpedia (verifie, negatif).Ce qui manque reellement au plan de l'issue
Lineup Qwen3.5 complet :
0.8B · 2B · 4B · 9B · 27B · 35B-A3B · 122B-A10B · 397B-A17B.Taille visee par l'issue SAE disponible ? 0.7B (= 0.8B) NON 2B OUI — W32K, 24 couches 4B NON 8B OUI, mais c'est Qwen3-8B (le 3.5 equivalent est 9B, qui a aussi un SAE) 27B OUI — W80K, 64 couches 35B-A3B OUI — W32K + W128K, 40 couches Donc 4 des 6 tailles sont servies, deux ne le sont pas (0.8B, 4B), et l'issue ignore deux backbones qui ont un SAE :
Qwen3.5-9BetQwen3-30B-A3B. Substituer 9B a 8B rend la serie homogene en 3.5 ; ajouter 30B-A3B donne un second point MoE — utile precisement parce que notre socle de service est un MoE A3B.Profondeur relative
round(0.5 * n_layers)(SAE fournies a toutes les couches)2B -> 12 · 9B -> 16 · 1.7B -> 14 · 8B -> 18 · 35B-A3B -> 20 · 30B-A3B -> 24 · 27B -> 32.
Recommandation de pilote
Qwen3.5-9B-Base+SAE-Res-Qwen3.5-9B-Base-W64K-L0_50(couche 16). Trois raisons : c'est la famille du socle (3.5/3.6, pas le legacy Qwen3) ; le compute est modere ; et le couple W64K/L0_50 est le meme point de fonctionnement que le 8B, ce qui laisse une comparaison cross-famille gratuite si on veut mesurer la stabilite des features entre Qwen3 et Qwen3.5.Les tailles 0.8B et 4B sont a retirer du plan (ou a traiter comme un entrainement SAE maison, ce qui est un chantier distinct de la Phase 0).
Recadrage — la collection fait foi, et le saut de version est une bonne nouvelle
Directive user 2026-08-06 :
Qwen/qwen-scopeest la reference. On travaille avec le materiel disponible, au mieux selon notre programme — et le fait que Qwen ait entraine ces SAE sur des backbones plus recents (3.5) est un gain, pas un ecart a signaler.Je retire donc le cadrage « manques » de mon commentaire precedent. Lu correctement, l'API de la collection (16 items = 14 poids + le Space + le papier) dit ceci :
Le programme, c'est l'echelle que la collection offre — sept backbones, deux sparsites chacun, SAE residuelles a toutes les couches :
Qwen3.5: 2B (W32K) · 9B (W64K) · 27B (W80K) · 35B-A3B (W32K + W128K)
Qwen3: 1.7B (W32K) · 8B (W64K) · 30B-A3B (W32K + W128K)C'est plus riche que les six tailles envisagees a la redaction de l'issue : deux points MoE au lieu d'un, et une famille 3.5 alignee sur notre socle de service (
qwen3.6-35b-a3b). Les deux tailles sans SAE (0.8B, 4B) ne sont pas un trou a combler — simplement des barreaux que l'echelle n'a pas, et on prend l'echelle telle qu'elle est.Pilote :
Qwen3.5-9B-Base+SAE-Res-Qwen3.5-9B-Base-W64K-L0_50, couche 16. Meme point de fonctionnement (W64K / L0_50) que le 8B de la famille precedente, ce qui donne gratuitement une comparaison cross-famille sur la stabilite des features si on la veut plus tard — sans que ce soit un prerequis.Profondeurs
round(0.5 * n_layers)pour la suite : 2B->12 · 1.7B->14 · 9B->16 · 8B->18 · 35B-A3B->20 · 30B-A3B->24 · 27B->32.[CLAIMED] lane myia-ai-01:CoursIA -- Phase 0/4 premiere echelle appariee : paire de traces SAE Qwen3.5-2B-Base + W32K-L0_50 couche 12/24 (layer_frac 0.522, appariee au 16/32 du 9B) + section cross-echelle mesuree dans ICT-21. Scope: MyIA.AI.Notebooks/IIT/ICT-Series/ uniquement.
(check_lane_claim #9774 -- server-stamped UTC; body timestamps are NOT authoritative. Release with
[RELEASED]when your PR lands.)- addedcandidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)Referenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
on Aug 13, 2026 Label
candidate-deliveredretiré — faux positif de l'organe, pour que le retrait soit relisable (vérification delivered-bucket, lane myia-po-2026:CoursIA). L'issue reste OPEN.Pourquoi le label s'est posé : PR mergée #10337 (2026-08-10, « feat(ict,#8236): seconde echelle SAE appariee + section cross-echelle ») référence l'issue — règle organique « PR mergée + silence » correcte en général.
Pourquoi c'est un faux positif, vérifié firsthand sur
origin/main+ fil complet ce jour :- L'issue est un protocole multi-phases (question falsifiable : géométrie de bifurcation universelle vs dépendante de l'échelle, à travers les tailles Qwen). Le claim ai-01 du 08-10 se qualifiait lui-même « Phase 0/4 première echelle appariee » — la PR feat(ict,#8236): seconde echelle SAE appariee (Qwen3.5-2B/W32K couche 12/24) + section cross-echelle mesuree #10337 (merge 18:25Z le même jour) couvre ce claim et une seule des échelles appariées.
- Le fil des 4 commentaires montre le cadrage encore en cours : recensement SAE corrigé deux fois (07-26, 08-05), recadrage directive user 08-06 (collection
qwen-scopefait foi), claim Phase 0 le 08-10 — aucun [RELEASED] après (même pattern late-release que refactor(knot_lean): relations Reidemeister en egalites de champs pour rendre l'invariant wf portable (piste B, #8604) #8696/[#9535] Item 11 — Fichiers *_PLAN.md transients (+ doublons .en.md gaspillés vs #1650) #9911/prover(#1453): chemin multi — structural_progress=True sans garde de tactique verifiee (moitie symetrique de FX-8/#4909) #11421 ; ai-01 peut le release, son livrable est sur main via feat(ict,#8236): seconde echelle SAE appariee (Qwen3.5-2B/W32K couche 12/24) + section cross-echelle mesuree #10337). - Contributions partielles en See-link (feat(ict,#8236): seconde echelle SAE appariee (Qwen3.5-2B/W32K couche 12/24) + section cross-echelle mesuree #10337, feat(research,#10356): inventaire SAE Qwen3.5 - gate faisabilite Phase 3-5 #10366 inventaire, docs(ict,#9533): chiffrer pré-enregistrement case 3 (W diffuse un q erroné) #9572 pré-enregistrement) = contributions à une epic au long cours, pas une livraison complète (cf [catalog-pr-hygiene] :
See= contribution partielle, l'epic reste ouverte).
État réel : Phase 0 partiellement exécutée (2 échelles sur la collection, 9B + 2B), phases de perturbation appariée / J-lens par taille / comparaison cross-échelle complète restent à courir. Rien à fermer.
-- paths: (aucune — retrait de label, pas d'édition)
- removedcandidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)Referenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
on Aug 17, 2026 Distillation de l'audit externe (ChatGPT, apporte par le user le 2026-08-20) sur SAE / J-Lens :
- Le tete-a-tete sur le meme Qwen, meme couche, « ne recolle pas » et c'est le resultat qui plait a l'audit : correspondance position-par-position r≈0,085, controle ≈0,016, mais correlation ≈0,33 sur les structures de separation entre jeux. Lecture proposee : « les deux systemes peuvent etre presque orthogonaux localement tout en partageant une geometrie grossiere de discrimination. » Ne racontons pas « SAE = J-Lens ».
- research(ICT/IIT): SAE + J-lens multi-échelle — forme & dynamique des catastrophes sous perturbations appariées (6 tailles Qwen3) #8236 formule correctement comme programme a executer (six tailles Qwen, calibration SAE, J-Lens appariee en profondeur relative, perturbations controlees, hysteresis, bifurcations) — statut acquis : bon.
- Probleme narratif (corrobore [EPIC][ICT] Consolidation de la serie — audit sur support intermediaire puis renforcement des protocoles (face contenu de #7260) #11690) : Global Workspace n'est toujours pas reellement onboarde ; le notebook non numerote ICT-SAE-JLens-TeteATete porte plus de substance que ICT-24 (Workspace officiel). L'ordre de la serie ne reflete plus l'ordre de decouverte reel — onboarding + renumerotation a traiter dans la consolidation.
[RELEASED] lane myia-ai-01:CoursIA
Mon
[CLAIMED]du 2026-08-10T17:53:27Z portait la Phase 0/4 (première échelle appariée, traces SAE Qwen3.5-2B-Base + W32K-L0_50). #10337 l'a livrée à 18:25:53Z le même jour, 32 minutes plus tard — et je n'ai jamais relâché le claim. Il bloque cette issue depuis douze jours.Deux défauts de ma part, tous deux mécaniques :
- Claim epic-wide — pas de clause
paths:, alors que mon intention était bornée àMyIA.AI.Notebooks/IIT/ICT-Series/. Sans la clause,check_lane_claim.pybloque toutes les lanes sur toute l'issue (sémantique héritée, fail-closed). La forme canonique était disponible :[CLAIMED] lane <machine:workspace> -- paths: <glob1>, <glob2>. - Pas de release au merge — le geste manquant est celui que je réclame aux lanes : quand la PR qui porte le claim est mergée, le claim se lève dans le même geste.
L'échelle suivante est libre. Elle est dispatchée à
myia-po-2024:CoursIA(voir DM) — c'est elle qui l'a signalée, et c'est un grain DEEP de contenu.- Claim epic-wide — pas de clause
Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: DEEP/notebook-python #12364
[CLAIMED] lane myia-po-2024:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/** -- troisieme echelle appariee : Qwen3-1.7B-Base x SAE-Res W32K L0_50 a profondeur relative appariee (--layer-frac 0.5, convention partagee), traces trained+control + section cross-echelle etendue a 3 points dans ICT-21. Le 1.7B (Qwen3) est adjacent au 2B (Qwen3.5) : la paire isole la GENERATION a taille quasi constante — la covariable que l'inventaire Phase 0 exige de declarer, ici mesuree au lieu d'ignoree. Extraction bf16 locale (RTX 3070 8 Go, 1.7B = ~3.4 Go de poids, quantized_readout=False garde).
- added a commit that references this issue
on Aug 22, 2026 - added a commit that references this issue
on Aug 23, 2026 54 remaining items
- added a commit that references this issue
on Sep 23, 2026 - added a commit that references this issue
on Sep 23, 2026 Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/training #17999
[CLAIMED] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-.ipynb, MyIA.AI.Notebooks/IIT/ICT-Series/traces/inoc_8b_.npz, MyIA.AI.Notebooks/IIT/ICT-Series/traces/jlens_8b_*.npz -- 2026-09-27T05:00Z
Tranche : phasage #8236 etape 3 — etendre le pilote forme+dynamique a la 3e taille (Qwen3-8B dense), en reutilisant le tooling livre (fit J-lens #12981, fidelite #14710, harness inoculation #17305, inventaire 7 tailles #17338). Perimetre : nouveau carnet ICT-44 + traces 8B distinctes ; les chemins po-2024 (ICT-SAE-Calibration, jlens_local_*) et po-2027 (ict/inoculation_sweep.py, extract_sae_traces.py, tests/test_inoculation_pilot.py) ne sont pas touches.
Garde-fous GPU du body respectes : GPU 2 soutenu (CUDA_VISIBLE_DEVICES=2 strict, un job seriel, abort >85C), vLLM prioritaire sur 0/1.
See #8236 (phasage etape 3)
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/training #17999
[CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-.ipynb, MyIA.AI.Notebooks/IIT/ICT-Series/traces/inoc_9b_.npz, MyIA.AI.Notebooks/IIT/ICT-Series/traces/jlens_9b_*.npz -- 2026-09-27T05:04Z
Amend du claim c.5852790602 : la 3e taille du pilote est Qwen3.5-9B-Base, pas 8B. Mesure weights-before-download (05:02Z) : modele 19G + SAE W64K-L0_50 deja locaux (cache HF par defaut) contre zero artefact 8B local (~35 Go a telecharger). Le 9B est en outre apparie en generation au 2B du pilote (Qwen3.5 tous deux, apres le decroisement #13227), saut x4.5. Perimetre inchange ailleurs : pas de toucher aux chemins po-2024 / po-2027.
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/training #17999
[CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-.ipynb, MyIA.AI.Notebooks/IIT/ICT-Series/traces/inoc_9b_.npz, MyIA.AI.Notebooks/IIT/ICT-Series/traces/calib_jlens_qwen3-5-9b.npz, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/fit_jlens_local.py, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/extract_jlens_fidelity.py -- 2026-09-27T05:10Z
Amend 2 (c.5852799390) : ajout des deux scripts du tooling (entree 9B dans le dictionneau MODELS — n_layers 32 mesure depuis config locale, source_layers [8, 16] = frac 0.25/0.5) et correction du nom de trace J-lens au nom reel du tooling (
calib_jlens_<tag>.npz). Les fits eux-memes restent hors depot (convention #8236, C:/dev/jlens_fits).Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/training #17999
[CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-.ipynb, MyIA.AI.Notebooks/IIT/ICT-Series/traces/inoc_9b_.npz, MyIA.AI.Notebooks/IIT/ICT-Series/traces/calib_jlens_qwen3-5-9b.npz, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/fit_jlens_local.py, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/extract_jlens_fidelity.py -- 2026-09-27T05:2Z
Amend 3 : correction du numero de carnet. ICT-44 est pris (ICT-44-GeometryOfTruth-Python, merge #16897 le 2026-09-25, anterieur au claim initial) — le glob ICT-44-*.ipynb couvrait le carnet d une autre tranche. Le nouveau carnet de la 3e taille est ICT-45 (libre : zero fichier local, zero chemin dans les PRs ouvertes). Perimetre sinon inchange.
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/training #17999
[CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-.ipynb, MyIA.AI.Notebooks/IIT/ICT-Series/traces/inoclayer31of32*.npz, MyIA.AI.Notebooks/IIT/ICT-Series/traces/calib_jlens_qwen3-5-9b.npz, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/fit_jlens_local.py, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/extract_jlens_fidelity.py -- 2026-09-27T05:4Z
Amend 4 : correction des noms de traces inoculation. Le 9B etant le modele PAR DEFAUT de trace_filename (convention slug : insere seulement si model != default), les traces 9B s ecrivent SANS slug -- inoc_layer31of32_trained_clamp16*.npz, inocrp_/inocmp_/inocref_layer31of32_.npz -- pas inoc_9b_. Le glob inoc*layer31of32* couvre les 4 prefixes du protocole pilote (inoc/inocrp/inocmp/inocref). Perimetre inchange par ailleurs.
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/training #17999
[CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-.ipynb, MyIA.AI.Notebooks/IIT/ICT-Series/traces/inoclayer31*.npz, MyIA.AI.Notebooks/IIT/ICT-Series/traces/calib_jlens_qwen3-5-9b.npz, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/fit_jlens_local.py, MyIA.AI.Notebooks/IIT/ICT-Series/scripts/extract_jlens_fidelity.py -- 2026-09-27T05:5Z
Amend 5 : correction du glob inoc (encore). trace_filename n insere le suffixe of{n_layers} QUE dans la branche slug (model != default) ; le 9B etant le modele par defaut, la batterie ecrit reellement inoc_layer31_trained_clamp16*.npz (sans of32) -- conforme au design qui preserve les noms historiques ict21_sae_layer16_* a l octet. Le glob passe a inoc*layer31*.npz (couvre inoc/inocrp/inocmp/inocref, distinct des traces 27of28/23of24 du pilote). Mesure firsthand : premiere trace batterie [out] cible inoc_layer31_trained_clamp16_s0.npz.
[DELIVERED] lane myia-po-2023:CoursIA — tranche 9B (pilote 3e taille) complete cote production :
- research(ict,#8236): ICT-45 pilote inoculation 9B — 3e taille (bifurcation recule et s'adoucit) #18017 : 10 traces inoculation (inocref/inoc x5/inocrp x2/inocmp x2, bande x8) + carnet ICT-45 (bifurcation 3 echelles) + entree 9B de fit_jlens_local.py.
- Add: ICT-45 volet J-lens 9B — calib depuis le lens publie (tranche #8236) #18022 (empilee sur research(ict,#8236): ICT-45 pilote inoculation 9B — 3e taille (bifurcation recule et s'adoucit) #18017, retarget main apres merge) : calib_jlens_qwen3-5-9b.npz extraite du lens publie neuronpedia/jacobian-lens (fit local 9B abandonne sur mesure : >69 min/prompt, ~8-16 j extrapoles — meme construction disponible en canonique) + section J-lens du carnet + mode --lens-repo de extract_jlens_fidelity.py.
Resultats : bifurcation recule/s'adoucit (alpha* 0.375->0.875, m(1) 1.103->0.327, specificite x53 conservee) ; fidelite lineaire mi-reseau 12.52->8.18->9.36 nats (regression 9B, 5/5 sets d'accord) — les deux appareils convergent.
Reste : reviews/merges (ai-01).
- added a commit that references this issue
on Sep 27, 2026 - added a commit that references this issue
on Sep 27, 2026 - added a commit that references this issue
on Sep 28, 2026 - added a commit that references this issue
on Sep 29, 2026 [CLAIMED] lane myia-po-2027:CoursIA-2 -- tapis central 2026-10-06 (repartition ai-01, file a arc coherent) : Poursuivre le balayage multi-échelle GPU-gated : 4e échelle d'inoculation (27B ou A3B) et/ou hystérésis multi-passes jamais livrée, une PR par carnet avec traces .npz et QA-vision.. Rendre la main par [DELIVERED] ou [RELEASED].
- added a commit that references this issue
on Oct 7, 2026
Contexte & motivation
Qwen fournit désormais des SAE (sparse autoencoders) pour l'ensemble des tailles de modèle que nous pouvons héberger localement : 0.7B, 2B, 4B, 8B, 27B, 35B-A3B (checkpoints Qwen3 exacts + couches couvertes à vérifier en calibration Phase 0 — aucune spec fabriquée ici). En parallèle, la J-lens — déjà fittée à une taille sur ICT-Series (traces
ict_trackP_jlens_layer16_control/trained.npz, cf #5681) — est transférable et re-fittable par taille.Cette double disponibilité ouvre un protocole que nous n'avions pas les moyens de mener : comparer la forme (géométrie) et la dynamique des « catastrophes » représentationnelles — les réorganisations qualitatives de l'état interne quand une perturbation franchit un seuil — à travers 6 échelles de modèle, sous des situations et des « inoculations » (perturbations contrôlées) appariées.
Question scientifique falsifiable : la géométrie de la bifurcation (type fold / cusp / butterfly au sens de Thom), son seuil critique, sa netteté et son hystérésis sont-ils universels ou dépendants de l'échelle ? C'est la version multi-échelle, sobre et mesurable, du fil « obstruction/catastrophe » (partie technique uniquement — cadrage privé hors-scope).
Moyens (nouveaux — mandat user 22-23/07)
CUDA_VISIBLE_DEVICES=2strict, un seul job sérialisé, abort thermique >85 °C,PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True, pas de run non-monitoré lancé en fin de cycle sans user présent.layer = round(0.5 · n_layers)) pour contrôler la profondeur cross-échelle.Livrable 1 — Notebook de calibration (
MyIA.AI.Notebooks/IIT/ICT-Series/)Objectif : rendre la comparaison cross-échelle valide (contrôler ce qui doit l'être avant toute expérience).
controlvstrained).Livrable 2 — Notebook d'expérience multi-taille (
MyIA.AI.Notebooks/IIT/ICT-Series/)Objectif : mesurer forme + dynamique de la catastrophe par taille, puis analyse d'échelle.
.npzpar taille (schéma cohérent avec lesict_trackP_jlens_layer16_*.npzexistants) ; figures QA-vision (routées MiniMax / ai-01, GLM ne voit pas).Phasage (post-voyage)
Critères d'acceptation
.npzcommitées avec outputs réels ; analyse d'échelle sur le sous-ensemble couvert, verdict honnête (universel / échelle-dépendant / non-concluant — pas de sur-claim).Notes