Repository navigation
enrich(genai,#13410): prose interpretative 02-Retrieval-Avance (densite 713 -> 1737) - #16044
Conversation
…te 713 -> 1737) 7 cellules markdown d'interpretation (HyDE, reranking, metriques) ancrees sur les sorties executees. Markdown-only, C.2 exception : 11 cellules code byte-identiques a origin/main, 0 erreur, tous outputs presents. See #13410 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
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)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
…ill + exec-sequence)
Les deux ratchets bloquants rougissaient sur le meme fichier et la meme
cause : le notebook avait ete EDITE sans etre re-execute.
- Exec-sequence : CLEAN->NOT_FROM_1 (1..10 sur main, 2..11 sur la branche)
- Papermill : STALE_BLOCK (bloc metadata identique a main, decrivant
encore le run du 2026-08-20T15:11:56Z)
Re-execution end-to-end via papermill 2.7.0, kernel python3, cwd = dossier du
notebook (la recherche .env du notebook y resout GenAI/.env, sinon la cellule
retombe en mode degrade) :
start 2026-09-13T23:15:21Z -> end 2026-09-13T23:16:46Z, duree 85,3 s,
exception None, execution_count = [1..10] (CLEAN), 10 cellules code,
0 sans sortie, 0 sortie en erreur.
Aucune cellule SOURCE modifiee (0 sur 21) : le diff est integralement
sorties + bloc papermill + sequence d'execution. Les chiffres reproduisent le
tableau du body — BoN difficile 0.67 vs Reflexion 1.00 (+33 pts), facile
sature a 1.00, moyen 0.94 -> 1.00.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Path-collision (organ #13359/#13615)Cette PR #16044 (
|
…ts+prose Re-execution end-to-end via papermill avec CLAUDISH_PROXY_KEY (env transient, jamais dans un fichier). Le code de la cellule 2 exigeait deja qwen3.6-35b-a3b mais le commit parent (e3d0a9a) avait reexecute avec le code AVANT le patch de la cellule 2 (= gpt-4o-mini), laissant des outputs incoherents avec le code. Cette PR aligne les trois faces : - Code cellule 2 (migration claudish) + token budgets (chat/BoN/Reflexion portes a 4096, sinon le modele raisonne et renvoie content=""). - Outputs cellules 7 et 10 : re-mesures sur notre vLLM maison. - Prose cellules 12, 14, 20 : remplace le narratif gpt-4o-mini par les chiffres Qwen maison et expose le resultat : saturation 1.00 partout, frontiere Snell invisible (effet "recalibrer au besoin" du review point). Mesure (qwen3.6-35b-a3b, 6 ech par probleme, 3 prob par bucket) : facile/moyen/difficile : pass@1..6 = 1.00 partout Reflexion K=4 : 1.00 / 1.00 / 1.00 Comparaison vs run gpt-4o-mini (memes problemes) : moyen 0.94 -> 1.00, difficile 0.67 -> 1.00 La superiorite du Qwen maison est mesuree firsthand, elle valide le recalibrage du review point jsboige ("4o-mini est tout autant obsolete, et notre modele maison qwen devrait etre superieur et preferable"). Reste a enrichir la suite (MATH/AMC, logique multi-pas - Exercice 1) pour faire reapparaitre la frontiere compute-optimale BoN vs Reflexion ; le notebook reste valide tel quel pour la methodologie. See #16044
jsboige
left a comment
There was a problem hiding this comment.
[adjoint — preflight COMMENTED] Vérification exact-head b9006373a8a7d47b2b2ded9420de7c344b75fb64
Relecture effectuée : body complet, commentaires, reviews, surface inline, diff complet du notebook, checks latest-wins et check_unaddressed_nits.py 16044.
- Scope : enrichissement pédagogique markdown-only de
02-Retrieval-Avance.ipynb, +217/−0. - Le remplacement de la tranche initialement réclamée sur 04-Tokenisation est déclaré et motivé dans le body, pas silencieux.
- B.0 : rc=0, aucune review et aucun thread inline ; commentaires limités aux avis automatisés.
- CI : 73 checks verts ; les quatre skips sont routiniers, sans échec requis.
- Séquencement : #15610 et #16049 touchent aussi ce notebook. Le chevauchement avec #16049 est une composition connue : merger #16044 avant #16049, puis vérifier que le diff de #16049 se réduit à son propre garde. Le chevauchement #15610 doit également être recontrôlé par le coordinateur avant signature.
Recommandation adjoint : READY, avec #16044 à séquencer avant #16049 et contrôle de collision #15610. Lecture B.0 finale et merge réservés à myia-ai-01:CoursIA.
…sans escalade sur vide Reparation des trois points de la review ai-01 (CHANGES_REQUESTED au head 0b19d48) : 1. Bucket difficile recompose : 11/17/27/72. Le probleme 49 (vide a tous les budgets testes, redondant avec 17) cede sa place a deux_sept (27), seul candidat du pilote (25+ candidats, N=6) a succes partiel — juste 1 fois sur 6 — donc seul regime ou le pass@k peut monter avec k. Controle _c_deux_sept par enumeration exacte croisee par complementaire (27 + 973 = 1000). Resultat : difficile 0.50/0.58/0.67/0.75 (scaling monotone) et frontiere compute-optimale observable — Reflexion K=4 (0.75) devant BoN@4 (0.67) a budget egal, nommee comme un tirage (section 4, issue #16289). 2. Titre/body/prose : plus aucun chiffre du run anterieur gpt-4o-mini ; les seuls chiffres cites sont ceux de cette execution (markdown reecrit post-exec depuis les sorties reelles, markdown-claims 0 non-ancree). 3. Reexecution in-place papermill : execution_count 1..10, 0 erreur, metadata input/output_path = basename canonique, 1033 s. chat() : une reponse vide est TERMINALE — sonde 2026-09-15 : un enonce vide a 4096 tokens l'est aussi a 8192, et la facade repond 5xx au-dela. L'escalade par doublage fabriquait des minutes de cout par echantillon pour retrouver la meme vide ; supprimee. Les vides sont comptees a part (BoN 12/60, Reflexion 6). Fix Accessoire : global vides dans reflexion_sequentielle (UnboundLocalError latent — le run precedent n'avait jamais atteint cette cellule). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…DING, advisory #11831) Le scan advisory md-hierarchy reprochait +1 HINT-AS-HEADING : le titre de section << ### Note methodologique : ... >> se lit comme un indice (mot-avec- deux-points en position de heading). Demotion en paragraphe gras, forme canonique du scanner. Markdown-only : cellules code et outputs byte-identiques. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…e-exécution in-place (#16054) * fix(genai,#16044): recalibrer 16_Scaling — 3 niveaux gradues + gpt-4o-mini Suite graduee arithmetique / GSM8K / MATH-lite (3 problemes/bucket) pour reveler la frontiere compute-optimale de Snell 2024 sur ce deploiement : - facile : arithmetique 1 etape -> pass@1 = 1.00 (saturation) - moyen : GSM8K 2-3 etapes -> pass@1 = 0.94, pass@2 = 1.00 - difficile: MATH-lite multi-pieges -> pass@1..6 = 0.67 (erreur systematique) Pivot OpenRouter -> OpenAI direct (gpt-4o-mini) : - 70B instruct sature TOUT, pas de relief visible - gpt-4o-mini discriminant : sature les faciles, perfectible sur difficile - Reflexion sequentiel K=4 atteint 1.00 sur difficile (vs BoN pass@4 = 0.67) -> la frontiere BoN/Reflexion apparait sur le bucket difficile, exactement ce que predit Snell et al. 2024. Cellules modifiees : 2 (setup), 3 (chat), 5 (suite graduee + pass@k), 7 (collecte BoN), 10 (Reflexion), 12/14/16/18/20 (markdown reformules avec vrais chiffres observes). Validation : - C.1 : 0 raise NotImplementedError / assert False / 1/0 - C.2 : outputs executes via Papermill kernel python3, transferes depuis output (22-cell) vers source (21-cell, enlevee la cellule parameters parasite). - H.4 : execution end-to-end avec execution_count != null sur les 10 cellules code. - c.1356 preflight : 0 violations structurelles, structure 21-cell preservee. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(genai,#16044): re-executer 16_Scaling end-to-end (ratchets papermill + exec-sequence) Les deux ratchets bloquants rougissaient sur le meme fichier et la meme cause : le notebook avait ete EDITE sans etre re-execute. - Exec-sequence : CLEAN->NOT_FROM_1 (1..10 sur main, 2..11 sur la branche) - Papermill : STALE_BLOCK (bloc metadata identique a main, decrivant encore le run du 2026-08-20T15:11:56Z) Re-execution end-to-end via papermill 2.7.0, kernel python3, cwd = dossier du notebook (la recherche .env du notebook y resout GenAI/.env, sinon la cellule retombe en mode degrade) : start 2026-09-13T23:15:21Z -> end 2026-09-13T23:16:46Z, duree 85,3 s, exception None, execution_count = [1..10] (CLEAN), 10 cellules code, 0 sans sortie, 0 sortie en erreur. Aucune cellule SOURCE modifiee (0 sur 21) : le diff est integralement sorties + bloc papermill + sequence d'execution. Les chiffres reproduisent le tableau du body — BoN difficile 0.67 vs Reflexion 1.00 (+33 pts), facile sature a 1.00, moyen 0.94 -> 1.00. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(genai,#16044): recalibrer 16_Scaling sur Qwen maison — code+outputs+prose Re-execution end-to-end via papermill avec CLAUDISH_PROXY_KEY (env transient, jamais dans un fichier). Le code de la cellule 2 exigeait deja qwen3.6-35b-a3b mais le commit parent (e3d0a9a) avait reexecute avec le code AVANT le patch de la cellule 2 (= gpt-4o-mini), laissant des outputs incoherents avec le code. Cette PR aligne les trois faces : - Code cellule 2 (migration claudish) + token budgets (chat/BoN/Reflexion portes a 4096, sinon le modele raisonne et renvoie content=""). - Outputs cellules 7 et 10 : re-mesures sur notre vLLM maison. - Prose cellules 12, 14, 20 : remplace le narratif gpt-4o-mini par les chiffres Qwen maison et expose le resultat : saturation 1.00 partout, frontiere Snell invisible (effet "recalibrer au besoin" du review point). Mesure (qwen3.6-35b-a3b, 6 ech par probleme, 3 prob par bucket) : facile/moyen/difficile : pass@1..6 = 1.00 partout Reflexion K=4 : 1.00 / 1.00 / 1.00 Comparaison vs run gpt-4o-mini (memes problemes) : moyen 0.94 -> 1.00, difficile 0.67 -> 1.00 La superiorite du Qwen maison est mesuree firsthand, elle valide le recalibrage du review point jsboige ("4o-mini est tout autant obsolete, et notre modele maison qwen devrait etre superieur et preferable"). Reste a enrichir la suite (MATH/AMC, logique multi-pas - Exercice 1) pour faire reapparaitre la frontiere compute-optimale BoN vs Reflexion ; le notebook reste valide tel quel pour la methodologie. See #16044 * fix(genai,#16044): bucket difficile recompose par la mesure + chat() sans escalade sur vide Reparation des trois points de la review ai-01 (CHANGES_REQUESTED au head 0b19d48) : 1. Bucket difficile recompose : 11/17/27/72. Le probleme 49 (vide a tous les budgets testes, redondant avec 17) cede sa place a deux_sept (27), seul candidat du pilote (25+ candidats, N=6) a succes partiel — juste 1 fois sur 6 — donc seul regime ou le pass@k peut monter avec k. Controle _c_deux_sept par enumeration exacte croisee par complementaire (27 + 973 = 1000). Resultat : difficile 0.50/0.58/0.67/0.75 (scaling monotone) et frontiere compute-optimale observable — Reflexion K=4 (0.75) devant BoN@4 (0.67) a budget egal, nommee comme un tirage (section 4, issue #16289). 2. Titre/body/prose : plus aucun chiffre du run anterieur gpt-4o-mini ; les seuls chiffres cites sont ceux de cette execution (markdown reecrit post-exec depuis les sorties reelles, markdown-claims 0 non-ancree). 3. Reexecution in-place papermill : execution_count 1..10, 0 erreur, metadata input/output_path = basename canonique, 1033 s. chat() : une reponse vide est TERMINALE — sonde 2026-09-15 : un enonce vide a 4096 tokens l'est aussi a 8192, et la facade repond 5xx au-dela. L'escalade par doublage fabriquait des minutes de cout par echantillon pour retrouver la meme vide ; supprimee. Les vides sont comptees a part (BoN 12/60, Reflexion 6). Fix Accessoire : global vides dans reflexion_sequentielle (UnboundLocalError latent — le run precedent n'avait jamais atteint cette cellule). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(genai,#16044): demote la note methodologique en gras (HINT-AS-HEADING, advisory #11831) Le scan advisory md-hierarchy reprochait +1 HINT-AS-HEADING : le titre de section << ### Note methodologique : ... >> se lit comme un indice (mot-avec- deux-points en position de heading). Demotion en paragraphe gras, forme canonique du scanner. Markdown-only : cellules code et outputs byte-identiques. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…te 713 -> 1737) (#16044) 7 cellules markdown d'interpretation (HyDE, reranking, metriques) ancrees sur les sorties executees. Markdown-only, C.2 exception : 11 cellules code byte-identiques a origin/main, 0 erreur, tous outputs presents. See #13410 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2026:CoursIA — prev: MED/tooling #15994
Tranche densite #13410 — GenAI/RAG-et-Memoire-Semantique (02-Retrieval-Avance)
Rotation R6, 9e famille du jour (apres ML, DecInfer, tooling, SMT/Z3, Search, Sudoku, GameTheory, SemanticWeb, GenAI/Texte). Candidat choisi sur mesure LIVE (
pedagogy_density.pysurorigin/main854630a72) : 713 prose/cellule pour 11 cellules code.02-Retrieval-Avance.ipynbHors twin registry (verifie :
grep -rl "RAG-et-Memoire-Semantique" scripts/notebook_tools/twin_pairs.d/= vide) -> aucune rebaseline requise.Substitution vs le claim — a declarer
Le
[CLAIMED]du 2026-09-13 23:15Z nommait deux notebooks :02-Retrieval-Avanceet04-Tokenisation-From-Scratch. Apres lecture,04-Tokenisation-From-Scratcha ete ECARTE : chaque cellule d'enseignement y porte deja sa propre « Lecture du resultat » — l'enrichir aurait produit de la redondance, pas une interpretation manquante. La tranche est donc livree solo sur 02. Le 3e candidat identifie (08-KernelMemory-Hybrid-Search, 886, 14 cellules code sans interpretation suivante) est reporte au cycle suivant : la fenetre ne permettait pas deux notebooks de cette densite.Les 7 lacunes comblees
Enrichissement markdown-only : 7 cellules inserees APRES la cellule de code lue, chacune ancree sur sa sortie executee. Le notebook portait les en-tetes de section mais aucune lecture de sortie — c'est exactement la lacune traitee.
[1]envPyTorch 2.11.0+cpu | device : CPU,Seed : 42, 3 modeles locaux[3]corpus60 documents | 20 themes,24 questions (20 in-corpus, 4 hors corpus)[5]metriquesRecall@3=1.00, nDCG@3=0.6931/log2(2)+1/log2(3) = 1,6309, reel1/log2(3)+1/log2(4) = 1,1309, rapport= 0,693. Recall ignore l'ordre, nDCG non — d'ou sa sensibilite au reranking[9]bi-encoder(60, 384), top-5rag-0 0.517 … overfit-1 0.403 …overfit-1au rang 3, devantrag-1— proximite semantique de surface (vocabulaire validation/generalisation partage), invisible a deux encodages separes[11]HyDEancrear) ; le mecanisme encode le texte genere sans le verifier ; solde = bruit (rag-1 monte, rag-0 recule du rang 1 au 3, kubernetes-0 entre). L'hypothese du papier (Gao 2022 : instruct-model) n'est pas satisfaite parflan-t5-small— expose, pas masque[15]cross-encoderoverfit-13->4, les 3 docsragaux rangs 1-3) mais ne recupere rien (composition du top-5 identique) : structurel, il ne choisit que dans la fenetre recue. Cout = 1 forward par PAIRE -> rappel large/pas cher puis rerank etroit/cher[19]verdictdelta_nDCG -1.000+ hors-corpus-1.000= disparition (nDCG@10 -> 0), pas une baisse ;HyDE + rerankaussi a -1.000 = un reordonnanceur ne repare pas un rappel manquant. Et le signe : hors corpus, baseline = scores positifs faibles (0.254/0.307/0.233/0.278) contre logits negatifs (-6.658/-4.874/-4.719/-4.043) au rerank — la non-pertinence s'ecrit, ce qui fournit le signal de l'exercice 3 (should_abstain)Validation
origin/mainb9006373a)enrich_quality_ci.py --base --headdetect_repeated_prose.pypedagogy_density.py(LIVE, post-commit)Notebook deja execute (
execution_count= 1..11, 0 erreur, toutes les cellules code portent leurs outputs) -> exception C.2 markdown-only, aucune re-execution requise.Honnetete
[5](recompte des metriques) et[19](deux tableaux : regressions + hors corpus) portent une verification manuelle qui ne se raccourcit pas sans perdre l'ancre.md_pct = 57,2 %.-1.000et scores negatifs ne sont pas des defauts du notebook : ce sont ses resultats, deja presents avant cette PR. Aucune sortie de cellule n'a ete touchee (markdown-only).See #13410
🤖 Generated with Claude Code