Skip to content

[EPIC][ICT] Toolkit multi-instrument de mesure et d’intervention sur les états internes #15475

Description

@jsboige

État mesuré au 2026-10-05 (consolidation #13906, lane myia-po-2025:CoursIA). Confrontation des 6 cases « Enfants initiaux » et des 7 « Critères de réussite » à origin/main. L'Epic n'est pas fermable : 2 filles closes, 2 livrées-mais-ouvertes, 2 encore ouvertes — chacune nommée ci-dessous avec sa preuve.

Enfants initiaux

# Case Verdict Artefact vérifié sur main
1 #15476 — Contrat de trace v1, identité d'instrument et alignement commun livrée, non close MyIA.AI.Notebooks/IIT/ICT-Series/ict/trace_contract.py porte CONTRACT_VERSION = "v1.1.0" (l. 67) et l'énumération INSTRUMENTS ; PRs #15525 et #15548 MERGED. Le [RELEASED] de la lane ai-01:CoursIA-2 du 2026-10-04 la déclare candidate-delivered (marqueurs c.1134 du 22/09 et c.926 du 28/09) — la fermeture revient au coordinateur (urne delivered, #15069), pas à une lane.
2 #15477 — F-Lens, mode belief-state close CLOSED 2026-09-20 ; ICT-37-FLens-BeliefState-Python.ipynb sur main, 13 cellules exécutées, 0 erreur
3 #15478 — F-Lens, mode factored geometry NON livrée OPEN. Le coordinateur l'a rendue au tapis le 2026-10-05 : « ce n'est pas encore livré » — les 6 critères d'origine sont couverts (#15514, #16013) et #18002 livre la courbe overlap(k) sur 5 graines, mais des critères ajoutés le 15/09 restent ouverts (boucle fermée bench_factorise, plancher Bayes, bruit sur le canal génératif, structure conditionnelle, null sur ≥5 initialisations non entraînées, overlap des coefficients de probes). L'artefact existe (ICT-36-FLens-FactoredGeometry, 16 cellules exécutées, 0 erreur) ; la case ne l'est pas.
4 #15479 — Causal Intervention Engine ouverte, claim actif d'une autre lane ict/causal_engine.py (711 l.) est sur main : InterventionSpec, apply_intervention, interchange_panels, random_target_matched, sham_of, symmetric_doses, dose_response_specs, holm_adjust, damage_metrics, selectivity_verdict, InterventionRecord.to_json, artifact_sha256, assert_alignment. Le claim myia-po-2024:CoursIA du 2026-09-27 porte une tranche de délégation au contrat canonique, pas l'absence du moteur.
5 #15480 — pilote de triangulation SAE–J-Lens–F-Lens livrée, non close ICT-40a-TriangulationCausale-Python.ipynb sur main : 16 cellules exécutées, 0 erreur, hypothèses H1-H4 pré-enregistrées verbatim, doses symétriques, sham, correction de Holm, multi-seeds. PRs #16230, #17472, #15665, #15799 MERGED ; [INFO] candidate-delivered de ai-01 du 2026-10-03 → fermeture = urne delivered.
6 #15481 — S-Lens POC expérimental close CLOSED 2026-09-15 ; ict/slens.py + ICT-38-SLens-SelfLocation-Python.ipynb sur main

Critères de réussite

# Critère Verdict Preuve / ce qui manque
1 Les quatre instruments ont un contrat d'observable explicite et versionné tenue, avec une nuance déclarée ict/trace_contract.py, CONTRACT_VERSION = "v1.1.0", validate_manifest, stamp de rétro-compatibilité (out["contract_version"], l. 254). L'énumération INSTRUMENTS couvre sae, jlens, jlens_trackp — S-Lens en est délibérément exclu : slens.py écrit « slens n'entre PAS dans l'énumération INSTRUMENTS du contrat de trace v1 » et range son ajout en étape post-promotion. Cette exclusion est la doctrine du critère 6, pas un manque du critère 1.
2 Traces alignables sans mélange silencieux de modèle, run, prompt, token, couche ou sémantique top-k tenue ALIGNMENT_KEYS + validate_manifest dans trace_contract.py ; la sémantique top-k est portée explicitement (jlens_trackp) ; tests tests/test_trace_contract.py, ict/tests/test_jlens_traces.py, ict/tests/test_lens_endpoints.py
3 F-Lens rend deux verdicts distincts : état prédictif accessible et géométrie de ses facteurs partiellement tenue Le belief-state est rendu (ICT-37, #15477 close). La géométrie factorisée a un carnet exécuté (ICT-36) mais son grain #15478 n'est pas livré — le second verdict n'est donc pas encore acquis au sens de la case.
4 Le moteur causal exécute des interventions appariées avec provenance et contrôles tenue ict/causal_engine.py : apply_intervention, interchange_panels, random_target_matched (cible aléatoire appariée), sham_of, symmetric_doses, dose_response_specs, holm_adjust (correction des comparaisons multiples), damage_metrics + selectivity_verdict (séparation état/readout), InterventionRecord (provenance sérialisée), artifact_sha256, assert_alignment
5 Un pilote à trois instruments rend des verdicts falsifiables multi-seeds avec tailles d'effet et IC tenue ICT-40a-TriangulationCausale-Python.ipynb : trois lectures séparées de la même machine (F-Lens belief / SAE / J-Lens), H1-H4 pré-enregistrées, doses et sham, Holm, seeds
6 S-Lens reste expérimental tant que sa généralisation hors copy_offset n'est pas démontrée tenue ict/slens.py porte le statut contractuel : POC expérimental, hors énumération du contrat v1, manifestes POC-locaux non validables par validate_manifest ; le second problème de binding (variable_binding) est le gate de promotion, et le verdict est PROMOTE / SPECIALIZED_ONLY / INCONCLUSIVE
7 Tous les notebooks exécutés end-to-end avec outputs réels et ≥3 exercices tenue Mesuré sur les 5 carnets du périmètre (execution_count non nul, 0 erreur) : ICT-22b 15/15, ICT-36 16/16, ICT-37 13/13, ICT-38 16/16, ICT-SAE-JLens-TeteATete 12/12. scripts/notebook_tools/count_exercises.py : 5/5 conformes, 16 exercices au total.

Ce qui reste, et où ça vit

  1. ICT F-Lens : mode factored-geometry, sous-espaces et additivité #15478 — le seul enfant dont la livraison est en défaut. Les critères ajoutés le 15/09 sont nommés par le coordinateur lui-même (2026-10-05) : boucle fermée bench_factorise, plancher Bayes, bruit sur le canal génératif, structure conditionnelle, null sur au moins 5 initialisations non entraînées, overlap des coefficients de probes. C'est un grain de contenu actionnable par une lane.
  2. ICT toolkit : contrat de trace v1, identité d’instrument et alignement commun #15476 et ICT toolkit : pilote causal de triangulation SAE–J-Lens–F-Lens #15480 — livrées, non closes. Leur fermeture est un geste de coordinateur (urne delivered, P0 -- la fermeture d'issue est tiree au sort par le picker, pas routee : 21 fermetures MiniMax contre 4 du coordinateur, et l'adjoint n'existe dans aucune regle #15069) : les deux portent le marqueur candidate-delivered et une lane worker qui les rencontre doit rendre la main, pas fermer.
  3. ICT toolkit : moteur commun d’interventions causales sur les états internes #15479 — claim actif myia-po-2024:CoursIA (2026-09-27) sur une tranche de délégation au contrat canonique. Le moteur lui-même est déjà sur main ; la case reste ouverte parce que le grain qui la porte n'est pas terminé, et elle appartient à la lane qui l'a claimé.

Aucun résidu de cet Epic n'est verrouillé par une décision user.

Portée non vérifiée : les critères ont été mesurés sur les artefacts de origin/main et sur les corps/derniers commentaires des six filles — pas sur les 12+ commentaires de chacune ; un critère tenu par une PR mergée après le dernier commentaire d'un enfant ne serait pas vu ici. La mesure d'exécution des carnets porte sur les fichiers de origin/main matérialisés hors arbre de travail.


But

Construire dans ICT un toolkit cohérent pour mesurer, comparer puis intervenir sur les états internes des transformers, sans réduire des observables différents à un score omnibus.

Le toolkit consolide deux instruments existants et en introduit deux autres :

  1. Feature Lens (SAE) — features latentes sparse ;
  2. Functional Readout Lens (J-Lens) — effets fonctionnels exposés actuellement comme logits de tokens ;
  3. Factored Geometry Lens (F-Lens) — état prédictif décodable et géométrie factorisée ;
  4. Self-Location Lens (S-Lens) — position/référence/binding, au statut expérimental.

La causalité n’est pas un cinquième instrument : c’est un protocole transversal reliant les cibles proposées par les lentilles à des interventions et à des effets mesurés.

Position dans la série et non-duplication

Principes architecturaux

Capture once, analyze many, intervene explicitly

  1. adaptateurs de capture torch ;
  2. trace store commun et versionné ;
  3. adaptateurs SAE/J-Lens/F-Lens/S-Lens ;
  4. alignement explicite run/prompt/token/couche ;
  5. métriques, nulls et incertitudes ;
  6. moteur d’interventions causales ;
  7. rapports et notebooks consommant les mêmes primitives testées.

Le cœur analytique reste numpy-first/offline dans ict/ ; torch/transformers et les hooks restent dans scripts/.

Sémantique préservée

  • Une feature SAE absente du top-k vaut zéro par construction ; un logit J-Lens absent du top-k est inconnu, pas nul.
  • Les logits J-Lens actuels ne sont ni une matrice jacobienne brute ni des directions singulières.
  • Les valeurs brutes, métriques dérivées, probes, nulls, incertitudes et interventions restent séparées.
  • L’accord faible entre instruments est un résultat possible, pas un échec à masquer.
  • Aucun score omnibus ne fusionne les lentilles.

Couche causale transversale

Opérations : ablate, clamp, patch, steer, interchange.

Contrôles minimaux : cible aléatoire appariée en norme/fréquence, sham, doses symétriques, contre-factuels appariés, plusieurs seeds, contrôle perplexité/reconstruction et correction des comparaisons multiples.

Chaîne de preuve exigée :

intervention interne → changement d’état mesuré → changement comportemental sélectif

Toujours séparer effet sur l’état, effet sur le readout et effet comportemental.

Enfants initiaux

La synthèse/API publique sera ouverte après le verdict du pilote causal. Le notebook S-Lens définitif sera ouvert seulement si le POC généralise à un second problème de binding.

Critères de réussite

  • Les quatre instruments ont un contrat d’observable explicite et versionné.
  • Les traces sont alignables sans mélange silencieux de modèle, run, prompt, token, couche ou sémantique top-k.
  • F-Lens rend deux verdicts distincts : état prédictif accessible et géométrie de ses facteurs.
  • Le moteur causal exécute des interventions appariées avec provenance et contrôles.
  • Un pilote à trois instruments rend des verdicts falsifiables multi-seeds avec tailles d’effet et IC.
  • S-Lens reste expérimental tant que sa généralisation hors copy_offset n’est pas démontrée.
  • Tous les notebooks sont exécutés end-to-end avec outputs réels et ≥3 exercices.

Sources et licence

Méthodes scientifiques fondatrices : arXiv:2405.15943 et arXiv:2602.02385, enregistrées dans la bibliothèque canonique.

Les dépôts factored-reps, simplexity, strange-loop et pytorch-AI-interpretability-transformer_ZM n’ont pas de licence détectée lors du preflight. Ils servent uniquement de références scientifiques/architecturales : aucun code n’est copié ; les méthodes sont réimplémentées depuis les publications et nos propres contrats.

Activity

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

    EPICEpic tracking issue with sub-issuesenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions