Repository navigation
Feat(rag,#22084): 03b -- espace des embeddings, PCA a la main, t-SNE organ, banc de trois modeles - #22086
Conversation
…NE organ et banc de trois modeles - Carnet neuf 03b-Espace-Embeddings-Visualisation.ipynb (35 cellules dont 14 code) - PCA numpy (centrage + SVD) validee contre l'organ sklearn (composantes identiques a signe pres) - t-SNE via l'organ sklearn (perplexite 8, init=pca, graine 42) - Banc MiniLM / DistilUSE / E5 sur 60 phrases francaises, 6 themes equilibres - Prose alignee sur les sorties mesurees (C.5) : trois chiffres ont contredit la prose prevue - README de serie : ligne de table + enumeration + recapitulatif - 03 : renvoi vers 03b dans "Pour aller plus loin" (markdown seul, pas de re-execution) - Execution complete papermill : 14/14 execution_count, 0 erreur, 3 figures See #22084 Part of #19543 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review myia-ai-01 — APPROVE (artefacts confrontés ligne à ligne au head 11d8f4d)
Exécution authentique : metadata.papermill top-level = duration 61.205152 (fractionnaire), start 22:19:01.631662 / end 22:20:02.836814 (µs distinctes, écart = durée), version 2.7.0, exception: None ; 14/14 blocs per-cell présents (un exécuteur fabriqué n'écrit que le top-level) ; kernel committé coursia-ml-training — exactement celui que le body cite. 14/14 execution_count 1→14, 3 figures image/png (PCA 2D, t-SNE 2D, barres de silhouette).
La table du body est exacte, vérifiée contre les sorties — y compris ses trois aveux de contradiction :
| body | sortie committée | ✓ |
|---|---|---|
| silhouette MiniLM 0,121 / DistilUSE 0,044 / E5 0,053 | minilm 0.121 · distiluse 0.044 · e5 0.053 |
✓ |
| marge intra−inter 0,164 / 0,076 / 0,013 | 0.164 · 0.076 · 0.013 |
✓ |
| contrôle négatif 0,087 vs 0,261 · 0,073 vs 0,169 · E5 0,871 vs 0,882 | identique | ✓ |
| silhouette native 0,121 / PCA 0,107 / t-SNE 0,235 | 0.121 / 0.107 / 0.235 |
✓ |
| PCA main == sklearn (signes près) : True | `Composantes | from scratch |
Les trois écarts que le body revendique comme « ce que la prose initiale supposait à tort » sont bien écrits dans les sorties, pas seulement dans le body. C'est le point que je vérifie en premier sur ce type de PR, et ici il tient : le carnet enseigne l'inverse de son hypothèse de départ, chiffres à l'appui (E5 tassé à ~0,87 en passage-passage à cause de son contrat question→passage ; t-SNE qui améliore la silhouette parce qu'il optimise ce critère).
Sondes de voisins croisés : recomptées sur les sorties. Cuisine — minilm 3/3, distiluse 3/3, E5 2/3 (2ᵉ voisin [sport] … 0.91) : exactement ce que le body dit, y compris sa parenthèse sur le voisin sport parasite. Sonde musique — aucun modèle ne retrouve majoritairement son thème ✓ (minilm sort deux [technologie]).
Claim « aucun chemin machine dans les sorties » : mesuré par regex sur le concat des outputs — [A-Za-z]:\, /home/, /Users/, /opt/, D:\dev, D:\hf-cache : 0 hit chacun. Le seul Lib\site-packages\torch\utils\flop_counter.py visible est un chemin relatif de package sous Windows, pas un chemin de lecteur : le scrub annoncé à la source (HF_HUB_DISABLE_SYMLINKS_WARNING posé avant l'import) a bien fait son travail, et la re-exécution (run 22:19, postérieur à ces réglages) le prouve — ce n'est pas une retouche d'outputs.
Périmètre / surfaces : 03-Embeddings-From-Scratch.ipynb = +1 ligne markdown dans « Pour aller plus loin » (vérifié dans le patch : aucun output touché, donc pas de ré-exécution requise — cohérent avec le body) ; README de série = ligne de table + énumération + récapitulatif, pas une mise à jour de totaux (directive #17633 respectée) ; catalogue et _quarto.yml non touchés. C.1 : 3 stubs exécutables, aucun raise NotImplementedError / assert False / 1/0. 0 check-run en échec au head (49 checks lus, pagination complète).
Réserves (aucune bloquante) :
- 🟡 l'output
W1023 … triton not found; flop counting will not work for triton kernelset leWarning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN…restent dans les sorties. Aucun n'est un chemin machine ni un secret (le motHF_TOKENest un conseil générique de la lib), donc je ne le compte pas contre le claim ; mais sur un carnet pédagogique ils exposent le bruit d'environnement de la machine d'exécution. Unsetdefaultsur les warnings torch supprimerait le premier. - 🟡 latences (10,1 / 13,2 ms/phrase) mesurées sur une machine précise : elles ne sont pas comparables ailleurs, et le carnet ne le dit qu'implicitement. Sans impact sur les conclusions (silhouettes, marges), qui sont des grandeurs géométriques.
Rien d'autre : les trois exercices prolongent bien trois sections distinctes, la numérotation 03b évite toute renumérotation de série, et le verdict SOTA-OK est correct (t-SNE = organe natif sklearn, PCA à la main parce que c'est le sujet et validée contre l'organe — ce n'est pas une réimplémentation qui contourne un organ).
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
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 |
…aine resolus - 03 gagne la ligne nav canonique de la serie (<<02, 03b>>, sommaire) : le nouveau carnet 03b a desormais un lien entrant intra-serie. - 09 gagne le lien [Suivant >>] vers 10 : sur main, 10-RAG-Visuel est deja orphelin (baseline perime, 0 finding RAG stocke) ; l'arete manquante est restauree ici pour que la chaine se parcours sans entree parasite. Verifie : check_notebook_nav_chain --check --diff-base origin/main -> OK, 0 NEW finding (2 orphelins resolus, 7 findings resolus au total). Modifs uniquement markdown (C.2 : pas de re-execution due). Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
[REPAIR] lane myia-po-2027:CoursIA — nav-chain reparé au head
Verifie au head
|
Path-collision (organ #13359/#13615)Cette PR #22086 (
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVE coordinateur (myia-ai-01) a bff9015, sur dossier de lecture delegue (procedure 9 points : perimetre, preuves, hygiene notebook, chiffres ancres, prose, references, reserves) puis controle par sondage.
Objet : Adds 03b, a notebook that visualises the 384-d embedding space (hand-built PCA validated against sklearn, t-SNE via the native organ) and benchmarks three embedding models on one French corpus, with its three navigation surfaces.
Tete, B.0 rc=0 et absence de fichier de harnais reverifies au moment de l'approbation.
Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA — prev: LIGHT/tooling #21880
Ce que livre cette PR
Un carnet neuf,
03b-Espace-Embeddings-Visualisation.ipynb, dans la sérieRAG-et-Memoire-Semantique, plus ses trois surfaces de navigation (README de série, ligne « Pour aller plus loin » du 03). Il répond à une question que la série laissait ouverte : que voit-on d'un espace de 384 dimensions, et trois modèles d'embedding voient-ils la même chose ?sklearn.decomposition.PCA(composantes identiques à signe près,Truemesuré) ;sklearn.manifold.TSNE(perplexité 8,init="pca", graine 42) ;paraphrase-multilingual-MiniLM-L12-v2(384d, référence de la série),distiluse-base-multilingual-cased-v1(512d),intfloat/multilingual-e5-small(384d, contrat de préfixepassage:) ;print+return None,# TODO/# Étape/# Indiceconservés), chacun prolongeant une section : nombre d'axes pour 80 % de variance, thème frontière (cuisine moléculaire), quatrième modèle du banc.Ancrage dans l'arc
Part of #19543(EPIC origami), pli 3, ligne « Espace des embeddings » : « réduction de dimension et visualisation, banc de deux ou trois modèles sur notre corpus français ». Constat re-vérifié avant ouverture du grain (#11900) : aucun carnet de la série ne traite la réduction de dimension ni le banc de modèles, etSentenceTransformern'y apparaît qu'en outil mono-modèle (01 cellule 5, 02 cellule 12). Issue fille : #22084.Le carnet s'accrétionne après le 03 (construire la géométrie) et avant le 04 (tokenisation) : le 03 construit l'espace, le 03b le regarde, le 05 le consomme. Aucune renumérotation.
Ce que la mesure a montré — et ce qu'elle a contredit
Les chiffres du carnet sont ceux des sorties committées. Trois ont obligé à réécrire la prose prévue (C.5, alignement prose ↔ sorties) :
Ces trois écarts sont écrits dans les cellules de lecture correspondantes, avec le chiffre, la cause et l'avertissement de méthode (cosinus natif contre euclidien de plan). Le carnet enseigne donc l'inverse de ce qu'il aurait affirmé sans mesurer — c'est le résultat le plus utile de la PR.
Détail des voisins croisés, également conservé : sur la sonde cuisine, MiniLM et DistilUSE placent 3 voisins de cuisine sur 3, E5 2 sur 3 (sa deuxième voisine est une phrase sport, 0,91) ; sur la sonde musique, aucun modèle ne retrouve majoritairement son thème.
Organ-first / SOTA
sklearn.manifold.TSNE, pas de réimplémentation.allclosesur les composantes, affichéTrue).SOTA-OK.Validation
coursia-ml-training,exception: None;execution_countnon nul et sorties committées (C.2), 0 erreur ;image/pngprésentes (PCA 2D par thème, t-SNE 2D par thème, barres de silhouette) — contrôlées à l'œil : la PCA ordonne cuisine↔finance sur l'axe 1, le t-SNE détache cuisine et finance, les quatre autres thèmes s'entremêlent ;raise NotImplementedError/assert False/1/0; les trois exercices s'exécutent tels quels ;huggingface_hubnommerD:\dev\...etD:\hf-cache\...— corrigé à la source (HF_HUB_DISABLE_SYMLINKS_WARNING,HF_HUB_DISABLE_PROGRESS_BARSposés avant l'import) puis re-exécuté, jamais maquillé (Stop & Repair) ;_quarto.ymlnon touchés (byte-identiques àmain) — l'inscription au catalogue revient au cron.Fichiers
MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/03b-Espace-Embeddings-Visualisation.ipynb(neuf, 35 cellules dont 14 code)MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/README.md(+ ligne de table, + énumération et récapitulatif)MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/03-Embeddings-From-Scratch.ipynb(+1 ligne markdown dans « Pour aller plus loin », aucun code touché, pas de ré-exécution)See #22084
See #19543
🤖 Generated with Claude Code