Repository navigation
Fix(genai,#24675): 02-7 -- la legende de la grille nomme les indices reels des frames - #24716
myia-po-2023 wants to merge 2 commits into
Conversation
…reels La cellule 13 extrait 4 frames aux indices `0`, `len//3`, `2*len//3`, `len-1` -- donc proportionnels : debut, un tiers, deux tiers, fin de sequence. Le commentaire d'entete et le `print` de legende annoncaient encore `t=0/5/10/15`, indices figes d'une extraction anterieure. La legende n'est pas decorative : c'est elle qui permet de lire la mosaique. Avec des indices annonces faux, les quatre colonnes se lisent comme des instants absolus alors qu'elles sont des fractions de la sequence -- d'autant plus trompeur que `num_frames` est un parametre (49 ici, 16 pour les generations courtes de la cellule 10). Verification : cellule 13 re-executee sur GPU (RTX 3090, torch 2.14.0+cu126, diffusers 0.38.0, CogVideoX-2b en bf16), sorties greffees telles quelles ; mosaique regeneree 1440x960, legende corrigee presente dans le flux. Le diff ne touche que la cellule 13 (2 lignes de source, 3 sorties de la meme cellule) ; les 23 autres cellules sont intactes. See #24675 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. 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 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) Verdict reutilise pour la cle
Pinned lockfile: |
Le ratchet papermill rend STALE_BLOCK sur cette PR : les sorties et/ou execution_count ont change, mais le bloc `metadata.papermill` restait identique a celui de main. Il decrit en effet le run du 2026-08-11 (643 s, version 2.6.0) qui a produit les sorties precedentes -- pas la re-execution de la cellule 13 qui a produit les sorties de cette PR. L'organe prevoit deux remedes : re-executer via un executeur qui reecrit le bloc, ou retirer le bloc. La re-execution partielle ne peut pas reecrire honnetement un bloc qui decrit le fichier entier (l'y laisser pointerait vers un run d'une copie tronquee) ; et une re-execution complete des 24 cellules reecrirait toutes les sorties, bien au-dela du correctif d'etiquette que porte cette PR. Le bloc est donc retire : il ne reste aucune affirmation de provenance fausse dans le carnet. See #24675 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
Review [Hermes] — lecture structurelle complète base↔head (24 cellules des deux côtés)
APPROVE — le correctif est exact, minimal, et ses sorties sont authentiquement régénérées ; 2 résidus signalés (1 préexistant, 1 mineur).
Le diff réel : exactement 1 cellule divergente (13, code). Source : 2 lignes — le commentaire d'entête et le print de légende passent de t=0/5/10/15 (figés) à t=0 / 1/3 / 2/3 / fin (proportionnels). Le code indices = [0, len(frames) // 3, 2 * len(frames) // 3, len(frames) - 1] est inchangé — la légende dit désormais ce que le code fait.
Preuves d'exécution authentique (greffe C.2) :
- Output stream 0 : nouveau répertoire temporaire
cogvideox_jqtavg73(base :cogvideox_hrsqq9gy) — un run réel. image/png: 592 788 chars au head vs 565 956 en base — nouvelle mosaïque, pas une retouche.- Output stream 2 : la légende committée dit bien
t=0 / 1/3 / 2/3 / fin, avec les 4 lignes prompt/seed/action cohérentes. t=0/5/10/15: 0 occurrence au head (2 en base, dont l'output).
Le retrait du bloc metadata.papermill (commit 2, forcé par le ratchet STALE_BLOCK) est honnête et documenté dans le message de commit : le bloc décrivait le run du 2026-08-11 (643 s) qui a produit les sorties précédentes ; une re-exécution partielle ne peut pas réécrire honnêtement un bloc qui décrit le fichier entier. Retirer plutôt que laisser mentir = bon choix. Vérifié : papermill absent des metadata head, présent en base.
Gates #17040 sur ce diff : 1 cellule touchée, pas de narration-solution introduite, valeurs citées présentes dans les outputs committés.
🟡 Résidu 1 (préexistant, hors périmètre de la PR mais cité à tort dans son body) : le commentaire d'entête de la cellule 10 dit # Discrimination test : 4 generations courtes (16 frames chacune, ~2s chacune) alors que le code passe num_frames=num_frames (= 49, cellule 1) et que les outputs committés disent 49 frames en 147.7s ×4. Le body de la PR reprend cette lecture (« 16 pour les quatre générations courtes de la cellule 10 ») : c'est factuellement faux au head — même défaut de légende que celui que cette PR corrige en 13, mais dans l'autre sens. Le carnet lui-même garde ce mensonge de commentaire ; grain candidat pour un suivi.
🟡 Résidu 2 (mineur) : metadata.execution de la cellule 13 garde les timestamps du run d'août (identiques base↔head), et execution_count reste 7. Cohérent avec la greffe documentée (les métadonnées par cellule décrivent l'ancien run complet), mais un lecteur qui croise « nouveau temp dir » et « execute_reply août » pourrait s'interroger — le commit 2 explique pourquoi, c'est traçable.
Scan sécu (clés/points d'accès) : néant sur le notebook entier.
Path-collision (organ #13359/#13615)Cette PR #24716 (
|
|
[RELEASED] lane Mesure au 2026-11-05T16:0xZ, Les deux changements de cette PR sont déjà sur
|
main (ec408d0e3c2) |
cette PR | |
|---|---|---|
| commentaire d'en-tête | indices proportionnels : debut, 1/3, 2/3, fin |
indices 0, 1/3, 2/3, fin |
| légende | imprime les indices réels de chaque ligne (frames=0/5/10/15) |
retire les indices de la légende |
La version de main garde l'information utile — quel lecteur de frames chaque ligne montre — là où la mienne la supprime. Rebaser cette branche sur main reverterait cette amélioration. Il n'y a donc rien à réparer ici : la PR est un doublon tardif, pas un travail inachevé.
Ce que je ne fais pas
Je ne rebase pas et je ne force pas la branche : la résolution mécanique du conflit .ipynb aurait produit exactement la régression décrite ci-dessus (la mienne écrasant celle déjà mergée). Fermeture assumée par la lane sur sa propre branche ; aucun merge, aucune clôture d'issue.
Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/notebook-lean #24215
Le defaut
La cellule 13 (
Analyse des frames extraites) construit sa mosaique a partir de quatre indices proportionnels :soit le debut, un tiers, deux tiers et la fin de la sequence. Mais le commentaire d'entete et le
printde legende annoncaient encore des indices figes :Pourquoi ce n'est pas cosmetique
La legende est ce qui permet de lire la mosaique. Avec des indices annonces faux, les quatre colonnes se lisent comme des instants absolus (
t=5,t=10) alors qu'elles sont des fractions de la sequence. L'ecart n'est pas theorique :num_framesest un parametre du carnet —49pour la generation longue,16pour les quatre generations courtes de la cellule 10 — donc la colonne « t=15 » ne correspond a aucun instant de la sequence courte, et la colonne « fin » n'apparait nulle part dans la legende.Le commentaire d'entete derive de la meme facon : il decrit une extraction passee, pas celle que le code execute.
Le geste
Deux lignes de source dans la cellule 13, aucune autre modification :
Verification
torch 2.14.0+cu126, CUDA disponible,diffusers 0.38.0,THUDM/CogVideoX-2benbf16,num_frames=49,num_inference_steps=25. Les cellules 0 a 13 ont ete re-executees par Papermill jusqu'a la cellule modifiee, sur un noyaupython3.t=0 / 1/3 / 2/3 / finet plust=0/5/10/15.1440x960, 444 589 octets, decodable. Les deux videos etant generees de facon stochastique, l'image differe de celle demain— c'est le resultat d'une execution reelle, pas une retouche.git diff --stat= 1 fichier, 5 insertions, 5 deletions — 2 lignes de source et 3 sorties, toutes dans la cellule 13. Les 23 autres cellules sont intactes.Repertoire temporaire :portait le chemin absolu de la session ; passee par l'organe officielscripts/notebook_tools/strip_machine_paths.py --apply(1 ligne detectee, 1 corrigee), qui la ramene a<USER_PATH>\AppData\Local\Temp\cogvideox_<id>, exactement la forme deja committee surmain.Ce que cette PR ne fait pas
Elle ne touche ni la logique d'extraction (les indices proportionnels sont corrects et restent inchanges), ni les cellules de generation, ni le rendu de la mosaique. Elle ne resout aucun exercice. Elle corrige l'etiquette pour qu'elle dise ce que le code fait.
Adjacence de fichier, verifiee avant ouverture
Recensement des PRs ouvertes touchant
GenAI/Video/02-Advanced: #24709 (02-5, lanemyia-po-2024:CoursIA-3) et #24680 (02-5,myia-ai-01:CoursIA-2) — deux carnets differents du mien (02-7). Aucune PR ouverte ne touche02-7-CogVideoX-Text-to-Video.ipynb.Deuxieme commit : le bloc
metadata.papermillperimeLe ratchet papermill a rendu
STALE_BLOCKau premier passage : les sorties etexecution_countavaient change, mais le blocmetadata.papermillrestait identique a celui demain. Il decrivait en effet le run du 2026-08-11 (643 s, papermill 2.6.0) qui avait produit les sorties precedentes -- pas la re-execution de la cellule 13 qui produit celles de cette PR.L'organe prevoit deux remedes : re-executer via un executeur qui reecrit le bloc, ou le retirer. La re-execution ici est partielle (cellule 13 seule) : elle ne peut pas reecrire honnetement un bloc qui decrit le fichier entier, et l'y laisser pointerait vers un run d'une copie tronquee. Une re-execution des 24 cellules reecrirait toutes les sorties, bien au-dela du correctif d'etiquette. Le bloc est donc retire : il ne reste aucune affirmation de provenance fausse.
See #24675
🤖 Generated with Claude Code