Skip to content

fix(notebooks,rl-1b): alleger la cellule de scellement + compat numpy .item() - #14879

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/rl1b-seal-cell-lighter
Sep 6, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/rl1b-seal-cell-lighter

Conversation

@jsboige

@jsboige jsboige commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2027:CoursIA-2 — prev: MED/docs #14558

Objet

Alléger la cellule de scellement de
MyIA.AI.Notebooks/RL/rl_1b_bitwise_logic_synthesis.ipynb
(motif utilisateur : « la cellule de scellement engendre des milliers de sorties, il faudrait
l'alléger »). Le notebook a été ajouté par la PR mergée #14805.

Ce qui change

  1. Cellule de scellement (cell cuisine #6) — allégée. Les 2000 vérifications signe-par-float
    (chacune étiquetée verifie("signe de {v:+.4f}", ...) puis toutes imprimées, ~52 KB
    de sortie) sont remplacées par 7 checks agrégés : on compte les échecs sur le balayage
    seed 123, on vérifie +0.0, obs[0..3], le signe de theta, puis on n'imprime que le
    total et la liste des échecs seulement. Mêmes vérifications, même seed → même verdict
    (7/7 OK). Sortie : ~120 caractères (au lieu de ~52 KB / 2009 lignes).

  2. Compat numpy ≥ 1.25 / 2.x (nécessaire à la ré-exécution). int() sur un tableau à 1
    élément lève TypeError en numpy 2.x (le notebook committé datait d'un numpy qui ne faisait
    que déprécier, d'où le DeprecationWarning dans la sortie d'origine). u32() est
    conservée telle quelle
    (retour tableau) : les cellules Fix: migrate 3_RAG.ipynb to tools API and add SemanticKernel test reports #9/QC: Panel de strategies - tracker d'amelioration iterative #29 l'appellent sur un vecteur
    de 4 floats et indexent u[1]/u[2]/u[3]. Seuls les deux appels scalaires passent par
    .item() : sign_bit et m = int(u32(v)) (cell Ajout du notebook TP #3). Les cellules Fix: migrate 3_RAG.ipynb to tools API and add SemanticKernel test reports #9/QC: Panel de strategies - tracker d'amelioration iterative #29 sont inchangées.

Validation (EXEC_PROVED)

Note de scope

Changement porté sur la seule demande utilisateur. Aucune issue GitHub associée (demande
directe) ; pas de Closes #…. Le notebook ayant été introduit par #14805 (mergée), cette PR en
est un correctif de qualité + compat.

… .item()

- Cellule de scellement (rl_1b_bitwise_logic_synthesis): les 2000 verifications
  affichees individuellement (~52KB) sont remplacees par 7 checks agreges avec
  sortie des echecs seulement (~120 chars). Memes verifications, meme seed 123.
- u32() conserve sa forme tableau (cellules 9/29 indexent u[1..3]) ; seuls les
  appels scalaires sign_bit et m=int(u32(v)) passent par .item(), pour compat
  numpy>=1.25/2.x qui leve TypeError sur int(tableau 1-element).
- Re-execution reelle numpy 2.4.6 : cell3 motifs byte-identiques, cell6 7/7 OK.
- C.1 (0 erreur volontaire), C.2 (exec_count+outputs), H.3 (pas de null+empty),
  check_cell_source_parses + check_c2_compliance OK. Cellules 9/29 byte-identiques.

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

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

⚠️ Detector abstained (merge-base introuvable, shallow fetch or unanchored branch).

c.415 (#11873): scope = notebooks CHANGED in this PR, not the whole corpus.
See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 pathologie.

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 14
  • 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

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

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

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 6, 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 6.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.8s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 8.3s
Search-1-StateSpace.ipynb ✅ SUCCESS 7.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 21.5s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.8s

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

@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.

[Hermes] — Review du head 203caa2a (aucune review cluster antérieure sur ce SHA).

Correctif propre et bien cadré, vérifié sur le diff :

  1. Compat numpy ≥1.25 — exactement les 2 sites scalaires. sign_bit → int(((u32(x) >> 31) & 1).item()) et m = int(u32(v).item()) : seuls les 2 appels scalaires passent par .item(). La ligne return np.frombuffer(...) de u32() est inchangée (ligne de contexte) → le comportement tableau des cellules #9/#29 est préservé, conforme à la note de scope. Docstring honnêtement mise à jour (« ou tableau »).
  2. Cellule de scellement — allègement réel. La vérification verifie(f"signe de {v:+.4f}", ...) par flottant devient un comptage d'échecs (nb_echecs) + 1 verifie(...) agrégé sur le balayage seed 123 ; l'impression devient « total + échecs seulement ». La nouvelle sortie présente est bien scellement : 7/7 verifications OK (0 echec(s)) — le diff montre -2047 lignes, très majoritairement l'ancien flux des 2000 vérifs individuelles.
  3. Cohérence exécution. Les DeprecationWarning (int() sur tableau 1-élément) de l'ancienne sortie de la cell #3 disparaissent — cohérent avec la ré-exécution numpy 2.4.6 + .item(). Tous les ajouts source sont correctement terminés (\n",) ; pas de défaut de newline introduit (le \ No newline at end of file final pré-existait — -}/+} identiques).
  4. Security scan : 0 match sur le diff.

Aucun concern bloquant. (contrainte token : COMMENT only)

@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.

[Hermes] — Review du head 203caa2a (0 review cluster antérieure sur ce SHA).

Diff firsthand : exactement les 2 cellules annoncées. Comparaison byte-à-byte notebook main↔head : seules les cellules 3 et 6 changent (source + outputs), les 43 autres sont identiques — dont les cellules 9 et 29 (forme tableau de u32), revendiquées inchangées et vérifiées byte-identical.

Cellule de scellement (cell 6) : sortie 62 901 → 180 chars. Le verdict agrégé scellement : 7/7 verifications OK (0 echec(s)) est présent au head avec exec_count 2 (séquentiel derrière cell 3 exec 1) — sortie fraîche, pas statique. La logique 7 checks agrégés (comptage d'échecs sur 2000 gaussiens seed 123, +0.0, obs[0..3], signe de theta) couvre le même périmètre que le balayage imprimé intégral d'origine.

Cell 3 numpy 2.x : .item() appliqué aux seuls 2 appels scalaires (sign_bit, m = int(u32(v))) ; la sortie au head garde les motifs IEEE-754 exacts (0x3f800000, 0xbf800000, 0xbe99999a…) — la baisse de taille 1119→386 chars = disparition du DeprecationWarning d'origine, motifs préservés. Cohérent avec le body.

Micro-nit (non bloquant) : l'observation obs[0..3] affichée ([0.0137 -0.023 -0.0459 -0.0483]) dépend de la version de gymnasium/numpy au re-jeu ; elle est scellée dans la sortie mais non assertionnée — acceptable pour une cellule de scellement, à noter si un re-jeu futur diverge.

Verdict : FAVORABLE. Périmètre chirurgical, claims du body reproduits (diff 2 cellules, tailles, verdict 7/7, cells 9/29 identiques), prev #14558 MERGED, 0 secret.

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.

2 participants