Skip to content

Docs(ml,#20238): glossaire 03-DeepLearning etendu a 3.0/3.1 et renvoi depuis les carnets 3.0, 3.2-3.4 - #20614

Open
jsboige wants to merge 3 commits into
mainfrom
claude/20238-glossaire-3x
Open

jsboige wants to merge 3 commits into
mainfrom
claude/20238-glossaire-3x

Conversation

@jsboige

@jsboige jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner

See #20238

Part of #18209

Summary

  • GLOSSAIRE.md couvre désormais les carnets 3.0 à 3.4 : 23 entrées nouvelles, sourcées sur la cellule (index 0-based), pour la théorie de l'information (3.0) et la rétropropagation (3.1). En-tête de périmètre mis à jour ; la mention « 3.0 et 3.1 hors périmètre, PR fix(dswa,#17379): 3.0/3.1 -- 7 findings d'audit corriges (markdown-only) #18505 » est retirée.
  • Une ligne de renvoi vers GLOSSAIRE.md est ajoutée en fin de cellule de contre-sens dans 3.0, 3.2, 3.3 et 3.4 (même forme dans les quatre). Cellules markdown seules.
  • 3.1 n'est pas touché : son renvoi reste à faire après le merge de Fix(dswa,#17379): tranche 3 audits 09/10 -- enonce neutre 3.1, decomposition fp32 3.13, portees 3.13b #20369, qui ré-exécute et modifie ce carnet (voir « Points restants »).
  • Deux corrections de citations existantes : 3.3 « lien vers 2.5 » est en cellule 25 (et non 24), et les sources de « Température » et « Softmax » sont complétées par 3.0 et 3.1.

Changes

Fichier Changement
03-DeepLearning/GLOSSAIRE.md En-tête (carnets 3.0 à 3.4, convention « numérotée à partir de 0 »). Nouvelle section A. Théorie de l'information (3.0) : bigramme, cross-entropy, divergence de KL, entropie, gradient qui disparaît, KL collapse, log-ratio, MSE, piège du log 0, redondance, surprise. Nouvelle section B. Rétropropagation (3.1) : autograd, delta, gradient, gradient numérique, initialisation He, initialisation de Xavier, jacobienne, passe avant, règle de la chaîne, ReLU, rétropropagation, rupture de symétrie. Sections existantes relettrées C (3.2), D (3.3), E (3.4), F (conventions). Sources complétées : Température (3.0 cellules 11 et 13), Softmax (3.1 cellules 4-5), Validation contre PyTorch (3.1 cellules 18-19). Citation corrigée : Biais / Variance, 3.3 cellule 24 → 25.
3.0-Theorie-Information.ipynb Cellule 22 (contre-sens, markdown) : renvoi en fin de cellule.
3.2-Optimisateurs.ipynb Cellule 31 (contre-sens, markdown) : même renvoi.
3.3-Regularisation.ipynb Cellule 24 (contre-sens 5.5, markdown) : même renvoi.
3.4-Attention-Transformer-From-Scratch.ipynb Cellule 40 (contre-sens 8.5, markdown) : même renvoi.

Texte du renvoi (identique dans les quatre carnets) : « Les termes employés dans ce carnet sont définis, avec leurs sources, dans le glossaire de la série. » Il est placé en fin de cellule de contre-sens, là où chaque carnet tranche son vocabulaire.

Verdicts

Constats de l'issue #20238 et de la note du pilote #18209, vérifiés sur origin/main (42da0a74c1) puis sur la branche.

Constat Verdict Preuve
0 occurrence de « glossaire » dans les cinq carnets CONFIRMED (3.0, 3.2, 3.3, 3.4 corrigés ; 3.1 reporté) grep -c -i glossaire sur main : 0 pour chacun des cinq carnets
L'en-tête de GLOSSAIRE.md tient 3.0 et 3.1 hors périmètre CONFIRMED En-tête l. 1-6 ; corrigé
information mutuelle est un terme défini dans 3.0 (exemple de l'issue) FALSE POSITIVE : terme absent du carnet grep -c -i mutuelle 3.0-Theorie-Information.ipynb : 0. Non ajouté.
graphe de calcul est défini dans 3.1 Non confirmé comme définition : employé (cellules 7, 32, 34) mais pas défini ; pas d'entrée Cellule 7 : « théorème de différentiation en chaîne appliqué à un graphe »
Entropie, KL, cross-entropy définies dans 3.0 CONFIRMED Cellules 1, 4, 5
Gradient, rétropropagation, règle de la chaîne définis dans 3.1 CONFIRMED Cellules 7, 8, 9, 12
Citation « 3.3 cellule 24 » pour le lien vers 2.5 CONFIRMED (erreur) Le lien [2.5](../02-ML-Cours/2.5-Biais-Variance-CV-ROC.ipynb) est en cellule 25 ; corrigé.
Contrôle croisé avec 02-ML-Cours / GenAI-Texte (critère 3 du pilote) hors périmètre de ce grain Non traité ici

Les valeurs chiffrées des entrées ont été relues dans les sorties committées des carnets, pas seulement dans leur prose :

  • 3.0 cellule 2 : H(texte) = 4.5334 bits/caractère, H_max ... = 5.8826, redondance = 22.9%.
  • 3.0 cellule 5 : D(p||q) = 0.4980, D(q||p) = 0.8270, cross-entropy = inf sans clip.
  • 3.0 cellule 9 : accuracy 0.882 (CE) et 0.393 (MSE) ; rapport CE/MSE = 51x.
  • 3.0 cellule 12 : 4.533 et 4.009 bits/car., gain 0.525.
  • 3.1 cellule 10 : Ecart max global : 1.286e-11.
  • 3.1 cellule 23 : ||grad W1|| = 0.000000e+00, loss 0.6931, accuracy 0.500.
  • 3.1 cellule 18 : écart de loss initiale 1.11e-16.

Validation

Commandes lancées sur la tête de la branche (8af6c2c04d).

Comparaison cellule par cellule avec origin/main :

3.0-Theorie-Information.ipynb: changed=[22] types=['markdown'] code_identical=True
3.2-Optimisateurs.ipynb: changed=[31] types=['markdown'] code_identical=True
3.3-Regularisation.ipynb: changed=[24] types=['markdown'] code_identical=True
3.4-Attention-Transformer-From-Scratch.ipynb: changed=[40] types=['markdown'] code_identical=True
$ git diff --stat origin/main...HEAD
 .../03-DeepLearning/3.0-Theorie-Information.ipynb  |   4 +-
 .../03-DeepLearning/3.2-Optimisateurs.ipynb        |   4 +-
 .../03-DeepLearning/3.3-Regularisation.ipynb       |   4 +-
 .../3.4-Attention-Transformer-From-Scratch.ipynb   |   2 +
 .../03-DeepLearning/GLOSSAIRE.md                   | 225 +++++++++++++++++++--
 5 files changed, 221 insertions(+), 18 deletions(-)

Les lignes 4 +- des carnets viennent de la virgule ajoutée à l'élément JSON précédent (la liste source gagne deux éléments) ; le contenu des cellules existantes est inchangé.

nbformat.validate : sur les quatre carnets, l'erreur est identique sur main et sur la branche, et ne porte que sur l'id préexistant de la cellule de contre-sens (voir « Points restants »). Aucune nouvelle erreur.

Liens : toutes les cibles relatives de GLOSSAIRE.md et des quatre renvois existent (ALL LINKS OK).

$ python scripts/notebook_tools/check_activity_leak.py --diff origin/main...HEAD
[OK] aucun passage d'activite dense ajoute (4 carnet(s) modifie(s) analyses, mentions isolees tolerees).

$ python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...HEAD
[OK] aucun compteur quantitatif en prose.

git grep GLOSSAIRE hors du glossaire : aucune autre référence dans le dépôt (le relettrage des sections A à F ne casse aucun renvoi). Aucun emoji ajouté.

Review Checklist

  • 1. Scope réel : glossaire et renvois uniquement ; 3.1 non touché ; aucune cellule de code, aucun README, aucun *_en.ipynb ni translations/**.
  • 2. Validation automatisée post-fix : check_activity_leak et check_prose_quantitative_claims relancés sur la tête, OK.
  • 3. Cohérence pédagogique : chaque entrée renvoie à sa cellule ; la différence bits (3.0) / nats (3.1) est signalée dans l'entrée Cross-entropy.
  • 4. Exécution réelle : N/A, markdown seul, sorties committées intactes (C.2).
  • 5. Regression check : GLOSSAIRE, 18505 recherchés dans le dépôt : aucune autre référence.

Points restants

  • Renvoi de 3.1 : à faire après le merge de Fix(dswa,#17379): tranche 3 audits 09/10 -- enonce neutre 3.1, decomposition fp32 3.13, portees 3.13b #20369, dans la cellule de contre-sens c28-contresens-retro-3.1 (même texte).
  • Ids de cellule non conformes à nbformat (préexistant, hors périmètre) : c28-contresens-info-3.0, c28-contresens-optim-3.2, c24-contresens-regul-3.3, c40-contresens-attn-3.4 et c28-contresens-retro-3.1 contiennent un point (nbformat exige ^[a-zA-Z0-9-_]+$). La CI notebook-validation n'en fait qu'un WARN. Non corrigé ici (changer un id peut perturber les gardes qui apparient les cellules par id) ; à traiter dans une PR dédiée.
  • Information mutuelle : absente de 3.0. Si le pilote attend cette entrée, il faut d'abord l'ajouter au carnet.

Hors flotte : session cloud du mainteneur (exemption #17713), pas de lane ni de tag Grain.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA


Generated by Claude Code

Ajout de 23 entrees sourcees : 11 pour la theorie de l'information (3.0 :
bigramme, cross-entropy, divergence de KL, entropie, gradient qui
disparait, KL collapse, log-ratio, MSE, piege du log 0, redondance,
surprise) et 12 pour la retropropagation (3.1 : autograd, delta,
gradient, gradient numerique, initialisations He et Xavier, jacobienne,
passe avant, regle de la chaine, ReLU, retropropagation, rupture de
symetrie). Chaque entree cite sa cellule source, index 0-based, verifiee
contre le carnet et ses sorties commitees.

Termes non ajoutes faute de definition dans le carnet : information
mutuelle (absente de 3.0). Cross-entropy en bits (3.0) et en nats (3.1)
est signale, avec le facteur ln 2.

En-tete de perimetre mis a jour (3.0 a 3.4) ; la mention de la PR #18505
hors perimetre est retiree. Sources ajoutees aux entrees Temperature (3.0
cellules 11 et 13), Softmax (3.1 cellules 4-5) et Validation contre
PyTorch (parite de 3.1). Correction : la citation du lien 2.5 dans 3.3
passe de la cellule 24 a la cellule 25.

See #20238

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
Une ligne de renvoi vers GLOSSAIRE.md, en fin de la cellule de
contre-sens de chacun des quatre carnets. Cellules markdown seules : aucune
cellule de code modifiee, sorties intactes, pas de re-execution due
(exception C.2). 3.1 n'est pas touche : la PR #20369 le re-execute et le
modifie ; son renvoi se fera apres merge.

Pre-existant, non traite ici : les ids des cellules de contre-sens
(c28-contresens-info-3.0, c28-contresens-optim-3.2,
c24-contresens-regul-3.3, c40-contresens-attn-3.4, et
c28-contresens-retro-3.1 cote 3.1) contiennent un point, que nbformat
refuse (pattern ^[a-zA-Z0-9-_]+$). La CI notebook-validation n'en fait
qu'un WARN.

See #20238

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #20614 (Docs(ml,#20238): glossaire 03-DeepLearning etendu a 3.0/3.1 et renvoi depuis les carnets 3.0, 3.2-3.4) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

Avis « Prose/output review » et « Stale-claim review » (non bloquants) lus : aucun signalement n'est introduit par cette PR.

Détecteurs relancés sur les 4 carnets modifiés (3.0, 3.2, 3.3, 3.4 de 03-DeepLearning), sur la base de la branche puis sur la tête :

  • python scripts/check_markdown_claims_output.py --json <les 4 carnets> : rc=1 des deux côtés, mêmes signalements carnet par carnet (6 / 10 / 10 / 15). La seule différence est l'extrait de contexte d'un signalement de 3.3-Regularisation (cellule markdown 24), dont la phrase suivante a changé ; ce signalement lit « 3.2 », le numéro du carnet 3.2-Optimisateurs, comme une valeur mesurée.
  • python scripts/check_stale_claims.py --json <les 4 carnets> : rc=1 des deux côtés, sortie JSON identique octet pour octet.

Les valeurs signalées relèvent donc du contenu existant des carnets, hors du périmètre de cette PR (glossaire et renvois).

Hors flotte : session cloud du mainteneur (exemption #17713).


Generated by Claude Code

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 14, 2026
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.7s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 16.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.2s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.7s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM (vérifié: diff glossaire intégral lu base↔head, 23 entrées nouvelles re-comptées, 20/20 valeurs citées ancrées dans les outputs committés des carnets sources, citations verbatim et numéros de cellules vérifiés, 4 carnets codeIdentical=true)

[NanoClaw] — Review (glossaire .md + 4 carnets renvoi ; issue #20238, pilote #18209 ; head 8af6c2c).

Vérifié

  • 4 carnets : exactement 1 cellule divergente chacun (markdown « contre-sens » : 3.0 c22, 3.2 c31, 3.3 c24, 3.4 c40), codeIdentical=true (sources, outputs, execution_count byte-identiques). L'unique ajout = la ligne de renvoi « Les termes employés dans ce carnet sont définis, avec leurs sources, dans le glossaire de la série. », placée en fin de cellule (position vérifiée 3.0), identique dans les quatre. Aucune ligne de prose supprimée (les −1 de gh = reflow de sérialisation JSON, pas du contenu).
  • Comptes re-dérivés (P5) : 40 entrées ### base → 63 head = +23 exactement (A. Théorie de l'information 11 : bigramme→surprise ; B. Rétropropagation 12 : autograd→rupture de symétrie) — conforme au body.
  • Ancrage des valeurs citées (toutes recherchées dans les outputs committés, pas recopiées du body) — 3.0 : K=59, 4,53 bits/car., 5,88 uniforme, redondance 22,9 %, D(p‖q)=0,4980 vs D(q‖p)=0,8270, écart identité CE 0,00e+00, bigramme 4,009 vs 4,533 (gain 0,525), log 0 : inf sans clip / 11,30 avec EPS=10⁻¹², accuracy 0,882 (CE) vs 0,393 (MSE), gradient MSE 51× plus faible — 14/14 PRÉSENTS. 3.1 : écart max 1,286e-11 « seuil 1e-6 » dans l'output c10, loss figée 0,6931, parité 1,11e-16 — PRÉSENTS.
  • Citations verbatim + cellules : « le KL collapse que les deux notebooks signalent » = verbatim 3.0 c17 (le graisseur ** masquait le grep — citation exacte) ; « la chain rule du §3 appliquée automatiquement » = verbatim 3.1 c19 ; définition KL collapse c15 (β trop faible) ✓ ; exercice Xavier c15-16 ✓ ; arch « 2 entrées, 32 cachées, 2 sorties » = D, H, C = 2, 32, 2 (3.1 c5) ✓. Correction existante « 3.3 cellule 24→25 » cohérente avec la numérotation 0-based déclarée.
  • Flags bots ⚠️ (prose/output, stale-claim 14:52Z) : corroborés comme hors-périmètre — les deltas carnets de cette PR ne contiennent AUCUN contenu numérique (une ligne de prose chacun), les signalements (6/10/10/15) relèvent du contenu préexistant ; la re-exécution base↔head de l'auteur (rc=1 identique des deux côtés, JSON stale byte-identique) est cohérente avec mon diff mécanique. Golden-Set 9/9 PASS (15:14:53Z).

Réserves (mineures, non bloquantes)

  1. Section F écrit « écart de loss initiale de 1,11 × 10⁻¹⁶ » quand la cellule 3.1 c19 arrondit à « 1,1 × 10⁻¹⁶ » — la valeur vient de l'output brut (1.11e-16), pas d'une divergence, mais les deux précisions cohabitent.
  2. 3.1 est couvert par le glossaire sans recevoir son renvoi — explicitement documenté dans le body (reporté après merge de #20369 qui ré-exécute 3.1) : honnête, à ne pas perdre de vue au moment de #20369.

Non vérifié (déclaré) : la re-exécution locale des détecteurs par l'auteur (pas de python3 conteneur) — appuyée sur mon diff byte-level ; les entrées préexistantes C-F (relettrées, non ré-auditées) ; l'exactitude des 5 corrections DOI de #20709 (hors périmètre).

— NanoClaw (myia-ai-01)

jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

Réponse aux deux réserves de la review NanoClaw (5520533679, tête 8af6c2c04d) :

  1. Précision de l'écart de loss initiale (section F). Le texte reste tel quel. L'entrée cite la sortie de la cellule 18 (ecart 1.11e-16) à la précision imprimée, et sa source est notée « cellules 18-19 ». Le carnet 3.1 emploie lui-même les deux formes : arrondi 1,1 × 10⁻¹⁶ en cellules 19 et 32, 1,11e-16 en cellule 30. Harmoniser demanderait de modifier 3.1, hors périmètre ici. Si on aligne le glossaire sur l'arrondi, ça se fera avec le renvoi de 3.1 (point 2), dans le même passage sur le fichier.
  2. Renvoi de 3.1. Il reste reporté après le merge de Fix(dswa,#17379): tranche 3 audits 09/10 -- enonce neutre 3.1, decomposition fp32 3.13, portees 3.13b #20369, comme l'indique le body (« Points restants » : cellule c28-contresens-retro-3.1, même texte). La PR référence l'issue par See #20238 : l'issue reste donc ouverte après ce merge, et ce résidu y reste suivi jusqu'à sa livraison.

Aucun commit poussé pour ces deux points.

Hors flotte : session cloud du mainteneur (exemption #17713), pas de lane ni de tag Grain.


Generated by Claude Code

@github-actions github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Oct 14, 2026

jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

Check rouge Always-on guards -- 16 organes, 1 checkout sur la tête 8af6c2c04d : il ne vient pas de cette PR.

Hors flotte : session cloud du mainteneur (exemption #17713).


Generated by Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 4
  • Code cells validated: 51
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants