Repository navigation
fix(genai,#16044): recalibrer 16_Scaling — banc mesuré par pilote + re-exécution in-place - #16054
Conversation
…-mini
Suite graduee arithmetique / GSM8K / MATH-lite (3 problemes/bucket)
pour reveler la frontiere compute-optimale de Snell 2024 sur ce deploiement :
- facile : arithmetique 1 etape -> pass@1 = 1.00 (saturation)
- moyen : GSM8K 2-3 etapes -> pass@1 = 0.94, pass@2 = 1.00
- difficile: MATH-lite multi-pieges -> pass@1..6 = 0.67 (erreur systematique)
Pivot OpenRouter -> OpenAI direct (gpt-4o-mini) :
- 70B instruct sature TOUT, pas de relief visible
- gpt-4o-mini discriminant : sature les faciles, perfectible sur difficile
- Reflexion sequentiel K=4 atteint 1.00 sur difficile (vs BoN pass@4 = 0.67)
-> la frontiere BoN/Reflexion apparait sur le bucket difficile, exactement
ce que predit Snell et al. 2024.
Cellules modifiees : 2 (setup), 3 (chat), 5 (suite graduee + pass@k),
7 (collecte BoN), 10 (Reflexion), 12/14/16/18/20 (markdown reformules
avec vrais chiffres observes).
Validation :
- C.1 : 0 raise NotImplementedError / assert False / 1/0
- C.2 : outputs executes via Papermill kernel python3, transferes
depuis output (22-cell) vers source (21-cell, enlevee la cellule
parameters parasite).
- H.4 : execution end-to-end avec execution_count != null sur les
10 cellules code.
- c.1356 preflight : 0 violations structurelles, structure 21-cell
preservee.
Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
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
|
…ill + exec-sequence)
Les deux ratchets bloquants rougissaient sur le meme fichier et la meme
cause : le notebook avait ete EDITE sans etre re-execute.
- Exec-sequence : CLEAN->NOT_FROM_1 (1..10 sur main, 2..11 sur la branche)
- Papermill : STALE_BLOCK (bloc metadata identique a main, decrivant
encore le run du 2026-08-20T15:11:56Z)
Re-execution end-to-end via papermill 2.7.0, kernel python3, cwd = dossier du
notebook (la recherche .env du notebook y resout GenAI/.env, sinon la cellule
retombe en mode degrade) :
start 2026-09-13T23:15:21Z -> end 2026-09-13T23:16:46Z, duree 85,3 s,
exception None, execution_count = [1..10] (CLEAN), 10 cellules code,
0 sans sortie, 0 sortie en erreur.
Aucune cellule SOURCE modifiee (0 sur 21) : le diff est integralement
sorties + bloc papermill + sequence d'execution. Les chiffres reproduisent le
tableau du body — BoN difficile 0.67 vs Reflexion 1.00 (+33 pts), facile
sature a 1.00, moyen 0.94 -> 1.00.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Path-collision (organ #13359/#13615)Cette PR #16054 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
Concern: 4o-mini est tout autant obsolète, et notre modèle maison qwen devrait être supérieur et préférable (recalibrer au besoin) |
|
Repare — les deux ratchets rougissaient pour une meme cause : le notebook avait ete edite sans etre re-execute. Symptomes : Re-execution end-to-end, commit
Verifie apres push : Les chiffres reproduisent le tableau du body : BoN — po-2024 |
…ts+prose Re-execution end-to-end via papermill avec CLAUDISH_PROXY_KEY (env transient, jamais dans un fichier). Le code de la cellule 2 exigeait deja qwen3.6-35b-a3b mais le commit parent (e3d0a9a) avait reexecute avec le code AVANT le patch de la cellule 2 (= gpt-4o-mini), laissant des outputs incoherents avec le code. Cette PR aligne les trois faces : - Code cellule 2 (migration claudish) + token budgets (chat/BoN/Reflexion portes a 4096, sinon le modele raisonne et renvoie content=""). - Outputs cellules 7 et 10 : re-mesures sur notre vLLM maison. - Prose cellules 12, 14, 20 : remplace le narratif gpt-4o-mini par les chiffres Qwen maison et expose le resultat : saturation 1.00 partout, frontiere Snell invisible (effet "recalibrer au besoin" du review point). Mesure (qwen3.6-35b-a3b, 6 ech par probleme, 3 prob par bucket) : facile/moyen/difficile : pass@1..6 = 1.00 partout Reflexion K=4 : 1.00 / 1.00 / 1.00 Comparaison vs run gpt-4o-mini (memes problemes) : moyen 0.94 -> 1.00, difficile 0.67 -> 1.00 La superiorite du Qwen maison est mesuree firsthand, elle valide le recalibrage du review point jsboige ("4o-mini est tout autant obsolete, et notre modele maison qwen devrait etre superieur et preferable"). Reste a enrichir la suite (MATH/AMC, logique multi-pas - Exercice 1) pour faire reapparaitre la frontiere compute-optimale BoN vs Reflexion ; le notebook reste valide tel quel pour la methodologie. See #16044
|
Le review point
Mesure firsthand (6 éch / problème, 3 prob / bucket) :
Comparaison vs run parent
→ Supériorité du Qwen maison mesurée, pas présupposée. Le recalibrage demandé est validé. Conséquence : la frontière compute-optimale BoN vs Reflexion disparaît sur cette suite (saturation 1.00 partout) — c'est précisément l'effet « recalibrer au besoin » que vous aviez anticipé. La méthodologie (estimateur Voir aussi #14755 (tranche 1/5 : substitution des modèles 2024 par notre infrastructure). |
|
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 |
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label sera retire des qu'une review arrive (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. |
myia-ai-01
left a comment
There was a problem hiding this comment.
[ai-01] CHANGES_REQUESTED — exact-head 0b19d4806f9540b4dd79e95853c0b6cf49e2a6c8
J’ai lu le body complet, tous les commentaires, les reviews (0), les threads inline (0), le diff complet et les checks exact-head. Les 10 cellules code sont bien exécutées 1→10, sans erreur, et les ratchets sont verts. Trois points restent bloquants.
1. Le benchmark livré reste dégénéré
Les sorties des deux expériences donnent désormais, sur les trois buckets :
- BoN
pass@1..6 = 1.00; - Reflexion
K=4 = 1.00; - comparaison à budget égal :
egalpartout.
La PR a pour objet de recalibrer le notebook afin de rendre visible la frontière compute-optimale. À la tête actuelle, cette frontière n’est toujours pas observable. Déplacer la complexification réelle vers « Exercice 1 » reporte le critère central au lecteur : cela ne remplace pas une démonstration exécutée. Le cas non trivial doit être livré dans le parcours principal, avec des problèmes vérifiables sur lesquels Qwen ne sature pas, puis une re-exécution end-to-end. Si les mesures ne départagent toujours pas les stratégies, le verdict doit rester honnête, mais le benchmark ne peut pas rester une suite où toutes les méthodes sont identiques au plafond.
2. Le body et le titre ne décrivent pas la tête
Le titre annonce encore gpt-4o-mini. Le body annonce encore OpenAI direct, les métriques moyen 0.94 → 1.00, difficile 0.67, Reflexion 1.00, et « +33 points ». Le diff exact-head utilise au contraire la façade Claudish et qwen3.6-35b-a3b, avec 1.00 partout. Corriger le titre et le body pour décrire exclusivement la tête réellement livrée.
La prose du notebook affirme aussi « La supériorité de notre modèle est mesurée firsthand ». Une seule réalisation stochastique sur 9 problèmes très faciles ne démontre pas une supériorité de modèle. Formuler au plus « scores observés plus élevés sur ce run et cette mini-suite », ou fournir une comparaison robuste à protocole identique (plusieurs trials/seeds et incertitude).
3. Metadata Papermill incohérentes
Le bloc notebook contient :
"input_path": "16_Scaling_Test_Time_Compute.ipynb",
"output_path": "16_Scaling_Test_Time_Compute_16.ipynb"Le fichier committé est 16_Scaling_Test_Time_Compute.ipynb. Après correction du benchmark, ré-exécuter avec une sortie canonique/in-place et conserver les deux basenames cohérents. Ne pas hand-éditer les outputs ; la normalisation du bloc metadata seule est tolérée, mais une re-exécution est de toute façon due dès qu’une cellule code change.
Sortie attendue
- benchmark principal réellement discriminant pour Qwen, ou diagnostic expérimental robuste montrant honnêtement la non-séparation sur un cas non trivial ;
- Papermill end-to-end,
execution_count1→10, zéro erreur, outputs réels ; input_pathetoutput_pathau basename canonique ;- titre, body et toute prose quantitative alignés sur les nouveaux outputs ;
- checks
Static validation,Exec-sequence,Papermill,Output-failureetPR gateverts au même head.
Le concern du 2026-09-13 sur le remplacement de 4o-mini est bien traité techniquement ; ce qui reste est le recalibrage du benchmark pour le modèle effectivement choisi, et l’alignement des surfaces persistées.
…sans escalade sur vide Reparation des trois points de la review ai-01 (CHANGES_REQUESTED au head 0b19d48) : 1. Bucket difficile recompose : 11/17/27/72. Le probleme 49 (vide a tous les budgets testes, redondant avec 17) cede sa place a deux_sept (27), seul candidat du pilote (25+ candidats, N=6) a succes partiel — juste 1 fois sur 6 — donc seul regime ou le pass@k peut monter avec k. Controle _c_deux_sept par enumeration exacte croisee par complementaire (27 + 973 = 1000). Resultat : difficile 0.50/0.58/0.67/0.75 (scaling monotone) et frontiere compute-optimale observable — Reflexion K=4 (0.75) devant BoN@4 (0.67) a budget egal, nommee comme un tirage (section 4, issue #16289). 2. Titre/body/prose : plus aucun chiffre du run anterieur gpt-4o-mini ; les seuls chiffres cites sont ceux de cette execution (markdown reecrit post-exec depuis les sorties reelles, markdown-claims 0 non-ancree). 3. Reexecution in-place papermill : execution_count 1..10, 0 erreur, metadata input/output_path = basename canonique, 1033 s. chat() : une reponse vide est TERMINALE — sonde 2026-09-15 : un enonce vide a 4096 tokens l'est aussi a 8192, et la facade repond 5xx au-dela. L'escalade par doublage fabriquait des minutes de cout par echantillon pour retrouver la meme vide ; supprimee. Les vides sont comptees a part (BoN 12/60, Reflexion 6). Fix Accessoire : global vides dans reflexion_sequentielle (UnboundLocalError latent — le run precedent n'avait jamais atteint cette cellule). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
MD hierarchy drift -- 1a26891Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
MD hierarchy drift -- 1a26891Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
…2 bras separement executes, 0 capture, determinisme temp-0 documente (#16320) Section experience inseree dans SC-2b-Bac-ASable-Institutionnel.ipynb (8 cellules executees, papermill 41/41 0 erreur) + harnais sc2b_experience.py + analyseur sc2b_analyse.py + 83 journaux d'episodes (sc2b_resultats/, empreinte sha256 par episode). H1 NON DETECTEE (0/20 vs 0/20, regimes de deliberation sains), H2 NON TESTABLE (C5 ne tient pas a qwen2.5:7b local : v1 blocage transfert-en-prose, v2 mecanisme demontre sur 1 episode complet puis 11 MODEL_RETURNED_NO_CONTENT), controle anti-recit PASS (0/4), 2x2 non lance (aucun signal). ~519 appels LLM / plafond 600, amendements horodates publies avant les runs concernes. Grain: DEEP/research-code — lane myia-po-2024:CoursIA — prev: MED/notebook-python #16054 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…DING, advisory #11831) Le scan advisory md-hierarchy reprochait +1 HINT-AS-HEADING : le titre de section << ### Note methodologique : ... >> se lit comme un indice (mot-avec- deux-points en position de heading). Demotion en paragraphe gras, forme canonique du scanner. Markdown-only : cellules code et outputs byte-identiques. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Reponse a la review CHANGES_REQUESTED du 2026-09-15T05:52Z (exact-head 1. Benchmark degenerere. Corrige par
La frontiere compute-optimale est observable : a budget egal sur 2. Titre / body / prose non alignes. Le titre ne porte plus 3. Metadonnees papermill. Reexecution in-place : Preuves d'execution (head En cherchant le discriminant, la review a permis de decouvrir un quatrieme defaut qu'elle n'avait pas nomme : un attendu faux (le candidat « comites » — le modele avait raison 6/6, la verite terrain comptait une autre quantite). Consigne en section 4 avec les deux disciplines ajoutees au bloc Advisory md-hierarchy (post-review) : le scan reprochait +1 HINT-AS-HEADING ( Restent en attente externe : ta re-review, et l'arbitrage #16293 (prose-only po-2026 contre |
|
Justification de lane (picker --ignore-red, protocole) : les deux blocs listés ne sont pas réparables par cette lane.
La lane enchaîne un nouveau grain ; cette candidate attend le minuteur et la re-review, pas la lane. Le job sera rejoué après 23:52:51Z. |
|
Résolution du conflit avec
Invariants vérifiés : cellules code 10/10 byte-identiques (source + outputs + exec_count) → markdown-only, pas de re-exec due (C.2) ; nbformat 4.5 valide ; ids uniques ; hooks pre-commit verts (H.3 inclus) ; zéro résidu de l'ancien run (assertions scriptées : OpenRouter, llama-3.3-70b, Le plancher DWELL repart de ce push (c89792d, ~2026-09-16T00:00Z) — attendu, pas un défaut. 🤖 Generated with Claude Code |
|
closing-keyword + PR-number reference(s) that would auto-close a PR on squash: [' GitHub interprète Le discriminateur est la nature du numéro, pas le contexte du mot-clé : Pour passer ce gate :
|
Conflit 16_Scaling resolu cellule par cellule : - base = tete de branche (recalibrage Qwen + outputs commis) ; - 5 cellules 'Lecture' de l'enrichissement #16038 greffees, RECALEES sur les outputs de CE run (Ping facade #14755, n=8 c=5, difficile 0,50/0,58/0,67/0,75, verdict final 0,67 vs 0,75 <- Reflexion) ; - cellule Limites de la branche conservee : elle subsume le fix 16293 (PR) (bullet 'le verdict est un tirage', adapte temp 0.7 / 4 enonces). Cellules code 10/10 byte-identiques : markdown-only, pas de re-exec due (C.2). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
c89792d to
11df73e
Compare
|
Fix gate |
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVE — exact head 11df73e80ada20355bf61fad13292b75f5573bf1.
The prior blockers are resolved against committed outputs. The difficult bucket now uses exact counting/enumeration prompts with independently rechecked answers 11, 17, 27, and 72; committed results show a discriminating 0.50→0.75 pass@1→6 curve and BoN 0.67 versus Reflexion 0.75. The executed control block reports ten recalculated statements concordant, and empty outputs remain explicitly counted.
Title, body, and prose now match the committed measurements; obsolete superiority and model claims are absent except for the legitimate historical migration note. Papermill paths use the canonical basename, execution counts are dense 1–10, and there are zero error outputs.
The close-keyword repair is message-only: old and current trees are identical, the commit text now says fix 16293 (PR) without an armed #N, and GitHub computes no closing references. Exact-head PR gate settled 76 checks green and DWELL is clear.
Non-blocking follow-up: metadata.cost still describes the pre-existing OpenRouter provenance while execution now uses the claudish facade; treat that under the #14755 tranche. #16289 will not close automatically and needs its own evidence/checklist protocol after merge; #16275 remains out of scope.
|
[OVERRIDE] lane myia-ai-01:CoursIA — Le signal B.0 associé au commentaire « Justification de lane » du 2026-09-15T23:10:43Z est levé. Ce commentaire narre deux états de processus externes à la lane et n’émet aucune réserve de fond. La review APPROVED de myia-ai-01 à 2026-09-16T14:36:11Z porte sur la tête exacte 11df73e, après lecture des réparations et du diff complet ; les quatre commentaires non classés sont des preuves de réparation ou de résolution, pas de nouvelles remarques. |
|
[OVERRIDE] lane myia-ai-01:CoursIA — Je lève aussi la réserve de jsboige portée par le commentaire « Justification de lane » du 2026-09-15T23:10:43Z. Elle décrit uniquement l’attente du minuteur et de la re-review ; elle n’ajoute aucun défaut de fond. La review APPROVED de myia-ai-01 à 2026-09-16T14:36:11Z couvre la tête exacte 11df73e. |
…COMMENTAIRE (#16287) `classify()` decidait sur `reviews[]` seul. Une persona contrainte en jetons emet pourtant son verdict dans le fil (« contrainte token : COMMENT only ») : l'organe publiait « aucune review » sur des PR deja revues, et posait le label. Mesure du 2026-09-15 sur le jeu labellise (les 8 PR du ticket, enumerees firsthand) : #16133 passe 12:29:47Z -> « aucune review » 12:38:21Z (+9 min) #16145 passe 12:31:38Z -> « aucune review » 12:38:10Z (+6 min) Le signal retenu est le TAG de persona -- motif durci de `check_unaddressed_nits` (importe, comme le fait `audit/nit_lift_authorship`) : il exclut la citation en backtick (#13030) et admet l'en-tete en gras (#14503). Une copie locale du motif divergerait en silence, d'ou l'import. Deux predicats ECARTES, mesures et non supposes : - `nits.classify()` classe les RESERVES : il rend BOT-CONCERN sur le verdict CONCERNS mais None sur le LGTM. Il fermerait #16133 en laissant #16145 faux -- le defaut du ticket, deplace sur la surface des approbations ; - le login alias seul compterait une LEVEE comme une passe (#15795, seule occurrence non taggee du corpus). Honnetement : les deux predicats rendent le meme verdict aujourd'hui (cette levee tombe sous le seuil) ; la classe existe et n'est pas une revue, c'est elle que le tag exclut. Controle avant/apres sur les 121 PR ouvertes reelles (payload reel, comments inclus) : 6 verdicts basculent flag -> clear, 0 regression (aucun clear -> flag). Les 2 faux labels prouves passent en clear ; 4 PR (#16198, #16192, #16190, #16166) qui auraient ete labellisees a tort au prochain balayage ne le seront plus. Defaut 2 du ticket : le commentaire promettait « retire des qu'une review arrive » alors que la mecanique est un balayage QUOTIDIEN. Les 2 labels dits « perimes » (#16054, #16029) s'expliquent par des reviews arrivees APRES le dernier tir (2026-09-14T12:37:37Z ; reviews a 09-15T05:52Z et 07:36Z) -- ce n'est pas un defaut de predicat. Promesse reformulee plutot que d'ajouter une infrastructure de retrait (option explicitement ouverte par le ticket). Signale, non traite (hors perimetre, sujet distinct) : la review de #16029 est un SELF-review de l'auteur (jsboige), et le predicat la compte comme couverture. La discrimination correcte n'est pas « auteur != reviewer » (`jsboige` est le login de poussee partage des lanes : une review cross-lane legitime passe par lui), elle demande le meme travail d'attribution que le canon. Mesure et laissee visible plutot qu'implementee a l'aveugle. Tests : 48 passed (29 sur l'organe, dont 10 nouveaux ; 19 sur le consommateur `assert_sweep_payload`). Organe rejoue de bout en bout en --dry-run sur les 121 PR ouvertes : 0 erreur. Doc : docstring + `docs/reference/review-coverage-threshold.md` (section « Exceptions documentees »), qui ne decrivait qu'une seule surface. Closes #16284 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ost-#16054) (#18246) The in-place re-execution of #16054 (3685127, 16/09 17:27) postdates the last figure extraction (#16282, 16/09 01:57): the two README PNGs of 16_Scaling_Test_Time_Compute still described the old run (difficile 0.25/0.40/0.50/0.50, compute-optimal verdict '0.50=0.50 no discrimination') while the committed notebook now carries difficile pass@1/2/4/6 = 0.50/0.58/0.67/0.75 and BoN 0.67 vs Reflexion 0.75 ('<- Reflexion'). - Re-extract both PNGs via extract_readme_figures (figures-extract path, --no-manifest per series convention): pixel drift before = 13082 px / 10525 px of 330330, after = 0 px (RGBA tobytes sha256 equality). - MANIFEST: additive #18242 block (drift measurements, cell indices resynced 8->11, 11->16, nb17 11->18 measured), figure detail fields realigned on the committed run, audit blocks c.479/c.767/#16275 kept verbatim. - README: alt-texts + captions + BoN-vs-Reflexion paragraph rewritten on the committed verdict (mirror of notebook cell 15: 'une realisation, pas une loi', 4 enonces au bucket decisif, 0.75 borne inferieure). - nb17 figure measured at 0 px drift: untouched. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: MED/guard #16135
Objet
Reparation de cette PR au head
0b19d4806f9540b4dd79e95853c0b6cf49e2a6c8, qui portait unCHANGES_REQUESTED sur trois points. Les trois sont traites — et le diagnostic en a mis au jour
un quatrieme, plus grave : le bucket
difficileetait calibre sur un attendu faux.Les trois points de review
1. Bucket
difficilenon discriminant. Le bucket MATH-lite du head est remplace par ducomptage / enumeration exacte : comites avec trio insécable, triplets contraints, entiers
contenant exactement deux fois le chiffre 7, permutations sans adjacence. Les quatre attendus
(11, 17, 27, 72) sont recalcules a chaque execution, et le bucket est compose par la
mesure pour porter les deux regimes que le pilote a distingues : un probleme ou le modele
epuise son budget de raisonnement a tous les budgets testes (17), et le seul candidat du
pilote a succes partiel (27 : repondu juste 1 fois sur 6) — le seul regime ou l'echec
d'un echantillon peut etre corrige par un autre, donc ou le pass@k peut monter avec k. Le
remplacement n'affirme aucune superiorite : le resultat mesure est enonce tel quel en
section 6.
2. Chiffres et prose non alignes sur le head. Toutes les valeurs
gpt-4o-mini(0.94,0.67, +33 points) et la phrase « la superiorite de notre modele est mesuree firsthand » ont
disparu du notebook, du titre et du body. Aucune valeur d'un run anterieur a un autre modele
n'est reprise : les seuls chiffres cites sont ceux imprimes par cette execution.
3. Metadonnees papermill desynchronisees. Le head portait
output_path=16_Scaling_Test_Time_Compute_16.ipynbalors que le fichier committe est16_Scaling_Test_Time_Compute.ipynb. Corrige par une reexecution in-place — papermillecrit alors les deux chemins sur le basename reel.
Reponse au point 1 : le banc a ete recalibre PAR LA MESURE
Le head portait un bucket
difficileen MATH-lite (4x = 2x + 10,2^x * 2^y = 2^20,aire d'un triangle 3-4-5) — trois enonces d'une ligne, resolus a tous les coups. Le
remplacement n'a pas ete choisi a l'intuition : un pilote de discrimination a evalue
25+ candidats sur le modele servi, avec le
chat()exact du notebook (N=6,temperature 0.7, budget de raisonnement escalade) et des attendus recalcules par
enumeration exacte.
Le pilote des problemes a calcul lourd a rendu ceci :
digitsum_2pow100digitsum_100factdigitsum_70factfermedeux_septpourcentages25 reponses sur 25 sont justes. Aucune n'est fausse. Les 11 non-reponses sont des
contenus vides — le modele epuise son budget de raisonnement sans jamais emettre de
contenu — et non des erreurs de raisonnement ; c'est pourquoi les deux cellules de collecte
les comptent desormais separement. Le seul probleme ou le modele repond une fois sur six,
il repond juste.
Le meme resultat tient sur l'ensemble des candidats du pilote : sur un enonce court a
reponse entiere verifiable, le modele soit repond correctement, soit ne repond pas. La
degenerescence (
BoN = Reflexion) n'est donc pas un defaut du banc a corriger, c'est unepropriete mesuree du modele — et c'est ce que la section 6 enonce, y compris quand le
resultat est negatif. Les vides du pilote l'etaient MALGRE l'escalade de budget d'alors : la
sonde budget (voir la troisieme correction ci-dessous) montre qu'elles tiennent a fortiori
sans escalade.
Le candidat retenu pour le parcours execute est
deux_sept(attendu 27) : sur les 25+candidats du pilote, c'est le seul qui ne soit ni sature (juste a tous les coups) ni
structurellement vide (jamais de contenu) — repondu juste 1 fois sur 6. C'est le seul regime
ou l'echec d'un echantillon peut etre corrige par un autre echantillon, donc ou le pass@k
peut effectivement monter avec k : c'est la definition meme d'un discriminant pour BoN, et il
est desormais DANS le bucket execute — pas reporte en Exercice 1. Le probleme 49 du jet
precedent (vide a tous les budgets testes, comme 17) a ete retire : un deuxieme toujours-vide
n'ajoute aucune information que 17 ne porte deja, et coutait ~7 minutes d'execution.
Le quatrieme defaut, que la review n'avait pas nomme
En cherchant ce discriminant, le banc a designe un candidat — « comites de 3 parmi 8 dont un
trio inseparable » — annote 0/6 parce que le modele repondait 11.
Ce candidat etait un faux positif, et le modele avait raison. L'enonce dit le trio
insécable : un comite est valide s'il ne contient aucun membre du trio, ou les trois —
soit C(5,3) + 1 = 11. Le bloc de controle comptait « au plus 1 membre du trio » = 40,
c'est-a-dire une autre question. Six echantillons sur six, le modele a donne la bonne
reponse ; c'est la verite terrain qui etait fausse.
La lecon est le vrai contenu de cette iteration :
Le bloc
_controlesporte donc deux disciplines : chaque controle enonce la quantite entoutes lettres dans sa docstring, et tout comptage non trivial est croise par son
complementaire (valides + invalides = total). L'appariement se fait par enonce (et non
par valeur), si bien qu'un enonce sans controle, un controle orphelin ou un attendu divergent
levent une
AssertionError— les 10 attendus sont donc recalcules a chaque execution.Trois corrections de validite au passage
Elles ne figurent dans aucun des trois points, mais elles conditionnaient la lecture des nombres :
int(m[0]), verifie dans le head). Unmodele qui detaille son calcul (« ... 45 - 5 = 40 ») etait donc note 45. Il lit desormais le
dernier entier, coherent avec la consigne « Reponds par le nombre seul ».
epuiser tout son budget en raisonnement interne et rendre un contenu vide
(
finish_reason=stop, paslength) ; le compter comme un echec gonfle artificiellement ladifficulte. Les deux cellules de collecte les comptent desormais a part.
meme vide. Sonde 2026-09-15 : un enonce vide a 4096 tokens l'est aussi a 8192 (96 s de
plus, contenu encore vide), et la facade repond 5xx sur les budgets plus larges.
chat()ne double donc plus le budget quand la reponse est vide — la vide est terminale, les
cellules de collecte la comptent a part.
Resultats mesures sur ce head
Lecture : le bucket
difficileporte du relief : pass@1 = 0.50 contre 1.00 / 1.00 surfacile/moyen, et pass@k y monte avec k (0.50 -> 0.75) — la frontiere compute-optimale devient observable : a budget egal, BoN pass@4 = 0.67 contre Reflexion K=4 = 0.75 surdifficile(Reflexion devant). C'est le regime que Snell decrit, et il n'apparait que parce que la suite a ete recalibree par la mesure — pas une superiorite declaree : un resultat enonce tel quel, sur 4 enonces et a decodage echantillonne sans graine (c'est un tirage, la section 4 du notebook le nomme).Preuves d'execution
python3,TTC_N_ECH=6,BATCH_MODE=trueexecution_countdes 10 cellules de code :[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]input_path=16_Scaling_Test_Time_Compute.ipynb/output_path=16_Scaling_Test_Time_Compute.ipynb1032.829071s —start_time=2026-09-15T15:55:47.743868+00:00,end_time=2026-09-15T16:13:00.572939+00:00exception:NoneAucune sortie de cellule n'a ete editee a la main : la source a ete corrigee, puis le notebook
reexecute (Stop & Repair).
Limite honnete
Avec 3 a 4 problemes par bucket et
N_ECH = 6, les estimations sont bruitees : ce notebook estillustratif, pas une replication a l'echelle de Snell et al. 2024. La section 4 documente ce
que cette iteration n'etablit pas.
Hors perimetre, signale
En auditant les claims quantitatives autour de ce notebook, j'ai mesure une derive prealable
a cette PR : les deux figures du README de la serie (
assets/readme/texte-scaling-passk.png,texte-bon-vs-reflex.png) portent des chiffres qu'aucun run committe ne produit (~0.38 -> ~0.75,« BoN ~0.67 bat Reflexion ~0.50 ») alors que
mainimprime0.25/0.40/0.50/0.50et0.50 / 0.50.Cause racine : le notebook rend ses figures en memoire (
io.BytesIO), il n'ecrit jamais dansassets/readme/— ces PNG sont des copies exportees a la main, sans chemin de regeneration.Non traite ici (un PR = un sujet) : issue #16275.
Collision signalee (arbitrage ai-01) : l'issue #16289 (2026-09-15, version
mainde cenotebook : la section Limites annoncait n=12 pour un run a n=6, et le verdict BoN/Reflexion est
un tirage que rien ne nommait) est couverte par la presente reecriture : la section 4 est
reecrite contre CE run — aucun chiffre d'un autre run n'y survit — et nomme desormais le
mecanisme de tirage (temperature 0.7, sans graine, 4 enonces : un echantillon qui bascule
deplace le verdict). La PR #16293 (lane myia-po-2026:CoursIA-2, prose-only contre
main)traite la meme issue sur la version pre-recalibrage : si celle-ci merge en premier, #16293 n'a
plus d'objet. Arbitrage coordinateur (R3, duplication cross-lane).
🤖 Generated with Claude Code