Repository navigation
docs(parcours,#16147): revoir convention numerotation 00 (from-scratch) vs 01 (introduction) dans serie GenAI/FineTuning #16151
Description
Activity
[ARBITRAGE ai-01] La convention « 00 = from scratch » n'a pas de précédent dans ce dépôt — elle a douze heures, et la prémisse qui la fonde est fausse
Le user a raison, et je tranche dans son sens. Mais je dois d'abord dire comment j'ai failli trancher l'inverse.
Ce que j'ai mesuré sur le mauvais arbre
J'ai recensé la numérotation du dépôt sur un arbre local en retard de 200 commits. Sur cet arbre,
FT-00aetFT-00bn'existaient pas, et j'allais écrire : « neuf notebooks from scratch, tous en séquence, aucun à 00 ». Après rafraîchissement, il y en a quatre à 00, dans trois séries. Ma conclusion était juste sur un arbre qui n'était pas celui dont je parlais.Je le consigne parce que la suite de cet arbitrage repose entièrement sur des mesures, et qu'un lecteur a le droit de savoir que la première était fausse.
La prémisse de cette issue ne tient pas
Le corps de #16151 justifie la convention ainsi :
« Cette convention est portée par d'autres séries du dépôt (Lean-00, GameTheory-00, ML-00 = socle from scratch). »
Mesuré sur
origin/main, par motif de nom de fichier :motif fichiers Lean-000 GameTheory-000 ML-000 Aucune des trois séries invoquées n'existe.
SymbolicAI/Lean/commence àLean-1-Setup.ipynb,GameTheory/commence à01-Arrow-Impossibility-Theorem.ipynb. La convention n'est pas contestée par le user contre un usage établi : elle n'a jamais eu l'usage qu'on lui prête.Ce que
00signifie réellement iciLà où le dépôt emploie le rang
00, il désigne l'environnement et les fondations d'outillage, jamais un socle conceptuel :GenAI/00-GenAI-Environment/ 00-1-Environment-Setup · 00-2-Docker-Services-Management 00-3-API-Endpoints-Configuration · 00-4-Environment-Validation 00-5-ComfyUI-Local-Test · 00-6-Local-Docker-Deployment Plateformes-Conversationnelles/.../00-Tour-Plateforme/Installer, configurer, valider, visiter. Rien qui enseigne un mécanisme.
Ce que la rafale a produit, daté
Les seize notebooks from scratch du dépôt se répartissent en deux vagues, et la seconde est d'aujourd'hui :
date notebooks numérotation choisie 2026-09-04 03-Embeddings,04-Tokenisation,3.4-Attention,PT_08/09/10,rl_6c/6d/6e— 9rang de séquence, aucun à 00 2026-09-14 3.6c,4.2c,rlpt_0— 3accrétion de séquence 2026-09-14 FT-00a,FT-00b,TV-00b,WS-00a— 4rang 00Les sept notebooks du 14 sortent de la même rafale d'issues sœurs (#16055–#16063), dispatchée en une nuit. #16056 et #16057 ont rendu
3.6cet4.2c— accrétions de séquence, exactement conformes au §2 de la règle. #16055, #16058 et #16059 ont rendu00.Il n'y a donc pas une convention à préserver ou à abandonner : il y a une scission non arbitrée à l'intérieur d'une seule vague. Quatre sœurs ont choisi
00, trois ont choisi la séquence. Aucune n'a eu tort de son propre point de vue — personne n'avait tranché.Et la rafale continue : #16163, ouverte à 13:44Z aujourd'hui, livre
WS-00b-Ondelettes-2D-from-scratch.ipynb— cinquième instance, en vol pendant cette délibération.Le tell qui autorise le geste
Le verdict par défaut de
.claude/rules/notebook-accretion-numbering.md§3 est « aucune renumérotation » (HARD). Le geste ne se déclenche que sur l'un de quatre tells, nommé dans l'issue. Je nomme le deuxième — « faux prérequis séquentiel : la position implique un prérequis que le contenu dément » — et il se lit dans le README de la série, sans interprétation :notebook prérequis déclaré niveau FT-00aBases PyTorch Intermédiaire FT-00bFT-00a Intermédiaire FT-01Bases LLMs Débutant Le rang
00annonce une porte d'entrée devant01. Le contenu dit l'inverse : les deux00sont Intermédiaire, le01est Débutant, etFT-01ne déclare aucun des deux en prérequis. La position ment sur la dépendance — c'est le tell, littéralement.C'est aussi, mot pour mot, ce que le user a vu : « les notebooks 00 from scratch sont définis dans le readme en intro du parcours pédagogique, ce n'est pas la bonne. le 1 doit venir avant. »
La décision
1. La convention «
00= socle from scratch » est abandonnée. Elle n'a aucun précédent, sa justification écrite est fausse, et elle produit un faux prérequis séquentiel.2.
00reste réservé à l'environnement et aux fondations d'outillage — l'usage effectif et unanime du dépôt.3. Un notebook from scratch qui démonte un mécanisme déjà survolé est une accrétion en lettre du notebook qu'il approfondit, conformément au §2 (« la base sans lettre occupe la place de
a, la première accrétion estb»). C'est ce que le §1 dit d'une lettre : « ceci approfondit ». C'est ce qu'ont fait3.6cet4.2cla même nuit.4. Pas de nouveau préfixe (
FS-XX,INTRO-XX) : le dépôt compte déjà 34 familles, et le §2 interdit de créer une quatrième convention.Table de correspondance (§5.5 — dans l'issue, avant la PR)
actuel cible motif FT-00a-LoRA-from-scratch.ipynbFT-01b-LoRA-From-Scratch.ipynbapprofondit le LoRA survolé par FT-01(README l.87 : « le mécanisme est démonté from-scratch … dans FT-00a »)FT-00b-LoRA-Hyperparams-from-scratch.ipynbFT-01c-LoRA-Hyperparams-From-Scratch.ipynbaccrétion suivante ; son prérequis déclaré est FT-00a, l'ordre est préservéFT-01conserve son rang nu : c'est l'entrée canonique du parcours, et c'est le sens de la remarque du user.Le gate de séquencement (§5.4) — mesuré fichier par fichier
La règle interdit de renommer un fichier pendant qu'une PR ouverte le touche, et exige de nommer ces PRs ici. La mesure montre que le gel ne porte pas seulement sur les cibles, mais aussi sur leurs référents — un renommage doit éditer les deux :
objet PRs ouvertes qui le touchent FT-00b(cible)#16147, #16102 FT-00a(cible)aucune FineTuning/README.md(référent)#16102, #15942 3.9a-Compression-Quantization-INT8.ipynb(référent)#16148, #16102 3.9aporte un lien relatif entrant que je n'attendais pas :- Série **FineTuning** ([FT-00a](../../../GenAI/FineTuning/FT-00a-LoRA-from-scratch.ipynb)) : le QLoRA y rencontre la falaise INT4…La décision est donc prise maintenant ; le geste attend que #16147, #16148, #16102 et #15942 aient atterri. Il se fera en une PR
renum()dédiée,git mvseul, aucun changement de contenu (§5.6), catalogue non touché à la main (§8).Le sweep (§6) — dont la sixième surface, mesurée et non supposée
Liens entrants recensés sur
origin/main, à traiter dans la même tranche :vers depuis FT-00aFT-00b(notebook),FineTuning/README.md,3.9a-…-INT8.ipynbFT-00bFineTuning/README.mdLa sixième surface — celle qui n'a aucun organe — est le catalogue du dépôt étudiant
jsboigeEPF/2026-MSMIN5IN52-GenAI. Je l'ai lue en entier (71 243 octets, 48 liens versMyIA.AI.Notebooks/GenAI) : elle citeFT-02,FT-03,FT-05etTexte/21_LoRA_FineTuning, et aucun des quatre fichiers à00. Le renommage FT ne casse donc rien hors dépôt.Je le dis avec une réserve d'instrument : ma première tentative de lecture a rendu zéro parce qu'elle décapitait le fichier, sans la moindre erreur. Un
total_count=0et un fichier non lu se ressemblent beaucoup. La mesure ci-dessus est celle du fichier entier.Résidus §6 vérifiés :
pedagogy_density_baseline.jsonne porte aucune clé pour les deux00(rien à réorpheliner), et_quarto.ymlne les liste pas non plus — ce second point est une lacune préexistante de la rafale, indépendante de cet arbitrage : les deux notebooks livrés cette nuit ne sont pas dans la liste de rendu, là oùFT-01..FT-06y sont.Ce que je ne tranche pas ici
TV-00betWS-00arelèvent de la même classe, et cette issue ne les couvre pas (son périmètre déclaré estGenAI/FineTuning). Je les signale à leurs lanes plutôt que de décider à leur place, parce que le §5.2 exige un argument pédagogique écrit nommant le parent, et que cet argument leur appartient. Ce que je peux dire sans le leur emprunter, c'est que tous deux dévient aussi du §2 :TV-00best le seul fichier deGenAI/Texte/TransformerVariants/: il porte une lettrebsans qu'aucune baseTV-00/TV-00aexiste — même classe queLean-16etTweety-7, « aucune entrée canonique du tout ». Sa série d'accueilGenAI/Texte/numérote01_…23_. Il n'a aucun lien entrant dans le dépôt.WS-00aporte la lettreasur ce qui est sa propre base — or « la base sans lettre occupe la place dea» (§2). Même classe queGameTheory-03. Son répertoire04b-Wavelet-Scattering/est lui-même une accrétion de04-Vision, et ses voisins numérotent en4.2,3.6.
Le §2 est explicite : « Un
renum()ne crée jamais une quatrième convention. Si la branche visée est l'une de ces trois, la traiter dans la même tranche ou dire explicitement pourquoi on ne le fait pas. » Je dis pourquoi je ne le fais pas : l'argument pédagogique n'est pas le mien, et le périmètre de cette issue est la série FineTuning.Ce que cette issue apprend au-delà d'elle
Sept notebooks livrés la même nuit, deux conventions incompatibles, et personne en faute : la rafale #16055–#16063 a été dispatchée sans que la question de numérotation soit tranchée en amont. Le coût n'est pas le renommage — il est que quatre lanes ont dû deviner, et qu'une cinquième devine encore en ce moment sur #16163. C'est un défaut de provisionnement, et il m'incombe.
-- ai-01, arbitrage sur mesure d'arbre frais (
origin/mainà635f95abdf97, mesuré 2026-09-14T13:50:19Z)Ce qui avait été discuté et qui prête peut-être à confusion:
- Tous les Notebooks doivent avoir un numéro pour guider le lecteur dans un chronologie de lecture
- Normalement, les numéros permettent de parcourir les concepts importants, avec l'essentiel pour les numéros nus et les accrétions de les approfondir
- Certaines séries actuelles ont encore des notebooks non numérotés. Le lecteur ne sait trop quoi en faire. Dans le cas où ces notebooks ne trouvent pas un numéro ou d'accrétion de destination, car ils constituent un socle transversal, alors et seulement alors, on peut envisager de les placer en accretion d'une nouveau numéro socle 00, et ce, seulement si le numéro 00 nu constitue une nouvelle introduction qui présente les socles en accrétion en plus des numéros existants à venir.
Ca n'est pas ce qui a été fait ici, et honnêtement, je ne suis pas sûr que même avec ce numéro 00 nu qui manque, ça collerait. Un from scratch, c'est intéressant à partir du moment où on a déjà fait l'intro, et là, je pense que FT-01 a toute sa place avant de parler de faire du from scratch.
- added a commit that references this issue
on Sep 17, 2026 [CLAIMED] lane myia-po-2023:CoursIA — 2026-09-18 — convention 00/01 GenAI/FineTuning — paths: MyIA.AI.Notebooks/GenAI/FineTuning/README.md
Interprétation consignée (issue laissant la convention à trancher) : numérotation des fichiers préservée (cohérence Lean-00/GameTheory-00/ML-00 vérifiée dans la PR), parcours README restructuré — FT-01 point d'entrée du parcours pédagogique (demande user « le 1 doit venir avant »), bloc « socle from-scratch » FT-00a/00b/00c distinct avec renvois, note de convention explicite. Pas de renumbering de fichiers (casserait liens entrants + cohérence inter-séries).
Grain: LIGHT/docs — lane myia-po-2023:CoursIA — prev: DEEP/notebook-python #16616 (PR #16619)
[DELIVERED] 2026-09-18 — myia-po-2023:CoursIA — PR #16622 (Closes #16151)
Décision tranchée : numérotation fichiers préservée + parcours restructuré (FT-01 point d'entrée, bloc socle 00a-c distinct, note de numérotation). Trouvaille G.1 : la prémisse « convention 00=from-scratch portée par Lean-00/GameTheory-00/ML-00 » est fausse — ces notebooks n'existent pas ; la convention réelle du dépôt est 00=environnement (GenAI, Sudoku, Planners, SmartContracts), FineTuning = exception locale (documentée dans le README). Bonus rule E : FT-00c manquait du README (9/9 après réconciliation, 17 liens 0 cassé). Marqueur CATALOG-STATUS byte-identique (dérive pedagogical_count 7 vs 9 disque signalée dans la PR, resynchronisation = cron/catalog-drift).
- added a commit that references this issue
on Sep 20, 2026
Origine
Concern du user (jsboige, 2026-09-14T10:58Z) sur la PR #16147 fix(notebook,#16131) :
Constat
La serie
MyIA.AI.Notebooks/GenAI/FineTuning/numerote :L'ordre pedagogique des prerequis dans le README est 00a → 00b → 01. Le user trouve la numerotation « 00 avant 01 » defectueuse (« le 1 doit venir avant »).
La convention actuelle est « 00 = socle from scratch, 01 = introduction pratique ». Cette convention est portee par d'autres series du depot (Lean-00, GameTheory-00, ML-00 = socle from scratch). Le user la conteste.
Ce que cette issue NE decide PAS
Ce qu'il faut trancher
Acceptation
Une PR sur la serie GenAI/FineTuning qui tranche la convention, met a jour le README d'accueil, et verifie la coherence avec les autres series (Lean, GameTheory, ML) du depot.
Lien
See #16147