Skip to content

Fix(genai,#19451): FT-00c audit v2.1 -- parite des runtimes FT-00a/FT-00c revendiquee a tort - #20539

Closed
jsboige wants to merge 1 commit into
mainfrom
fix/19451-ft00c-parite-runtimes
Closed

jsboige wants to merge 1 commit into
mainfrom
fix/19451-ft00c-parite-runtimes

Conversation

@jsboige

@jsboige jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner

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

Résumé

Audit v2.1 du carnet FT-00c (famille FineTuning, partition See #19451 — partition de #17073). Troisième carnet audité (FT-00a #20535, FT-00b #20536) ; sondes mécaniques familiales : c.6142423841.

Finding principal (classe B — prémisse contredite par les sorties committées des DEUX carnets)

Endroit Claim Sorties committées
c.3 (Lecture : environnement) « La comparaison avec FT-00a n'a de sens que si les deux notebooks tournent sur la même machine, même build PyTorch, même device — c'est le cas ici (CPU) » FT-00c c.2 : PyTorch 2.13.0+cpu | device cpu · FT-00a c.2 : PyTorch 2.8.0+cu126 | device cuda (NVIDIA GeForce RTX 3090)

La prémisse est fausse sur ses trois composantes (build, device — et machine presque sûrement). Conséquence en cascade sur c.17 : le point Temps attribuait le rapport « 28,9 s ici contre 7,9 s committées » à l'overhead peft (« sur cette mini-tâche CPU le rapport est visible »), alors que la cause dominante est le device différent (CPU vs GPU) — un hedge vague (« les deux runs n'ont pas non plus partagé la charge machine ») laissait lire le rapport comme un surcoût de librairie.

Correctif — correction d'attribution, pas de réalignement

  • c.3 : la comparaison d'exactitude reste valide sans réserve (protocole repris bit à bit, peft seule dépendance ajoutée) ; la comparaison de temps est déclarée non comparable, avec les deux envs cités depuis les sorties.
  • c.17 (Temps) : le rapport 28,9/7,9 ne mesure pas un surcoût peft ; le mécanisme (noyaux lora_A/lora_B + indirection) reste décrit comme fait architectural, invisible sur cette paire de runs.

Aucun nombre modifié — ceux cités viennent tous des sorties committées. Diagnostic C.4 : (a) env/kernel (re-exécution de FT-00c sur un runtime CPU différent de celui du run FT-00a référencé), verdict CAUSE_DOCUMENTED_ONLY.

7 autres claims quantitatives vérifiées EXACTES

~29 k params base (29 066) · 3 752 params peft = budget attendu conv3+fc r=4 = identique FT-00a · 11 % (11,4328 mesuré) · base ~0,83/~0,04 (0.8347/0.0430, divergence vs FT-00a 0.8325/0.0363 déjà affichée honnêtement dans la sortie c.7) · exactitude peft ~0,70-0,75 (0.7379) · adaptateur ~15 Ko (15 440 octets), 22 Ko avec config (21 671), réseau ~116 Ko (116 264), rapport ~5× (5,36) · roundtrip save/load exact (0.7379 identique, dérive fusion 1,7e-5).

Validation

  • Diff markdown-only (2 lignes), code byte-identique par construction (remplacement texte brut du JSON) — exception C.2 « modifs uniquement markdown »
  • nbformat.read OK (28 cellules)
  • check_prose_quantitative_claims.py --diff origin/main...HEAD : [OK]
  • Pre-commit H.3 : Passed (11/11 hooks)

See #19451 (partition de #17073)

🤖 Generated with Claude Code

…-00c revendiquee a tort

c.3 pretend « meme machine, meme build PyTorch, meme device -- c'est le
cas ici (CPU) » ; les sorties commitees disent FT-00a = cuda RTX 3090
(PyTorch 2.8.0+cu126) et FT-00c = cpu (PyTorch 2.13.0+cpu). c.17
attribuait le rapport de temps 28,9/7,9 s a l'overhead peft alors que la
cause dominante est le device. Correction d'attribution : la comparaison
d'exactitude reste valide (protocole bit a bit), celle de temps est
decleree non comparable. Markdown-only, code byte-identique, diff = 2
lignes. 7 autres claims verifiees exactes (0,83/0,04 ; 3752 params ;
11 % ; ~15 Ko / 22 Ko / 116 Ko / rapport ~5x).

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

⚠️ 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

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 4.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.3s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 2.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 1.9s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 19.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 9.1s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 8.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: 1
  • Code cells validated: 10
  • 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)

