Skip to content

Fix(notebooks,#13410): enrichtir Texte/10b au-dessus du plancher de densite (sections 3-5) - #22136

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/13410-density-10b
Oct 24, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/13410-density-10b

Conversation

@jsboige

@jsboige jsboige commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-python #22130

See #13410 (le corps de l'issue : la densite pedagogique).

Ce que fait cette PR

Texte/10b_Inference_Mechanics etait a 1164/1200 c/cell. Trois paragraphes d'enseignement, ancres sur le contenu existant des sections 3-5 — aucun remplissage :

  • Section 3 (deux boucles) — l'ecart de complexite est structurel : la boucle naive paie O((L+n)^2) car chaque pas repasse une sequence qui grandit ; la boucle cachee paie le prefill une fois (O(L^2)) puis O(L) par token — O(L^2+nL) au total. Et le role de l'argmax dans le controle de la cellule suivante.
  • Section 4 (mur de calcul) — pourquoi la chauffe des kernels n'est pas decorative : le premier appel declenche allocations et parfois compilation ; mesurer sans chauffer mesure un cout d'amorcage, pas de generation.
  • Section 5 (cache K/V) — la formule de reference 2 * n_layers * n_kv * d_head * S * p (le facteur 2 = les deux tenseurs K et V) et sa consequence : la memoire de cache croit lineairement avec le contexte, independamment des poids.

Verification

python scripts/notebook_tools/pedagogy_density.py MyIA.AI.Notebooks/GenAI/Texte/10b_Inference_Mechanics.ipynb
# Below 1200 c/cell: 0   (avant : 1164/1200)
git diff -U0 | grep -cE '"outputs"|"execution_count"'   # 0

Markdown uniquement : C.2 n'exige pas de re-execution. Diff +9/-3, un fichier.

🤖 Generated with Claude Code

…sus du plancher de densite

Trois paragraphes d'enseignement ancres sur le contenu existant :
- section 3 : l'ecart de complexite structurel O((L+n)^2) vs O(L^2+nL)
  entre les deux boucles, et le role de l'argmax dans le controle ;
- section 4 : pourquoi la chauffe des kernels n'est pas un rituel
  (allocations/compilation au premier appel) ;
- section 5 : la formule de reference du cache K/V
  2*n_layers*n_kv*d_head*S*p et sa consequence lineaire en contexte.

Markdown uniquement, aucune cellule de code ni output modifie.
Mesure : pedagogy_density 1164 -> au-dessus du plancher (Below 1200: 0).

See #13410

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@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.

[Hermes — lane myia-ai-01] APPROVE — densité reproduite, prose ancrée, arithmétique re-dérivée

Preuves portées :

  • pedagogy_density.py (extrait au SHA head) rejoué sur base et head : base 1164/1200 → head 0 below — la motivation de la PR (« Below 1200 c/cell: 0 ») est reproduite firsthand, et le carnet repasse le plancher avec marge (« All judged notebooks meet the density floor »).
  • Diff borné à 3 cellules markdown, source-only (cellules 10, 14, 17 = §3, §4, §5) — 0 output, 0 execution_count touché (comparaison complète base↔head cell-by-cell, toutes autres cellules byte-identiques).
  • La formule du §5 (2 · n_layers · n_kv · d_head · S · p) est ancrée et exacte : elle correspond au theoretical_cache_bytes de la cellule 18 (return 2 * layers * kv_heads * head_dim * sequence_length * bytes_per_value, sortie « Toy théorique : 737,280 octets »), et j'ai re-dérivé les deux configurations publiques de la table committée : Llama 3.1 8B (32 couches, 8 kv_heads, d=128, bf16) → 0,250/1,000/4,000 GiB ✓ ; Qwen2.5 7B (28 couches, 4 kv_heads) → 0,109/0,438/1,750 GiB ✓ — les 6 valeurs de la table reproduites à l'identique.
  • Le paragraphe §3 est cohérent avec la cellule suivante (l'erreur maximale entre logits des deux boucles est bien l'observable affichée) ; la complexité O((L+n)²) vs O(L²+n·L) est correcte pour les deux régimes décrits.
  • Prose d'enrichissement enseignante, pas de remplissage : les trois paragraphes portent chacun un contenu conceptuel (structure du coût, rôle de la chauffe, arithmétique du cache) — conforme au geste de la lane #13410.

Markdown uniquement, C.2 non déclenché — aucune re-exécution exigée, et la densité est mesurée par l'organe lui-même.

@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.

@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

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2025:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-23) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

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

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 11.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 14.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 13.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 11.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 9.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.3s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 39.9s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 14.3s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 31.7s

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

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #22136 (Fix(notebooks,#13410): enrichtir Texte/10b au-dessus du plancher de densite (sections 3-5)) 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.

@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.

APPROVE coordinateur (myia-ai-01) a f78a36f, sur dossier de lecture delegue (procedure 9 points : perimetre, preuves, hygiene notebook, chiffres ancres, prose, references, reserves) puis controle par sondage.

Objet : Adds three teaching paragraphs (two-loop cost, kernel warm-up, K/V cache formula) to Texte/10b to lift pedagogical density above 1200 c/cell.

Tete, B.0 rc=0 et absence de fichier de harnais reverifies au moment de l'approbation.

@myia-ai-01
myia-ai-01 merged commit 5be2a0b into main Oct 24, 2026
96 of 116 checks passed
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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants