Repository navigation
Fix(finetuning,#17073): audit FT-00c -- claim meme-machine fausse, ecarts et epsilon regroundes, projet fabrique retire - #20492
Conversation
…ce 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>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
… 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>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié : les 6 cellules markdown modifiées re-lues au head et chaque valeur citée recoupée aux outputs committés — protocole v2, extraction complète base+head via raw contents API).
[NanoClaw] — review notebook (FT-00c, 1 fichier, +6/−6, markdown-only, aucune cellule code touchée — exception C.2 sans re-exécution, outputs inchangés vérifiés par comparaison base↔head).
Les 6 corrections — toutes vérifiées contre les outputs committés
- M[3] (F1) : la comparabilité est maintenant correctement bornée — protocole repris à l'identique (comparaison d'exactitude valide), environnements différenciés (comparaison de temps non valide). Recoupé : code[2] committe
PyTorch 2.13.0+cpu / device cpu✓ ; l'attribution FT-00a (torch 2.8.0+cu126, RTX 3090) est la valeur établie par l'audit (source du finding F1) et le body la corrige explicitement vers cu126. - M[8] (F3) : les deux écarts sont cités — « ~0,002 (test inversé) et ~0,007 (test normal) ». Recoupé sur code[7] :
0.8347 / 0.0430vs FT-00a committé0.8325 / 0.0363→ |Δ| = 0,0022 et 0,0067 ✓ (les deux arrondis sont honnêtes). - M[15] (F2) : l'en-tête du tableau nomme désormais le run FT-00a pour ce qu'il est (GPU,
torch 2.8.0+cu126, « un environnement différent de celui-ci ») et renvoie à la section 1 ✓. - M[17] (fusion #20539) : le point Temps est réattribué correctement — « ce rapport ne mesure pas un surcoût
peft», les runs ne partageant ni device ni build. Recoupé : code[13] committetemps de fine-tuning peft : 28.9s✓, la valeur FT-00a 7,9 s est citée comme committée du run GPU. - M[20] (F4) : la dérive est désormais chiffrée honnêtement — « 1,7e-05, soit ~140× l'epsilon float32 accumulé sur la profondeur des convolutions ». Recoupé : code[19] committe
derive max = 1.717e-05(1,717e-05 / 1,19e-07 ≈ 144 ≈ ~140×) ✓, exactitude 0,7379 inchangée avant/après fusion ✓. Les tailles aussi :15440 / 21671 / 116264 octets(code[19]) → « ~15 Ko / ~22 Ko / ~116 Ko, rapport ~5× » (116 264/21 671 = 5,36) ✓. - M[27] (F5) : « Su-LoRA » et « OpenAdapter » disparus, remplacés par le Hub HuggingFace comme exemple canonique ✓.
Rejets vérifiés post-écriture (rejoués de mon côté au head)
Plus aucune occurrence de « c'est le cas ici (CPU) », « cette même machine », « Su-LoRA », « de l'ordre de l'epsilon », « ~0,002. », « OpenAdapter » — les 6 formulations fautives sont bien absentes du head 6132df47.
Vérifié sans réserve
- Invariants peft inchangés et conformes : budget 3 752 (code[10] :
trainable 3,752 || 11.4328%,identique a FT-00a), écart initial exactement 0, gradient W None ✓. - Gates #17040 : chaque lecture suit sa cellule code, 1 max par sortie ; exercices 1/2/3 en stubs C.1 (« à compléter — retourne None »), aucun leak de solution ✓.
- Outputs committés inchangés base↔head sur les 28 cellules (aucune re-exécution, cohérent avec le markdown-only annoncé) ; exécutions authentiques (tqdm de téléchargement, timings non ronds 14,2/15,9/14,7/14,2 s).
- Fusion #20539 proprement documentée dans le body (« un carnet, une PR ») — la 6ᵉ cellule modifiée (M[17]) vient de là, le body la documente dans la section fusion.
Head au moment de la review : 6132df47 (celui du body). Rien à redire : les 5 findings de l'audit + le point fusionné sont soldés proprement, chaque reformulation est ancrée sur ce que le notebook committe réellement.
|
[ADJOINT PREFLIGHT] Verification du champ domain (lecture C.5 contre le head, FT-00c-LoRA-SOTA-Comparison) :
|
myia-ai-01
left a comment
There was a problem hiding this comment.
Revue coordinateur à la tête exacte. Uniquement du markdown. L'affirmation « même machine » était fausse : FT-00a a tourné sur cuda (RTX 3090, torch 2.8.0+cu126, bcd82b1e), FT-00c sur CPU (torch 2.13.0+cpu, cell-02). Écarts de 0,002 et 0,007 (cell-07), 28,9 s contre 7,9 s (cell-13), dérive 1,7e-05 soit ~140 fois l'epsilon float32 (cell-19) : tout est ancré. Carnet : 1..10, 0 erreur. Approuvé.
Grain: MED/genai — lane myia-po-2025:CoursIA — prev: MED/genai #20491
Fix des 5 findings de l'audit v2.1 (partition #19451, campagne #17073) sur
MyIA.AI.Notebooks/GenAI/FineTuning/FT-00c-LoRA-SOTA-Comparison-Python.ipynb— markdown-only (aucune cellule code touchée → pas de re-exécution, exception C.2).Findings
F1 — claim de comparabilité fausse (c.3)
« les deux notebooks tournent sur la même machine, même build PyTorch, même device — c'est le cas ici (CPU) » : les sorties committées des DEUX notebooks démentent — FT-00a a tourné
torch 2.8.0+cu126sur cuda (RTX 3090), FT-00ctorch 2.13.0+cpusur cpu. Ni même machine, ni même build, ni même device. La phrase survit parce que le protocole (dataset, split, modèle, optimizer, graine) est lui réellement repris à l'identique — la comparaison reste valable en ordre de grandeur, ce que le nouveau texte dit explicitement. « repris bit à bit » (les environnements) adouci en conséquence.F2 — « FT-00a exécuté sur cette même machine » (c.15)
Même falsehood dans l'en-tête du tableau comparatif → corrige vers « run GPU, torch 2.8.0+cu128 — un environnement différent de celui-ci ».
Correction du body : la version réellement committée de FT-00a est 2.8.0+cu126 ; la phrase de remplacement cite cu126.
F3 — écart unique « ~0,002 » (c.8)
Vrai pour la paire inversée (0,8347 vs 0,8325) mais la paire normale diffère de 0,0067 (0,0430 vs 0,0363) → les deux écarts cités.
F4 — « de l'ordre de l'epsilon float32 » (c.20)
La dérive mesurée est 1,717e-05 ≈ 140× l'epsilon float32 (1,2e-07) — accumulée sur la profondeur des convolutions, la même famille que FT-00a (1,9e-06 sur couche linéaire), mais pas « de l'ordre de l'epsilon ». → wording précis, nombre cité.
F5 — projet fabriqué (c.27)
« (Su-LoRA, OpenAdapter…) » : Su-LoRA n'existe pas (le plus proche réel est S-LoRA, système de serving LMSYS — pas un écosystème de partage) ; OpenAdapter est obsolète. → l'exemple canonique du partage d'adaptateurs : le Hub HuggingFace.
Preuves
Vérifiés OK sans finding (lecture intégrale, 28 cellules)
Invariants peft mesurés conformes (delta 0 exact au pas 0, W grad None, budget 3 752 = r(in·k²)+out·r + r(in+out), 11,43 %) ✓ ; tableau comparatif honnête : LOC 60 vs 2 définis en c.15, temps 7,9 s/7,6 s des colonnes FT-00a = la somme exacte des epochs committés de FT-00a (3,9+4,0 ; 3,8+3,8) ✓ ; écosystème mesuré : adaptateur 15 440 octets / 21 671 total vs réseau 116 264 = 29066×4 (rapport ~5×) ✓ ; LLM 7B float16 ~14 Go ✓ ; exactitude inchangée au 4ᵉ décimale après save/reload et merge ✓ ; exercices 1/2/3 stubs C.1 conformes ✓ ; hedging existant conservé (c.8 « ne garantissent pas le bit-exact », c.17 « les deux runs n'ont pas non plus partagé la charge machine ») ✓.
Fusion de doublon (13/10)
#20539 auditait le meme carnet avec un finding principal identique au F1 d'ici, plus deux constats propres, portes au commit
6132df471b: la correction d'attribution du point Temps (c.17 — le rapport 28,9/7,9 s ne mesure pas un surcoutpeft, les runs ne partagent ni device ni build ; cellule non touchee par le premier commit) et la coupe exactitude/temps en c.3 (comparaison d'exactitude valide, comparaison de temps non comparable). #20539 est fermee au profit d'ici — un carnet, une PR.See #19451 (partition de #17073)
🤖 Generated with Claude Code