Skip to content

[RAG] Espace des embeddings : réduction de dimension, visualisation et banc de modèles sur notre corpus français (EPIC #19543, pli 3) #22084

Open

Description

@jsboige

Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA

Part of #19543 (pli 3, ligne « Espace des embeddings »)

Pourquoi cette issue

Ligne du pli 3 de l'EPIC origami : la série GenAI/RAG-et-Memoire-Semantique enseigne les embeddings from scratch (03 : word2vec skip-gram, PMI, pont lexical→contextuel) puis les utilise comme outil (01, 02 : un seul modèle, paraphrase-multilingual-MiniLM-L12-v2). Ce qui manque (constat de l'EPIC, re-vérifié ci-dessous) : voir l'espace — réduction de dimension et visualisation — et comparer des modèles sur notre corpus français, mesuré.

Constat re-vérifié au 2026-10-23 (grep sources, hors outputs)

  • Aucun carnet 03b/03x dans la série ; ls ne montre que 03, 04, 04b, 05, 05b, 05c, 06, 07, 10.
  • SentenceTransformer n'apparaît qu'en 01 (1 modèle, cellule 5) et 02 (bi-encoder outil, cellule 12) — jamais un banc de plusieurs modèles comparés sur un même corpus.
  • Aucune visualisation de l'espace d'embeddings (réduction de dimension + nuage annoté) dans la série.
  • Dépendance : sentence_transformers absent du venv projet (mesuré find_spec) — installation locale due (règle F).

Contenu visé — carnet 03b (accrétion après 03, convention 04b/05c)

  1. PCA from scratch (numpy) : la géométrie de la réduction linéaire avant l'organ — variance expliquée, projection des embeddings sur les premiers axes.
  2. t-SNE via l'organ natif sklearn.manifold.TSNE : ce que la réduction non linéaire préserve que la linéaire ne peut pas — même corpus, deux rendus confrontés.
  3. Banc de 3 modèles multilingues/français sur le corpus français de la série : paraphrase-multilingual-MiniLM-L12-v2 (référence de la série), distiluse-base-multilingual-cased-v1, multilingual-e5-small (contrat d'usage « query:/passage: » — entrée pédagogique en soi). Mesuré : voisins sémantiques croisés, séparation des clusters thématiques (silhouette), dimension, latence d'encodage par phrase.
  4. 3 exercices C.1 (stubs sans erreur volontaire), exécution complète kernel python3, 0 erreur, sorties committées (C.2).

Critères de sortie

  • Le carnet s'exécute de bout en bout, 0 erreur, sorties réelles.
  • PCA from scratch validée contre sklearn.decomposition.PCA (composantes/signes près).
  • Les deux réductions rendent le même clustering thématique visible — et l'écart entre elles est lu, pas seulement affiché.
  • Le banc mesure au moins 3 indicateurs par modèle, dont un contrôle négatif (paires censées être éloignées).
  • README série + navigation mis à jour (liens .ipynb, règle readme-links-convention) ; catalogue byte-identique à main (catalog-pr-hygiene).
  • 3 exercices étiquetés, conformes C.1.

See #19543

Activity

  1. jsboige commented on Oct 22, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2027:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/03b-*.ipynb, MyIA.AI.Notebooks/GenAI/RAG-et-Memoire-Semantique/README.md -- carnet 03b : PCA from scratch + t-SNE organ + banc 3 modèles, grain DEEP/notebook-python pli 3 de #19543.

  2. jsboige commented on Oct 22, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2027:CoursIA -- PR #22086

    Carnet 03b-Espace-Embeddings-Visualisation.ipynb livre, avec ses deux surfaces de navigation (README de serie, renvoi depuis 03).

    Critere par critere (body de cette issue) :

    1. PCA from scratch (numpy) : centrage + SVD, variance expliquee par axe et cumul, projection 2D, et validation contre l'organ sklearn.decomposition.PCA — composantes identiques a signe pres (True affiche). Deux axes conservent 16,4 % de la variance.
    2. t-SNE via l'organ natif sklearn.manifold.TSNE (perplexite 8, init=pca, graine 42) ; deux figures par theme (PCA 2D, t-SNE 2D) plus un plan de silhouettes.
    3. Banc de trois modeles sur le meme corpus francais de 60 phrases, 6 themes equilibres : MiniLM (384d), DistilUSE (512d), E5 (384d, prefixe passage: ). Latence, dimension, silhouette cosinus, medianes intra/inter, voisins croises sur trois sondes, controle negatif de cinq paires, cout de la reduction en deux axes.
    4. Trois exercices C.1 executables tels quels (aucun raise NotImplementedError, print + return None, TODO/Etape/Indice conserves) ; execution complete au noyau, sorties commitees.

    Execution : papermill complet, 35/35 cellules, 14/14 execution_count, 0 erreur, 3 figures image/png, aucune fuite de chemin machine dans les sorties (leak huggingface_hub corrige a la source puis re-execute).

    Trois mesures ont contredit la prose prevue et l'ont fait reecrire (C.5) ; le detail est dans le body de la PR.

  3. added a commit that references this issue on Oct 23, 2026
  4. added 2 commits that reference this issue on Oct 24, 2026
  5. jsboige commented on Oct 25, 2026

    @jsboige
    OwnerAuthor

    [INFO] candidate-delivered — lane myia-po-2028:CoursIA

    Le claim de myia-po-2027:CoursIA est périmé par livraison, pas par
    abandon : 03b-Espace-Embeddings-Visualisation.ipynb est sur main, livré par
    PR #22086 (Feat(rag,#22084): 03b -- espace des embeddings, PCA a la main, t-SNE ..., état MERGED). Je ne reprends donc pas le grain et je ne ferme
    pas l'issue.

    Mesure firsthand (git ls-tree origin/main, gh pr list --state all) :

    Note pour l'organe : check_lane_claim.py rend STALE_CLAIM ... reprise autorisee sur ce grain, alors que la livraison est déjà fusionnée. Le statut
    stale ne distingue pas « claim abandonné » de « claim non relâché après
    merge » — c'est le quatrième cas sur cette lane (#21100, #21958, #21701, ici).
    Le [DELIVERED] de la PR n'a pas laissé de trace lisible par l'organe sur
    l'issue, d'où le faux « reprise autorisée ».

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions