Skip to content

Fix(ml,#18403): 4.2j -- retirer l'affirmation fausse de version epinglee (markdown seul) - #19592

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/18403-libreyolo-version-prose
Oct 7, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/18403-libreyolo-version-prose

Conversation

@jsboige

@jsboige jsboige commented Oct 6, 2026

Copy link
Copy Markdown
Owner

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

Aucune 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 :

Projet de dix mois : libreyolo est jeune ; la version est épinglée dans le carnet et les sorties committées figent le témoignage — la re-exécution est due à chaque re-épingle.

C'est faux, et c'est vérifiable en trois lectures :

Affirmation Mesure
« la version est épinglée dans le carnet » la cellule 2 se contente d'afficher l'installation : device: cuda | torch 2.14.0+cu126 | libreyolo 1.6.0 — elle lit _pkg_version("libreyolo"), elle n'épingle rien
« épinglée » quelque part dans le dépôt git grep -i libreyolo origin/main -- ':!*.ipynb' → hors carnets, seuls COURSE_CATALOG.generated.*, _quarto.yml et le README.md de la série ; aucun fichier de dépendances
un fichier de dépendances dans 04-Vision git ls-tree -r origin/main -- …/04-Vision/ → 14 .ipynb + 1 README.md, aucun requirements.txt

Le carnet promettait donc une garantie de reproductibilité (un pin) qui n'existait nulle part : une ré-exécution sous une autre version de libreyolo produirait 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 :

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 :

Projet de dix mois : libreyolo est jeune ; la version réellement utilisée est affichée par la cellule d'import (1.6.0) et figée par les sorties committées — le paquet n'est déclaré dans aucun fichier de dépendances du dépôt : 04-Vision n'en porte pas, contrairement à 02-ML-Cours. C'est donc la sortie committée qui fait foi, et une re-exécution sous une autre version doit re-committer les sorties.

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_count et les outputs des cellules de code sont inchangés — le diff porte sur une cellule markdown, ce qui est vérifiable sur le git diff.

Gardes locales passées sur le fichier modifié :

Garde Résultat
check_cell_source_parses.py scanned: 1 notebook(s), findings: 0 — rc=0
check_c2_compliance.py --path <nb> C.2 Compliance Check: 1/1 notebooks compliant / All clear! — rc=0
git diff --stat 1 file changed, 1 insertion(+), 1 deletion(-)

Interaction avec #19468 (renommage en cours)

#19468 (ouverte, dirty) renomme ce carnet 4.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 main et ce résiduel est le dernier point nommé, mais Closes n'est pas employé — See #18403.

See #18403
See #19591

🤖 Generated with Claude Code

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>
@github-actions

github-actions Bot commented Oct 6, 2026

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

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

✅ 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 factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Oct 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 Oct 6, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 11.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 8.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 14.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 7.0s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 87.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 8.9s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 49.4s

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

@jsboige

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 19592
head: fcd9621
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 766debb2d582a6fd4035df3f19c240029bdd25e159688125833dd33dabb66c65
diff-files: 1
diff-additions: 1
diff-deletions: 1
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19592
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit d997c0c into main Oct 7, 2026
94 of 95 checks passed
@jsboige
jsboige deleted the fix/18403-libreyolo-version-prose branch October 7, 2026 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants