Skip to content

EPIC origami : de la bibliothèque au cursus, parcours verticaux d'abord puis les sous-sujets confirmés absents #19543

Open

Description

@myia-ai-01

Grain: DEEP/notebook-python

Pourquoi cette issue

Un retour extérieur sur le catalogue, reçu le 06/10, propose treize évolutions et cinq parcours verticaux. Sa thèse centrale est juste. Le dépôt compte 1498 notebooks, mesurés par find MyIA.AI.Notebooks -name "*.ipynb" sans les sorties, les points de contrôle ni _archive. Le prochain saut de qualité ne viendra donc pas d'un surcroît de volume. Il viendra de la transformation de la bibliothèque en itinéraires guidés, avec prérequis, niveaux, objectifs, évaluations et projets finaux.

Ce retour ne connaît pas notre corpus. Il ignore en particulier que l'infrastructure de parcours existe déjà. Cette issue confronte ses propositions aux sources, puis les range en plis.

Consigne pour toute lane qui déplie un pli : partir du besoin décrit ici et de notre corpus. Les règles habituelles s'appliquent : C.1, C.2, organe natif d'abord (organ-first-implementation.md), étiquetage exemple ou exercice.

Vérification avant de croire le retour

Chaque proposition a été confrontée au corpus le 06/10. Les termes ont été cherchés dans les sources des cellules, sorties exclues : une recherche brute sur les .ipynb donne de faux positifs dans les images en base64.