jsboige added a commit that referenced this pull request Oct 13, 2026
… du point Temps

Deux apports du 13/10 portes dans cette branche :

- c.17 (section 4, point Temps) : le rapport 28,9 s / 7,9 s ne mesure PAS un
  surcout peft -- les deux runs ne partagent ni device ni build (CPU ici, GPU
  pour FT-00a). L'effet architectural de l'adaptateur reste decrit comme fait,
  mais invisible sur cette paire de runs.
- c.3 : la coupe exactitude/temps du 13/10 est fusionnee dans le texte deja
  reecrit par le commit precedent -- comparaison d'exactitude valide,
  comparaison de temps declaree non comparable.

Markdown-only : aucune cellule code touchee, outputs 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 #20492 — un carnet, une PR

Meme carnet (FT-00c-LoRA-SOTA-Comparison-Python.ipynb). Le finding principal de cette PR — la premisse « meme machine, meme build, meme device — c'est le cas ici (CPU) » contredite par les sorties commitees des DEUX carnets — etait deja porte par #20492 comme son F1, avec quatre autres findings (F2-F5 : meme-machine en c.15, ecarts 0,002/0,007, epsilon x140, projet fabrique Su-LoRA).

Deux constats propres a cette PR ont ete portes dans #20492 (commit 6132df471b) :

  1. c.17, correction d'attribution : le rapport 28,9 s / 7,9 s ne mesure pas un surcout peft — les deux runs ne partagent ni device ni build. Fix(finetuning,#17073): audit FT-00c -- claim meme-machine fausse, ecarts et epsilon regroundes, projet fabrique retire #20492 n'avait pas touche cette cellule ; le texte porte reprend le votre quasi tel quel.
  2. c.3, coupe exactitude/temps : comparaison d'exactitude valide, comparaison de temps declaree non comparable — fusionnee dans le texte de Fix(finetuning,#17073): audit FT-00c -- claim meme-machine fausse, ecarts et epsilon regroundes, projet fabrique retire #20492, qui citait deja les deux environnements et le role d'ordre de grandeur des valeurs FT-00a.

Aucun nombre modifie : les chiffres cites viennent tous des sorties commitees, des deux cotes.

La branche fix/19451-ft00c-parite-runtimes est conservee (pas de suppression).

Suite : #20492.

@jsboige jsboige closed this Oct 13, 2026
myia-ai-01 pushed a commit that referenced this pull request Oct 13, 2026
…arts et epsilon regroundes, projet fabrique retire (#20492)

* Fix(finetuning,#17073): FT-00c audit -- claim meme-machine/build/device fausse (FT-00a cuda 2.8 vs ici cpu 2.13), ecarts 0.002/0.007, epsilon x140, Su-LoRA fabrique

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

* Fix(finetuning,#17073): FT-00c -- port du constat #20539, attribution du point Temps

Deux apports du 13/10 portes dans cette branche :

- c.17 (section 4, point Temps) : le rapport 28,9 s / 7,9 s ne mesure PAS un
  surcout peft -- les deux runs ne partagent ni device ni build (CPU ici, GPU
  pour FT-00a). L'effet architectural de l'adaptateur reste decrit comme fait,
  mais invisible sur cette paire de runs.
- c.3 : la coupe exactitude/temps du 13/10 est fusionnee dans le texte deja
  reecrit par le commit precedent -- comparaison d'exactitude valide,
  comparaison de temps declaree non comparable.

Markdown-only : aucune cellule code touchee, outputs commites inchanges
(exception C.2).

See #19451 (partition de #17073)

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant