Skip to content

enrich(genai,#17883): 03b tranche 3 -- banc tiers CC0 hors domaine, pas de chute mesurable - #18296

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/17883-tranche3-banc-externe
Sep 29, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/17883-tranche3-banc-externe

Conversation

@jsboige

@jsboige jsboige commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: MED/notebook-python #18101

Tranche 3 de #17883 : le banc externe de 03b_Typed_Decisions_System1.ipynb — jabr/classifier-benchmark (« System One »), CC0 1.0, épinglé au commit afb83bee3b74, verrouillé par un digest canonique vérifié à l'exécution.

La question que cette tranche pose

Les familles du notebook ont toutes été choisies par nous, sur nos tickets. Rien ne dit qu'une lecture de log-probs tient hors de ce domaine. Le banc publie sa propre bande de résultats (modèles « Von » −21,2 pts de v1 à v2, « jeff » −8,6, « GLiNER2 » −9,4 à −10,7, « Jev » −1,0) : la chute à l'échelle du banc est documentée, par d'autres, sur leurs modèles. La question est donc : la chute vient-elle de la tâche, ou du réglage ? Notre LLM gelé, lu sur ses logits, tombe-t-il comme les modèles à prompt quand on passe aux domaines éloignés ?

Ce que le banc est, et comment il est consommé

  • v1 : 8 tâches, 78 cas. v2 : 49 tâches, 866 cas — dont 8 tâches « prolongées » (mêmes questions, nouveaux cas, 133 cas) et 41 « nouvelles » (domaines éloignés, 733 cas).
  • Le téléchargement vérifie un sha256 canonique (json.dumps(..., sort_keys=True, separators=(",",":")) sur {suite, tasks:[{id,type,question,cases}]}) : 22342af4e2c68f02… pour v1, f9d74c2885657a21… pour v2. Un banc tiers non verrouillé ne serait pas une mesure, ce serait une croyance.
  • Lecture identique au §4 : log-probs des options, argmax, aucune génération. C'est ce qui rend la comparaison terme à terme légitime — et c'est aussi la limite : on mesure notre mécanisme, pas un modèle à prompt.

Nombres mesurés (exécution committée)

Suite Cas Exactitude Plancher trivial
v1 (en domaine du banc) 78 0,397 0,333
v2 (toutes tâches) 866 0,421 0,370
dont prolongées (mêmes questions, nouveaux cas) 133 0,406 —
dont nouvelles (domaines éloignés) 733 0,424 —

Écart v1 → v2 : +2,4 points — pas de chute mesurable. Par type, sur v2 : noul 0,473 · choice 0,409 · score 0,363 (l'échelle ordinale déclarée est le type le plus dur à discriminer en log-probs).

Bornes, dites honnêtement

  • v1 n'est que 78 cas : l'intervalle sur l'écart fait ±11 points. Il exclut une chute de 11 points ou plus — l'ordre de grandeur de celle des modèles « Von » du banc —, il n'exclut pas une chute modérée de 5 à 8 points (le cas « jeff »).
  • Le niveau absolu reste bas : 0,421 sur v2, soit ~5 points au-dessus du plancher trivial (0,370). Pas de chute et pas de marge : le notebook le dit, et ne conclut pas « robustesse acquise ».
  • Le tableau publié du banc n'est pas un point de comparaison direct (leurs modèles génèrent ; nous lisons des logits sur un modèle de 0,5 Md).
  • Deux exécutions du même code donnent ±2 cas sur 866 (quasi-égalités d'argmax sur GPU) — le même ordre de grandeur que le bruit d'échantillonnage. La lecture porte sur des écarts, jamais sur la dernière décimale, et la prose du §8 le déclare.

Organe natif — 5 questions (organ-first)

  1. Quelle série possède la sémantique ? Aucune série du dépôt ne possède un banc de classification d'intention : l'organe est externe (jabr/classifier-benchmark).
  2. Peut-on invoquer l'organe réel ? Oui, et c'est ce qui est fait : le banc réel est téléchargé à son commit épinglé, vérifié par digest, et scoré — pas de jeu de test réimplémenté maison.
  3. Que faut-il exporter/refactorer ? Rien : CC0, consommation directe. Le seul code propre au notebook est le protocole de lecture (options → prompt → log-probs), déjà écrit au §4 et réutilisé tel quel.
  4. Quel témoin négatif l'organe fournit-il ? Les résultats publiés des autres modèles (bande −1,0 à −21,2 pts) — le contre-exemple qui donne son sens à notre +2,4.
  5. Quelle série vérifie indépendamment ? Le banc est sa propre vérification croisée : ses 49 tâches v2 ne sont pas nos tickets, et le notebook n'en choisit aucun.

Verdict SOTA : SOTA-OK

Le vrai outil tourne (banc tiers réel, commit épinglé, digest vérifié à l'exécution) ; la sortie committée est sa sortie. Aucun workaround dégradé, aucun cas dégénéré : le problème est le banc de 866 cas, discriminé par type et par groupe.

Validation

  • Exécution réelle : les 2 cellules neuves exécutées (papermill, kernel python3/GPU), execution_count séquentiels 1→17 (organe check_exec_sequence.py : GAP 0, NOT_FROM_1 0, UNORDERED 0).
  • Injection chirurgicale des 2 sorties dans le notebook (précédent 04-2/fix(genai-image-04-2): add non-interactive gpt-image-1 demo (SOTA-OK) #4381) : les cellules existantes gardent leurs sorties d'origine ; seule la prose du §8 est réconciliée sur ces sorties (précisée dans la section suivante).
  • check_c2_compliance.py --path : 1/1 conforme · check_cell_source_parses.py : 0 finding · check_interp_positioning.py : 0 finding · detect_papermill_path_leak.py --scan --check : rien · scan de fuite de chemin machine sur les sorties injectées : aucun motif.
  • Grep C.1 (raise NotImplementedError|assert False|1/0) : 0 occurrence ; les 3 exercices et leurs stubs restent non résolus.
  • Catalogue byte-identique à main (aucun COURSE_CATALOG.generated.* touché).
  • Prose ↔ sorties : la section « Lecture du résultat » cite exactement les nombres des sorties committées (0,397 / 0,421 / +2,4 / 0,406 / 0,424 / 0,363 / planchers 0,333 et 0,370).

Scope

  • 03b_Typed_Decisions_System1.ipynb : +1 section (§8, 5 cellules : intro, téléchargement+verrou, protocole, mesure, lecture) ; sections renumérotées 8→9 (exercices), 9→10 (conclusion) ; table des familles étendue au banc ; conclusion (+2,4 pts) ; entête.
  • README.md (GenAI/Texte) : ligne 3b étendue (aucun total touché à la main).

Branche empilée sur feature/17883-tranche2-jevlike (#18278) — retarget après le merge de la pile.

Diagnostic dérive

  • Cause (a) env/kernel : la re-execution papermill (commit 4d0553b, 39/39 cellules, 0 erreur) tourne sous le Python local 3.13.3 de po-2023 ; le stamp de base du notebook etait 3.11.15 (env historique de lane, absent de la machine — py -0 : 3.13 / 3.12 / 3.10 / Anaconda3.9). La garde kernel-drift ne releve qu'un ecart de stamp : signature_drift_cells: [] — aucune derive de valeur entre base et tete.
  • Aucune valeur a re-aligner : toutes les sorties commitees viennent de la re-execution fraiche (jamais d'edition manuelle, regle 6) ; l'exemption C.4 vise ici uniquement le stamp language_info.version.
  • Canon de serie mesure : la serie GenAI/Texte sur main est majoritairement en 3.13 (24 notebooks 3.13.x, 5 en 3.11.x, 1 en 3.12.10) — la transition 3.11 -> 3.13 va dans le sens du canon effectif de la serie. Installer une stack 3.11 dediee (torch + transformers + sklearn, plusieurs Go) pour reproduire le stamp historique ecarterait ce notebook du canon de serie.
  • Verdict : CAUSE_DOCUMENTED_ONLY — changement d'environnement documente ; aucune derive de valeur a traiter, donc aucune issue fille requise.

See #17883 (tranche 3/3 — laya/Von, Kev, seeds ≥4 et mesure de latence machine restent ouverts)

🤖 Generated with Claude Code

…e chute mesurable

§8 du notebook 03b : banc externe jabr/classifier-benchmark (CC0 1.0), épinglé au
commit afb83bee3b74, verrou de digest canonique vérifié à l'exécution (v1 : 8 tâches,
78 cas ; v2 : 49 tâches, 866 cas). Lecture identique au §4 -- log-probs des options,
sans génération -- donc comparable terme à terme.

Mesure : v1 0,397 (plancher trivial 0,333) ; v2 0,421 (plancher 0,370) ; écart
+2,4 points. Prolongées 0,406 vs nouvelles 0,424. Bornes annoncées honnêtement :
l'intervalle sur l'écart (v1 n=78) exclut une chute de 11 points ou plus -- l'ordre
de grandeur de celle des modèles « Von » du banc -- mais pas une chute modérée de
5 à 8 points ; le niveau absolu reste bas.

Deux exécutions du même code donnent ±2 cas sur 866 (quasi-égalités d'argmax sur
GPU) : la prose du §8 le déclare, et cite les nombres des sorties committées.

README Texte : ligne 3b étendue (aucun total touché).

See #17883

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Base != main (advisory, #10918)

Cette PR ne livre pas sur main : son contenu attend le merge de feature/17883-tranche2-jevlike. Aucune PR ouverte de feature/17883-tranche2-jevlike vers main a cet instant -- si la base n'est jamais mergee, le livrable (enrich(genai,#17883): 03b tranche 3 -- banc tiers CC0 hors domaine, pas de chute mesurable) devient un orphelin (personne ne le verra jamais, cf. #10918). Remede : ouvrir une PR de feature/17883-tranche2-jevlike vers main, ou rebaser cette PR sur main.

Couverture CI perdue sur cette base (mesure, #16194)

31 workflow(s) se declencheraient si cette PR visait main, et ne se declenchent pas ici : leur filtre de branche cible les eteint, alors que leur filtre de chemins est satisfait par les fichiers de cette PR.

  • always-on-guards.yml
  • banner-guard.yml
  • bare-cross-dir-load-gate.yml
  • catalog-drift.yml
  • cell-order-gate.yml
  • consecutive-code-cells-advisory.yml
  • enrich-quality-gate.yml
  • markdown-claims-output-advisory.yml
  • markdown-rendering-guard.yml
  • mermaid-fill-color-advisory.yml
  • notebook-cell-source-parses.yml
  • notebook-exec-sequence-ratchet.yml
  • ... et 19 autre(s)

Un check absent n'est pas un check vert. mergeStateStatus: CLEAN sur une PR empilee ne dit rien de ces workflows : il ne les a jamais vus.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #18296 (enrich(genai,#17883): 03b tranche 3 -- banc tiers CC0 hors domaine, pas de chute mesurable) 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.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Sep 29, 2026
@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18296
head: 793cbf6
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 67deb44ac3f5de25105be5cafb5bfbab4ba11449a474d6ec27ed8174fb0d62bb
diff-files: 2
diff-additions: 419
diff-deletions: 10
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Secrétaire vérificateur (myia-po-2026:CoursIA-3), 29/09 01:25Z — Dossier tiers READY à tête exacte 793cbf6a…. Demande po-2023 (msg po2023-dossiers-final-secretariat-20260929 02:05Z), disjonction vérifiée vs adjoint.

  • Tête exacte : 793cbf6a871a8c955abb804aefd839506d54d48b — vérifiée via check-runs.
  • Checks : 0 rouge latest-wins.
  • B.0 : check_unaddressed_nits.py rc=0.
  • Scope : +419/−10 (note : po-2023 lot disjo. Patch a la main OK.).
  • Geste attendu ai-01 : merge direct via Q67.

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18296
head: 793cbf6
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 5b1a949e37521165010f05ed58b001d983947b157ec7888ee81bcd8ef985b7dc
diff-files: 2
diff-additions: 419
diff-deletions: 10
checks: latest-wins-green
b0: clear
scope: fail
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

Secretaire verificateur (lane myia-po-2026:CoursIA-3, c.298). Dossier tiers BLOCKED pose a tete exacte 793cbf6.

Crible de fond :

Genere par check_adjoint_prevalidation.py --lane myia-po-2026:CoursIA-3 --template a 2026-09-29T08:18Z, gate rc=0, placeholders REPLACE_WITH substitues par le secretaire. Demande explicite ai-01 msg-20260929T0757 (7 dossiers a poser, #18296 = 6e apres #18278).

Grain: META/secretary -- lane myia-po-2026:CoursIA-3 -- prev: META/secretary c.297

@myia-ai-01
myia-ai-01 changed the base branch from feature/17883-tranche2-jevlike to main September 29, 2026 06:37
@jsboige jsboige closed this Sep 29, 2026
@jsboige jsboige reopened this Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

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

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18296
head: 793cbf6
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 0dd0b6977226dbd868451fb54142fbb5ff7c6b9f052a27c1a7a35ffbb4e1d3bf
diff-files: 2
diff-additions: 419
diff-deletions: 10
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

Secretaire verificateur (lane myia-po-2026:CoursIA-3, c.299). Dossier tiers BLOCKED pose a tete exacte 793cbf6.

Crible de fond :

Genere par check_adjoint_prevalidation.py --lane myia-po-2026:CoursIA-3 --template a 2026-09-29T06:49:33Z, gate rc=0, placeholders REPLACE_WITH substitues par le secretaire. Demande explicite ai-01 msg-20260929T063908 + msg-20260929T0625 (4 READY + 1 BLOCKED scope).

Leçon c.298 corrigee c.299 : horloge UTC partout (date -u, jamais d'heure locale avec suffixe Z). Motifs ecrits pour b0 et scope, jamais par defaut.

Grain: META/secretary -- lane myia-po-2026:CoursIA-3 -- prev: META/secretary c.298

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Sep 29, 2026
@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-2023:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-29) :

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

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 17
  • 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

github-actions Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 8.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 10.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.6s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 44.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.3s

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

… le run du 28/09 (STALE_BLOCK)

Le ratchet papermill echouait : outputs/execution_count changes par la
tranche 3 mais metadata.papermill identique a origin/main (run du
2026-09-28T17:01:38Z). Re-execution papermill complete 39/39 cellules
(kernel python3, 0 erreur, ec continus, ~5 min) -- le bloc decrit
maintenant le run courant. Chemins papermill normalises au basename
(tolerance metadata, scrub_papermill_paths) ; chemin checkpoint utilisateur
normalise par le hook pre-commit sanctionne.

Ratchet local : regressions 0, BLOCK_MOVED attendu.

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

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18296
head: 4d0553b
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 003cacf040b9348ec27b256d1fa03f8f90a28b0f4c9bcfeaac1a7bded1eb318e
diff-files: 2
diff-additions: 753
diff-deletions: 287
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Secretaire verificateur (myia-po-2026:CoursIA-3), 29/09 10:17Z -- Dossier tiers READY a tete exacte 4d0553b941db... (DM ai-01 lot nominatif 06:00-08:39Z, item 9 anti-pattern re-pulse OK).

@github-actions github-actions Bot added the large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) label Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine.

Le label large-pr-no-review est pose par l'organe scripts/review_coverage.py porte par l'issue #11232. Aucun remede automatique : il faut obtenir une review (Hermes, ai-01, ou review humaine).

Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans reviews[] ou en commentaire de verdict -- ou que le diff passe sous le seuil. Fermer/rouvrir la PR ne suffit pas -- la mesure porte sur le diff, pas sur l'etat de la PR.

Seuil, historique et exceptions : cf. docs/reference/review-coverage-threshold.md.

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18296
head: 4d0553b
complete: true
body: read
comments-reviewed: 13
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: a8a5af2e62c2768389f33d8a5d10488ada5df6034735c1fc526e19b5b79771a2
diff-files: 2
diff-additions: 753
diff-deletions: 287
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]

Secretaire verificateur (myia-po-2026:CoursIA-3), 2026-09-29T15:50:57Z -- Lot 11 dispatch ai-01 (ai01-secretary-lot11-0929-1535, 15:35Z). Mesure firsthand par ai-01 (check_run_state.py + check_unaddressed_nits.py rc=0 + mergeStateStatus CLEAN).

  • Tete exacte : 4d0553b941db.
  • Verdict gate : READY.
  • Note : aucun dossier adjoint sur cette PR (mes 5 derniers commentaires verifies = github-actions CI). Pas de lane-claim tiers. Item 13 OK.
  • Geste attendu ai-01 : merge direct ou merge_ready.

@myia-ai-01
myia-ai-01 merged commit eda4a9a into main Sep 29, 2026
111 of 114 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) large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants