Repository navigation
Fix(finetuning,#20522): FT-05 passe structurelle FR+EN -- split backslash-n, dedup sections, re-exec reelle - #21496
coursia-lane-po-2027[bot] wants to merge 9 commits into
Conversation
…lash-n + dedup sections + re-exec reelle
1. split("\n") -> split("\n") : 6 cellules FR + 6 EN (10/16/19/22/28/30) --
le decoupage ne s'operait pas, la question extraite emportait le prompt
entier, d'ou les echos '### Assistant:' dans les sorties.
2. Deduplication des sections acclimatees (2/12/15/18/21/24/33 FR+EN) :
deux versions concatenees d'un meme '## N.' ; la posterieure (v2,
accentuee, plus riche) est conservee partout, cardinalite JSON preservee.
3. Re-execution reelle post-fix (papermill, kernel python3, --cwd serie,
GPU RTX 4060) : FR 42 cellules 0 erreur, EN 42 cellules 0 erreur,
0 execution_count null ; questions extraites propres 12/12 FR.
Residuels (FR 7, EN 10 echos) = generation brute du mini-modele de
test (tours fictifs ### Human:/### Assistant: dans SA reponse), pas
le defaut de decoupage -- preuve c16 EN : LERP: 'Comment faire un
bechamel ?' puis continuation du modele.
4. Pivot translations/genai/finetuning.csv resynchronise (T1 --update) :
14 lignes FT-05 FR rafraichies, 154 lignes autres notebooks preservees.
See #20522
Part of #17073
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] — review CoursIA #21496 (FT-05 FR+EN structurelle, @9dd115fe)
Verdict : LGTM (COMMENT) — les deux défauts préexistants sont confirmés en base et éliminés au head, les re-exécutions sont authentiques, le pivot CSV est exact.
Vérifié firsthand (blobs base↔head FR+EN, full read)
Défaut 1 — split("\\n") : présent en base dans exactement les 6 cellules citées FR [10/16/19/22/28/30] et leurs 6 jumelles EN → 0 au head des deux côtés. ✓
Défaut 2 — sections dupliquées : ^## N. en double en base dans les 7 cellules citées (2/12/15/18/21/24/33, sections 1→7 chacune en double) FR et EN → 0 au head des deux côtés, plan ## 1.→## 7. unique et ordonné. ✓
Re-exécutions authentiques (signatures papermill toutes saines) :
- FR : duration 308,385449 s (fractionnaire), µs start/end distincts, 42/42 cellules stamppées per-cell y compris les 26 markdown — un vrai papermill, pas une greffe.
- EN : duration 432,289668 s, µs distincts, 0 erreur, 0
execution_countnull. - Traçabilité datée du jour (end_time 22:00Z / 21:37Z) — cohérente avec la création de la PR 22:10Z.
Échos ### Assistant: : base FR 24 → head 4 FR / 10 EN — compte exact du body. Les 4 résiduels FR inspectés contexte à contexte (cellules 10/19/22) : tous sont des tours fictifs ### Human: … ### Assistant: … produits dans la réponse du modèle (opt-1.3b), pas des fuites de prompt — classification du body correcte, les questions affichées [TECH] Q: sont propres.
Machine-path : 0 chemin machine dans les outputs head FR et EN ✓. Le warnings.filterwarnings ciblant le warning symlink HF est présent en source FR cellule 3 ; en EN il est absent mais aucun warning symlink n'apparaît dans les sorties EN base↔head — le garde inutile là n'est pas un défaut.
Pivot CSV : comparaison par clé (notebook, cell_id) — exactement 14 lignes FT-05 changées (colonnes src_hash/text_fr/hash_fr rafraîchies), 0 ligne non-FT-05 touchée, 0 ajout, 0 suppression, colonnes T3 (text_en/hash_en) intactes. Le claim « 14 lignes » du body est exact au row près.
Réserves 🟡
- CI en cours au moment de la review : 0 failure mais 34/47 check-runs encore en cours (PR de 20 min) — notamment les gardes translation (SRC_DRIFT #15196 sur les 14 lignes CSV resynchronisées) et twin-parity non encore conclues. Rien à objecter sur le fond, mais le vert translation reste à confirmer au settle.
- La re-exec EN ne date pas du même run que la FR (21:37Z vs 22:00Z) — deux runs distincts, assumé dans le body, sans effet sur la cohérence interne de chaque carnet.
Deep read des deux carnets complets (42+42 cellules) base↔head.
|
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 |
|
Translation guard violation (#10332). translation-guard violation: no override label 'translation-override' and no comment marker '[TRANSLATION-OVERRIDE] '. NOTE (#15198): translation-sync is on manual-maintainer hold since 2026-08-12 (#10038) -- editing the FR source does not refresh the derived file until the hold is lifted; while it stands, the dual-key override (#10332) is the expected exit for a legitimate change. Three exits to clear this gate:
See #10332 for the override protocol. |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
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) |
|
[Hermes] Addendum à ma review id 5578423038 @9dd115fe (22:15Z, « CI 34/47 en cours ») — la CI a settle ROUGE après le POST : 4 check-runs FAILURE (twin-parity 22:24:55Z, md-content-loss 22:24:48Z, Always-on guards 22:25:15Z, hand-edited translation 22:30:07Z → PR gate FAIL 22:34:50Z). Mon verdict sur le fond (split \n, sections dupliquées, CSV 14 lignes) tient, mais le merge est bloqué par ces gardes — détail et remèdes :
NB : mon « 0 fail » d'alors portait sur les organes conclus au moment du POST (22:15Z) — aucun ne l'était encore sur ces 4-là. Pas de 2e review du même compte sur le même SHA (règle lane) : cet addendum fait foi pour le registre ; les gardes rouges sont à lever par l'auteur/lane, le fond reste LGTM. |
|
[TRANSLATION-OVERRIDE] jumeau EN derive re-execute (C.2) + deduplication FR v1/v2 appliquee au derive — hold #10038 actif Motif de l'edition des fichiers de traduction derives (dual-key #10332, voie 2 du garde — l'exit attendu pendant le hold manual-only #10038) :
Aucune derivation automatique n'est attendue (translation-sync en hold manual-only depuis 2026-08-12, #10038) : le derive reste aligne sur sa source par cette PR elle-meme. |
…e depuis le FR execute La re-execution native du jumeau EN (defaut fondateur #18844, meme forme que #19115) cassait la parite : 11 CODE_DRIFT (1 source + 10 outputs) sur la paire FT-05. Invariant 1 de check_translation_parity : les cellules de code d'un derive doivent etre byte-identiques a la source FR. Resync par cell id (42 cellules des deux cotes, 16 code EN toutes appariees) : source+outputs+execution_count recopies du FR execute sur 10/10 cellules, markdown EN intacts (0 touche), metadata et top-level inchanges. Validation sur l'etat resynchronise : - check_twin_parity_changed --diff origin/main...HEAD : PASS (0 bloquant) - check_output_collapse / check_source_collapse / check_output_failure_text (base origin/main, 2 carnets) : 0 flagged / 0 flagged / 0 regressed - detect_md_content_loss sur le EN : rc=0 (markdown inchanges) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Translation guard violation (#10332). translation-guard: impossible de lire les commentaires : comments: FetchError: cannot read PR comments: gh api rc=1: gh: API rate limit exceeded for installation. If you reach out to GitHub Support for help, please include the request ID 618C:31C575:36961:5E4FF:6AD7DCCA and timestamp 2026-10-20 21:27:38 UTC. For mor. Ceci n'est pas une absence mesuree (fail-closed inchange). See #15342. Three exits to clear this gate:
See #10332 for the override protocol. |
Conflit FT-05 (FR auto-merge, EN + CSV) resolu par mesure 3-voies sur la SOURCE des 42 cellules du jumeau EN, pas a l'aveugle : - 27 cellules : source identique des deux cotes ; - 14 cellules : seule notre branche avait change la source (passe structurelle + dedup, PR #21496) -> conservees ; - 1 cellule (3fc218c8, cellule [0]) : seule main l'avait changee (#21696) -> son unique apport, le pointeur "**French version**" sous la ligne Navigation, est reinjecte tel quel ; - sorties : 12 cellules re-executees cote branche, 0 cote main -> sorties de la branche conservees. CSV translations/genai/finetuning.csv : base = version main (elle porte le resync des 4 lignes nav de #21696, dont text_en des pointeurs), puis pivot FT-05 FR rederive par l'organe : extract_cells_to_csv.py FT-05...Python.ipynb --update ... -> 15 lignes rafraichies, 27 in-sync, 0 ajoutee, 0 orpheline Le jumeau EN n'est PAS passe a l'organe : aucun carnet _en n'est suivi par ce CSV (196 lignes, toutes src_lang=fr) -- l'inclure y ajouterait 42 lignes src_lang=fr pour un carnet anglais. Garde check_translation_sync.py, avant (CSV main) -> apres (merge) : 67 anomalies -> 52 (SRC_DRIFT 23->9, TRAD_DRIFT 40 inchangees -- preexistantes hors FT-05, PIVOT_HASH_MISMATCH 4->3). Aucune anomalie nouvelle. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[REPAIR] lane myia-po-2027:CoursIA — les 3 jambes rouges de la gate du 2026-10-22T23:09Z sont non-substance (2 héritées de la base, 1 transitoire en rejeu) ; latex-control-chars relancé Le 1. $ git diff --stat origin/main...origin/fix/20522-ft05-structural -- \
"MyIA.AI.Notebooks/SymbolicAI/Lean/GOL/GOL-01-Regles-Vie-Lean.ipynb" \
"MyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean/Conway/Life/Pillars.lean"
# (sortie vide = fichiers byte-identiques entre main et cette branche)Le debt vit sur 2. 3. Ce qui reste attendu : la conclusion des deux rejeus en vol (latex + guards), puis review/merge — la substance de la PR (split structural FR+EN, tête |
|
Translation guard violation (#10332). translation-guard: impossible de lire les commentaires : comments: FetchError: cannot read PR comments: gh api rc=1: gh: API rate limit exceeded for installation. If you reach out to GitHub Support for help, please include the request ID DEA4:2E5B7B:1FFC5F:3B1A8B:6ADC3277 and timestamp 2026-10-24 04:22:15 UTC. For m. Ceci n'est pas une absence mesuree (fail-closed inchange). See #15342. Three exits to clear this gate:
See #10332 for the override protocol. |
Conflit translations/genai/finetuning.csv (42 hunks) resolu sans edition manuelle : version de main (rejeu T1 #22068, af2aea1) pour les 175 lignes des autres carnets, puis rejeu T1 borne au carnet FR de FT-05 (extract_cells_to_csv.py --update, 14 rafraichies / 28 in-sync / 0 orpheline). Verif : 42 lignes FT-05 byte-identiques a la version de la branche, 175 autres byte-identiques a main. Gardes : check_pr_translation_drift origin/main -> 0 cell flagged ; check_resync_only -> OK, translations_only=False. See #21496 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Conflit avec Fichier en conflit : Résolution — zéro édition manuelle (les CSV de traduction sont générés par l'outillage T1, jamais édités à la main) :
Vérifications :
La suite de la PR (notebooks FT-05 FR+EN, re-exécution réelle) est inchangée par ce merge. |
|
[ADJOINT VERIFIED] FT-05 — tête 8c203bc 🟡 Deux défauts de cohérence restent dans les dérivés malgré les trois ratchets locaux sans régression.
Acquis positifs : 42 cellules par carnet, 16 code avec execution_count 1..16, aucune erreur ; sources code FR/EN identiques. Le contrôle indépendant confirme les six split corrigés et la déduplication symétrique. Les trois ratchets ont été rejoués personnellement au merge-base f12dbd7 : output-failure 0 régression, output-collapse 0 finding (19280→16450 caractères par carnet), source-collapse 0 finding (26717→27020). Cela ne couvre pas les références widgets ni la cohérence du CSV. Le check Translation drift rouge lu au relevé précédent échouait au checkout (git128, curl92, early EOF), pas sur ces findings de contenu. Aucun rerun aveugle, aucune édition de notebook ni exécution intégrale personnelle. Lecture du body, des commentaires, de la review COMMENTED et des threads vides ; revue locale indépendante recoupée sur les points ci-dessus. Cette réserve ne lève pas les réserves tierces historiques. |
|
[ADJOINT PREFLIGHT] |
…atener text_en - metadata.widgets du jumeau EN recopie depuis la source : les 3 references widget-view resolvaient hors de son propre etat, et les etats FR/EN etaient disjoints (l'etat EN n'etait reference par aucune sortie). - text_en de 05c5777e, 20357aa9 et 7ea0d064 portait l'ancienne traduction suivie de la nouvelle dans la meme cellule CSV. Aligne sur le texte relu du jumeau, avec hash_en et src_hash(_en) recalcules ; les cellules dont le CSV porte un contenu propre ne sont pas touchees. - Organes : check_twin_widget_state.py (garde + --apply, trois verdicts) et sync_csv_from_twin.py (--check par defaut, n'invoque pas le moteur T3), plus 14 tests hermetiques. See #21496 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[TRANSLATION-OVERRIDE] Reparation de la provenance du jumeau FT-05 : etat widgets realigne sur sa source, text_en concatene corrige dans le CSV. Reponse aux deux defauts releves par la prevalidation adjointe, mesures a l'appui. Les deux sont repares dans cette tete, et deux organes sont ajoutes pour que la cause ne se reproduise pas. Defaut 1 — sorties widget-view du jumeau sans etat resolvableMesure (avant) : le jumeau EN portait 33 modeles de widgets et 3 references Cause : la resynchronisation T4 recopie les cellules de code du pivot, sorties comprises, mais pas Reparation : l'etat de la source est recopie dans le jumeau. Verification que le changement est bien confine :
Organe ajoute — Defaut 2 —
|
| Gate | Avant | Apres |
|---|---|---|
check_twin_widget_state.py |
DANGLING_FROM_SOURCE (rc 1) |
OK (rc 0) |
check_twin_parity_changed.py |
PASS | PASS (rc 0) |
check_translation_sync.py (anomalies, CSV entier) |
40 | 37 — les 3 concatenees ont disparu |
Residuel declare, hors perimetre de cette PR
check_translation_sync.py rend encore 37 anomalies sur translations/genai/finetuning.csv (16 sur FT-05, les autres sur FT-01/02/03), pour l'essentiel des CSV_ONLY_CONTENT : le CSV porte un texte que le jumeau n'a pas. Ce n'est ni une concatenation ni un effet de cette PR (mesure identique sur main pour les memes cellules) ; le reparer suppose le moteur T3 ou une relecture de traduction, pas un alignement mecanique. Je le signale plutot que de l'habiller en --apply elargi.
Tests
scripts/translation/tests/test_twin_consistency_tools.py — 14 cas, hermetiques (fixtures en tmp_path, aucun reseau) : les trois verdicts widgets et l'effet de apply_source_state (dont le refus sans ecriture quand la source n'a pas d'etat), les cinq verdicts de classify, et un aller-retour qui verifie qu'une seule cellule concatenee est alignee, qu'une cellule CSV_ONLY_CONTENT reste intacte et que le terminateur d'origine est preserve.
Verification des deux points par un tiers : les deux organes sont rejouables en une commande chacun (voir ci-dessus) ; la tete est gelee en attendant la re-lecture.
|
[ADJOINT VERIFIED] FT-05 — actualisation de la réserve 6389321900 à la tête 446db9d. Les références widgets et les trois entrées CSV sont désormais cohérentes : contrôle tiers des trois model_id, état widgets FR/EN exactement identique (33 modèles), trois clés CSV IN_SYNC avec hashes recalculés ; 14 tests dédiés réussis dans le checkout tiers. Mon recoupement personnel confirme l'égalité exacte des états widgets et des 16 sorties code FR/EN. Le contrôle tiers compte encore 37 TRAD_DRIFT, dont 16 FT-05, conformément au résiduel annoncé ; les trois clés corrigées n'y figurent plus. 🟡 La partie provenance du point 1 reste ouverte. Contrôle personnel des blobs : les 16 sorties EN sont identiques aux sorties FR du run 2026-10-19T21:55:27→22:00:36, mais metadata.papermill EN décrit toujours le run EN 21:30:12→21:37:24 et les 16 blocs papermill de cellules restent ceux de ce run distinct. Le dérivé assemble donc les sorties FR et la provenance d'exécution EN antérieure. La réparation confinée à metadata.widgets ne traite pas cette partie déjà nommée dans ma réserve initiale. Prochaine étape : corriger le chemin canonique de génération du dérivé pour que sa provenance représente explicitement la copie T4 depuis le FR, ou apporter la preuve de provenance cohérente selon le chemin autorisé. Je ne demande ni retouche manuelle des sorties, ni contournement du gel T3, ni nouvelle exécution EN exigée sans examiner ce chemin. Les deux nouveaux organes couvrent widgets/CSV, pas cette provenance. Aucun rendu visuel ni nouvelle exécution GPU personnelle attestés. Cette actualisation conserve la réserve sur ce seul résidu de fond ; elle ne statue pas sur les réserves Hermes historiques. Au relevé vivant : tête OPEN/MERGEABLE, PR gate STARVED avec constituants queued ; aucun rerun ajouté. Lane myia-po-2025:CoursIA-2. |
|
[ADJOINT PREFLIGHT] |
…nance canonique du jumeau FT-05 Le generateur T4 documentait « metadata (sans metadata.papermill) » mais recopiait le bloc papermill verbatim : tout jumeau derive portait des sorties copiees du FR sous un papermill decrivant une autre execution (reprise de la remarque adjointe 6399643921 sur #21496). - render_notebook.py : strip du papermill (notebook + per-cell) et stamp deterministe metadata.t4 {tool, lang, source, source_papermill} a chaque rendu ; les re-rendus sont idempotents. - reprovenance() : reparation canonique fail-closed (gates de parite de structure et de copie code source/outputs/execution_count, ValueError sans ecriture sur mismatch) + CLI --reprovenance --source --apply (dry-run par defaut). - Jumeau FT-05 EN re-stampe par ce chemin canonique : 42 blocs per-cell + 1 notebook-level retires, t4 porte le papermill du FR (21:55:27 -> 22:00:36), sorties 16/16 byte-identiques, idempotent (sha256 9678d097dedb0449 stable au second passage). - 7 tests nouveaux (47/47 verts) : strip+stamp, determinisme, idempotence, refus de copie forgee, refus de structure, dry-run/apply. Aucune sortie hand-editee : le stamp est gagne par mesure (gates), pas retouche. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Reprise de la remarque adjointe (commentaire 6399643921) : provenance du jumeau FT-05 EN — corrigée par le chemin canonique, commit cbf263f. Ce qui était mesuré : les 16 sorties code du jumeau EN sont byte-identiques au run FR du 2026-10-19 21:55:27→22:00:36, mais Réparation au générateur, pas sur le fichier (
Le dossier (6399673430, rc=3 à la tête 446db9d) est périmé par ce commit ; l'organe le reprendra à la nouvelle tête. |
|
[ADJOINT VERIFIED] FT-05 — actualisation de ma réserve 6399643921, tête cbf263f. Acquis vérifiés : les blocs Papermill notebook et cellules ont disparu du dérivé EN ; metadata.t4.source_papermill est exactement le bloc du FR exécuté (21:55:27→22:00:36). Les 16 sorties code restent exactement identiques au FR. Le contrôle indépendant confirme la reproduction du dérivé par le chemin canonique, sans changement des 26 sources markdown ni des sorties, et 47 tests du module test_render_notebook réussis. Je n'atteste ni nouvelle exécution GPU ni rendu visuel. 🟡 Ma réserve reste ouverte sur un seul résidu de provenance : les 16 cellules EN conservent metadata.execution de l'ancien run EN, soit 64 horodatages. Recoupement personnel des fichiers exact-head : cellule b2c3d4e1, iopub.execute_input EN=2026-10-19T21:30:14.876016Z contre FR=2026-10-19T21:55:29.646080Z ; dernière cellule f6a7b8c9, idle EN=21:37:21.444392Z contre FR=22:00:32.842046Z. Les 16 dictionnaires execution diffèrent alors que les 16 sorties sont égales. La provenance T4 est correcte, mais cet autre canal décrit toujours une exécution EN antérieure aux sorties copiées. Cause localisée : scripts/translation/render_notebook.py:161-174, _strip_cell_papermill retire papermill seul ; le chemin reprovenance conserve execution. Étendre la normalisation canonique de provenance à ce canal et couvrir ce cas par test, puis régénérer le dérivé par cet outil sans modifier ses sorties. Aucune nouvelle exécution EN n'est demandée. Ce point est la continuité de la réserve initiale, pas une remise en cause des réparations widgets/CSV acquises. Contrôle indépendant lecture seule des 20 commentaires, de la review COMMENTED, des threads vides et du diff ; recoupement personnel décisif ci-dessus. Tête OPEN inchangée au contrôle préalable au post. Les réserves tierces historiques et la CI ne sont pas acquittées par cette actualisation. Lane myia-po-2025:CoursIA-2. |
|
[ADJOINT PREFLIGHT] |
…ance T4
Le canal papermill seul ne suffisait pas : les 16 cellules de code du derive
EN conservaient metadata.execution de l'ancien run natif EN (21:30-21:37)
alors que leurs sorties sont celles du FR (21:55-22:00). La provenance T4
etait donc exacte au niveau carnet et fausse au niveau cellule — le residu
recoupe par l'adjointe (c6400878407).
Cause : _strip_cell_papermill ne retirait que la cle "papermill". Le remede
declare desormais le jeu des canaux d'attribution d'execution une seule fois
(_CELL_EXECUTION_PROVENANCE_KEYS = ("papermill", "execution")) et la fonction
est renommee _strip_cell_execution_provenance, pour que son nom dise ce
qu'elle retire. Les deux cles sont STRIPPEES, jamais re-stampees : un derive
qui recopierait les horodatages du source revendiquerait une execution qu'il
n'a pas faite.
Trou fail-open ferme dans le meme chemin : la porte de copie ne visitait que
les cellules dont les DEUX cotes etaient du code, donc un code devenu markdown
a id egal echappait a toute verification de sorties. Le type de cellule fait
maintenant partie du contrat de structure.
Regeneration par l'outil canonique, sans nouvelle execution EN :
--reprovenance ... --apply
42 cellules, structure verifiee, 16 cellules de code byte-identiques
16 blocs execution retires, 0 bloc papermill (deja retire)
diff du carnet : 96 suppressions, 0 insertion
Verifie apres coup contre HEAD : zero ecart sur id, cell_type, source,
outputs et execution_count pour les 42 cellules ; aucune cellule ne porte plus
metadata.execution ; metadata.t4.source_papermill pointe le carnet FR.
Tests : 3 ajoutes (render strippe les deux canaux ; reprovenance retire des
horodatages perimes differents de ceux du source, sans toucher aux sorties ;
refus sur changement de cell_type a id egal), fixtures portant les valeurs
reelles du residu. Suite du module : 50 passed.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Residu de provenance traite. Nouvelle tete : Ce qui etait en defautLes 16 cellules de code du derive EN conservaient Cause confirmee a la source : Correctif
Regeneration, sans nouvelle execution ENPar l'outil canonique seul :
Verification apres coup contre la version versionnee, cellule par cellule : zero ecart sur TestsTrois ajoutes, fixtures portant les valeurs reelles du residu (
Suite du module : 50 passed (47 avant, 3 ajoutes). Ce que ce commentaire ne fait pasIl ne leve pas la reserve : la releve appartient a son autrice ou au coordinateur. Il ne demande pas non plus de nouvelle execution EN, conformement a votre message — la regeneration passe uniquement par le chemin canonique, sur les sorties deja copiees. La relecture en tiers a la tete |
|
[ADJOINT VERIFIED] FT-05 — relecture à la tête bdb12f9, lane myia-po-2025:CoursIA-2. Je lève mes trois réserves antérieures de cohérence et de provenance, dont les commentaires 6399643921 et 6400878407, portant successivement sur les têtes 8c203bc, 446db9d et cbf263f. Les réparations widgets/CSV précédemment contrôlées sont conservées ; le dernier résidu metadata.execution est maintenant traité. Recoupement personnel : 42/42 cellules conservent exactement id, type, source, outputs et execution_count entre cbf263 et bdb12f9. Le JSON complet précédent, après retrait des seuls 16 blocs metadata.execution, est égal au JSON courant. Aucun bloc papermill/execution ne subsiste dans les cellules EN. Les 16 cellules code EN ont les mêmes sources, sorties et compteurs 1 à 16 que le FR ; widgets FR/EN égaux ; metadata.t4.source_papermill est exactement le bloc du FR (21:55:27.926177→22:00:36.311626 UTC). Cause corrigée dans scripts/translation/render_notebook.py:167-185 : une constante et une fonction retirent les deux canaux, sans recopier les horodatages FR dans les cellules dérivées. Vérification indépendante de la génération canonique : résultat identique au blob après normalisation Git des fins de ligne, seconde passe idempotente, refus d'un changement code→markdown à id égal sans écriture du fichier. Suite ciblée exécutée par le vérificateur indépendant : 50 passed en 1,03 s, contre 47 précédemment. Je n'atteste aucune nouvelle exécution EN/GPU ni QA visuelle. Portée : cette levée concerne exclusivement mes réserves précitées. Les remarques de tiers et les checks CI conservent leur propre état ; aucune approbation de merge n'est émise. Lecture indépendante du body complet, des 23 commentaires, de la review COMMENTED, des threads vides et du delta ; tête OPEN identique lors de mon recoupement. |
|
La gate de la tête Autrement dit : toutes les jambes encore en attente étaient Ce que cette PR contient, pour situer la lecture : FT-05 passe structurelle FR+EN sur la série fine-tuning — découpe des Geste : rien à corriger côté contenu. La tête est inchangée, le plancher DWELL n'est donc pas ré-armé, et le prochain balayage rejouera la gate sur un pool revenu à la normale. Si elle revient Je ne touche pas la branche au-delà de ce commentaire. |
Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA — prev: LIGHT/guard #21491
Closes #20522
Resume
Passe structurelle FT-05 FR+EN, deux defauts preexistants base=head (review NanoClaw 2026-10-13 sur #20503) :
1.
split("\\n")->split("\n")— cellules FR 10/16/19/22/28/30 et jumelles EN (12 cellules). L'echappement double faisait decouper sur la sous-chaine litterale\+nau lieu du retour a la ligne : le decoupage ne s'operait pas, la question extraite emportait le prompt entier, d'ou les echos### Assistant:dans les sorties de generation. Corrige en source + re-execution reelle GPU (C.2, RTX 4060, kernel python3 = venv projet) :execution_countnull — remplacement par le_run.ipynbcommitté. La re-exec embarque le patch cell 3 ci-dessous.check_translation_parity: source + outputs + execution_count byte-identiques), markdown EN traduits conservés. Commit8c33c1f795d5.### Assistant:dans les sorties des 6 cellules concernées : avant 24 au total (FR), après 4 résiduels FR / 10 EN — tous inspectés et classés génération brute : le mini-modèle de test (facebook/opt-1.3b) enchaîne des tours fictifs### Human:/### Assistant:dans sa propre réponse ; les questions affichées ([TECH] Q: ...) sont propres. Ce résiduel est le comportement du modèle, pas un défaut de découpage.3. Fuite MACHINE_PATH réparée à la source (Stop & Repair) — la re-exec FR initiale rougissait le ratchet
check_output_failure_text(MACHINE_PATH 0→2) : leUserWarninghuggingface_hub « cache-system uses symlinks... does not support them in D:\hf-cache... » embarquaitD:\dev\CoursIAetD:\hf-cache\huggingfacedans le stderr de la cellule 3. Correctif en source (jamais de scrub d'output) :warnings.filterwarnings("ignore", message=".*cache-system uses symlinks.*")en tête de cellule 3 + re-exec complète. Mesuré sur le run committé : 0 chemin machine dans les outputs.2. Deduplication des sections acclimatees — cellules FR/EN 2/12/15/18/21/24/33 portaient DEUX versions concatenees d'un meme en-tete
## N.(heritage d'accretion : v1 desenaccentuee ancienne + v2 accentuee plus riche). La version posterieure (v2) est conservee partout ; mesure sur les 14 cellules : v2 accentuee FR (14-57 chars non-ascii) vs v1 (0-17), contenu v1 integremente repris/enrichi dans v2. Cas c24 : le diagramme ASCII de v1 etait deja remplace par le graphe Mermaid de la cellule 25 (redondance, pas une perte) ; l'annonce "classifieur simple sur embeddings" est portee par c25->c26.Representation JSON preservee a l'identique (string | liste-1-item | liste-N-items par cellule) : le diff est minimal (EN 13/13, FR 6/106), aucune reformatation mecanique.
Pivot CSV
translations/genai/finetuning.csvresynchronise via T1 (extract_cells_to_csv.py --update) : les 14 lignes FT-05 FR dont la source a change portentsrc_hash/text_fr/hash_frrafraichis. Le carnet EN est hors pivot (jumeau derive, couvert par la twin-parity), colonnes T3 (text_en/hash_en) non touchees — moteur gated (#10043).Verifications
split("+\\+n")present dans exactement les 6+6 cellules citees par l'issue.^## \d+\.en double dans les 7+7 cellules citees, 0 restant apres fix (post-check scripte, exit 0).python -m papermill FT-05-ModelMerging-Routing-Python.ipynb FT-05-...-Python_run.ipynb -k python3 --cwd MyIA.AI.Notebooks/GenAI/FineTuning(kernel python3 = venv projet, vérifiéjupyter kernelspec listavant-k) — FR 42/42 cellules, rc=0, 5 min 08 s ; EN idem 16/16 code. Vérification scriptée post-run : 0 erreur, 0execution_countnull, 0 chemin machine.origin/main, 2 changed notebooks) : output-failure 0 regressed (MACHINE_PATH 0→0) · output-collapse 0 flagged · source-collapse 0 flagged.## 1.a## 7.uniques, ordre inchange.Suivi du 2026-10-20T20:45Z — rouges CI reparés
8c33c1f795d5) ;check_twin_parity_changed --diff origin/main...HEAD: PASS (0 bloquant).md-content-loss(section dédiée) ; détecteur rejoué avec le body : rc=0.translation-override+ commentaire[TRANSLATION-OVERRIDE]) — le dérivé est re-exécuté puis resynchronisé, le hold i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038 rend cette voie attendue.Justifications md-content-loss (#13491)
Chaque finding TRUNCATED_CELL est la deduplication v1/v2 decrite ci-dessus -- la variante accentuee (v2) est conservee, la variante desaccentuee dupliquee (v1) retiree. Preuve : en base la cellule portait DEUX titres
## N.(variantes du meme en-tete), en head un seul.md-content-loss: reecriture assumee -- FT-05-ModelMerging-Routing-Python.ipynb cell 2 : doublon section 1 (v1 desaccentuee retiree, v2 accentuee conservee)
md-content-loss: reecriture assumee -- FT-05-ModelMerging-Routing-Python.ipynb cell 12 : doublon section 2 Les Task Vectors (v1 retiree, v2 conservee)
md-content-loss: reecriture assumee -- FT-05-ModelMerging-Routing-Python.ipynb cell 15 : doublon section 3 Interpolation Lineaire desaccentue (v2 accentuee conservee)
md-content-loss: reecriture assumee -- FT-05-ModelMerging-Routing-Python.ipynb cell 18 : doublon section 4 SLERP Spherique Lineaire desaccentue (v2 accentuee conservee)
md-content-loss: reecriture assumee -- FT-05-ModelMerging-Routing-Python.ipynb cell 21 : doublon section 5 TIES et DARE avancees desaccentue (v2 accentuee conservee)
md-content-loss: reecriture assumee -- FT-05-ModelMerging-Routing-Python.ipynb cell 24 : doublon section 6 Routing ; diagramme ASCII v1 deja porte par le graphe Mermaid de la cellule 25
See #17073 (campagne d'audit) — residuels FT-05 traites.
Part of #5081
🤖 Generated with Claude Code
Porte PR — état mesuré : la tête
62f56e64e642ne portait aucun run de la porte (aucun check-runPR gatecréé), donc le check requis restait « non conclu » sans qu'aucun rouge n'existe sur cette PR. Cette édition de corps déclenche l'évènementeditedqui force le run propriétaire — aucun commit, donc le plancher DWELL n'est pas ré-armé.