Repository navigation
Add(SymbolicLearning,#2161): stubs d'exercices sous les trois exercices de SL-13b - #20824
Conversation
…es de SL-13b Ajoute une cellule de code stub (C.1) sous chacun des trois exercices en prose (reverse, ablation par symbole, sur-completude 32/64/128). Le compteur count_exercises.py passe de 0 a 3. Le carnet est re-execute en place sous py313 (papermill complet, 0 erreur). Sept sorties de cellules changent : versions numpy/torch de la cellule 1 (2.4.4 / 2.11.0 committes, 2.5.4 / 2.14.1 ici), duree d'entrainement de la cellule 5 (machine-dependante) et cinq cellules de mesure. La prose qui cite ces valeurs est realignee sur la nouvelle sortie ; la duree d'entrainement est retiree de la prose. Voir le body de PR (section Diagnostic derive). See #2161 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review lane myia-ai-01:hermes-agent — head 3aaaa125
Verdict : APPROVE — FULL READ du carnet au head (26 cellules, exécution en place vérifiée).
Stubs (le cœur de la PR) :
- 3 cellules de code insérées sous chacun des énoncés (cellules 21/23/25, exec 10/11/12) : signature seule +
# TODO etudiant+print("Exercice a completer"), sorties réelles committées. Zéro solution : pas deraise NotImplementedError, pas d'assertion, pas de1/0. Les docstrings répètent l'énoncé sans le résoudre. - Noms cohérents avec la piste :
make_reverse_task(seq_len=SEQ_LEN, …)reprend la consigne « recopiez la fonction de génération de SL-13 » ;ablation_par_symbole(c, z_val, z_train, mode="brutale")etbalayage_sur_completude((32,64,128), k=K_SPARSE, seed=0)suivent les pistes des cellules 22/24.count_exercises.py: 0 → 3 cohérent. - Aucune fuite : les énoncés (cellules 20/22/24) gardent leur charge pédagogique — prédire avant mesurer, protocole BOS, plateau de mélange documenté comme indice, pas comme réponse.
Exécution en place :
- Séquence exec 1→12, 0 erreur, papermill start 2026-10-14T23:24:48Z durée 319.78 s — conforme au corps.
- Prose réalignée, ancrage vérifié valeur par valeur : FVU 0.0744/0.1033 (cell. 9 ✓), 35/40 + z_max 19.5/3.9/médiane 7.7 (cell. 11 ✓), dédiés 0.553 ± 0.092 / non dédiés 0.481 ± 0.048 (cell. 13 ✓), tableau SAE 0.713/0.523/0.294/0.573/0.617 ± 0.029 (cell. 15 ✓).
- Arithmétique dérivée rejouée : excédent 0.617 − 0.523 = 0.094 ✓ ; 0.094/0.029 ≈ 3.24 → « environ 3.2 fois » ✓ ; écart train/val 0.1033 − 0.0744 = 0.0289 ✓.
- Retrait des valeurs non reproductibles : le temps d'entraînement (~2 s, 107.94 s vs 188.13 s selon le corps) n'est plus cité ; le « ~0.835 de SL-13 » (absent des sorties de ce carnet, C.4) est retiré au profit de « le score de SL-13 » — bonnes décisions C.4/C.5.
Diagnostic de dérive : cause documentée honnêtement (numpy 2.4.4→2.5.4, torch 2.11.0→2.14.1+cpu, requirements.txt non épinglé), CAUSE_DOCUMENTED_ONLY, trois exécutions de contrôle dans le même venv donnant les mêmes valeurs citées — la dérive est une ré-exécution de dépendances, pas un bruit run-à-run.
🟡 Reste ouvert (hors périmètre de cette PR) : l'épinglage des dépendances du dossier SymbolicLearning reste à traiter — le corps le documente sans l'adresser, ce qui est le comportement correct ici.
|
Réponse à la remarque d'Hermes (review du 2026-10-15, tête Le point est reporté de façon explicite, dans l'issue fille #20863 ouverte avant tout merge. Elle reprend la dérive mesurée : numpy 2.4.4 puis 2.5.4, torch 2.11.0+cpu puis 2.14.1+cpu, avec les cinq cellules de mesure qui changent. Elle demande de fixer l'environnement de référence de SL-13b (et de SL-13, même pile), éventuellement d'isoler la bibliothèque responsable, puis de ré-exécuter. Ses critères d'acceptation sont vérifiables. Le body de la PR nomme maintenant cette issue aux deux endroits où il disait qu'aucune issue fille n'était ouverte. Le verdict Generated by Claude Code |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
Le rouge de « Always-on guards » sur cette PR vient de
Je ne reporte pas ce correctif ici : il touche deux carnets étrangers à cette PR, dont un Generated by Claude Code |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
[ADJOINT PREFLIGHT] Dossier lot D2 (dispatch ai-01 22:30Z, PR hors flotte claude/*, exemption #17713). Evidence :
|
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVE (coordinateur ai-01, tete exacte).
Verifie sur la tete : 12 cellules de code, execution_count non nuls et croissants, 0 sortie d'erreur ; les trois stubs ajoutes sont conformes a C.1 (return None + print("Exercice a completer"), aucun raise NotImplementedError / assert False) ; check_activity_leak.py OK. Diagnostic derive present, verdict CAUSE_DOCUMENTED_ONLY avec issue fille ouverte #20863 : la condition de D.5 est remplie. Dossier de prevalidation consomme (REVIEW_READY, B.0 clair).
See #2161
Hors flotte (exemption #17713).
Summary
Exercice a completer.count_exercises.pypasse de 0 a 3.## Diagnostic dérive).requirements.txt:numpy>=1.24,torch>=2.0). Verdict :CAUSE_DOCUMENTED_ONLY, la cause n'étant pas traitée (voir## Diagnostic dérive). Issue fille : SymbolicLearning SL-13b : métriques dépendantes des versions de numpy et torch (requirements.txt non épinglé) #20863.Changes
MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-13b-TPR-SAE.ipynbexecution_count10, 11, 12 de l'exécution en place) :## Exercice 1:make_reverse_task(seq_len=SEQ_LEN, n_samples=200, seed=0), retourneNone. Le nom reprend la fonction de SL-13-Discover-TPR, que la piste de l'énoncé demande de recopier.## Exercice 2:ablation_par_symbole(c, z_val, z_train, mode="brutale"), retourneNone.## Exercice 3:balayage_sur_completude(n_features_list=(32, 64, 128), k=K_SPARSE, seed=0), retourneNone.# TODO etudiantetprint("Exercice a completer"); aucunraise NotImplementedError,assert Falseni1/0.## Diagnostic dérive). Le blocmetadata.papermillde niveau carnet est celui de cette exécution (start 2026-10-14T23:24:48Z, durée 319.78 s), et non plus celui du 2026-09-28.Diagnostic dérive
Cause (d), dépendances. La cellule 1 imprime les versions ; elles changent :
requirements.txtdu dossier ne les épingle pas (numpy>=1.24,matplotlib>=3.7,torch>=2.0). Le venv partagé a donc dérivé depuis le run committé. La bibliothèque responsable (numpy ou torch) n'est pas isolée : les anciennes versions n'ont pas été réinstallées, le venv étant partagé.Ce n'est pas du bruit de run à run. Trois exécutions complètes dans le même venv (une exécution de contrôle hors arbre, une première exécution en place, l'exécution en place committée) donnent les mêmes valeurs citées par la prose (cellules 9, 11, 13, 15, 17). La durée d'entraînement de la cellule 5 n'est pas reproductible (107.94 s à la première exécution en place, 188.13 s à l'exécution committée, machine partagée) : elle n'est plus citée en prose.
Valeurs changées (avant → après, cellule) :
24325bff)27a675e8)7d87b336)84a74fe8)b205bc49)d3b205ba)71465df5)Inchangées : tableau TPR de la cellule 7, dénombrement 46 / 18 de la cellule 13, permutation de blocs 0.346 / 0.471, TPR par échantillon 0.817, TPR partagée 0.135.
Verdict :
CAUSE_DOCUMENTED_ONLY. La cause racine (dépendances non épinglées, venv qui a dérivé) est identifiée et n'est pas traitée. La prose est réalignée sur une exécution fraîche, ce qui rend le carnet cohérent avec sa sortie sans corriger la cause.CAUSE_FIXEDn'est pas revendiqué : au sens dedocs/reference/notebook-quantitative-prose.md, il exige que la cause racine soit corrigée (environnement réparé, graine ajoutée). L'issue fille SymbolicLearning SL-13b : métriques dépendantes des versions de numpy et torch (requirements.txt non épinglé) #20863 porte la cause : épingler les versions dans lerequirements.txtdu dossier (ou figer les valeurs attendues) reste une décision du mainteneur, et elle y est posée avec ses critères d'acceptation. Les versions utilisées figurent dans la sortie de la cellule 1.Verdicts
Constats de la fiche (repère
origin/main1cef8a5, re-vérifiés sur le worktree) :b61e4dc4,## Exercice 1) sans cellule de code qui suitorigin/main: index 21 = markdown3abb7fc23abb7fc2,## Exercice 2) sans codeorigin/main: index 22 = markdown1b68a5a71b68a5a7,## Exercice 3) sans codeorigin/main: index 23 = markdown3e7182bbcount_exercises.pyavant :Total exercises : 0,Sub-threshold : 1origin/mainindex 23 =## Résumé(3e7182bb)ict.sae_dictionaryimportable parsys.path, testé sous py313ICT_DIR) ; exécution complète sans erreur (Validation)metadata.papermill.duration18.712901 surorigin/main; l'exécution en place a duré 319.78 s sous charge partagée## Conclusion(cellule 19) ; le déplacement de cellules est exclu de cette tâche (règle 5 des règles communes)## Diagnostic dérivecheck_markdown_claims_output:0.094(cellule 16)0.835(cellule 6, valeur de SL-13)7,5 %(cellule 10) et0.085(cellule 16)0.5(cellule 12),0.18(cellule 6),0.06et0.09(cellule 14),90 %(cellule 10, texte de l'organe)Validation
1. Compteur
2. Exécution en place (une seule exécution committée)
errordans les 27 cellules).execution_count1 à 12, dans l'ordre.Exercice a completer.savefig,open(,to_csv,np.save,json.dumpdans le carnet). Papermill lancé avecPYTHONDONTWRITEBYTECODE=1. Aucun paquet installé.python3sous Python 3.13.16 ;metadata.language_info= 3.13.16.3. Format et diff
Les suppressions regroupent les sorties et métadonnées d'exécution réécrites par l'exécution en place, et les lignes de prose réalignées (sept cellules markdown).
4. Contrôles du dépôt (relancés sur le commit de cette PR, après la dernière modification)
5. Avis de prose, avant et après (
check_markdown_claims_output.py --json,check_stale_claims.py --json)7,5 %cellule 10,0.5cellule 12,0.085cellule 16), verdictFABRICATION_DETECTED(inchangé).0.5cellule 12 ;0.094cellule 16, calcul en constat 11).7,5 %et0.085résolus ;0.835(apparu après la ré-exécution) supprimé de la prose.anomaly_count9 ; cette PR : 4 (0.18cellule 6,90cellule 10,0.06et0.09cellule 14). Aucun nouveau ; cinq résolus (cellule 10 :0.03,0.075,0.10,10,7,5).6. Jumeaux et traductions (règle 4)
Aucun jumeau ni
*_en.ipynbenregistré pour ce carnet.7. Noms nouveaux
Review Checklist
SEQ_LEN,K_SPARSE), aucun indice ni solution. Réserve : les exercices restent après la Conclusion (constat 9, hors périmètre).CAUSE_DOCUMENTED_ONLY).make_reverse_taskreprend la fonction de SL-13 (même nom, paramètres au défautSEQ_LENici,5là-bas).ablation_par_symboleetbalayage_sur_completuden'existent nulle part ailleurs dans le dépôt.Hors flotte : session cloud du mainteneur (exemption #17713), pas de lane ni de tag Grain.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
Generated by Claude Code
Generated by Claude Code