Skip to content

feat(genai,#2161): 04-Tokenisation - enonces markdown pour les 3 exercices (couche placement) - #16366

Merged
myia-ai-01 merged 1 commit into
mainfrom
feat/2161-tokenisation-exercices
Sep 18, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feat/2161-tokenisation-exercices

Conversation

@jsboige

@jsboige jsboige commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2023:CoursIA — prev: MED/notebook-python #16364 — enrichissement exercices #2161 (enonces 04-Tokenisation)

Summary

Le notebook avait deja 3 stubs d'exercice C.1 (cells code print("Exercice N a completer"), outputs commites) mais sans la couche markdown de la convention de placement #2161 : chaque exercice doit etre precedent d'un markdown contexte/objectif/indices (cf. style de la serie, p.ex. PyMC-03). Cette PR ajoute cette couche manquante : 3 cellules markdown inserees devant chacun des 3 stubs, ancrees au contenu reel du notebook (sections 4/6/8/9 : ordre des fusions BPE, courbe 2.997 tokens/mot a 60 fusions, chunks@128, eclatement des nombres).

Correction transparente du claim

Le claim initial (issuecomment-5691770048) annoncait « 0 exercice mesure, ajout de 3 exercices stub + re-exec ». Re-mesure a la lecture du notebook : le scan comptait les headers markdown Exercice, or les enonces vivaient en commentaires code — les 3 stubs existaient deja. Le livrable est re-scope sur la vraie lacune (couche placement), pas sur un ajout en double.

Verification

  • diffstat : 1 file changed, 51 insertions(+), 0 deletions — markdown uniquement
  • gate byte-identity : 12/12 cellules code identiques a HEAD (source + outputs + execution_count + id) — script de comparaison HEAD vs branche, sortie GATES OK
  • ids : tous les ids originaux preserves (ordre relatoire des 32 cellules existantes inchange), 3 ids frais pour les nouvelles cellules
  • stubs intacts : aucun raise NotImplementedError / assert False / 1/0 (grep negatif), les 3 stubs print("Exercice N a completer") inchanges
  • C.2 : markdown-only, aucune cellule code modifiee -> outputs commis valides (exception C.2), pas de re-exec requise

See #2161

🤖 Generated with Claude Code

…s de 04-Tokenisation-From-Scratch

See #2161

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@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 github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Sep 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 12
  • 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)

@github-actions

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 5.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 7.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 6.5s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 37.2s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.5s

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.

[NanoClaw] structural review (protocole glm-5.2 : notebook sondé en JSON direct au head 5c3165c0 ET au base a65b996 — cellules comparées byte-à-byte avec ordre/ids, énoncés des 3 nouvelles cellules confrontés chiffre par chiffre aux outputs committés ; jamais le diff)

VERDICT: LGTM (vérifié : markdown-only au byte près — 12/12 cellules code byte-identical base↔head, séquence des 32 cellules préservée ordre+ids, exactement 3 cellules md neuves chacune devant son stub ; chaque ancre chiffrée des 3 énoncés retrouvée dans les outputs)

Garanties du body re-vérifiées (P5)

  • 32 → 35 cellules : les 32 cellules du base apparaissent au head dans le même ordre relatif, byte-identical (ids préservés) ✓ ; les 3 neuves sont markdown, insérées exactement devant les 3 stubs code print("Exercice N a completer") — stubs inchangés ✓.
  • 12/12 cellules code byte-identical (source, outputs, execution_count) ✓ — le claim fort est exact à l'octet ; exception C.2 légitime (markdown-only, pas de re-exécution requise).
  • La correction transparente est vraie : les 3 stubs existaient au base (vérifié par la byte-identité) — le re-scope « couche de placement, pas ajout en double » décrit bien le diff réel.
  • 0 banned pattern, 0 secret ✓.

Les 3 énoncés ancrés dans les outputs committés (concept vérifié)

  • Ex1 : les 60 fusions et l'ordre d'émergence ('e'+'</w>' → 'e</w>' en fusion n°1, puis digrammes, puis mots) sont dans l'output de la section 4 ✓ — l'ancrage fréquentiel du BPE est pédagogiquement juste.
  • Ex2 : « 1234 s'encode en quatre tokens (un par chiffre) » — l'output dit exactement '1234' | [16, 17, 18, 19] | 4 ✓ ; la question « 3.14 vs 3,14 » exploite correctement la dépendance du vocabulaire BPE au corpus.
  • Ex3 : « 3 chunks en mots, 7 avec le BPE-80, 4 avec le Qwen » — la table committée dit mots 299→3, BPE-80 819→7, Qwen 419→4 ✓ ; « ~3,0 tokens/mot BPE-60 » = 2.997 mesuré ✓ ; « ~1,4 pour le Qwen » = 419/299 = 1.401 ✓ (le tilde est mérité). L'exercice d'estimation-puis-mesure sur chunks de 256 est une extrapolation propre de la table 128.

Note non bloquante

L'énoncé Ex3 cite trois des quatre lignes de la table (mots, BPE-80, Qwen) et passe le BPE 20 (1145 tokens → 9 chunks) sous silence — sélection cohérente avec la question posée, aucune inexactitude.

@github-actions github-actions Bot added trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) and removed variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) labels Sep 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 51 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16366 (feat(genai,#2161): 04-Tokenisation - enonces markdown pour les 3 exercices (couche placement)) 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.

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

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants