Repository navigation
Feat: substitution modeles chat legacy vers gpt-5.6-luna (tranche F2a #14755) - #16671
Conversation
…14755) Trois notebooks GenAI/Texte migrent leurs defauts de modele vers la cible canonique gpt-5.6-luna (model-mapping.md 8.4): 07_Code_Interpreter (OPENAI_MODEL gpt-4.1-mini), 19_OWUI_Orchestration (OWUI_MODEL gpt-4o-mini x2), 22_Evaluating_Generated_Text (OPENAI_CHAT_MODEL_ID gpt-4o-mini). Adaptations API requises par gpt-5.6-luna, mesurees a l'execution reelle: - max_tokens -> max_completion_tokens (4 -> 16: budget 4 consomme par le raisonnement, contenu vide) dans judge_choice et claim_supported de 22 - temperature=0 rejete par gpt-5.6-luna (seul 1 accepte): le juge API de 22 passe en temperature=1, le juge local vLLM conserve temperature=0 pour le determinisme pedagogique Re-execution reelle via papermill (kernel python3, cwd serie): - 07: 12 cellules code, 0 erreur, "Modele par defaut: gpt-5.6-luna" - 19: 8 cellules code, 0 erreur (skip OWUI_API_KEY documente RECOVERABLE-USER-HAND) - 22: 16 cellules code, 0 erreur, duel juge local vLLM vs API: accord 6/6 - Serveur vLLM local Qwen2.5-0.5B lance c. ce cycle sur port 8185 (recette WSL2) - rouge-score installe (regle F: dependance manquante de 22) - metadata.papermill normalise au basename, 0 fuite de chemin machine Conservations declarees (prose ou mentions historiques pedagogiques): - 16 c2 (commentaire "plus aucun modele 2024"), 16 c17, 20 c14 (print illustratif), 01 c15/16/18, 06 c3/10/25 (markdown pedagogique historique) - 07 c4 markdown mis a jour (etait factuellement obsolette, disait gpt-4.1-mini) - modif markdown-only, pas de re-exec requise Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
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 (vérifié: accounting formel base↔tête + corroboration indépendante de tous les claims mesurables du body — ratchet outputs, exec_counts, byte-identité c22, duel 6/6)
[NanoClaw] structural review — CoursIA #16671, tête 3ff65dd5, 3 notebooks GenAI/Texte/** (+797/−489). Review structurelle : comparaison locale binaire base 58125a07 ↔ tête, aucune ingestion de diff brut.
Vérifié (mesure indépendante, pas les chiffres du body) :
- Accounting exact au fichier près : +173/−186 (07), +420/−93 (19), +204/−210 (22) — diff local des fichiers sérialisés = chiffres GitHub exacts.
- Substitutions : 4 défauts de code (
gpt-4.1-mini/gpt-4o-mini×2/gpt-4o-mini→gpt-5.6-lunaen 07 c2, 19 c17/c18, 22 c28) + 1 correction markdown (07 c4, mention d'exécution modernisée). Comptages par modèle concordants : 07 srcgpt-4.1-mini3→1 / luna 0→2 ; 19gpt-4o-mini2→0 / luna 0→2 ; 22gpt-4o-mini1→0 / luna 0→1. Structureos.getenv(..., "<défaut>")intacte partout. - Toute cellule source changée est réductible à : substitution de modèle (5) ou adaptation API documentée (2). Aucune autre mutation de code ou de prose dans les 3 fichiers.
- Adaptations API justifiées et mesurées dans le code :
max_tokens=4→max_completion_tokens=16(2 occurrences, head uniquement) ettemperature=1ajouté au seul juge API de 22 c28 — le body documente les erreurs 400 réelles qui les motivent et la probemct=16 → finish:stop; le contraste juge local vLLM T=0 / juge API T=1 est explicite dans le notebook. - Re-exécution corroborée firsthand : exec_count non-null 12/12 (07), 8/8 (19), 16/16 (22) ; 0 erreur ; outputs réels (stream pip,
OWUI_API_KEY ABSENT= skip documenté RECOVERABLE-USER-HAND, pas de sortie fabriquée). - Ratchet anti-collapse exact : blocs outputs 16→16 (07), 8→9 (19, le bloc stderr du skip), 25→24 (22) — le claim « regroupement de flush nbclient, contenu byte-identique » est VRAI : texte outputs de 22 c22 = 546 chars identiques base↔tête.
- Duel de juges : « accord 6/6 local=A api=A » lu directement dans les outputs ré-exécutés.
- 0 secret : le motif
sk-managemedétecté en scan = fragment d'URL doc Open WebUI (task-management/), markdown inchangé base↔tête.
Notes (P5, non bloquantes) :
- 07 cell 2, ligne du commentaire
# Charger le modele depuis .env ou utiliser gpt-4.1-mini par defaut: le commentaire décrit encore l'ancien défaut alors que la ligne active en dessous ditgpt-5.6-luna— la PR a corrigé le markdown c4 mais a raté ce commentaire dans la cellule même de la substitution. Classe « libellé périmé » (déjà vue sur #1426), hygiène seulement. - Le body cite « c18 / c33 » pour les adaptations
max_completion_tokens; mes indices 0-based = 17 et 31. Micro-écart de convention de numérotation sans effet sur le fond (2 cellules, 2 occurrences, comptées).
— NanoClaw (myia-ai-01)
Path-collision (organ #13359/#13615)Cette PR #16671 (
|
Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: DEEP/slides #16668
Feat: substitution modèles chat legacy vers gpt-5.6-luna (tranche F2a #14755)
Périmètre
Trois notebooks
GenAI/Texte/**migrent leurs défauts de modèle vers la cible canoniquegpt-5.6-lunade docs/genai/model-mapping.md §8.4 (tier mini, désignée par le mandat user « 5.6 pour OpenAI, Luna pour la taille mini ») :07_Code_Interpreter.ipynbos.getenv("OPENAI_MODEL", "gpt-4.1-mini")"gpt-5.6-luna"19_OWUI_Orchestration.ipynbos.getenv("OWUI_MODEL", "gpt-4o-mini")"gpt-5.6-luna"19_OWUI_Orchestration.ipynbmodel or os.getenv("OWUI_MODEL", "gpt-4o-mini")"gpt-5.6-luna"22_Evaluating_Generated_Text.ipynbos.getenv("OPENAI_CHAT_MODEL_ID", "gpt-4o-mini")"gpt-5.6-luna"Les défauts sont conservés comme défauts substituables par
.env(structure d'origine intacte :os.getenv(..., "<cible>")).Adaptations API requises par gpt-5.6-luna — mesurées à l'exécution réelle
Deux murs API rencontrés pendant la re-exécution, chacun adapté par une mesure (pas par supposition) :
max_tokensrejeté — l'API gpt-5.6-luna renvoie400 Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens'. Corrigé dans22(c18judge_choice+ c33claim_supported) :max_tokens=4→max_completion_tokens=16. Le 16 est aussi mesuré : le budget 4 renvoyait contenu vide (finish: length, tokens consommés par le raisonnement du modèle) ; probemct=16 → content='A', finish=stop. Le serveur vLLM local accepte aussimax_completion_tokens(probé avant substitution) — le paramètre est donc portable aux deux backends du notebook.temperature=0rejeté —400 Unsupported value: 'temperature' does not support 0.0 with this model. Only the default (1) value is supported. Corrigé dans22c28 (duel local vs API) : le juge API passe entemperature=1; le juge local vLLM conservetemperature=0(déterminisme pédagogique documenté, la cellule c26 qui explore T∈{0.0, 0.7, 1.2} ne touche que le juge local). Ce contraste est explicité dans la cellule (« T=0 est le déterministe »).Re-exécution réelle (C.2/H.1) — papermill kernel python3, cwd série
Environnement réparé (règle F), pas contourné :
127.0.0.1:8185(Qwen2.5-0.5B-Instruct-local), recette mémoire WSL2 (venvcoursia-wsl,VLLM_WSL2_ENABLE_PIN_MEMORY=1,VLLM_USE_FLASHINFER_SAMPLER=0,setsid+ keepalive) — le notebook 22 tient ses juges réels.rouge-scoreinstallé (dépendance manquante au kernel,ModuleNotFoundErroren c5).Résultats par notebook :
07_Code_InterpreterModele par defaut: gpt-5.6-luna, Fibonacci générés par le modèle, analyses/dataset réels19_OWUI_OrchestrationOWUI_API_KEYdocumenté (RECOVERABLE-USER-HAND, déjà déclaré dans le notebook) — squelette complet, aucune sortie fabriquée22_Evaluating_Generated_TextAnti-collapse (ratchet base vs PR) : les comptes d'outputs par cellule ne diminuent pas (07 : 16→16 ; 19 : 8→9, une cellule skip gagne son print ; 22 : 25→24, regroupement de flush nbclient uniquement — contenu texte de la cellule c22 byte-identique, vérifié).
metadata.papermill:input_path/output_pathau basename,exception: None, 0 fuite de chemin machine (scan regex).Conservations déclarées (hors substitutions)
Prose, commentaires et markdown pédagogiques mentionnant des modèles legacy — conservés tels quels, comme l'exige le mandat (« ne pas enseigner des modèles de 2024 » s'applique au code invoqué, pas à la pédagogie qui les contextualise) :
07_Code_Interpretergpt-5.6-luna. Modif markdown-only, aucune re-exécution requise16_Scaling_Test_Time_Compute20_OWUI_Native_APIOpenAI.gpt-4.1-nano), hors code invoqué01_OpenAI_Intro06_PDF_Web_SearchAucun autre fichier touché.
SemanticKernel/**: scan complet à la tête → 0 mention legacy restante (tranches précédentes déjà passées). Catalogue etCATALOG-STATUS: byte-identiques àmain(aucune cellule de code ajoutée/supprimée dans les séries — les substitutions ne changent pas le catalogue).Validation
Passed(exécution réelle,execution_countpartout, 0 erreur) — log complet dans le commitPassedPérimètre #14755 — tranche F2a (bornée)
Cette PR livre la tranche F2a : remplacement des identifiants de modèles chat legacy encore présents dans le code de
GenAI/Texte/**. Les tranches voisines restent hors scope (F2 suite : fichiers restants si écart mesuré, sous réserve de re-mesure à la tête) —Audio/**est l'Epic #15791 (F3),ML+SymbolicAI/**l'Epic #16247 (F4), disjoints par les claims.See #14755(tranche partielle : d'autres sous-ensembles de l'Epic restent ouverts), pasCloses.🤖 Generated with Claude Code