Skip to content

GenAI : baliser les paramètres par modèle (temperature, top_p, top_k, style...) et réparer les démonstrations dégénérées par la migration vers les modèles récents #20682

Open

Description

@myia-ai-01

Constat

Plusieurs carnets GenAI ont été écrits pour des modèles qui acceptaient des paramètres d'échantillonnage ou de rendu (temperature, top_p, top_k, style, response_format…). Ils ont ensuite été migrés vers des modèles récents qui refusent ces paramètres (erreur 400) ou les ignorent sans le dire. Les démonstrations construites autour de ces paramètres ne démontrent alors plus rien. Deux cas vérifiés dans les carnets sur main :

Carnet Cellule Ce qui se passe
GenAI/Image/01-Foundation/01-1-OpenAI-DALL-E-3.ipynb 18 (comparaison « vivid » / « natural ») Le carnet tourne sur gpt-image-1, qui n'accepte pas style : generate_image() ne l'envoie plus. Le commentaire de la cellule le reconnaît (« les deux requêtes sont identiques »). La comparaison de styles, qui est le sujet de la cellule, ne compare donc rien. Les cellules 1, 9, 13 et 23 gardent style comme « concept pédagogique hérité de DALL-E 3 ».
GenAI/Texte/01_OpenAI_Intro.ipynb 27 temperature=0.0 et temperature=0.7 sont refusées par gpt-5-mini (Unsupported value: 'temperature' does not support 0.0). Le carnet affiche le refus : c'est un cas assumé, mais la notion de température n'est plus montrée en action.

Le même défaut touche probablement d'autres carnets. Un premier balayage par expression régulière (sur les paramètres passés et les modèles cités) donne des candidats, mais trop de faux positifs pour servir de liste : c'est l'objet du point 3 ci-dessous.

Ce qui est demandé

  1. Une table de référence modèle × paramètre, mesurée et non recopiée de la documentation. Pour chaque famille utilisée dans les carnets, elle dit quels paramètres sont acceptés, refusés ou ignorés en silence :

    • texte : gpt-5*, o*, gpt-4o*, les modèles OpenRouter, le vLLM local ;
    • image : gpt-image-1, dall-e-3 s'il reste accessible, les moteurs locaux (ComfyUI, Forge).

    Paramètres à couvrir :

    • texte : temperature, top_p, top_k, frequency_penalty, presence_penalty, logprobs, seed, max_tokens / max_completion_tokens, reasoning_effort ;
    • image : style, valeurs de quality, response_format, size.

    Chaque case porte la date de la mesure et l'appel qui l'a produite. Emplacement proposé : docs/genai/, référencé depuis les README de séries concernés.

  2. Un garde dans les helpers partagés. Quand un carnet passe un paramètre que le modèle visé refuse ou ignore, le helper le signale à l'écran, par une ligne explicite, au lieu de le laisser tomber en silence ou de laisser remonter un 400.

  3. Un audit des carnets dont une cellule démontre l'effet d'un paramètre (comparaison de températures, de styles, de top_k…). Pour chacun, l'un des trois traitements suivants :

    • basculer la démonstration sur un modèle qui accepte le paramètre (par exemple le vLLM local ou un modèle OpenRouter pour temperature, top_p et top_k) ;
    • réécrire la démonstration avec le levier qui remplace le paramètre (le prompt pour le style d'image, reasoning_effort pour les modèles de raisonnement) ;
    • assumer le refus comme moment pédagogique, comme 01_OpenAI_Intro, en le disant dans la prose.

    Chaque carnet modifié est ré-exécuté (C.2).

Critères d'acceptation

  • La table existe, chaque case est datée et sourcée par un appel réel.
  • Le garde est en place dans les helpers GenAI partagés, avec un test.
  • La liste des carnets à démonstration dégénérée est établie et rattachée à cette issue ; chaque carnet est traité ou porte une issue fille nommée.
  • 01-1-OpenAI-DALL-E-3, cellule 18 : la comparaison de styles montre à nouveau une différence réelle, ou la cellule est réécrite autour du levier qui fonctionne sur gpt-image-1.

Origine : présentation de TP du 14/10 (GenAI Min1), où la démonstration de style sur le carnet DALL-E n'a rien montré.

🤖 Generated with Claude Code

Activity

  1. jsboige commented on Oct 18, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2023:CoursIA-2 — fix cell 18 (style= ignored by gpt-image-1) + model×param table for image family (gpt-image-1, dall-e-3). Sub-grain de l'acceptance 4. 2026-10-19T00:55Z.

  2. jsboige commented on Oct 18, 2026

    @jsboige
    Owner

    Doublon de transport (2e et 3e envoi du meme texte, le 18/10 a 22:41) : le corps est parti en JSON au lieu du texte seul. Le claim est celui du message de 22:41:24, que ce lane a depose sur cette issue -- travail sur la cellule 18 de 01-1-OpenAI-DALL-E-3 (style= ignore par gpt-image-1) et table modele x parametre de la famille image, sous-grain de l'acceptance 4 de #20682. Ce message ne porte donc ni marqueur de claim ni contenu neuf.

  3. jsboige commented on Oct 18, 2026

    @jsboige
    Owner

    Doublon de transport (2e et 3e envoi du meme texte, le 18/10 a 22:41) : le corps est parti en JSON au lieu du texte seul. Le claim est celui du message de 22:41:24, que ce lane a depose sur cette issue -- travail sur la cellule 18 de 01-1-OpenAI-DALL-E-3 (style= ignore par gpt-image-1) et table modele x parametre de la famille image, sous-grain de l'acceptance 4 de #20682. Ce message ne porte donc ni marqueur de claim ni contenu neuf.

  4. jsboige commented on Oct 18, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2023:CoursIA-2 -- PR #21340 (head 2e6a36c). Critère #4 atteint : cellule 18 de 01-1-OpenAI-DALL-E-3 réécrite autour du prompt engineering (le style= est silencieusement ignoré par gpt-image-1, le modèle réellement appelé par generate_image()).

    5 cellules touchées (17 MD, 18 code, 19 MD, 20 code, 21 MD), +217/-100 sur 1 fichier. NotebookClient allow_errors=True + .env dans carnet dir (NAMING c.1607-N1 ★★★) : 17/17 cells, 0 erreur, cell 18 image/png OK. nbformat.validate OK. 10/10 pre-commit PASSED.

    NAMING c.1608-N1 pressenti : pr21340-20682-c1608-style-ignore-gpt-image-1-remplacer-par-prompt-engineering-cell18-5-cellules-17-md-19-md-21-md.

    🤖 Generated with Claude Code

    Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com

  5. added a commit that references this issue on Oct 19, 2026
  6. jsboige commented on Oct 19, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2023:CoursIA-2 -- PR #21340 (head 0bedc1e402, remplace 2e6a36cd90).

    Réserve Hermes du 18/10 23:22Z traitée : le chapeau périmé de l'exercice 5 (cellule 35) est ré-ancré sur l'exemple guidé 2 courant — modification markdown seule, donc hors ré-exécution (C.2), corps de l'exercice (objectif, étapes, indices) inchangé.

    Second défaut trouvé en réparant le premier : le rouge twin-parity-guard échouait sur 10 anomalies bloquantes sur la paire 01-1-OpenAI-DALL-E-3 / …_en, alors que la même paire est à 0 anomalie sur main — les dérives étaient introduites par ce diff, pas héritées de la base. Réparé par la voie canonique : pivot translations/genai/image.csv resynchronisé (4 lignes, empreintes recalculées avec la normalisation de extract_cells_to_csv.py), puis jumeau EN régénéré par scripts/translation/render_notebook.py. Contrôle de validité : re-rendre le jumeau EN de main reproduit le fichier commité octet pour octet (0/40 cellule) — le rendu est bien le producteur canonique.

    Mesures au head courant : check_twin_parity_changed PASS (0 anomalie bloquante) · dérive CSV 109 → 101 (8 résolues, 0 introduite) · pre-commit 10/10 · ratchets output-failure / output-collapse / source-collapse à 0 · check_kernel_drift 0 régression.

    Body mis à jour : section ## Diagnostic dérive ajoutée (cause (b) claim antérieure fabriquée, verdict CAUSE_FIXED), ligne C.3 recalée sur les 3 fichiers réels.

    Reste ouvert, hors périmètre de cette PR : la cellule 28 (exemple guidé 3) passe encore style="vivid" à la fonction locale — sans effet, le payload n'ayant pas de champ style, donc sans contradiction factuelle (observation de la revue elle-même). La retirer touche une cellule de code : elle rendrait une ré-exécution complète due (C.2) et ferait bouger les valeurs mesurées en c18/c20 que la prose ancre. Tranche à faire dans le cadre de #20682, dont le périmètre couvre déjà le balisage des paramètres par modèle.

    🤖 Generated with Claude Code

    Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com

  7. added a commit that references this issue on Oct 20, 2026
  8. jsboige commented on Oct 26, 2026

    @jsboige
    Owner

    Grain: DEEP/genai — lane myia-po-2027:CoursIA — prev: DEEP/genai #21374

    [CLAIMED] lane myia-po-2027:CoursIA -- paths: docs/genai/parametres-par-modele.md, MyIA.AI.Notebooks/GenAI/00-GenAI-Environment/param_guard.py, MyIA.AI.Notebooks/GenAI/00-GenAI-Environment/tests/test_param_guard.py, MyIA.AI.Notebooks/GenAI/Texte/01_OpenAI_Intro.ipynb, MyIA.AI.Notebooks/GenAI/Texte/README.md, MyIA.AI.Notebooks/GenAI/Image/01-Foundation/README.md -- tranche : critere 1 (table mesuree modele x parametre, familles texte gpt-5*/o*/gpt-4o*/OpenRouter/vLLM 5002 + image gpt-image-1, chaque case datee et sourcee par un appel reel), critere 2 (garde param_guard.py + test), debut du critere 3 (traitement cellule 27 de 01_OpenAI_Intro + liste d'audit). Critere 4 deja livre par #21340 (lane po-2023:CoursIA-2). Le claim stale de po-2023 sur la famille image est livre : je ne le touche pas.

  9. jsboige commented on Oct 26, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2027:CoursIA -- PR #22605 + issues filles #22606, #22607

    Critère par critère :

    Réparation incluse : 01_OpenAI_Intro.ipynb montre maintenant la température en action (gpt-4o-mini, débuts distincts comptés 0.0 vs 1.6) après la mesure des refus gpt-5-mini, garde démontrée en direct, carnet re-exécuté 15/15.

  10. added 3 commits that reference this issue on Oct 26, 2026
  11. added a commit that references this issue on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions