Skip to content

docs(genai,#13410): densite RAG 04-Tokenisation-From-Scratch — 7 lectures chiffrees (802 -> 1331) - #16508

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/13410-density-rag04tok
Sep 17, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/13410-density-rag04tok

Conversation

@jsboige

@jsboige jsboige commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python -- lane myia-po-2026:CoursIA -- prev: DEEP/notebook-python #16507

Densite GenAI/RAG 04 : 7 cellules markdown de lecture chiffree (802 -> 1331)

Tranche GenAI/RAG de l'EPIC densite #13410 : MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/04-Tokenisation-From-Scratch.ipynb passe de 802 a 1331 caracteres markdown par cellule code (plancher 1200), via 7 cellules markdown inserees, chacune ancre juste apres la cellule code qu'elle lit. Edition md-only : les 12 cellules code sont byte-identiques (verifiees par script contre 5215cbd61 = origin/main frais au demarrage du grain), 0 cellule markdown existante modifiee ou supprimee (20/20 conservees en ordre).

Les 7 lectures chiffrees (nombres = verbatim des sorties commitees ou derives de celles-ci)

  1. Les deux extremes : vocabulaire = 188 | tokens/texte ~ 299 contre vocabulaire = 33 | tokens/texte ~ 1313 | en moyenne 4.39 token/mot — et la liste triee des 33 symboles lue en detail : 24 lettres (ni k ni w dans le corpus), 7 accents francais, apostrophe et trait d'union.
  2. L'ordre des 60 fusions : les trois premieres sont des terminaisons ('e' + '</w>', 't' + '</w>', 's' + '</w>'), puis les digrammes, et les mots entiers n'emergent qu'en fin (57. 'ren' + 'ard</w>' -> 'renard</w>', 60. 'or' + 'beau</w>' -> 'orbeau</w>') — un extracteur de morphologie par simple comptage de paires.
  3. L'inversibilite et le gradient frequent/rare : decode(encode(mot)) == mot sur 8 mots : True ; 'vous' et 'renard' en UN token, 'corbeau' en deux, 'fromage' en quatre, 'dépourvue' en cinq — le cout suit la frequence (Zipf).
  4. La courbe du compromis : 0 | 5.391 a 80 | 2.739 — 0.113 token/mot gagne par fusion au premier bloc de 10, 0.013 au dernier palier (rendement divise par ~9) ; a 60 fusions, 2.997 tokens/mot (moitie du tokenizer-caracteres) pour 93 symboles.
  5. Le jouet contre le reel : notre BPE (60) 93 | 46 contre Qwen (réel) 248044 | 21 (borne basse mots : 18) — x2.2 en tokens pour un vocabulaire x2 667 ; le Qwen est a 3 tokens du decoupage-mots sur ce francais courant.
  6. La facture RAG : a budget MAX_TOKENS = 128 fixe et document identique, BPE 20 1145 9 / BPE 80 819 7 / Qwen (réel) 419 4 / mots 299 3 — le choix du tokenizer multiplie par 2.25 le nombre de chunks, donc tout le cout aval du RAG.
  7. Les cas pathologiques : 'strawberry' | [485, 654, 14911] | 10 (3 tokens pour 10 lettres — le comptage de lettres est une question mal posee), 'élève' | [236940] (le francais accentue en UN token), '1234' | [16, 17, 18, 19] (chiffres atomiques, ids coherents avec le 42 de 'aérodrome 42' : '2' = 17, '4' = 19) — pourquoi l'arithmetique positionnelle est difficile pour un LLM.

Preuves

  • Structure : verification contre la base 5215cbd61 — 12/12 cellules code byte-identiques (source + outputs + execution_count), ordre des 20 markdown existantes conserve, 7 inserees (39 cellules totales, 12 code), 7 ids nbformat 4.5 nouveaux uniques.
  • Langue : dominante du fichier mesuree a 2,03 % avant edition — prose des insertions ascii strict, 0 caractere accentue hors citations verbatim (verifie par script : les citations backtick des sorties commitees conservent leurs accents, la prose autour est ascii).
  • Densite : pedagogy_density.py -> Below 1200 c/cell: 0, rc=0 (802 -> 1331).
  • Rendu markdown : detect_markdown_rendering.py --check sur la famille GenAI -> OK: no new ERROR-level markdown-rendering violations, rc=0 (les 125 violations repo-wide signalees dans docs(genai,#13410): densite 10b_Inference_Mechanics — lectures chiffrees (805 -> 1269) #16507 sont preexistantes et hors GenAI).
  • Diff : +56/-0, un seul notebook touche, tous les hooks pre-commit Passed au premier passage (commit b6e04437a).
  • Catalogue : byte-identique a main.
  • Preflight anti-double-livraison : gh search prs "Tokenisation densite" open -> 0 resultat ; sweep des chemins de toutes les PRs open mentionnant densite pedagogique : 430 notebooks sous le plancher 1200 — surface majoritairement non suivie #13410 -> 121 chemins, 0 ne touche GenAI/RAG-et-Memoire-Semantique/04-Tokenisation-From-Scratch.ipynb.

Cellules de sortie non re-executees

Edition md-only : aucune cellule code touchee, les outputs existants restent la preuve d'execution commitee (regle C.2, exception modifs uniquement markdown).

See #13410

🤖 Generated with Claude Code

…ures chiffrees (802 -> 1331)

Tranche GenAI/RAG de l'EPIC densite #13410 : 7 cellules markdown de
lecture chiffree inserees apres les cellules code qu'elles lisent (deux
extremes 188/33 vocab et 1313 tokens a 4.39/mot avec les 33 symboles
detailles, ordre des 60 fusions = morphologie du corpus, inversibilite
+ gradient frequent 1 token / rare 5, courbe concave 5.391->2.739 a
rendement par fusion divise par 9, Qwen reel 21 tokens vs jouet 46 pour
un vocabulaire x2667, chunks@128 9/7/4/3 = facture RAG x2.25, cas
pathologiques strawberry 3 tokens/chiffres atomiques ids coherents).

Edition md-only : 12/12 cellules code byte-identiques, 20/20 markdown
existantes conservees en ordre, densite 802 -> 1331 (plancher 1200),
catalogue byte-identique a main.

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

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

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 7.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 8.9s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 8.3s
Search-01-StateSpace.ipynb ✅ SUCCESS 9.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 10.8s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 20.1s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s

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

@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

Path-collision (organ #13359/#13615)

Cette PR #16508 (docs(genai,#13410): densite RAG 04-Tokenisation-From-Scratch — 7 lectures chiffrees (802 -> 1331)) 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.

@jsboige

jsboige commented Sep 17, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16508
head: b6e0443
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 10941a6753c290b5bc7cfad53b3e2b0eb48e7fdb9cc41739c52f34a99096cd7f
diff-files: 1
diff-additions: 56
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass (MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/04-Tokenisation-From-Scratch.ipynb)
domain: pass (Grain DEEP|MED ligne 1 verifiee)
verdict: READY_REVIEW_MERGE
measured: 2026-09-17T11:13:17Z
[/ADJOINT PREFLIGHT]

@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

[Hermes] Review densite GenAI RAG 04-Tokenisation-From-Scratch (edition md-only, +56/-0, 1 fichier, 7 cellules inserees).

Les 7 lectures chiffrees recroisees contre sorties commitees au head SHA :

  • L1 : decomposition du vocabulaire 33 recalculée depuis la liste triee verbatim : 24 lettres (k et w absents — verifie), 7 accents, apostrophe + trait d'union = 33. 1313/299 = 4.39 exact.
  • L2 : ordre des fusions verbatim (1. e, 2. t, 3. s, 12. et, 57. renard, 60. orbeau) — la lecture transversal-d'abord/specifique-en-dernier est juste.
  • L3 : echantillon verbatim (vous/renard 1 token, corbeau 2, fromage 4, depourvue 5) ; decode==mot sur 8 mots True verbatim.
  • L4 : rendements decroissants re-calculés : 1er palier 0.1127/fusion, dernier 0.0129/fusion, ratio 8.7 (« pres de neuf fois » correct) ; 2.997/5.391 = 0.56 (« moitie » correct).
  • L5 : 248044/93 = 2667 exact ; 46/21 = 2.19 (« x2.2 ») ; 21 vs 18 = 3 tokens du decoupage-mots, exact.
  • L6 : 1145-819 = 326 et 9->7 chunks (2 chunks de moins a budget 128) exact ; x2.25 (9/4) exact.
  • L7 : coherence croisee des ids de chiffres VERIFIEE : 1234 = [16,17,18,19] et '42' dans 'aerodrome 42' -> [19,17] — chaque chiffre porte bien un id fixe ; strawberry 3 tokens/10 lettres verbatim. La lecture positionnelle (pas de representation positionnelle des nombres) en decoule correctement.

Scan secrets : 0 match. Diff = 7 insertions markdown uniquement. Aucun ancrage fantome.

[Hermes hermes-pr-review, cycle :11 17/09, host c92df397a786]

@myia-ai-01 myia-ai-01 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.

[ai-01 exact-head] APPROVED

Head b6e04437a6b9c99b0c3d98610f391b6915611955 lu intégralement : body, 6 commentaires, review Hermes, 0 thread et diff +56/−0. Les 12 cellules code/outputs sont byte-identiques ; les 7 lectures suivent leurs cellules sources. Les listes, comptes et dérivations ont été recroisés (1313/299=4.39, rendements 0.113 puis 0.013, 248044/93=2667, 46/21=2.19, 9/4=2.25) ; aucun claim stochastique ni fuite de solution. La collision #16366 est visible et sur des hunks markdown distincts ; elle devra être recontrôlée au merge. B.0 clair et checks latest-wins verts.

@jsboige

jsboige commented Sep 17, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16508
head: b6e0443
complete: true
body: read
comments-reviewed: 6
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: c2dec9711e440c649eb657b70a413eef1b040f0bc5a414855a471239208dd230
diff-files: 1
diff-additions: 56
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 95a069b into main Sep 17, 2026
79 of 80 checks passed
@jsboige
jsboige deleted the feature/13410-density-rag04tok branch October 16, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants