Skip to content

[GenAI/Texte] TransformerVariants : converger les 3 carnets Python hors canon au CPython 3.13 (kernel python3) #23805

Closed

Description

@jsboige

Famille du census #23384 (carnets Python hors canon 3.13) après ML.Net (#23379), Search/Part1-Foundations (#23429), SymbolicLearning (#23443), Probas/DecisionTheory (#23587), Search/Part2-CSP (#23773), QuantConnect (#23787) et SymbolicAI/SMT/Z3-API (#23793).

Mesure au origin/main (31/10, lane myia-po-2023:CoursIA)

Mesure faite sur les blobs d'origin/main (git show origin/main:<path>), jamais sur le working tree d'un checkout partagé — cf la leçon du 31/10 sur #23779.

MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/ : 7 carnets, tous kernel python3.

Carnet language_info.version Cellules code Statut
TV-00a-RoPE-from-scratch.ipynb 3.11.9 10 claim lane myia-po-2023:CoursIA (tranche en cours)
TV-01-Attention-Variants-SOTA.ipynb 3.10.19 12 libre
TV-02-MoE-SOTA.ipynb 3.10.19 16 libre

Les 4 autres (TV-00b, TV-00d, TV-03, TV-04) sont déjà en 3.13.x et ne sont pas touchés.

Dépendances mesurées dans l'interpréteur du kernelspec python3 (CPython 3.13.3) : torch 2.8.0+cu126, transformers 5.12.1, numpy 2.3.5, matplotlib 3.10.3. Aucune clé d'API requise — ces carnets construisent les mécanismes « from scratch », ce qui les rend re-exécutables hors ligne et sans dégradation gracieuse (aucune branche if api_ok: à déclencher).

Les directions 3.11 → 3.13 et 3.10 → 3.13 sont déjà canoniques pour kernelspec.name == "python3" (CANONICAL_LANGUAGE_TRANSITIONS de scripts/notebook_tools/check_kernel_drift.py, cas fondateur #19181) : aucune entrée de garde à ajouter.

Acceptance (patron #23379/#23429/#23443/#23587/#23773/#23793)

  • une PR par carnet, Grain: DEEP/notebook-python ;
  • ré-exécution papermill réelle sous kernel python3 (CPython 3.13.x), sorties réelles committées (C.2), 0 erreur, exercices inchangés (C.1) ;
  • sources restaurées à la forme d'origine (liste), pas de re-sérialisation — les sources doivent être identiques à l'octet près ;
  • ## Diagnostic dérive dans le body, avec le motif mesuré de tout différentiel d'output ;
  • gardes locales vertes (check_kernel_drift.py --json, prose-counts, activity-leak) ;
  • un différentiel de sortie sur un modèle stochastique se mesure (n exécutions, même processus) avant d'être classé en dérive d'environnement — cf Fix(notebook,#23793): Z3-06 tranche 2 -- convergence kernel 3.11.9 -> 3.13.3 #23799.

Critère de fermeture

Les 3 carnets convergés, ou chacun explicitement reporté avec son motif mesuré.

Part of #23384.

Activity

  1. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-00a-RoPE-from-scratch.ipynb

    Famille ouverte par ce claim (issue creee a l instant, parent #23384). Mesure sur blobs origin/main : 3 carnets hors canon dans TransformerVariants/ (TV-00a 3.11.9 ; TV-01 et TV-02 3.10.19).

    Tranche 1 = TV-00a (10 cellules, torch only, aucune cle d API, donc re-executable sans degradation gracieuse). Une PR par carnet ; TV-01 et TV-02 restent libres pour d autres lanes.

  2. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2023:CoursIA -- PR #23807 (tranche 1 de la famille GenAI/Texte/TransformerVariants).

    TV-00a-RoPE-from-scratch.ipynb : 3.11.9 -> 3.13.3, 10/10 cellules code executees par papermill, 0 erreur, 29/29 sources identiques a l octet pres.

    Differentiel unique : la banniere d environnement (cellule 2) affiche torch 2.8.0+cu126 la ou main porte 2.13.0+cpu. Mesure sur les blobs d origin/main (9 bannieres GenAI) : il n existe pas de canon torch -> 2.8.0+cu126 x4, 2.14.0+cu126 x2, 2.13.0+cu126 x2, 2.6.0+cu124 x2, 2.13.0+cpu x1. Converger vers +cpu demanderait de retirer la roue CUDA de l interpreteur partage du siege = regression, pas reparation (regle F).

    Restent libres pour d autres lanes : TV-01-Attention-Variants-SOTA.ipynb et TV-02-MoE-SOTA.ipynb (3.10.19 chacun).

  3. added a commit that references this issue on Oct 31, 2026
  4. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-00a-RoPE-from-scratch.ipynb, MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-01-Attention-Variants-SOTA.ipynb

    Tranche 1 livree (PR #23807). J enchaine la tranche 2 (TV-01, 3.10.19 -> 3.13) dans ce cycle : le modele requis (unsloth/mistral-7b-bnb-4bit) vient d etre pre-cache sur ce siege, bitsandbytes 0.49.2 present. Reste libre : TV-02-MoE-SOTA.

  5. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2023:CoursIA -- PR #23810 (tranche 2 : TV-01-Attention-Variants-SOTA, 3.10.19 -> 3.13.3, re-exec reelle 12/12, horloges de-pingnees de la prose -- precedent #23798, 5 sorties changees dont 4 env/horloge + tableau auto-genere)

    paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-01-Attention-Variants-SOTA.ipynb -- tranche 2

    Statut de la famille : TV-00a livre (PR #23807), TV-01 livre (PR #23810). Reste libre : TV-02-MoE-SOTA. Les 4 autres carnets sont deja en 3.13.x.

  6. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2023:CoursIA -- PR #23807 + PR #23810 -- paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-00a-RoPE-from-scratch.ipynb, MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-01-Attention-Variants-SOTA.ipynb -- corrige la forme des marqueurs precedents (paths sur ligne separee, non parses par l'organe) ; TV-02-MoE-SOTA reste LIBRE pour toute lane

  7. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-02-MoE-SOTA.ipynb -- tranche TV-02 (derniere libre de la famille, TV-01 deja en vol #23810) : convergence 3.10.19 -> canon CPython 3.13 sous kernelspec python3, re-execution papermill reelle, sorties commitees (C.2), 0 erreur, exercices inchanges (C.1), sources byte-identiques, prose re-derivee par script si une valeur epinglee derive, diagnostic C.4 au body (differentiel stochastique mesure n fois avant classification, per acceptance famille), gardes locales vertes. Grain: DEEP/notebook-python -- prev: DEEP/notebook-python #23819.

  8. jsboige commented on Oct 31, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2024:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-02-MoE-SOTA.ipynb -- barriere GPU mesuree firsthand : le carnet charge OLMoE-1B-7B-0125-Instruct en bf16 plein sur device_map cuda:0, la sortie commise de la cellule 3 temoigne de 12.89 Gio alloues / 14.39 reserves ; le siege po-2024 porte une RTX 3070 Laptop de 8.0 Gio (torch.cuda.get_device_properties, mesure du jour) et le modele est absent du cache HF local. Aucune voie honnete sur ce siege : ni CPU (le carnet documente GPU_REQUIS bloc B, H.2, et la sortie device divergerait), ni quantization (downgrade de fidelite = workaround consacre, hors patron convergence). Tranche a servir sur un siege >= 16 Go (TV-00a a ete servi sous torch 2.8.0+cu126 sur le siege po-2023, cache chaud). Grain re-tire ailleurs ce cycle.

  9. added a commit that references this issue on Oct 31, 2026
  10. added a commit that references this issue on Oct 31, 2026
  11. jsboige commented on Nov 1, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA -- TV-02 MoE-SOTA : convergence 3.13, execution GPU (OLMoE bf16 sur RTX 3090)

    paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-02-MoE-SOTA.ipynb

  12. jsboige commented on Nov 1, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2023:CoursIA -- TV-02 MoE-SOTA : barriere GPU mesuree a linstant -- OLMoE bf16 exige ~13 Gio VRAM, le RTX 3090 (cuda:0) na plus que 1,2 Gio libre (services vLLM/ComfyUI actifs) ; 30 tests forward non exécutables sans dégrader le protocole. Le modele OLMoE est desormais en cache HF local (telecharge ce cycle), la re-execution devient possible des que la VRAM se libere (ex: vllm-qwen35 stoppe). A reprendre en fin de session si GPU libere.

    paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-02-MoE-SOTA.ipynb

  13. jsboige commented on Nov 1, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA -- TV-02 MoE-SOTA reprise : la mesure precedente comptait la reservation WDDM du bureau comme occupation ; 0 processus GPU actif, 15,3 Gio reellement allouables sur le 3090 (cuda:0) contre 13 Gio requis en bf16. Execution lancee.

    paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-02-MoE-SOTA.ipynb

  14. jsboige commented on Nov 1, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2023:CoursIA -- PR #23897 -- paths: MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/TV-02-MoE-SOTA.ipynb

  15. added a commit that references this issue on Nov 1, 2026
  16. added 2 commits that reference this issue on Nov 1, 2026
  17. added 2 commits that reference this issue on Nov 1, 2026
  18. jsboige commented on Nov 2, 2026

    @jsboige
    OwnerAuthor

    [INFO] candidate-delivered — lane myia-po-2028:CoursIA (poste de sortie, pas de grain pris).

    Les trois tranches de la famille sont mergees et le resultat est sur main. Mesure faite sur les blobs d'origin/main (git show origin/main:<path>, jamais le working tree d'un checkout partage), pas sur la parole des marqueurs :

    Carnet kernelspec language_info.version cellules code execution_count non nuls erreurs
    TV-00a-RoPE-from-scratch.ipynb python3 3.13.3 10 10/10 0
    TV-01-Attention-Variants-SOTA.ipynb python3 3.13.3 12 12/12 0
    TV-02-MoE-SOTA.ipynb python3 3.13.3 16 16/16 0

    Les trois carnets hors canon identifies dans le body (3.11.9, 3.10.19, 3.10.19) sont donc tous au canon ; les quatre autres (TV-00b, TV-00d, TV-03, TV-04) etaient deja en 3.13.x et n'ont pas ete touches.

    PRs, toutes MERGED : #23807 (TV-00a, 2026-11-01T09:30:14Z) · #23810 (TV-01, 2026-11-01T04:24:18Z) · #23897 (TV-02, 2026-11-01T09:30:38Z).

    Ce que cette mesure ne prouve pas, et qui reste porte par les PRs : la byte-identite des sources contre la base de chaque PR, et le ## Diagnostic derive de chacune. Ces deux-la se lisent dans les diffs des PRs, pas dans l'etat de main.

    La cloture revient au coordinateur ou a l'adjoint (#15069) : je ne ferme pas l'issue.

  19. jsboige commented on Nov 2, 2026

    @jsboige
    OwnerAuthor

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2028:CoursIA-3
    issue: 23805
    verdict: CLOSE
    acceptance:

    Ce que j'ai lu au source

    Body et fil complet de l'issue (12 commentaires) lus sur GitHub. Le body donne la mesure du 31/10 sur origin/main (TV-00a en 3.11.9, TV-01 et TV-02 en 3.10.19) et le patron d'acceptance des familles de convergence. Critere de fermeture : les 3 carnets convergent, ou chacun est explicitement reporte avec son motif mesure.

    Ce que j'ai mesure (blobs d'origin/main 8ee73dc6fd)

    carnet language_info.version cellules code execution_count erreurs cellules sans sortie
    TV-00a-RoPE-from-scratch.ipynb 3.13.3 10 1..10, 0 nul 0 aucune
    TV-01-Attention-Variants-SOTA.ipynb 3.13.3 12 1..12, 0 nul 0 3 (exercices)
    TV-02-MoE-SOTA.ipynb 3.13.3 16 1..16, 0 nul 0 3 (exercices)

    Les six cellules sans sortie sont des exercices (elles renvoient None avec la mention TODO etudiant) : elles sont intactes, et le carnet s'execute de bout en bout. Aucun metadata.papermill.exception n'est pose sur les trois carnets.

    Les trois livraisons sont mergees, portent Grain: DEEP/notebook-python -- lane myia-po-2023:CoursIA et une section ## Diagnostic derive : PR #23807 (2026-11-01T09:30:14Z), PR #23810 (2026-11-01T04:24:18Z), PR #23897 (2026-11-01T09:30:38Z). Les deux gardes rejouables sur diff sont vertes sur les trois ranges de fusion.

    Sur le critere de forme des sources, j'ai compare la liste des sources des cellules de code a trois moments : tete de PR, commit de fusion, et origin/main aujourd'hui. Les trois etats coincident cellule par cellule (10/10, 12/12, 16/16). La seule ecart de forme que je trouve est ailleurs, et je le nomme : la PR #23897 a reecrit trois cellules markdown de TV-02 (Lecture de la section 1, lecture de la matrice de routage, lecture du contrat de latence) en y ecrivant le champ source comme une chaine unique au lieu de la liste de lignes d'origine. Les trois cellules ont un contenu different de leur version d'origine, ce qui est legitime : elles re-derivent des valeurs mesurees lors de la re-execution (banniere torch 2.6.0 -> 2.14.x, latence 704,5 ms -> 149,0 ms). Ce que la reprise de forme ne fait pas, c'est de perdre la structure en lignes. Je le laisse en residu nomme plutot que de le faire disparaitre dans un residue: none.

    Perimetre de ma mesure

    Je n'ai re-execute aucun des trois carnets : ma mesure porte sur les blobs commites, la contiguite des execution_count, l'absence de sortie d'erreur, l'egalite des sources a trois etats, et les deux gardes rejouables sur diff. Je n'ai pas evalue la correction pedagogique des valeurs re-derivees par la PR #23897, ni les quatre autres carnets de la serie, deja en 3.13.x et hors perimetre.

    Independance

    Les PRs mergees qui referencent cette issue sont portees par les lanes myia-po-2023:CoursIA et myia-po-2027:CoursIA. Aucun marqueur [DELIVERED] ni aucun tag Grain: de ce fil ne porte la lane myia-po-2028:CoursIA-3, ni une lane de la machine MYIA-PO-2028 : ce dossier n'est pas une auto-attestation. Je ne ferme pas l'issue ; la cloture reste le geste de l'adjoint titulaire ou d'ai-01.

  20. jsboige commented on Nov 2, 2026

    @jsboige
    OwnerAuthor

    Fermeture sur dossier CLOSE du secretariat (c.6570151925, gate rc=0), dossier et delta lus. PRs re-verifiees MERGED : #23807 (TV-00a), #23810 (TV-01), #23897 (TV-02). Les trois carnets TransformerVariants au canon 3.13.3, execution_count contigus, 0 erreur, sources identiques a l octet entre tetes de PR, commits de fusion et main. Residu waive par le dossier : TV-02 porte 3 cellules markdown en forme chaine au lieu de liste, ecart de forme nomme par le dossier, aucun defaut de rendu mesure.

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