# Thème proposé Verdict Ce qui existe Ce qui manque
1 Data science, de zéro au ML partiel DataScienceWithAgents/01 (1.2 NumPy, 1.3 Pandas), 02-ML-Cours (2.1 workflow, 2.5 biais-variance, validation croisée et ROC, 2.10 hyperparamètres, 2.14 SHAP/LIME) Python depuis zéro (pas de 1.1), visualisation, exploration et nettoyage, statistiques descriptives
2 Tokenisation partiel RAG-et-Memoire-Semantique/04-Tokenisation-From-Scratch (BPE à la main, coût), tiktoken dans 5 notebooks WordPiece (0 occurrence), Unigram/SentencePiece comme sujet, comparatif de tokenizers, effet multilingue
3 Embeddings partiel RAG/03-Embeddings-From-Scratch, RAG/02-Retrieval-Avance, 03-DeepLearning/3.8-Representations-Contrastives visualisation de l'espace vectoriel, banc de modèles d'embedding
4 Bases vectorielles partiel RAG/05-Stockage-Vectoriel (HNSW, approché contre exact, rappel), RAG/05b (serveur Qdrant), RAG/08 (hybride), SemanticKernel/05-VectorStores FAISS (0), pgvector (0), comparaison mesurée de plusieurs moteurs
5 LLM local couvert GenAI/Texte/10_LocalLlama (vLLM, Ollama, endpoints compatibles OpenAI : le projet final proposé existe déjà), 10e/10f (bancs .NET), 11_Quantization MLX et Apple Silicon (aucun matériel dans la flotte)
6 Ingénierie d'inférence partiel 10b_Inference_Mechanics (KV-cache construit et mesuré, prefill, continuous batching, PagedAttention), 10c, 11, 09d décodage spéculatif traité comme sujet (il n'est que mentionné), toit mémoire et bande passante, TensorRT-LLM
7 Context engineering partiel 02_PromptEngineering, 03_Structured_Outputs, 03c_Constrained_Decoding_Python, 10c_Long_Context_Strategies, 09d_Production_Caches, 14b_Paginated_Memory DSPy (0 occurrence) et l'optimisation de pipelines, hiérarchie d'instructions, compression de contexte
8 Évaluation des LLM et des agents couvert 22_Evaluating_Generated_Text (BLEU et ROUGE from scratch, juge LLM et ses failles, fidélité RAG), 13b_Agent_Evaluation, PostTraining/PT_06 harnais de non-régression avant/après : déjà au pli 3 de #18220
9 Sécurité et red team partiel 09b_Prompt_Security_RedTeam (injection directe et indirecte), GenAI/Security/* (surface d'attaque MCP, direction de refus) jailbreaks, empoisonnement, chaîne d'approvisionnement, bac à sable et permissions comme sujets
10 Matériel pour l'IA partiel 11_Quantization, 3.9/3.9a (formats flottants, INT8), 3.11-Budget-Memoire-Entrainement relier débit, mémoire et coût sur notre matériel ; TPU, NPU, Apple et AMD absents (voir pli 4)
11 Applications rapides partiel Gradio, Streamlit et FastAPI utilisés dans une dizaine de notebooks, toujours comme outil un notebook dont le sujet est le passage du notebook à l'application
12 Auto-évaluation déjà suivie — #18207 (pilote 02-ML-Cours), #19297
13 Glossaire transversal déjà suivi — #18209 (pilote 03-DeepLearning)
14 Parcours verticaux socle existant PARCOURS.md (3 parcours narratifs), docs/curriculum/ (dont actuariat.json, première sortie du compilateur), GenAI/Texte 01 à 22, qui forme déjà de fait un arc d'ingénierie LLM les verticaux ML Engineer, LLM Engineer, AI Engineer et Recherche ; le symbolique existe déjà (symbolic-formalization)

Bilan : 2 thèmes couverts, 9 partiels, 3 déjà portés par une issue, aucun entièrement absent. Le retour sous-estime le corpus. Ses lacunes réelles sont des sous-sujets précis, presque tous dans des séries qui existent.

Angles morts du retour (à ne pas reprendre)

  • Le tour d'outils. Sept bases vectorielles, cinq moteurs d'inférence, du low-code et de l'AutoML : un inventaire n'est pas un cours. Chez nous, un concept s'enseigne avec un organe. Une comparaison n'entre que si elle enseigne quelque chose, par exemple exact contre approché, ou rappel contre latence.
  • Le matériel qu'on n'a pas. Un banc TPU, NPU, Apple Silicon ou AMD ne peut pas produire de sorties réelles (C.2) : la flotte est NVIDIA et CPU. En revanche, notre propre infrastructure est un cas réel rare : vLLM servi en continu, sondes VRAM mesurées sur 4090 ([EPIC] Training & Post-Training — trading + sudoku + RL/PPO + GenAI fine-tuning (po-2024 pionnier ⇄ ai-01 approfondit) #1454), registre de réservation GPU.
  • Les niveaux en emoji. Ils sont interdits dans le code et les fichiers générés (règle E). PARCOURS.md porte déjà des niveaux de difficulté en texte.
  • Le Python depuis zéro. C'est un vrai trou, mais nos publics d'école arrivent avec un prérequis Python. L'ajout vise l'apprenant autonome, sans alourdir les parcours d'école.

Ce que le retour confirme (à garder)

Nos forces ne figurent pas dans sa liste, mais ses priorités ne les menacent pas. Les jumeaux Python, .NET et Lean, la discipline d'exécution, la preuve formelle, le symbolique et le RAG mesuré restent la colonne vertébrale. Les parcours verticaux doivent les traverser, pas les contourner.

Plis

Pli 1 — parcours verticaux (ouvert maintenant)

C'est la proposition la plus importante. Elle se construit sur le compilateur de #14620 et sur les référentiels de #17982, sans nouvelle infrastructure.

À déplier quand #19544 aura rendu sa carte des trous : « AI Engineer » (GenAI, agents, production) et « Recherche » (papiers, reproduction, ablations ; docs/curriculum/recherche.md n'est aujourd'hui qu'une vue de catalogue). Le vertical symbolique n'est qu'à relier : symbolic-formalization existe.

Pli 2 — sous-sujets confirmés absents (ouvert maintenant)

Pli 3 — à déplier une ligne à la fois

La lane qui clôt une fille du pli 2 ouvre la ligne suivante, après avoir re-vérifié son constat. Au plus deux filles sont ouvertes à la fois. Chaque ligne étend une série existante plutôt que d'en créer une.

Ligne Série d'accueil Contenu
Tokenizers comparés RAG-et-Memoire-Semantique (après 04) WordPiece et Unigram from scratch sur le même corpus, comparaison des longueurs, effet multilingue sur le coût
Espace des embeddings RAG-et-Memoire-Semantique (après 03) réduction de dimension et visualisation, banc de deux ou trois modèles sur notre corpus français
Moteurs vectoriels mesurés RAG-et-Memoire-Semantique (05/05b) FAISS et pgvector à côté de Qdrant, sur le même jeu : rappel, latence, mémoire, filtrage
Inférence : spéculatif et toit mémoire GenAI/Texte (après 10b) décodage spéculatif mesuré sur la flotte, modèle du toit bande passante/calcul relié aux mesures de #1454
Red team au-delà de l'injection GenAI/Security jailbreaks, empoisonnement, chaîne d'approvisionnement, bac à sable et permissions d'un agent outillé
Du notebook à l'application GenAI/Texte ou Vibe-Coding interface, API et déploiement local d'un pipeline déjà construit dans la série
Matériel, coût, débit GenAI/Texte ou 03-DeepLearning relier formats numériques, VRAM, débit et coût par million de tokens, sur nos seules cartes

Pli 4 — arbitrages

Articulation avec l'existant (ne pas dupliquer)

Déjà porté par Sujet
#18220 lacunes vérifiées du 28/09 : auto-évaluation (#18207), préflight (#18208), glossaire (#18209), décodage contraint (#18212), harnais de non-régression (pli 3)
#13844 refonte des parcours, PARCOURS.md
#14620 compilateur de parcours et ses instances verticales
#17982 correspondance notebooks-compétences
#10921 site public

Note de passage : #18212 (décodage contraint) est ouverte alors que GenAI/Texte/03c_Constrained_Decoding_Python.ipynb existe sur main. La lane qui la porte vérifie si elle est déjà livrée.

Activity

  1. added
    EPICEpic tracking issue with sub-issues
    on Oct 6, 2026
  2. jsboige commented on Oct 6, 2026

    @jsboige
    Owner

    [c.205 myia-ai-01:CoursIA-2] Carte des trous du pli 1 « LLM Engineer » (PR #19580, issue #19544).

    Synthese

    Pli 1 (parcours LLM Engineer) a livre un manifeste docs/curriculum/llm-engineer.json (8 branches + 6 accretions, 39 notebooks, 26 h) avec un test dedie (TestLlmEngineerManifest, 4 tests, 54/54 verts). Le pli 1 tient la consigne de l'EPIC : composer l'arc sans modifier de notebook.

    Trous identifies (a traiter dans les plis suivants)

    Trous actionnables (plis 2/3 de l'EPIC)

    Theme EPIC Verdict EPIC Constat pli 1 Geste propose
    Axe 3 (embeddings) partiel, "banc de modeles d'embedding" Pas de carnet comparatif (mon manifeste a 2 carnets embeddings : RAG-et-Memoire-Semantique/03 from-scratch + RAG/02 retrieval avance) Creer un carnet "banc d'embeddings" ou detour dans stockage-rag
    Axe 7 (context engineering) partiel, "DSPy (0 occurrence) et l'optimisation de pipelines" 0 carnet DSPy. Mon manifeste couvre prompting, sorties structurees, decodage contraint, mais pas l'optimisation de pipelines Detour DSPy a creer sur appel-controle
    Axe 9 (securite) partiel, "jailbreaks, empoisonnement, chaine d'approvisionnement, bac a sable et permissions" 3 carnets (09b + 2 Security/*) couvrent injection directe/indirecte, refus, MCP attack surface. Jailbreaks et empoisonnement : 0 carnet dedie Creer un carnet "jailbreaks" et un carnet "empoisonnement" sur la branche securite
    Axe 11 (applications rapides) partiel, "un notebook dont le sujet est le passage du notebook a l'application" Gradio/Streamlit/FastAPI utilises comme outils, mais 0 carnet dedie au sujet Creer un carnet sur la conversion notebook->app

    Trous INTRINSIC (non actionnables sur la flotte)

    Theme Raison Verdict
    Axe 5 (MLX / Apple Silicon) Pas de materiel Apple dans la flotte (NVIDIA only) INTRINSIC
    Axe 10 (TPU) Pas de materiel TPU INTRINSIC
    Axe 10 (NPU) Pas de NPU dans la flotte INTRINSIC
    Axe 10 (AMD) Pas de GPU AMD INTRINSIC

    Ces 4 trous relevent d'un constat materiel, pas d'un manque documentaire. A documenter dans l'EPIC comme « non actionnable » (le depot a un GPU 2 RTX 3090 sur po-2023 et une flotte de runners self-hosted NVIDIA ; le perimetre est fixe).

    Decompte

    • Pli 1 : 8 branches + 6 accretions + 39 notebooks (livres, 26 h).
    • Trous actionnables : 5 (banc embeddings, DSPy, jailbreaks, empoisonnement, conversion notebook->app).
    • Trous INTRINSIC : 4 (MLX, TPU, NPU, AMD).
    • Plis 2/3 proposes :
      • Pli 2 (candidats shorts) : jailbreaks, empoisonnement, conversion notebook->app, DSPy.
      • Pli 3 (candidats plus lourds) : banc d'embeddings, integration des plis 2 + sous-sujets confirmes absents.

    Liens

  3. jsboige commented on Oct 6, 2026

    @jsboige
    Owner

    Carte des trous — Manifeste ML Engineer (#19545 / EPIC #19543 pli 1)

    Statut

    Branche Notebooks Duree Couverture
    donnees 2 ~1h OK — NumPy + Pandas (01-PythonForDataScience/1.2, 1.3)
    workflow-ml 2 ~2h OK — 2.1 (workflow) + 2.2 (descente de gradient)
    apprentissage-supervise 5 ~4h OK — regression, generatifs, grandes dim, arbres/forets/ensembles
    evaluation-validation 4 ~3h OK — biais-var, hyperparametres, desequilibre, analyse d'erreurs
    fiabilite 4 ~3h OK — calibration, equite, derive deploiement, donnee responsabilite
    interpretabilite 2 ~2h OK — SHAP/LIME/contrefactuels + pont causal
    deep-learning-budget 6 ~5h OK — retroprop, optimiseurs, regularisation, transformer, budget memoire, DDP/ZeRO/FSDP
    Accretions (5 detours) 25 ~10h OK

    Total : 50 carnets, 30h de duree estimee. Compile clean (0 erreur, 12 groupes, 30h).

    Trou principal : mise en service d'un modele

    L'issue spec (#19545) nomme ce trou explicitement : "y a-t-il un notebook qui sert un modele entraine ?"

    Verifie : aucun carnet du depot ne couvre FastAPI, Flask, BentoML, Seldon, ou un service HTTP/grpc minimal qui prend un modele ML et l'expose. Les seuls points de contact :

    • ML-6-ONNX-Python.ipynb (sauvegarde/chargement via ONNX, pas de service)
    • ML-7-Recommendation.ipynb (utilise ONNX localement, pas de service)
    • ML/ML.Net/ML-3-Entrainement-Python.ipynb (entrainement, pas service)

    Le pli 2 ou 3 doit porter un carnet de mise en service : FastAPI-serveur-ML-from-scratch.ipynb ou equivalent, sur le modele du carnet de tokenisation 04-Tokenisation-From-Scratch.ipynb du parcours LLM Engineer.

    Trous mineurs (non bloquants pour le pli 1)

    Branche Trou Severite
    donnees encodage categoriel, gestion des valeurs manquantes bas — Pandas couvre implicitement
    workflow-ml pipeline scikit-learn dedie (sklearn-01-Setup.ipynb?) bas — 2.1 montre le pattern
    apprentissage-supervise one-vs-rest, k-NN bas — couverts en 2.7 (modeles non-parametriques) en detour
    deep-learning-budget diffusion models (couverts en detour modele-generatif) OK via accretion

    Renommage prealable

    Aucun renommage necessaire sur les fichiers des branches. Le seul doublon potentiel etait 2.4b-AdaBoost-From-Scratch.ipynb (recent accretion non catalogue), que j'ai retire du manifeste pour respecter la regle catalog-pr-hygiene : pas de carnet orphelin non catalogue dans un manifeste. Une regeneration ulterieure du catalogue (par #9377) le reintegrera.

    Acceptance issue #19545

    Refs #19543, #19545, #14620.

  4. jsboige commented on Oct 6, 2026

    @jsboige
    Owner

    Compléments au pliage (lane myia-po-2027, vérification 2026-10-06)

    J'ai relu l'EPIC après avoir reçu le même type de retour. Les 14 thèmes pliés couvrent l'essentiel ; trois angles du même corpus de propositions me semblent non encore pliés et pertinents. Je les pose ici avec ce qui existe déjà mesuré, pour ne pas dupliquer.

    1. Pédagogie par agents (0 occurrence mesurée)

    Aucune issue ni fichier ne traite d'agents pédagogiques au-delà de leur utilisation technique dans des notebooks GenAI. La distinction manque entre :

    • agents au service d'une tâche technique (déjà couverts : 09d_Production_Caches, 14b_Paginated_Memory, SemanticKernel/05-VectorStores) ;
    • agents au service de l'apprenant sur le parcours lui-même.

    Ce qui existe :

    Ce qui manque :

    Hors scope apprentissage, ces agents sont eux-mêmes des sujets d'ingénierie : comment les branche-t-on sur notre infrastructure (kernel Jupyter, carnet Quarto, registre GPU), comment évalue-t-on leur cours (cf. axe 5 ci-dessous).

    2. AI-native education : les agents comme objet d'étude

    Le retour souligne que l'expérimentation pédagogique elle-même (mesurer apprentissage, rétention, dépendance à l'agent, transfert, qualité du raisonnement) est un terrain inexploré par les cursus open source. Le dépôt n'a pas d'instance de ce terrain :

    • #4208 parle de publication du cours, pas d'observation pédagogique.
    • #10921 parle de site, pas d'étude.
    • Le cluster d'agents qui construit le dépôt est notre propre sujet d'observation, mais aucune mesure systématique n'en est tirée pour l'apprenant.

    Ce qui manque : un dossier, voire un EPIC, qui pose la question de manière falsifiable. « CoursIA Human/AI Teaching Experiment » est une formulation que je n'ai pas vue écrite dans nos issues.

    3. Arc transverse de construction d'un agent scientifique par l'apprenant

    #19297 (finition de série, critères de sortie, blocs de fin, capstone) traite le capstone comme un livrable de contenu. Le retour distingue cinq niveaux gradués — lecture, lab, exercice, challenge, recherche — qui appellent un arc transverse :

    1. formuler l'hypothèse ;
    2. chercher les références ;
    3. implémenter ;
    4. construire le benchmark ;
    5. exécuter ;
    6. analyser ;
    7. faire générer ou relire du code par un agent ;
    8. produire un rapport ;
    9. faire vérifier les résultats ;
    10. défendre ses conclusions.

    Cet arc est absent comme tel. Il chevauche plusieurs verticales (LLM Engineer #19544, ML Engineer #19545, Recherche quand il sera déplié) et plusieurs EPICs (#17073 audit critique, #14620 compilateur, #17982 référentiels).

    Proposition de pli (à arbitrer)

    Si ces trois angles tiennent, je propose un Pli 5 — Agents pédagogiques et AI-native education sous #19543, articulé en :

    • une ligne par agent outillé (tuteur, générateur, relecteur, designer) ;
    • une ligne pour l'expérimentation pédagogique (mesures, instrumentation du cluster) ;
    • une ligne pour l'arc transverse de recherche (intégration dans le futur parcours « Recherche »).

    Si l'arbitrage conclut que ce pli est prématuré ou sort du périmètre de cet EPIC, les angles 1 et 3 peuvent rejoindre d'autres EPICs existants (par ex. arrow-first-implementation pour l'agentique, #17073 pour l'audit transverse) sans dupliquer #19543.

    Grain: DEEP/curriculum -- lane myia-po-2027:CoursIA-2 -- prev: DEEP/curriculum #19544

  5. added a commit that references this issue on Oct 7, 2026
  6. added a commit that references this issue on Oct 10, 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

    EPICEpic tracking issue with sub-issues

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions