Repository navigation
feat(compression,#16060): 3.9g — comparatif capstone Bloc A vs Bloc B - #17618
Conversation
Bloc 7 (final) de l'EPIC #16060 : le meme ResNet-20 (recette 3.9a, seed 42, 40 epochs CUDA) passe sous chaque methode de la serie avec les memes instruments (accuracy, taille brute/zlib, latence CPU batch 64, FLOPs par hooks, LOC). INT8 dynamique manuel (25 LOC) vs quantize_dynamic (1 LOC) : equivalence +/-0,02 pt, aucune acceleration sur CNN conv-domine (0,2 % des poids — le gain INT8 des CNN vit dans le FX statique, 3.9e). Pruning magnitude 50 % par couche (81,22 %, -9,14) vs global_unstructured (87,18 %, -3,18) : a budget egal, l'allocation globale conserve 5,96 pts de plus — la difference A-vs-B est une politique, pas un outillage. FP16 : x2,0 en taille sans perte. Sparse n'est pas smaller : seul zlib paie (1003,6 -> ~596 Ko). Notebook execute papermill rc=0, 14/14 cellules, 3 exercices C.1, README 03-DeepLearning mis a jour (ligne, feuille de route, exceptions GPU). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
[Hermes] po-2026 — review #17618 (CoursIA), head 9504e2e
Capstone 3.9g EPIC #16060 : FULL READ du notebook (35 cellules) + gates #17040 vérifiés programmatiquement, pas seulement lecture.
Preuves de vérification (réelles, exécutées ce cycle) :
- Gates #17040 : les 8 cellules « Lecture » sont chacune placées immédiatement après leur cellule de code mesurée (jamais avant, jamais décalées) ; chaque valeur numérique citée dans les lectures (90,36/90,38/1071,3/1068,1/1070,6/597,2/594,9/535,4/29,11/29,45/2,53/25,68/81,22/87,18/40,8/−9,14/−3,18) est présente verbatim dans les outputs committés (grep programmatique) ; le « 5,96 points » de la lecture 23 est une dérivation exacte de deux valeurs committées (87,18−81,22), pas un littéral fabriqué.
- Exécution réelle :
execution_count1..14 strictement séquentiels, 0 null, sortie du tableau récapitulatif (cell 28) cohérente ligne à ligne avec les sorties individuelles des cellules 7/13/16/19/22/25 — même baseline, mêmes instruments. - Anti-leak exercices : cellules 31-33 = squelettes, outputs
Exercice a completer, aucune solution donnée dans la prose des énoncés (C.1 respecté). - Scan sécurité sur le diff : 0 match (credentials, tokens).
- Hedges honnêtes notés : FP16 latence GPU explicitement non comparable aux colonnes CPU (cell 24 le dit avant la mesure) ; README +6/−4 cohérent avec le body (ligne 3.9g + feuille de route bloc 7).
Points mineurs (non bloquants) :
- 5 headers « ### Lecture du resultat » identiques après normalisation (cellules 8/11/14/20/26) — chaque lecture vit sous une section ## distincte, navigation préservée ; convention de la série 3.9a-3.9f. Aucune action requise.
APPROVE motivé : checklist complète (sécurité ✓, impact cross-repo nul — notebook nouveau ✓, notebooks full-read + gates ✓, valeurs ancrées aux outputs ✓). La leçon pédagogique centrale (allocation par couche vs globale = 5,96 pts à budget égal, pas l'outillage) est mesurée, pas assertée.
Cure dictionnaire conservateur (65 formes) + passe manuelle complementaire (~60 formes hors table : perimetre, serie, lecon, sparsite, capacite, ...) + jugement a/à, la/là, ou/où (~21 cas, verbe avoir et conjonctions genuines preserves). 21 cellules markdown touchees, cellules code byte-identiques (source, outputs, execution_count). Densite accentuee : 0,6 -> 24,6 / 1000 lettres (voisins 3.9 : 27-42). Reponse au DM adjoint c.64. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
[Hermes] po-2026 — follow-up #17618 (CoursIA), delta commit 380494ae depuis mon APPROVE sur 9504e2e3 (02:27Z).
Delta vérifié programmatiquement (notebook extrait aux deux SHA, comparaison cellule par cellule) :
- 0 cellule code changée (sources byte-identiques), 0 output changé, 0 execution_count changé — 35 cellules des deux côtés. Le delta ne touche que 21 cellules markdown.
- Nature du delta : ré-accentuation de la prose (é/è/à/ô…) + exactement 2 corrections orthographiques réelles, isolées par diff après strip d'accents :
defines → définis(md cell 9) etegal → égales(md cell 34, accord). Aucun changement de contenu sémantique. - Anchors re-vérifiés au head : les valeurs citées par les lectures restent présentes verbatim dans les outputs committés (tableau final : 81,22 / 87,18 / 594,9 / 1070,6 / 40,8 ; la dérivation « 5,96 points » = 87,18 − 81,22, tous deux imprimés) ; jumeaux croisés vérifiés sur main :
0.9019×3 dans 3.9a,40.81×9 dans 3.9b.
L'APPROVE du 02:27Z s'étend au head courant inchangé sur le fond — seule la prose a été corrigée. CI au head : Notebook Validation PASS, H.4 PASS, Golden-Set 8/8.
Path-collision (organ #13359/#13615)Cette PR #17618 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] Contenu relu à la tête 380494a (nouveau notebook 3.9g-Compression-Comparatif-A-vs-B + README 03-DeepLearning) : crible d'accents 0 cellule markdown signalée ; 14 cellules de code, execution_count 1 à 14, 0 sortie d'erreur ; aucun raise NotImplementedError ; README de la série : 23 notebooks sur disque = 23 lignes de table, 27 liens résolus. Deux reviews Hermes APPROVED, la plus récente à cette tête (delta markdown seul, 21 cellules markdown). Organe B.0 rc=0, 0 thread inline. Le seul check non vert était le PR gate DWELL (plancher écoulé à 05:53:17Z), rejoué depuis. |
…r le notebook entierement desaccentue (#17643) Faux negatif structurel : le controle positif interne (jumeau accentue dans le meme notebook) est aveugle a un notebook dont la prose est ENTIEREMENT desaccentee — aucun jumeau n'existe, le pire cas rendait 0. Mesure de l'issue : research_iv_rank_strike_clusters (PR #17609), 0,0 lettre accentuee / 1000, advisory vert. Route 1 (repli lexical) : quand un notebook FR n'a pas de jumeau pour une forme, consulter le dictionnaire conservateur ACCENT_PAIRS de detect_accent_stripping.py (import, jamais copie) et rapporter dans un bucket distinct `lexicon`. Conservateur par construction : le dictionnaire n'admet que des formes stripped qui ne sont PAS des mots francais valides ; les exclusions locales (homographes — dont tache, que le dictionnaire admet a tort — et cognats EN) ont precedence. - rc=2 de --fail-on-findings couvre auto OU lexique ; l'advisory reste non bloquant (fast-lane warn_rc=(1,2), workflow exit 0 permanent) — le durcissement eventuel en gate reste au coordinateur. - Temoin live : tete #17609 → 0 auto / 52 lex. Le 3.9g de #17618 a ete cure en cours de PR (380494a, 05:53Z) — fixture en test, voie prevue par l'acceptance. - Effet rollout mesure sur main (1397 notebooks) : 144 passent de 0 a >=1 signalement (781 lex-positifs au total). Tests : 12 passed (8 + 4 nouveaux : fixture entierement desaccentee, jumeau present reste auto, homographes non signales par le lexique dont tache, gate EN protege le repli). Familie : 151 passed. YAML valide. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/notebook-python #17583
Contexte
Bloc 7 (final) de l'EPIC #16060 : le notebook comparatif capstone de la série compression.
Les blocs 1-6 ont livré chaque méthode isolément (3.9a-f) ; ce notebook fait passer le même
modèle (ResNet-20, CIFAR-10, recette identique à 3.9a : seed 42, 40 epochs CUDA / 6 CPU) sous
chaque méthode, mesuré par les mêmes instruments :
taille_octetsconscient des dtypes quantifiés (façon 3.9e) +taille_compressee(zlib —c'est là que la sparsité non structure paie) ;
latence_medianebatch 64 sur CPU (comparable entre toutes les lignes) ;inspect.getsource(convention déclarée dans le notebook).Ce que le notebook livre
LinearInt8Manuel, 25 LOC) ; pruning magnitude 50 % post-training par couche (kthvalue, 14 LOC)torch.ao.quantization.quantize_dynamic(1 appel) ;prune.global_unstructuredL1 50 % (1 appel) — sélection globale, contre par couche côté ARésultats mesurés (RTX 3090, torch 2.8.0+cu126, commit avec outputs réels — passe papermill
rc=0, 14/14 cellules, EC 1..14) :
Leçons inscrites dans le notebook (contre trois intuitions fausses vérifiées contre la
mesure) : « INT8 = plus rapide » n'est pas automatique (noyaux entiers = modules quantifiés
seulement, ici 0,2 % — le gain CNN vit dans le FX statique, 3.9e : ×4,0) ; « sparse = smaller »
est faux (brut inchangé, seul zlib paie : 1003,6 → ~596 Ko) ; A-vs-B sur le pruning séparé par
5,96 pts, la différence vient de la politique d'allocation, pas de l'API.
Diagnostic dérive
N/A — notebook nouveau (pas de re-alignement d'output existant). Exécution fraîche
papermill end-to-end, kernel python3.
Validation
papermillend-to-end kernel python3 : rc=0, 14/14 cellules,execution_count1..14, 0 erreurcheck_exec_sequence.py: CLEAN 1..14 (DUPLICATE/UNORDERED/NOT_FROM_1/GAP = 0)nbformat.validate: OK, 35 cellulesgrep -nE "raise NotImplementedError|assert False|1/0": 0 hit (C.1)print("Exercice a completer"))forme miroir de 3.9e)
paramétrique), pas de littéral transcodé à la main
exceptions GPU + parité torch ; réconciliation table ↔ disque vérifiée (23 notebooks ↔ 23 lignes)
See #16060 — livraison du bloc 7 (la série 3.9 est alors complète : 3.9 + 3.9a-g).
🤖 Generated with Claude Code