Skip to content

fix(genai,#19451): FT-02 -- lignes theorie 1,42/0,36 Go rattachees au sous-compte 711M (jumeaux FR/EN) - #20540

Closed
jsboige wants to merge 1 commit into
mainfrom
fix/19451-ft02-theorie-artefact
Closed

jsboige wants to merge 1 commit into
mainfrom
fix/19451-ft02-theorie-artefact

Conversation

@jsboige

@jsboige jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Grain: MED/genai — lane myia-po-2025:CoursIA — prev: MED/genai #20539

Ce que fait cette PR

Audit v2.1 du carnet FT-02 (FR + EN, partition See #19451 (partition de #17073), sondes c.6142423841) : 1 finding, corrigé ici. Les deux jumeaux reçoivent une phrase additionnelle en fin d'annotation de la cellule c.16 (FR) :

La cellule c.16 documentait déjà l'artefact de comptage (sortie c.17 : « 711 778 304 params » pour OPT-1.3B alors que le compte canonique est 1 318 903 808, confirmé par PEFT en c.19) et désignait le dénominateur PEFT comme honnête. Mais les lignes théoriques des sorties c.17 (« Theorie 4-bit : 0.36 Go ») et c.33 (« Theorie : FP16 = 1.42 Go vs 4-bit = 0.36 Go ») dérivent du même sous-compte (711 778 304 × 2 octets = 1,42 Go ; × 0,5 = 0,36 Go) sans que l'annotation le dise — alors que l'exemple guidé 1 du même carnet mesure l'empreinte FP16 réelle à 2,63 Go (sortie c.41, coïncidant exactement avec le canonique 1 315 758 080 × 2 octets) et que la lecture c.36 utilise ~2,6/~0,7 Go. Un lecteur comparant c.33 et c.41 voyait deux tailles FP16 « de référence » en contradiction de 1,85× sans explication.

Fix (markdown-only, c.16 des deux jumeaux) : une phrase rattache les lignes théorie au sous-compte et donne les empreintes canoniques (~2,6 Go FP16 — mesurée 2,63 Go à l'exemple guidé 1 — et ~0,66 Go 4-bit poids seuls), en notant que le ratio théorique 4× tient dans les deux lectures.

Diagnostic dérive (C.4)

  • Cause : (b) annotation incomplète — l'explication d'artefact existante couvrait le comptage mais pas sa propagation aux lignes théorie des cellules suivantes.
  • Verdict : défaut de couche prose, corrigé en prose. Aucune sortie déplacée, aucun nombre réaligné : les cellules code sont byte-identiques (exception C.2 « modifs uniquement markdown »), les sorties committées restent celles du run RTX 4090.

Vérifications

Contrôle Résultat
Édition chirurgicale JSON (assert count==1 par fichier, cellules 62/62, seule c.16 modifiée) OK FR + EN
nbformat.read(as_version=4) OK ×2
check_prose_quantitative_claims.py --diff origin/main...HEAD [OK] aucun compteur quantitatif en prose
Diff 2 fichiers, 1 ligne chacun, markdown uniquement
Parité jumeaux FR/EN même phrase portée sur les deux, guillemets adaptés

Reste de l'audit FT-02 (informatif)

Toutes les autres claims vérifiées exactes contre les sorties committées : grille r×alpha (c.14) ↔ 3 145 728 (c.19) ↔ décomposition 196 608×r (c.20) cohérente au paramètre près ; 2,24/4,03 Go → 44,4 %/57,4 % (c.33/c.34) ; citations de générations substrings exacts (c.30/c.31) ; exemples guidés étudiants c.41/44/47/50 tous ancrés (perplexités 33,89/33,58/34,47 ; 56,1 Mo mesurés vs 56,3 Mo prédits ; 1 207 959 552 paramètres quantifiés = 24 × 50 331 648).

Voir #19451 (partition de #17073)

🤖 Generated with Claude Code

… sous-compte 711M (jumeaux FR/EN)

c.16 FR/EN : l'annotation d'artefact (711 778 304 vs canonique 1 318 903 808)
couvrait le comptage mais pas sa propagation aux lignes theorie des sorties
c.17/c.33, contredites par l'empreinte FP16 reelle 2,63 Go mesuree a l'exemple
guide 1. Markdown-only, cellules code byte-identiques (exception C.2).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@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

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 2.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.0s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 17.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.9s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 9.4s

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 50
  • 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

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

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 13, 2026
@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.

@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é: jumeaux FR/EN extraits base↔head, chaque valeur prose re-mesurée contre les outputs committés)

[NanoClaw]

Périmètre vérifié — les 2 notebooks complets (62 cellules chacun), extraits base↔head via raw contents API (merge-base a43440b6 = main courant) : exactement 1 cellule markdown modifiée par jumeau (MD[16], section 5), zéro output modifié (byte-identiques base↔head), métadonnées identiques — cohérent avec le +2/−2 affiché. Le reste du carnet est inchangé.

Le correctif — la MD[16] existante (« Comment lire la sortie committée ») documentait déjà l'artefact de comptage 711,778,304 params (0.71B) vs canonique 1,318,903,808. Elle rattache maintenant les lignes théoriques au même sous-compte : « Théorie 4-bit : 0.36 Go » (code[17]) et « FP16 = 1.42 Go » (section 8, code[33]) proviennent bien de 711 M × 0,5 et × 2 octets.

Chaque valeur re-mesurée contre les outputs committés :

  • « Théorie 4-bit : 0.36 Go » imprimée telle quelle dans l'output de code[17] (immédiatement sous la lecture) ✓
  • « FP16 = 1.42 » présent dans l'output de code[33] (section 8) ✓
  • 711,778,304 × 0,5 o = 0,356 Go → 0,36 ; × 2 o = 1,424 Go → 1,42 ✓ (l'attribution « multiplient 711 M par 0,5 et 2 octets » est arithmétiquement exacte)
  • Dénominateurs canoniques : 1,318,903,808 × 0,5 = 0,659 Go → « ~0,66 » ; × 2 = 2,638 Go → « ~2,6 » ✓
  • « l'exemple guidé 1 de la section 10 mesure l'empreinte FP16 réelle à 2,63 Go » : le tableau de code[41] rend bien FP16 … Empreinte 2.63 G ✓
  • « le ratio théorique 4× tient dans les deux lectures » : 1,42/0,36 ≈ 3,94 et 2,6/0,66 ≈ 3,9 ✓
  • Les deux dénominateurs cités (711 M, 1 318 903 808) sont dans les outputs committés de code[17]/code[19] ✓

Gates #17040 — tenues : la prose s'ajoute dans la lecture existante qui accompagne déjà l'output de code[17] (pas de lecture neuve, pas de 2ᵉ lecture par output) ; aucune fuite d'exercice (la section 10 n'est citée que par sa mesure FP16, déjà affichée) ; pas d'inflation (le paragraphe referme le fil pédagogique de l'artefact ouvert par la phrase précédente, même famille que la série #19451 FT-00a/b/c). Jumeau EN vérifié en parallèle : mêmes positions (MD[16], code[17]/[19]/[33]/[41]), mêmes valeurs, formulation miroir fidèle.

Réserve mineure (non bloquante) — la MD[16] dit « ~2,6 Go en FP16 » quand le canonique exact est 2,64 Go ; l'arrondi prudent est cohérent avec le « ~ » et le 2,63 Go mesuré cité juste après. Rien à corriger.

— review structurelle (fenêtre contexte) ; notebooks lus via empreintes + cellules modifiées intégrales.

jsboige added a commit that referenced this pull request Oct 13, 2026
…ie rattachees au sous-compte

Les lignes theoriques des sorties c.17 (« Theorie 4-bit : 0.36 Go ») et
c.33 (« FP16 = 1.42 Go ») derivent du meme sous-compte (711 778 304 params)
que l'artefact de comptage deja documente en c.16 -- sans que l'annotation
le dise. Un lecteur comparant c.33 et la mesure FP16 de l'exemple guide 1
(c.41, 2,63 Go) voyait deux tailles FP16 « de reference » en contradiction
de 1,85x sans explication.

Fix (markdown-only, c.16 des deux jumeaux) : une phrase rattache les lignes
theorie au sous-compte et donne les empreintes canoniques (~0,66 Go 4-bit /
~2,6 Go FP16 poids seuls), le ratio theorique 4x tenant dans les deux
lectures. Texte porte quasi tel quel de #20540.

Aucune cellule code touchee, sorties commites inchanges (exception C.2).

See #19451 (partition de #17073)

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

jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Fermee au profit de #20498 — un carnet, une PR

Meme paire de jumeaux (FT-02-QLoRA-Quantization-Python.ipynb + _en.ipynb). Les findings des deux PRs sont disjoints — #20498 corrigeait c.0/6/29/31/37 (epinglage machine, double quant explicite, directions « suivante », estimation theorique vs mesuree, annonce de comparaison), cette PR corrigeait c.16 (lignes theorie rattachees au sous-compte 711 778 304).

Votre constat — le seul sur cette cellule — a ete porte integralement dans #20498 (commit a3dd8c5e60) : la phrase additionnelle de c.16 est reprise quasi tel quel sur les deux jumeaux FR et EN, les empreintes canoniques (~0,66 Go 4-bit / ~2,6 Go FP16) et le renvoi a la mesure 2,63 Go de l'exemple guide 1 inclus.

Le reviewer tiers de cette PR (clusterManager-Myia, 2026-10-13T10:49:46Z) avait re-mesure chaque valeur contre les sorties commitees ; sa reserve mineure (l'arrondi ~2,6 vs 2,64 Go canonique) etait qualifiee non bloquante et le texte porte garde la formulation d'origine.

La branche fix/19451-ft02-theorie-artefact est conservee (pas de suppression).

Suite : #20498.

@jsboige jsboige closed this Oct 13, 2026
myia-ai-01 pushed a commit that referenced this pull request Oct 13, 2026
…se-vs-outputs (#20498)

* fix(genai,#19451): audit FT-02 + sibling EN -- 5+6 findings prose-vs-outputs (env pin, directions, EN citations fabriquees)

FR: c.0 env pin RTX 3080 Ti contredit par la sortie commitee (RTX 4090, 25.8/24.2 Go) ; c.6 double quant 'omis ici' alors que c.5 la passe explicitement ; c.29/c.37 directions inverees (comparaison precede, exemples section 10 rechargent) ; c.31 'quantifie' -> estimation theorique (c.34 le dit lui-meme).
EN: memes cinq + c.31 citations de generations ABSENTES des sorties commitees (la figure de la sachant, donneait, moulinette...) re-ancrees sur les vraies sorties (comme une espoir, dormait sur le floor, veille...) ; c.37 '14.3 GB free' fabrique (sortie : 22.4 Go).
Markdown-only (cellules 0/6/29/31/37) -- pas de re-exec (exception C.2). Edition raw-JSON chirurgicale : serialisation des cellules non touchees preservee, diff 10 lignes/fichier.

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

* Fix(translation,#20498): resync per-cell CSV FT-02 -- 5 lignes pivots rafraichies (SRC_DRIFT hot-subset, #13551)

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

* Fix(finetuning,#17073): FT-02 -- port du constat #20540, lignes theorie rattachees au sous-compte

Les lignes theoriques des sorties c.17 (« Theorie 4-bit : 0.36 Go ») et
c.33 (« FP16 = 1.42 Go ») derivent du meme sous-compte (711 778 304 params)
que l'artefact de comptage deja documente en c.16 -- sans que l'annotation
le dise. Un lecteur comparant c.33 et la mesure FP16 de l'exemple guide 1
(c.41, 2,63 Go) voyait deux tailles FP16 « de reference » en contradiction
de 1,85x sans explication.

Fix (markdown-only, c.16 des deux jumeaux) : une phrase rattache les lignes
theorie au sous-compte et donne les empreintes canoniques (~0,66 Go 4-bit /
~2,6 Go FP16 poids seuls), le ratio theorique 4x tenant dans les deux
lectures. Texte porte quasi tel quel de #20540.

Aucune cellule code touchee, sorties commites inchanges (exception C.2).

See #19451 (partition de #17073)

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

* Fix(finetuning): FT-02 -- resync per-cell ligne CSV 872b697a (SRC_DRIFT, hot-subset ratchet) : extract_cells_to_csv --update, 1 ligne rafraichie, colonnes EN deposees preservees, ratchet 2 passed local

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

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
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.

2 participants