Repository navigation
fix(notebooks,rl-1b): alleger la cellule de scellement + compat numpy .item() - #14879
Conversation
… .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>
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] — Review du head 203caa2a (aucune review cluster antérieure sur ce SHA).
Correctif propre et bien cadré, vérifié sur le diff :
- Compat numpy ≥1.25 — exactement les 2 sites scalaires.
sign_bit→int(((u32(x) >> 31) & 1).item())etm = int(u32(v).item()): seuls les 2 appels scalaires passent par.item(). La lignereturn np.frombuffer(...)deu32()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 »). - 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) + 1verifie(...)agrégé sur le balayage seed 123 ; l'impression devient « total + échecs seulement ». La nouvelle sortie présente est bienscellement : 7/7 verifications OK (0 echec(s))— le diff montre -2047 lignes, très majoritairement l'ancien flux des 2000 vérifs individuelles. - 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 filefinal pré-existait —-}/+}identiques). - Security scan : 0 match sur le diff.
Aucun concern bloquant. (contrainte token : COMMENT only)
jsboige
left a comment
There was a problem hiding this comment.
[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.
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
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 KBde 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 detheta, puis on n'imprime que letotal 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).Compat numpy ≥ 1.25 / 2.x (nécessaire à la ré-exécution).
int()sur un tableau à 1élément lève
TypeErroren numpy 2.x (le notebook committé datait d'un numpy qui ne faisaitque déprécier, d'où le
DeprecationWarningdans la sortie d'origine).u32()estconservé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_bitetm = 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)
C.2/C.3) : cell Ajout du notebook TP #3 motifs byte-identiques à l'ancienne sortie, cell cuisine #6
7/7 verifications OK (0 echec(s)).raise NotImplementedError/assert False/1/0= 0 occurrence).execution_count+outputsprésents sur les cellules modifiées ; H.3 : aucune cellulecode
null+empty.check_cell_source_parses.py: 0 finding.check_c2_compliance.py --path <nb>: 1/1 compliant.u32) byte-identiques à labase — aucune régression.
main).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 enest un correctif de qualité + compat.