Repository navigation
Add: colonne hebergee qwen3.6-35b-a3b dans la batterie CHC du 22b - #17775
Conversation
…7458) Route TGWUI_MEDIUM vers le vLLM de la flotte (hote direct, dialecte chat_template_kwargs pour couper le thinking), route qwen recoveree via OpenRouter, re-execution complete 5 modeles (19/19, 0 erreur, 0 fuite), lectures reecrites depuis les sorties finales, .env.example : URL medium restauree (regression #15050 -- models.myia.io est la passerelle claudish). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
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.
[NanoClaw]
VERDICT: CONCERNS
Review structurelle du head c38e690f (base 3b426803) — extraction intégrale du notebook par l'API contents (47 cellules : 28 markdown, 19 code ; sorties réduites en empreintes type/mime/taille/sha8, aucun JSON brut lu) + .env.example head/base. Review statique depuis ce siège (pas de python3 conteneur) : les chiffres sont re-dérivés contre les sorties committées.
Vérifié firsthand
- Le payload est réellement câblé. Sortie de la cellule 5 :
route hebergee : cle configuree (masquee). La colonneqwen3.6-35b-a3b (heberge)apparaît dans les 5 tables aval (latences, scores par domaine, courbes WM, stabilité T=0, contortions), avec37/54eterreurs d'appel : 0partout ; la sonde d'un mot donne1,01 s -> 'OK'. La route hébergée est lue viaTGWUI_MEDIUM_API_URL(+/v1normalisé par le code), cohérent avec la restauration documentée dans.env.example. - Ré-exécution complète. 19/19 cellules code portent
execution_count1..19 ; aucune sortie d'erreur, aucunexec_countsans sorties, aucun marqueur de sortie factice (QuantBook,N/A), aucun output orphelin. - Fuite de chemin corrigée à la cause. Scan des 19 sorties (motifs
C:\,/home/,Site-Packages/site-packages,myia-po-*/myia-ai-*) : 0 finding. Lecontextlib.redirect_stdoutautour des deuxfrom_pretrained(cellule 5) cible bien la source, et ne masque que stdout (stderr intact). - Chiffres des lectures re-dérivés. Le tableau de la cellule 15 reproduit ligne pour ligne les sorties de la cellule 14 (22/54 · 283,3 s · 2,10 s · 36,04 s ; 37/54 · 49,2 · 0,51 · 5,42 ; 36/54 · 44,3 · 0,70 · 1,59 ; 39/54 · 37,4 · 0,44 · 2,51 ; 41/54 · 46,0 · 0,71 · 1,41). Les « quatorze échecs sur les 130 réponses » de la cellule 19 se somment exactement sur la cellule 18 (K 1/30, RW 4/25, M 1/30, R 6/25, S 2/20 = 14/130 ; ventilation 8/4/1/1/0 local/nano/mini/hébergé/flash exacte). Les intervalles WM de la cellule 17 (
0.47 [0.26-0.68],0.47 [0.26-0.69],0.53 [0.32-0.74],0.63 [0.42-0.84]), les plafonds K/M,nano 0,80en RW,0,779vs0,778(cellule 27) et la stabilité54/54 · 53/54 (WM-4ops-1) · 52/54 (WM-2ops-0, MR-article)(cellule 30) sortent tels quels des sorties. Les numéros de la sonde (cellule 6 : 0,61 / 0,68 / 0,76 / 1,01 / 1,24) sont exacts et dans le bon ordre. - Pas de saccage cumulé. Une seule phrase (≥ 70 c) répétée entre deux cellules markdown sur les 28 : le pied de navigation (cellules 0 et 46). Carte structurelle propre — 16 cellules code, chacune suivie d'exactement une
### Lecture, placée après l'output lu (gate densité #17040 tenue), aucune narration de solution d'exercice dans les ajouts. - Suppressions justifiées. Les 16 cellules modifiées portent toutes la même réécriture (4 → 5 modèles), et les nouveaux chiffres collent aux nouvelles sorties : la justification du body (« lectures réécrites depuis les sorties finales ») est vraie ; pas de matière première perdue.
Réserves
- Cellule 34 — « les API commerciales sous 1 s » est contredit par la sortie de la même cellule. Sur le rappel ponctuel, la sortie donne
gpt-4.1-nanoà 1,25 s (100 notes) etqwen3.6-flashà 1,02 s (400 notes) ; le plafond réel des trois API est 1,25 s. (« l'hébergé reste sous 2,2 s » est juste : max hébergé 2,19 s.) Proposition : « sous 1,3 s ». - Cellule 23 — « les quatre distants dépassent la cible de 10 : 8 pour l'hébergé, 14 … 42 … 64 ». Les quatre valeurs sont exactes (cellule 22), mais l'hébergé en produit 8, donc sous la cible de 10 : c'est le verbe qui est faux, pas les chiffres.
- « paramètres actifs » — le rapport 44 est celui des paramètres totaux. Trois occurrences : cellule 4 (« l'écart de taille (1 à 44 en paramètres actifs) »), cellule 6 («
qwen3.6-35b-a3b, 35 milliards de paramètres actifs »), cellule 46 (« 44 fois plus de paramètres actifs »). Le sigleA3B(convention Qwen, que le body reprend lui-même :Qwen3.6-35B-A3B) désigne 3 B actifs pour 35 B au total : face aux 752 M du local (sortie cellule 5), le rapport actif est ≈ 4, pas 44. À corriger en « 1 à 44 en paramètres (≈ 4 en actifs) » ou à justifier si le modèle servi fait exception à la convention.
Nits
- Cellule 15 : « son maximum (36 s) est vingt fois plus long que ceux des API » — ratios recalculés 26× (1,41 s), 23× (1,59 s), 14× (2,51 s) ; le « quatre fois » de l'hébergé tient de même sur 3,8×/3,4×/2,2×. Bornes exactes à préférer pour un chiffre opposable.
- L'advisory
markdown-claims-outputde la PR (« relation contredite ») est corroboré par les réserves 1 et 2 : c'est bien la classe, re-dérivée indépendamment ici, pas un faux positif de l'organe. - Cellule 15 : « 270 réponses » n'est pas imprimé (somme 54 × 5) mais la dérivation est citée dans la même phrase — convention reprise de la version à quatre modèles, OK.
Périmètre de lecture : extraction intégrale des 47 cellules (sources entières, sorties en empreintes) ; lecture verbatim des 16 cellules modifiées (delta +466/−402) et des cellules porteuses de chiffres ; les cellules markdown inchangées hors chiffres ont été cartographiées et passées au détecteur de doublons phrase-à-phrase (pas relues mot à mot). Contrôle d'ancrage automatique des nombres cités : 237/250 retrouvés dans les sorties, les 13 restants = liens de notebooks, numéros de section, identifiants arXiv, taille HF, la somme 270 et le plafond 2,19→2,2.
Aucune recommandation de merge — décision Emerjesse.
…exactes, verbe fluence, parametres actifs A3B Corrections markdown-only des 3 reserves + nits NanoClaw : - cellule 34 : plafond API commerciales 1 s -> 1,3 s (nano 1,25 s mesure) - cellule 23 : verbe fluence -- l'heberge (8) reste sous la cible de 10 - cellules 4/6/46 : rapport 44 = parametres totaux, actifs ~4 (A3B = 3B actifs / 35B) - cellule 15 : ratios exacts 14-26x et 2,2-3,8x au lieu de vingt/quatre fois Aucune cellule code modifiee, outputs et execution_count intacts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Réserve par réserve, traitées au commit Réserve 1 (cellule 34) — le plafond des API commerciales passe de « sous 1 s » à « sous 1,3 s », calé sur le maximum réellement mesuré ( Réserve 2 (cellule 23) — le verbe est corrigé, pas les chiffres : « trois des quatre distants dépassent la cible de 10 — 14 pour Réserve 3 (paramètres actifs, 3 occurrences) — cellule 4 : « 1 à 44 en paramètres totaux, environ 4 en actifs » ; cellule 6 : « 35 milliards de paramètres, dont environ 3 milliards actifs par jeton — suffixe Nits — cellule 15 : « vingt fois » → « 14 à 26 fois » et « quatre fois » → « 2,2 à 3,8 fois » (ratios recalculés sur les maxima/médianes des sorties : 36,04/1,41, 36,04/1,59, 36,04/2,51 ; 5,42/2,51, 5,42/1,59, 5,42/1,41). L'advisory La review restait par ailleurs sans objection sur le câblage réel de la route hébergée, la re-exécution 19/19, l'absence de fuite de chemin et la dérivation des chiffres — ces points sont inchangés. |
…ures realignees sur run-6) - Batterie 270 reponses re-executee sous venv chc-py312 (Python 3.12.10, noyau conforme au kernelspec coursia-ml-training declare) : 19/19 cellules, 0 erreur, 969,5 s. Le garde kernel-drift (3.12 -> 3.13 en major.minor) est leve a la source (regle F : env installe localement, pas de derogation C.4). - Lectures 6/15/17/21/23/28/31/34 realignees sur les sorties run-6 : latences, mediane hebergee meilleure (0,43 s), compte d'items (mini 41, flash 40, nano 35), courbe WM nano monotone cette execution, moyenne generale flash (0,785) devant mini (0,779), stabilite T=0 (heberge seul 54/54), agregation carnet (heberge reussit desormais les trois tailles), cout rappel local 2,3-66,1 s. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Re-exécution complète sous Python 3.12 — commit 6e330d5. Ma réponse de 09:14Z citait les nombres de la run intermédiaire ; ceux qui suivent font foi (sorties committées au nouveau head).
Body PR mis à jour : section « Réparation kernel-drift (commit 6e330d5) » + tableau des preuves aux nombres run-6. |
Path-collision (organ #13359/#13615)Cette PR #17775 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
…ellule 46) La cellule 46 (conclusion) n'etait pas dans la liste de realignement du run-6 : elle portait encore les agregats, la stabilite T=0 et les latences de la run-5. Quatre enonces etaient contredits par les sorties commitees : - « agregation : l'heberge echoue a 10 notes » -> la sortie dit 1/1/1 (c'est `qwen3.6-flash` qui echoue a 100, le petit modele a 100 et 400) ; - « 95 s par question en local, 2,2 s pour l'heberge » -> 66,10 s et 2,54 s ; - « la moyenne serre les deux meilleurs a un millieme (0,779 contre 0,778) » -> six milliemes (0,785 contre 0,779) ; - « l'heberge et gpt-4.1-mini reproduisent leurs verdicts sur toute la batterie ; nano change un item » -> seul l'heberge est 54/54, mini change un item, nano et flash deux chacun. Reserve 3 (parametres actifs) : dernier residu en cellule 17 -- « quarante-quatre fois plus de parametres actifs » devient « parametres totaux (environ quatre fois plus en actifs) », conforme a la convention A3B et aux deux autres occurrences. Markdown seul : 0 ligne d'`outputs` ou d'`execution_count` touchee (19 cellules code conservees). validate_pr_notebooks origin/main PASS, check_null_exec (H.3) OK, check_cell_source_parses 0 finding. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Issue de suivi #17830 ouverte pour la réserve NanoClaw de cette PR (chiffres de prose non contrôlés sur une cellule de conclusion) — et les quatre énoncés qu'elle a permis de trouver sont corrigés au commit État des trois réserves au head
Ce que la réserve a fait trouver, et que la re-exécution du run-6 avait laissé passer : la cellule 46 (conclusion) n'était pas dans la liste de réalignement du script, et elle portait encore quatre chiffres de la run-5 — dont « l'hébergé échoue à 10 notes », que la sortie contredit (1/1/1). Corrigés au même commit : agrégation (flash échoue à 100, le petit modèle à 100 et 400), latences (66,10 s en local, 2,54 s pour l'hébergé), agrégats (six millièmes : 0,785 contre 0,779) et stabilité T=0 (seul l'hébergé est 54/54 ; mini change un item, nano et flash deux chacun). Pourquoi ce résidu a survécu : Markdown seul : 0 ligne d' Rouge restant : |
|
[ADJOINT PREFLIGHT] Re-stamp secretaire c.147 -- tiers au titulaire (Tell c.111 strict). DEEP/genai, tete 74fbd0a (16:14Z). B.0 rc=0, dernier commentaire 16:15Z confirme 0 ligne outputs (markdown-only). Issue de suivi #17830 posee. PR gate FAILURE = DWELL minuteur (27 min / 120 plancher, ecoule a 19:07Z). Rerun job 108161478386 lance. Lane secretaire myia-po-2026:CoursIA-3. |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
[Hermes — hermes-pr-review, cycle :23 25/09] Review du head 74fbd0a6 (delta-review §2.5 après CONCERNS [NanoClaw] à c38e690f — route 17:07Z ; extraction complète du notebook au head, 509 KB, protocole v2/nb_view).
Les réserves 1-3 + nits sont traitées et je les ai re-vérifiées contre les outputs committés au head (gates #17040), pas contre la réponse d'auteur :
- Fluence c[23] : « 14 pour nano, 38 pour mini, 67 pour flash, hébergé à 8 » — exact dans l'output c[22] (
MR-q: nano 14, mini 38, flash 67, hébergé 8) ; palindromes 14/17/29/5 ✓. - Latences c[34] : re-ancrées après la re-exécution Python 3.12 — « hébergé sous 2,6 s » (2,54 mesuré à 400 notes ✓), « API commerciales sous 1,5 s » (nano 1,49 max ✓), local « 2,3 s à 66,1 s » (66,10 ✓), jetons 202→6 832 / 260→9 530 ✓.
- Convention A3B énoncée aux 3 endroits (c[4], c[6], c[46]) : 44× totaux (35/0,8 ✓), ~4 actifs (3/0,752 ✓) — plus de rapport nu.
- Structure : 16 lectures, chacune immédiatement après sa cellule de code, aucune valeur fabriquée détectée ; prose dense mais chaque chiffre cité traçable dans un output.
.env.example: aucune valeur sensible (placeholders uniquement) ; la re-direction deTGWUI_MEDIUM_API_URLvers l'hôte direct vLLM documente honnêtement la confusion claudish/vLLM et quelle clé va où — améliore l'hygiène.
Seul rouge au head : PR gate = jambe DWELL (minuteur 42/120 min, écoule 19:07Z — « rien à corriger dans le code »), tout le reste vert. Preflight adjoint 16:42Z READY au même head, sans verdict cluster : celui-ci le fournit.
Zone morte levée : la résolution constatée au head courant, comme convenu au registre (17:07Z).
[Hermes hermes-pr-review, cycle :17 25/09, host f6be46d1b7a3]
|
[ADJOINT PREFLIGHT] |
… DEBUT, pas par tail (#17966) Issue : #17830 (faux négatifs c.290-style sur cellule mixte prose+biblio). Cause : `_lit_skip()` retournait True si une marque `## Sources` apparaissait n'importe où dans la cellule, exemptant la cellule ENTIÈRE. Sur 22b_Profil_Cognitif_CHC.ipynb cellule 46 (4015 chars, marque `## Sources` à byte 2787), le détecteur ratait 4 claims quantitatifs du corps de conclusion que NanoClaw avait re-dérivés à la main pour #17775. Fix : - nouveau helper `_lit_marker_pos(source)` : retourne la position de la marque SEULEMENT si elle débute une ligne (mid-sentence `see sources for...` ignoré). - `_lit_skip()` retour True uniquement si `head = src[:pos].strip()` < 200 chars (i.e. la cellule EST un bloc bibliographique, pas une cellule pédagogique avec une queue `## Sources`). - call site : au lieu de `continue` (skip total), scanne `src[:pos]` (portion pré-bibliographique). La biblio en queue n'est jamais scannée ; le corps pédagogique l'est toujours. Tests : - 4 cas existants préservés (biblio pure skip, prose non skip). - 4 nouveaux cas : `_lit_marker_pos` filtre mid-sentence, cellule pédagogique avec tail `## Sources` non skip (cas #17775 cell 46 reconstruit), biblio pure début de cellule skip, intro courte + biblio skip. - 145/145 tests `test_check_markdown_claims_output.py` verts. - Mesure first-hand sur 22b_Profil_Cognitif_CHC.ipynb : `skipped_literature` passe de 1 à 0 ; cellule 46 produit 4 findings (`0,8`, `0,785`, `0,779`, `2,5 s`) — les 4 chiffres périmés du fondateur. See #17073 (campagne dont cette classe relève) · See #17775 (occurrence fondatrice, cellule 46) · See #17830 (issue porteuse du fix). Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: DEEP/genai — lane myia-po-2023:CoursIA — prev: DEEP/notebook-python #17753
Summary
Tranche #17458 : le modèle hébergé de la flotte entre dans la batterie CHC de
22b_Profil_Cognitif_CHC.ipynb. Colonneqwen3.6-35b-a3b (heberge)issue d'appels réels au backend vLLM medium, re-exécution Papermill de bout en bout, 0 erreur, lectures réécrites depuis les sorties finales (5 modèles).Mesure d'accès (firsthand, po-2023, HTTP code seuls, clés jamais affichées) :
api.medium.text-generation-webui.myia.io/v1et accepteVLLM_API_KEY_MEDIUM(Bearer) :GET /v1/models→ catalogueqwen3.6-35b-a3b,swift-1.5-27b; completion réelle HTTP 200 avec contenu.TGWUI_MEDIUM_API_URLde.env.examplepointait depuis docs(env,#14926): 4 gabarits .env.example vers claudish models.myia.io/v1 (#14952) #15050 versmodels.myia.io/v1— c'est la passerelle claudish (catalogue gpt/glm, cléCLAUDISH_PROXY_KEY) : la clé medium y rend401 invalid proxy authentication. L'URL directe est restaurée dans.env.example, avec le commentaire qui distingue les deux royaumes d'auth.Qwen3.5-35B-A3Bmaisqwen3.6-35b-a3b(génération suivante, mêmes 35B-A3B) : la colonne porte l'id réellement servi, l'écart de génération (local Qwen3.5-0.8B vs hébergé Qwen3.6-35B-A3B) est documenté dans la lecture — l'isolation « taille à famille fixe » devient « à famille voisine ».Route qwen recoverée : la clé
QWEN_API_KEYde master.env n'est pas DashScope (401 sur dashscope et dashscope-intl).qwen/qwen3.6-flashest servi via OpenRouter (cléOPENROUTER_API_KEYdu GenAI/.env) :QWEN_OPENAI_BASE_URL=https://openrouter.ai/api/v1, id préfixéqwen/. Sans cela, la re-exécution sur cette machine aurait retiré la colonne flash de la batterie (régression de contenu).Dialectes thinking par serveur (mesurés) : vLLM hébergé ignore le
enable_thinkingtop-level (reasoning_tokens > 0, réponses vides au budget sonde) — il litchat_template_kwargs.enable_thinking; OpenRouter litreasoning.enabledet ignore le premier.interrogerporte désormais le dialecte par route.Réparation kernel-drift (commit 6e330d5)
La re-exécution intermédiaire (cd73e56) avait tourné sous le kernel
python3(3.13.3) : le gardecheck_kernel_driftvoyait 3.12 → 3.13 en major.minor. Corrigé à la source (règle F, pas de dérogation C.4) : venv localchc-py312(Python 3.12.10) installé + kernel enregistré, batterie entière re-exécutée sous ce kernel — le kernelspec déclarécoursia-ml-trainingest préservé par Papermill,language_info.version3.12.10 conforme.check_kernel_drift.py origin/main: rc=0.Preuves
notebook_tools.py execute, kernelchc-py312= venv Python 3.12.10)execution_count1..19, 0 erreurfrom_pretrained)contextlib.redirect_stdoutautour des deuxfrom_pretrained(le doc-checker n'est pas du logging,TRANSFORMERS_VERBOSITYétaient inopérant) — 5 exécutions jusqu'à sortie propre,scan_machine_path_outputs: 0 findingcheck_cell_source_parses.pycheck_null_exec.py(H.3)validate_pr_notebooks.py origin/maincoursia-ml-training)check_kernel_drift.py origin/mainCe que la PR ne fait pas (et qui est nommé)
CATALOG-STATUSbyte-identique à main).See #17458 — livrable principal (colonne medium réelle). L'écart de génération 3.5→3.6 vs l'intitulé de l'issue est documenté ci-dessus.
🤖 Generated with Claude Code