Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,13 @@
"print(f\"vocab: {V} mots, phrases: {len(phrases)}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Le vocabulaire contient 146 mots uniques pour un total de 1400 phrases, formant ainsi la base lexicale complète nécessaire à la représentation vectorielle des textes du corpus.\n"
]
},
{
"cell_type": "markdown",
"id": "sec-2",
Expand Down Expand Up @@ -164,6 +171,13 @@
"print(f\"X.shape = {X.shape}, mean L1 = {np.abs(X).sum(axis=1).mean():.3f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim : « X.shape = (1400, 146), mean L1 = 1.000 » — chaque phrase est un vecteur BoW **normalisé** (la somme des poids vaut 1 par ligne). La rareté, elle, se lit au compte de composantes non nulles : l'exemple de la cellule de masquage n'en porte que 5 sur 146 (« nnz orig=5 ») — plus de 96 % des dimensions à zéro."
]
},
{
"cell_type": "markdown",
"id": "sec-3",
Expand Down Expand Up @@ -251,6 +265,13 @@
" print(f\" politique={nom:<5} : nnz orig={nz_orig}, nnz vue={nz_vue}, cosinus={cos:.3f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La politique de masquage aléatoire avec p=0.30 réduit effectivement et de manière contrôlée le nombre total de composantes non-nulles présentes (passant de 5 à seulement 3 dans cet exemple concret et illustratif) tout en conservant une similarité cosinus élevée de 0.775, illustrant ainsi de façon particulièrement claire la robustesse essentielle des représentations appariées.\n"
]
},
{
"cell_type": "markdown",
"id": "sec-4",
Expand Down Expand Up @@ -335,6 +356,13 @@
"print(f\"||z|| par ligne (doit valoir ~1.0) : {norms}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"L'encodeur MLP à deux couches produit systématiquement et de manière fiable des vecteurs de sortie normalisés avec une norme L2 exactement égale à 1.0 pour chaque ligne, cette propriété de normalisation étant essentielle pour utiliser efficacement la similarité cosinus comme principale métrique de comparaison entre représentations.\n"
]
},
{
"cell_type": "markdown",
"id": "sec-5",
Expand Down Expand Up @@ -452,6 +480,13 @@
"# à log(2) qui mesure l'apprentissage réel."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La perte InfoNCE calculée montre clairement et de manière précise que le cas 1 avec des paires strictement identiques donne une perte de 0.3133 correspondant exactement et sans erreur à la valeur théorique attendue -log(e/(e+1)), validant ainsi de façon définitive l'implémentation correcte et conforme de la fonction de perte contrastive.\n"
]
},
{
"cell_type": "markdown",
"id": "sec-6",
Expand Down Expand Up @@ -554,6 +589,13 @@
"print(f\"\\nLoss finale : {pertes_main[-1]:.4f}, log(64) = {math.log(64):.4f} (borne sup = log(batch))\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim de l'entraînement (« mask vs swap, τ=0.1, 8 époques, graine 0 ») : « époque 1 : loss=1.3217 », « époque 4 : loss=0.7024 », « époque 5 : loss=0.7460 » (rebond), « époque 7 : loss=0.5788 » (minimum), « époque 8 : loss=0.5975 ». Bilan imprimé : « Loss finale : 0.5975, log(64) = 4.1589 (borne sup = log(batch)) » — la perte finit ~7× sous le plancher « ne rien discriminer » : l'encodeur sépare ses paires positives des négatives du mini-lot, mais la descente n'est pas lisse (deux rebonds en huit époques)."
]
},
{
"cell_type": "markdown",
"id": "sec-7",
Expand Down Expand Up @@ -637,6 +679,13 @@
"print(f\" (chance = 1/{len(THEMES)} = {1/len(THEMES):.3f})\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim : « Sonde linéaire sur encodeur CONTRASTIF : accuracy = 0.432 » — sur le mini-corpus à 7 thèmes (base, section 1 : « 7 thèmes sémantiques »), la chance pure est 1/7 ≈ 0.143, et les thèmes sont « utilisés uniquement à l'évaluation aval » : la sonde lit une structure que le pré-entraînement n'a jamais vue comme cible. Le récapitulatif suivant réserve une surprise plus forte que ce simple écart à la chance."
]
},
{
"cell_type": "markdown",
"id": "sec-8",
Expand Down Expand Up @@ -734,6 +783,13 @@
"print(f\" Supervisé from scratch (borne sup): {acc_sup:.3f}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim du « Récapitulatif accuracy sonde linéaire » : « Aléatoire (init, gelé) : 0.161 », « Skip-gram simplifié (BoW brut) : 0.154 », « CONTRASTIF (pré-entraîné) : 0.432 ← cible », « Supervisé from scratch (borne sup): 0.368 ». La hiérarchie attendue voudrait le supervisé au-dessus — c'est l'inverse qui est imprimé : le pré-entraîné dépasse sa « borne sup » de +0.064 et vaut ~2.7× l'encodeur gelé. À ce budget de données, entraîner un MLP étiqueté from scratch fait moins bien que sonder un espace appris sans labels."
]
},
{
"cell_type": "markdown",
"id": "sec-9",
Expand Down Expand Up @@ -807,6 +863,13 @@
"print(f\" Verdict collapse : {'OUI (collapse)' if diag['sim_inter_mean'] > 0.95 or diag['top1_var_share'] > 0.95 else 'NON'}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim des « Diagnostics collapse (encodeur contrastif) » : « Dimensions pour 95% de variance : 22 / 32 », « Part de variance sur la dim 1 : 0.096 », « Similarité cosinus inter-phrases : 0.184 », « Verdict collapse : NON ». Les seuils de la section sont passés : le collapse signerait ≥95 % de la variance sur UNE dimension — ici la première n'en porte que 9,6 % — et des phrases toutes semblables imprimeraient une similarité > 0.95 — ici 0.184. L'espace utilise réellement ses 32 dimensions."
]
},
{
"cell_type": "markdown",
"id": "sec-10",
Expand Down Expand Up @@ -894,6 +957,13 @@
" print(f\"{tau:>6.2f} {pols[0]+'+'+pols[1]:<14} {m:>10.3f} {s:>10.3f} {accs}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim de l'ablation (« 3 températures × 3 paires d'augmentations × 3 graines = 27 runs », accuracy moyenne ± écart-type) : la meilleure case est « 0.10 swap+swap 0.374 0.017 », devant « 0.10 mask+swap 0.368 0.015 » et « 0.05 mask+swap 0.360 0.040 » ; le bas du tableau est τ=0.50 partout (0.248–0.340). Lecture honnête : au sommet, les cases se chevauchent à un écart-type près (0.374±0.017 vs 0.368±0.015) — ce qui est net, c'est le CLUSTER : τ=0.1 domine et τ=0.5 dégrade systématiquement (jusqu'à −0.13). L'« importance des hyperparamètres » se lit ici : température, oui ; paire d'augmentations, à un chevauchement près."
]
},
{
"cell_type": "markdown",
"id": "sec-11",
Expand Down Expand Up @@ -1120,4 +1190,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -692,6 +692,13 @@
"print(\"Classe MLEStarSearcher definie : pipeline complet WebSearch -> ExtractModel -> GenerateCode\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim : « Classe MLEStarSearcher definie : pipeline complet WebSearch -> ExtractModel -> GenerateCode ». Les trois étapes s'impriment chacune au run : « [WEB SEARCH] Recherche pour: image classification imagenet », « [EXTRACTOR] Extraction des modeles... », « [CODE GEN] Generation du code initial... » — une seule classe qui enchaîne retrieval, extraction LLM et génération de code."
]
},
{
"cell_type": "markdown",
"id": "cell-14",
Expand Down Expand Up @@ -789,6 +796,13 @@
" print(f\" Paper: {m.paper_url}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim des « MODELES TROUVES » : « Vision Transformers » (« 90.5% top-1 accuracy on ImageNet »), « YOLOv9 » et « DINO » (tous deux « object detection benchmarks on the COCO dataset ») — pour « 2 resultats trouves » côté recherche. Lecture honnête, celle du notebook lui-même : deux modèles sur trois sont des détecteurs COCO, pas des classifieurs ImageNet, et « le RAG n'est pas magique — sa qualité est plafonnée par celle du retrieval amont » ; la section préconise un re-ranking par leaderboard. Le run démontre moins une découverte automatique du SOTA que la mécanique qui permettrait de l'approcher."
]
},
{
"cell_type": "markdown",
"id": "interp-cell-15",
Expand Down Expand Up @@ -901,6 +915,13 @@
" print(code[:800] + \"...\" if len(code) > 800 else code)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Lecture** : Verbatim des imports générés : « import torch », « import torchvision », « from torchvision.models import vit_b_16, ViT_B_16_Weights », puis transformations (Resize 256, CenterCrop 224, Normalize mean=[0.485, 0.456, 0.405]) et chargement « torchvision.datasets.ImageNet(root='path/to/imagenet/train') ». Attention au statut : « le code produit n'est pas exécuté dans ce lab » (section 8) — squelette à chemin placeholder, « non validé », que le Lab 14 (ablation) doit raffiner. « Exécutable » serait un mot de trop : plausible, non prouvé."
]
},
{
"cell_type": "markdown",
"id": "interp-cell-17",
Expand Down Expand Up @@ -1354,4 +1375,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
}
}
Loading