Skip to content

research(ICT/IIT): SAE + J-lens multi-échelle — forme & dynamique des catastrophes sous perturbations appariées (6 tailles Qwen3) #8236

Description

@myia-ai-01

État mesuré au 2026-10-03 (lane myia-po-2027:CoursIA, confrontation body ↔ artefacts) — le corps historique ci-dessous date de la rédaction ; plusieurs de ses prémisses sont depuis périmées :

Portée du non-vérifié : les claims de QA-vision (figures routées MiniMax) ne sont pas re-vérifiables depuis le dépôt ; les lens publiés Hub 8B/A3B non cherchés.

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)

  • 6 tailles hébergeables + leurs SAE.
  • GPU dans la durée :
    • GPU 2 = usage soutenu autorisé pour ce protocole. Garde-fous inchangés : CUDA_VISIBLE_DEVICES=2 strict, 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.
    • GPU 0/1 = lecture opportuniste des activations du 35B-A3B déjà servi par vLLM (port 5002, TP=2) tant que les expériences le gardent fonctionnel ; sinon chargement dédié ponctuel. vLLM reste prioritaire sur 0/1.
  • J-lens re-fittable par taille à profondeur relative appariée (ex. 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).

  • Phase 0 — Inventaire & vérification des SAE : source / repo HF, couches couvertes, largeur du dictionnaire, facteur d'expansion, fidélité de reconstruction (MSE, variance expliquée) par taille. (C'est cette phase qui établit la vérité-terrain des artefacts — rien n'est supposé en amont.)
  • Phase 1 — Fit / chargement J-lens par taille à profondeur relative appariée ; report qualité de sonde (accuracy/AUC control vs trained).
  • Phase 2 — Batterie de situations appariées (prompts/contextes identiques, normalisés cross-taille).
  • Phase 3 — Batterie d'inoculations : famille unique de perturbations contrôlées appliquée identiquement à chaque échelle (feature-clamping via SAE / activation steering / insertion contrastive), avec échelle d'intensité paramétrée.
  • Phase 4 — Normalisation cross-échelle : mise à l'échelle des axes (features SAE, lecture J-lens) pour que « même seuil » soit comparable de 0.7B à 35B-A3B.
  • ≥3 exercices (convention repo).

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.

  • Chargement des artefacts calibrés (SAE + J-lens + batteries).
  • Balayage d'intensité d'inoculation par taille → trajectoires de features SAE + lecture J-lens le long des couches / tokens / pas.
  • Caractérisation de la forme : projection basse-dim, identification du type de bifurcation (fold / cusp / butterfly), seuil critique, netteté, hystérésis (aller-retour de l'intensité).
  • Dynamique : profil couche-par-couche / token-par-token de la transition.
  • Analyse d'échelle : seuil, netteté, géométrie en fonction de la taille → universalité vs dépendance d'échelle.
  • Sorties : traces .npz par taille (schéma cohérent avec les ict_trackP_jlens_layer16_*.npz existants) ; figures QA-vision (routées MiniMax / ai-01, GLM ne voit pas).
  • ≥3 exercices.

Phasage (post-voyage)

  1. Calibration Phase 0-1 (inventaire SAE + J-lens) sur GPU-2, taille pilote (ex. 4B) d'abord.
  2. Étendre la calibration aux 6 tailles.
  3. Expérience pilote 2-3 tailles → valider le pipeline forme+dynamique.
  4. Balayage complet 6 tailles + analyse d'échelle.
  5. Exécution réelle + outputs (C.2), figures QA-vision, 1 PR par notebook.

Critères d'acceptation

  • Calibration : SAE des 6 tailles inventoriés + vérifiés (MSE / variance expliquée reportés) ; J-lens fitté par taille ; batteries situations/inoculations appariées documentées.
  • Expérience : ≥3 tailles avec forme+dynamique caractérisées et traces .npz commité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).
  • Deux notebooks exécutés end-to-end (Papermill), commit AVEC outputs (règles C.2 / H).

