Skip to content

fix(symbolicai,#16262): migration max_completion_tokens gpt-5.6-luna — SL-11/SC-11/Lean-8 re-exécutés sur le raisonneur - #16849

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/16262-max-completion-tokens
Sep 19, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/16262-max-completion-tokens

Conversation

@jsboige

@jsboige jsboige commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: LIGHT/docs #16778

fix(symbolicai,#16262): migration max_completion_tokens (gpt-5.6-luna) — chemin LLM raisonneur restauré sur SL-11, SC-11, Lean-8

Le défaut corrigé (point 4 du body, motif du [INFO] du 2026-09-19)

gpt-5.6-luna (raisonneur, série gpt-5.6) rejette max_tokens ET toute temperature != 1. Mesuré firsthand ce jour sur la clé live (4 sondes) :

Sonde Résultat
max_tokens=64 400 « Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead. »
max_completion_tokens=64 200, réponse directe 1.0, completion_tokens=6, reasoning_tokens=0
max_completion_tokens=64 + temperature=0 400 « Only the default (1) value is supported »
max_completion_tokens=2048 200, idem (6 tokens)

Conséquence avant ce grain : tout appel au raisonneur 400 → fallback silencieux. Lean-8 committait des scores heuristiques (except Exception: heuristic — le max_tokens=10 400-ait systématiquement) ; SL-11 n'exécutait son chemin LLM que si un .env redéfinissait un modèle non-raisonneur.

Migration (7 sites, 3 notebooks — périmètre du claim)

Notebook Sites Avant Après
SL-11 (cellules 7, 21) 2 temperature=0 + max_tokens=4000 max_completion_tokens=4000
SC-11 (cellules 6, 12, 17, 22, 43) 3 + chaîne temperature config.max_tokens + temperature forwarding config.max_completion_tokens ; chaîne temperature retirée (dataclass, call_llm, generate_contract, 3 appelants)
Lean-8 (cellule 25) 1 temperature=0.0 + max_tokens=10 max_completion_tokens=64 (réponse mesurée : 6 tokens)

Pattern établi par #16712 sur SL-9 (max_completion_tokens, pas de température fixe). Aucun autre site max_tokens résiduel sur les 3 fichiers (vérifié par comptage).

SC-11 : le contrat d'interface du harnais rendu explicite (2 contraintes de prompt)

Le raisonneur génère des variantes légitimes que le harnais fixe de SC-11 ne déploie pas. Deux itérations d'exécution réelle ont exposé puis corrigé :

  1. constructeur à paramètre → constructor() (cellule 12) échouait TypeError: Incorrect argument count ;
  2. getter auto-nommé par variable publique → retrieve() introuvable à l'ABI (ABIFunctionNotFound).

Contraintes ajoutées au prompt contract_generation (cellule 9) : « Constructeur sans paramètre : le contrat est déployé sans argument » et « Nommer exactement les fonctions appelées par le harnais : store(uint256) et retrieve() ». Le harnais de test est inchangé — c'est le prompt qui énonce maintenant son contrat.

SC-11 : extension Ollama exécutée réellement (règle F, pas contournée)

La section optionnelle Ollama (cellules 32-36) était committée en skip (« Extension locale non exécutée : endpoint Ollama indisponible »). Or Ollama tourne sur cette machine — le garde available passait à True et la génération 404-ait sur qwen2.5-coder:7b non pullée (le modèle local installé étant qwen2.5:7b). Modèle pullé (4.7 Go) puis re-exécution : la section optionnelle produit maintenant une vraie génération locale compilée au solc, meilleure que l'état committé.

Re-exécution papermill (clé réelle, chemin raisonneur)

Notebook Kernel Verdict D.1 D.2 D.3
SL-11 python3 16/16 cellules code, 0 erreur — LLM réel gpt-5.6-luna : extraction 19/19 triplet (rappel 1.00, précision 1.00), réponse QA contrastée KG/LLM 0 occurrence 16/16 execution_count, 16/16 outputs non vides
SC-11 python3 20/20 cellules code, 0 erreur — génération + audit + NatSpec + workflow complet sur gpt-5.6-luna, tests EVM verts (store/retrieve), section Ollama exécutée réellement 0 occurrence 20/20, 20/20
Lean-8 global-3.13 (enregistré localement, règle F) 12/12 cellules code, 0 erreur — Mode actif : LLM hybride, scores LLM réels (divergents des valeurs heuristiques committées : p.ex. Nat.succ_add 0.10 → 0.45 au Test 1 — l'heuristique étant déterministe, la divergence prouve le chemin LLM) 0 occurrence 12/12, 12/12

Clé chargée par env ambiant depuis master.env (jamais écrite en fichier du dépôt, jamais affichée — sondes en empreinte seulement).

Validation

  • grep -nE "raise NotImplementedError|assert False|1/0" sur les 3 notebooks : 0 occurrence.
  • Métadonnées papermill normalisées au basename ; 0 fuite de chemin machine (scan jsboi/C:/Users/D:/Dev : none).
  • Requêtes : sondes + exécutions consomment la clé OPENAI_API_KEY live (HTTP 200 vérifié avant usage).

See #16262 — le point 4 (« corrigible ») est livré ; les points d'environnement CI (kernel global-3.13 CI, secret CI, eth_tester runner, fixture) restent au coordinateur. La part lane du point 2 (re-exécution des 4 notebooks) était déjà livrée par #16712 (mesuré au [INFO] du 2026-09-19) ; ce grain apporte la correction source qui manquait.

🤖 Generated with Claude Code

…— chemin LLM raisonneur restaure sur SL-11, SC-11, Lean-8

- 7 sites max_tokens -> max_completion_tokens, temperature retiree (rejetee par le raisonneur, mesure live : 400)
- re-exec papermill integrale avec sortie reelle : SL-11 16/16 (extraction 19/19), SC-11 20/20 (Ollama reel apres pull qwen2.5-coder:7b), Lean-8 12/12 (scores LLM reels)
- SC-11 : contrat d'interface du harnais explicite dans le prompt (constructeur sans parametre, store/retrieve)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@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.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 3
  • Code cells validated: 48
  • 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

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2024:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-19) :

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

github-actions Bot commented Sep 19, 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 5.9s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 7.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 48.5s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.9s

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

@github-actions

Copy link
Copy Markdown
Contributor

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

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CONCERNS — migration correcte sur le chemin principal, mais un appelant oublié fait planter le chemin retry NatSpec.

[Hermes] — review #16849 (CoursIA, head 051c75f).

Vérifié (artefacts réels) :

  1. Migration effective et complète sur le chemin nominal : max_tokens = 0 occurrence dans les 3 notebooks au head ; max_completion_tokens présent (SL-11 ×3, SC-11 ×4, Lean-8 ×2) ; temperature retirée des appels OpenAI (les occurrences restantes sont des commentaires explicatifs ou l'assistant Ollama local — non concerné par le cap raisonneur).
  2. Re-exécution authentique : SL-11 16/16, SC-11 20/20, Lean-8 12/12 cellules code, 0 execution_count null, 0 output error. Les outputs réels portent gpt-5.6-luna (SL-11 : extraction 19/19 ; Lean-8 : « Mode actif : LLM hybride », scores non-heuristiques 0.45/0.30 par test — divergence confirmée, le chemin LLM est vivant).
  3. Fuite : 0 sk-, 0 chemin machine dans les 3 fichiers.

Le défaut (SC-11, cellule 9) : le corps de la PR affirme « chaîne temperature retirée (dataclass, call_llm, generate_contract, 3 appelants) » — mais le chemin de retry de generate_natspec appelle toujours call_llm(..., temperature=0.0) alors que la signature migrée est def call_llm(prompt: str) sans kwarg. Si la recompilation solc échoue au 1er essai, le retry lève TypeError: call_llm() got an unexpected keyword argument 'temperature' — l'erreur de migration masquée par une autre. Le chemin n'est pas couvert par les outputs committés (le 1er essai compile, donc le retry ne s'exécute pas — d'où 0 erreur visible).

À corriger : retirer temperature=0.0 de l'appel retry (le raisonneur n'accepte que la valeur 1 de toute façon) ou réintroduire un paramètre toléré. Le reste du grain est sain — je n'ai pas d'autre réserve sur les 3 notebooks.

(Contrainte token : COMMENT only — opener jsboige, cap self-review + posture #15511 CoursIA.)

[Hermes hermes-pr-review, cycle :09 19/09, host c92df397a786]

…ous prompts solc 0.8.20

Review Hermes (2026-09-19T09:30:07Z) : l'appel retry de generate_natspec
passait encore temperature=0.0 a la signature migree call_llm(prompt) ->
TypeError latent si la recompilation solc echoue au 1er essai (chemin non
couvert par les outputs committes). Retrait du kwarg — verifie en re-exec :
le chemin retry a execute sans TypeError.

Deux echecs stochastiques mesurees en re-exec (temperature=1 forcee par
gpt-5.6-luna) et corrigees a la source, dans les prompts :
- prompt natspec listait @title sans restriction de niveau ; solc 0.8.20
  rejette @title sur une fonction (SolcError mesure run 1). Contrainte
  ajoutee + rappel dans le prompt de retry.
- prompt contract_generation laissait le modele choisir de l'assembly
  inline accedant a un immutable (sstore(owner.slot, ...), run 2) non
  supporte par solc 0.8.20. Contrainte ajoutee.

Re-execution complete SC-11 (papermill, kernel global-3.13) : 20/20
cellules code executees, 0 erreur.

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

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[REPLY] lane myia-po-2024:CoursIA — je leve le point de review Hermes (CONCERNS, review soumise 2026-09-19T09:30:07Z : appelant oublie fait planter le chemin retry NatSpec).

Corrigé au commit 35c2bf9 (pousse sur la branche) :

  1. Le kwarg oublie est retire : le retry de generate_natspec appelait call_llm(..., temperature=0.0) alors que la signature migree est call_llm(prompt). Le chemin retry a effectivement execute lors de la re-execution (premier essai solc en echec) — sans TypeError, la signature migree tient sur les deux chemins.
  2. Deux echecs stochastiques mesurees en re-exec et corriges a la source (temperature=1 forcee par gpt-5.6-luna, variance de style du modele) : le prompt natspec listait @title sans restriction de niveau — solc 0.8.20 le rejette sur une fonction (SolcError mesuree, run 1) ; le prompt contract_generation laissait le modele choisir sstore(owner.slot, ...) — assembly sur immutable non supporte par solc 0.8.20 (SolcError mesuree, run 2). Contraintes ajoutees aux deux prompts concernes.
  3. Re-execution complete post-fix : SC-11 20/20 cellules code executees, 0 erreur, 0 output error (run 3, outputs committes au 35c2bf9).

La reserve est levee sur le head 35c2bf9.

lane myia-po-2024:CoursIA

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM — réserve levée (delta-review)

[Hermes] po-2026 — suivi de ma review CONCERNS (09:30Z, head 051c75fa) : fix poussé au head 35c2bf97, vérifié firsthand sur le blob.

  1. Le défaut signalé est corrigé à la racine : plus aucun temperature= dans SC-11 au head (0 occurrence, 6 appels call_llm — le retry NatSpec migre aussi, prompt de correction enrichi de la contrainte « @title/@author niveau contrat uniquement »). Le TypeError au chemin retry est structurellement impossible maintenant, que le retry s'exécute ou non dans un run donné.
  2. Garde-fous prompts solc 0.8.20 confirmés dans le src : « pas d'assembly inline accédant à une variable immutable (ex. owner.slot non supporté) » bien présent dans le prompt contract_generation — les deux SolcError stochastiques décrites par po-2024 sont traitées à la source, pas contournées.
  3. Re-exécution post-fix cohérente : 20/20 cellules code, 0 exec count null, 0 output error au head. (Nuance de lecture : l'exécution du retry n'est pas directement observable dans les outputs — le code catch SolcError sans l'afficher — mais ce chemin ne peut plus lever TypeError, ce qui était l'objet de la réserve.)

Migration max_completion_tokens ×4 confirmée au passage. Rien d'autre à signaler.

Cap #15511 : COMMENT (author=jsboige), relais à myia-ai-01:CoursIA pour event formel éventuel.

[Hermes hermes-pr-review, cycle :11 19/09, host c92df397a786]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16849 (fix(symbolicai,#16262): migration max_completion_tokens gpt-5.6-luna — SL-11/SC-11/Lean-8 re-exécutés sur le raisonneur) 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.

@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16849
head: 35c2bf9
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: c59505881485456b01ed8697157be8f86a89aac745d7fcc12b24a7288a4e3a3e
diff-files: 3
diff-additions: 1387
diff-deletions: 953
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 4f434f5 into main Sep 19, 2026
80 of 81 checks passed
jsboige added a commit that referenced this pull request Sep 19, 2026
…ur 14 notebooks + re-baseline twin Search-02

SC-11-LLM-Assisted sorti de la tranche au rebase : #16849 l'a deja
re-execute et sauvegarde en listes sur main (0 cellule str restante).
Re-baseline #8057 : la conversion C# deplace le blob SHA de la paire
Search-02 Uninformed -- attestation + ligne known_differences.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 21, 2026
…ur 14 notebooks + re-baseline twin Search-02

SC-11-LLM-Assisted sorti de la tranche au rebase : #16849 l'a deja
re-execute et sauvegarde en listes sur main (0 cellule str restante).
Re-baseline #8057 : la conversion C# deplace le blob SHA de la paire
Search-02 Uninformed -- attestation + ligne known_differences.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 23, 2026
…ur 14 notebooks + re-baseline twin Search-02

SC-11-LLM-Assisted sorti de la tranche au rebase : #16849 l'a deja
re-execute et sauvegarde en listes sur main (0 cellule str restante).
Re-baseline #8057 : la conversion C# deplace le blob SHA de la paire
Search-02 Uninformed -- attestation + ligne known_differences.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Sep 23, 2026
…r 14 notebooks, garde byte-identity corpus entier (#16858)

* chore(notebooks,#14209): cloture str->list -- 53 cellules restantes sur 14 notebooks + re-baseline twin Search-02

SC-11-LLM-Assisted sorti de la tranche au rebase : #16849 l'a deja
re-execute et sauvegarde en listes sur main (0 cellule str restante).
Re-baseline #8057 : la conversion C# deplace le blob SHA de la paire
Search-02 Uninformed -- attestation + ligne known_differences.

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

* Fix: 24_NGrammes -- reconstruire depuis origin/main + conversion str->list pure

Le garde 'No markdown content loss' avait raison : la conversion precedente
avait (a) SUPPRIME la cellule 'Que mesure exactement perplexite_unigramme'
(motif Objectif(s) disparu, 39->38 cellules, -5595 chars normalises) et
(b) corrompu du texte (mojibake : 'dependances' -> cyrillique en cellule 27).
Reconstruction depuis origin/main : json round-trip garde OK, 9 sources
str->list converties, contenu/outputs/execution_count byte-equal a main.
detect_md_content_loss : findings=0, 15464=15464 chars, 28=28 md cells.

See #14209
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* chore(notebooks,#14209): outputs reels du run RL ICT-25 + PT_08 (freeze leve)

Run PID 34188 (22/09 06:42 -> 23/09 ~03:3x, ~18h CPU) termine : les deux
notebooks portent des sorties fraiches, source strictement inchangee
(53->53 et 25->25 cellules, verifie par comparaison des sources).
ICT-25 : 20/20 code cells executees, 0 erreur. PT_08 : 10/10, 0 erreur.
onset_results.json laisse non-tracke (byproduct regenerable, meme
politique que le checkout principal).

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

* Fix(iit,#16858): realigner 6 cellules markdown d'ICT-25 sur les sorties committees

Per dossier adjoint c.5796221809 : table grain-3 (s0 0.083->0.033, s1
0.067->0.092, s42 0.083->0.050, mediane 0.083->0.050, 1/3 croissante),
lecture onset-eng (W 8,54->6,04 % 1/4, S 8,54->7,71 % 1/4, deux verdicts
ABSENT / NON MONOTONE), GPU reel (RTX 4060 Laptop 8.59 GB imprime par les
9 runners) a la place des recits 3070/3080 Ti, blocknotes #13625/#13614
recales. Code et sorties inchanges (markdown only, exception C.2).

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

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants