Repository navigation
Fix(ml,#18403): 4.2j -- retirer l'affirmation fausse de version epinglee (markdown seul) - #19592
Conversation
La cellule 28 declarait que la version de libreyolo est "epinglee dans le carnet". Aucune version n'est epinglee nulle part : la cellule 2 se contente d'afficher la version installee, et aucun fichier de dependances du depot ne declare libreyolo. La phrase est remplacee par ce que le carnet fait reellement, et par ce qui en tient lieu de temoin : les sorties committes. Modification markdown uniquement -- aucune cellule de code ni aucune sortie n'est touchee (exception C.2 : les modifications markdown seules ne declenchent pas de re-execution). Le gap de fond -- la serie 04-Vision ne porte aucun fichier de dependances -- est signale separement sur #19591, sur le modele de #18331 pour 02-ML-Cours. See #18403 See #19591 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
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 |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
[ADJOINT PREFLIGHT] |
Grain: LIGHT/notebook-python — lane myia-po-2025:CoursIA — prev: DEEP/lean #19585
Périmètre
1 fichier modifié, 1 insertion / 1 suppression, markdown uniquement :
MyIA.AI.Notebooks/ML/DataScienceWithAgents/04-Vision/4.2j-Detection-SOTA-LibreYOLO.ipynbAucune cellule de code n'est touchée, aucune sortie n'est touchée.
Le défaut
La cellule 28 (« 9. Limites et suite de la série ») affirmait :
C'est faux, et c'est vérifiable en trois lectures :
device: cuda | torch 2.14.0+cu126 | libreyolo 1.6.0— elle lit_pkg_version("libreyolo"), elle n'épingle riengit grep -i libreyolo origin/main -- ':!*.ipynb'→ hors carnets, seulsCOURSE_CATALOG.generated.*,_quarto.ymlet leREADME.mdde la série ; aucun fichier de dépendances04-Visiongit ls-tree -r origin/main -- …/04-Vision/→ 14.ipynb+ 1README.md, aucunrequirements.txtLe carnet promettait donc une garantie de reproductibilité (un pin) qui n'existait nulle part : une ré-exécution sous une autre version de
libreyoloproduirait des sorties différentes sans qu'aucun mécanisme ne le signale.Le remède retenu, et pourquoi
L'arbitrage du coordinateur sur #18403 offrait deux voies : (a) épingler réellement la dépendance, (b) corriger l'affirmation. J'ai retenu (b), pour une raison de périmètre :
04-Visionn'a aucun fichier de dépendances, etlibreyolon'est pas la seule dans ce cas —ultralytics(utilisé par 4.2g / 4.2h / 4.2i) n'est pas davantage déclaré. Créer le pin delibreyoloseul, sous 04-Vision - integrer LibreYOLO (wrapper CV MIT) : second wrapper SOTA + fenetre DETR-family (4.2j) #18403, laisserait la série à moitié déclarée ; créer le fichier entier pour les 14 carnets serait un shopping cart sur une issue dont le sujet est l'intégration d'un wrapper.02-ML-Cours, la sous-série voisine, a traité exactement ce défaut sous [ML] 02-ML-Cours : dépendances non déclarées (optuna, shap, lime, dice-ml, diffprivlib) — pas de requirements.txt #18331 (close), avec l'artefact02-ML-Cours/requirements.txtet sa méthode inscrite dans le fichier lui-même (« dépendances relevées par grep des imports de TOUS les notebooks de la série, pas au juge » + vérification venv neuf + Papermill).Le signalement du gap de série part donc sur #19591, séparément — c'est le geste « signaler le mauvais état découvert, le traiter en sujet séparé ».
Ce que le corps dit maintenant
La phrase devient :
Le lecteur obtient ce qui est vrai : le témoin de version est la sortie committée, pas un pin ; et il apprend pourquoi il n'y a pas de pin.
C.2 / H.3
Modification markdown uniquement → pas de ré-exécution due (exception C.2 explicite : « modifs uniquement markdown »). Les
execution_countet lesoutputsdes cellules de code sont inchangés — le diff porte sur une cellulemarkdown, ce qui est vérifiable sur legit diff.Gardes locales passées sur le fichier modifié :
check_cell_source_parses.pyscanned: 1 notebook(s), findings: 0— rc=0check_c2_compliance.py --path <nb>C.2 Compliance Check: 1/1 notebooks compliant / All clear!— rc=0git diff --stat1 file changed, 1 insertion(+), 1 deletion(-)Interaction avec #19468 (renommage en cours)
#19468 (ouverte,
dirty) renomme ce carnet4.2j-…→4.5d-…. Elle ne touche aucun fichier de dépendances. Le présent correctif est de contenu seul : il suit automatiquement le fichier dans le renommage, et les deux PR ne se disputent aucune ligne du même bloc. Le renommage n'est donc pas un préalable à ce merge.Résiduel
Le défaut relevé par le coordinateur est levé. La fermeture de #18403 reste au coordinateur : le carnet est livré sur
mainet ce résiduel est le dernier point nommé, maisClosesn'est pas employé —See #18403.See #18403
See #19591
🤖 Generated with Claude Code