Notes

Activity

  1. jsboige commented on Jul 26, 2026

    @jsboige
    Owner

    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, puis siblings repo 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-Base Qwen3 W32K 28 0..27 (toutes)
    2B SAE-Res-Qwen3.5-2B-Base Qwen3.5 W32K 24 0..23 (toutes)
    8B SAE-Res-Qwen3-8B-Base Qwen3 W64K 36 0..35 (toutes)
    9B SAE-Res-Qwen3.5-9B-Base Qwen3.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-Base Qwen3 W128K / W32K 48 0..47 (toutes)
    35B-A3B SAE-Res-Qwen3.5-35B-A3B-Base Qwen3.5 W128K / W32K 40 0..39 (toutes)

    Chaque repo existe en deux variantes de parcimonie : L0_50 et L0_100.

    Les trois ecarts avec la spec de l'issue

    1. Deux tailles annoncees n'existent pas. 0.7B et 4B n'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 par extract_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, 8B et 30B-A3B sont Qwen3 ; 2B, 9B, 27B, 35B-A3B sont 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 L0 fixe, 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.py implemente deja la convention d'encodage officielle Qwen-Scope (W_enc/b_enc, top-k, pas de b_dec a l'encodage), le modele-controle par permutation seedee des embeddings, et le stockage sparse exhaustif. Ses defauts sont Qwen/Qwen3.5-9B-Base + SAE-Res-Qwen3.5-9B-Base-W64K-L0_50, couche 16 — donc parametrable par --model / --sae-repo / --layer sans modification. Les traces traces/ict21_sae_layer16_{control,trained}.npz existent 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=2 strict, 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.

  2. jsboigeEpita commented on Aug 5, 2026

    @jsboigeEpita
    Contributor

    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 : Space Qwen/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-9B et Qwen3-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).

  3. jsboigeEpita commented on Aug 5, 2026

    @jsboigeEpita
    Contributor

    Recadrage — la collection fait foi, et le saut de version est une bonne nouvelle

    Directive user 2026-08-06 : Qwen/qwen-scope est 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.

  4. jsboige commented on Aug 10, 2026

    @jsboige
    Owner

    [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.)

  5. added 3 commits that reference this issue on Aug 10, 2026
  6. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Aug 13, 2026
  7. jsboige commented on Aug 17, 2026

    @jsboige
    Owner

    Label candidate-delivered retiré — 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 :

    É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)

  8. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Aug 17, 2026
  9. jsboige commented on Aug 20, 2026

    @jsboige
    Owner

    Distillation de l'audit externe (ChatGPT, apporte par le user le 2026-08-20) sur SAE / J-Lens :

  10. myia-ai-01 commented on Aug 22, 2026

    @myia-ai-01
    CollaboratorAuthor

    [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 :

    1. 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.py bloque 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>.
    2. 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.

  11. jsboige commented on Aug 22, 2026

    @jsboige
    Owner

    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).

  12. added a commit that references this issue on Aug 22, 2026
  13. added a commit that references this issue on Aug 23, 2026
  14. 54 remaining items

  15. added a commit that references this issue on Sep 23, 2026
  16. added a commit that references this issue on Sep 23, 2026
  17. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    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)

  18. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    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.

  19. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    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).

  20. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    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.

  21. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    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.

  22. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    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.

  23. jsboige commented on Sep 27, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2023:CoursIA — tranche 9B (pilote 3e taille) complete cote production :

  24. added a commit that references this issue on Sep 27, 2026
  25. added a commit that references this issue on Sep 27, 2026
  26. added a commit that references this issue on Sep 29, 2026
  27. myia-ai-01 commented on Oct 6, 2026

    @myia-ai-01
    CollaboratorAuthor

    [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].

  28. added a commit that references this issue on Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions