Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -1183,7 +1183,7 @@
"\n",
"| Fichier | Taille | Consommateur | Format |\n",
"|---------|--------|--------------|--------|\n",
"| `prosodic_output/book.ssml.md` | **4747 caractères / 151 lignes** | P4 (TTS) | Markdown avec tags FishAudio insérés |\n",
"| `prosodic_output/book.ssml.md` | Livre SSML enrichi | P4 (TTS) | Markdown avec tags FishAudio insérés |\n",
"| `prosodic_output/prosodic_annotations.json` | JSON structuré | Outils audit / re-annotation | 9 utterances + 5 segments narratifs |\n",
"| (résumé stdout) | Per-character tag counts | Logique pédagogique | Counter top-5 par speaker |\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@
"Le protocole est celui de FT-00a section 3, sans un changement :\n",
"\n",
"1. **Fashion-MNIST**, split officiel (60 000 train / 10 000 test), batchs 256/512 ;\n",
"2. un décalage de domaine d'une ligne : le **négatif photo** `x -> 1 - x` ;\n",
"2. un décalage de domaine : le **négatif photo** `x -> 1 - x` ;\n",
"3. `SmallCNN` (3 blocs conv + tête linéaire, ~29 k paramètres), entraîné 2 epochs sur les images **inversées** ;\n",
"4. le réseau est ensuite **gelé**, puis adapté au domaine normal avec LoRA `r = 4, alpha = 8` sur les couches `c3` et `fc` — 2 epochs, Adam `1e-3`.\n",
"\n",
Expand Down Expand Up @@ -667,9 +667,9 @@
"tags": []
},
"source": [
"## 2. `LoraConfig` + `get_peft_model` : toute la machinerie en deux lignes\n",
"## 2. `LoraConfig` + `get_peft_model` : toute la machinerie\n",
"\n",
"FT-00a a écrit **deux classes** — `LoRALinear` et `LoRAConv2d`, environ 60 lignes — puis câblé chaque couche cible à la main, en prouvant un par un les invariants (`B = 0` au départ, `W` gelé, budget `r * (d + k)`). `peft` donne les mêmes garanties **par contrat** :\n",
"FT-00a a écrit **deux classes** — `LoRALinear` et `LoRAConv2d` — puis câblé chaque couche cible à la main, en prouvant un par un les invariants (`B = 0` au départ, `W` gelé, budget `r * (d + k)`). `peft` donne les mêmes garanties **par contrat** :\n",
"\n",
"- `r=4` : le rang de la décomposition ;\n",
"- `lora_alpha=8` : le facteur `alpha/r = 2`, identique à FT-00a ;\n",
Expand Down Expand Up @@ -972,7 +972,7 @@
"\n",
"- **Exactitude** : les trois adaptations (peft, from scratch, full) récupèrent le même ordre de grandeur. Le full fine-tuning des mêmes couches reste devant — 6,5× plus de paramètres libres achètent quelques points.\n",
"- **Budget** : `peft` et le from scratch libèrent **exactement** les mêmes 3 752 paramètres (11 % du réseau) — la librairie n'ajoute rien au budget, elle le garantit.\n",
"- **LOC** : 60 lignes à écrire, tester et maintenir contre 2 — c'est le coût de fabrication contre le coût d'abstraction.\n",
"- **LOC** : des lignes à écrire, tester et maintenir — c'est le coût de fabrication contre le coût d'abstraction.\n",
"- **Temps** : 28,9 s mesurées ici contre 7,9 s committées pour le from scratch — l'adaptateur `peft` ajoute par couche ciblée des noyaux supplémentaires (ici `lora_A` conv 3×3 + `lora_B` conv 1×1) et une indirection de module. Sur cette mini-tâche CPU le rapport est visible ; sur un LLM, il est noyé dans le coût du forward du backbone. Les deux runs n'ont pas non plus partagé la charge machine.\n",
"- **Écosystème** : c'est la vraie ligne de fracture. L'adaptateur `peft` est un **artefact portable** (section 5) : quelques kilo-octets sérialisables, rechargeables sur toute copie de la base, fusionnables — et compatibles avec `transformers.Trainer`, `accelerate`, l'export. La classe maison de FT-00a n'a aucun de ces rails.\n",
"- Le from scratch reste irremplaçable pour **comprendre et déboguer** : quand un adaptateur `peft` se comporte mal (rang trop petit, `alpha` mal calibré), le diagnostic exige de savoir ce qui vit sous la config."
Expand Down Expand Up @@ -1335,7 +1335,7 @@
"\n",
"| notion | ce qu'il faut retenir |\n",
"|---|---|\n",
"| `LoraConfig` + `get_peft_model` | deux lignes remplacent les ~60 lignes de FT-00a ; les invariants (gel de la base, `B = 0`, budget fermé) sont garantis par la lib au lieu d'être prouvés à la main |\n",
"| `LoraConfig` + `get_peft_model` | remplacent l'adaptateur écrit à la main dans FT-00a ; les invariants (gel de la base, `B = 0`, budget fermé) sont garantis par la lib au lieu d'être prouvés à la main |\n",
"| budget identique | `peft` libère exactement les mêmes 3 752 paramètres que le from scratch (`r*(in*k^2) + out*r` en conv, `r*(in+out)` en linéaire) — la lib n'ajoute rien au budget |\n",
"| exactitude comparable | même graine et même protocole : la récupération est du même ordre ; seul le tirage d'initialisation de l'adaptateur diffère |\n",
"| `save_pretrained` / `from_pretrained` | l'adaptateur est un artefact portable de quelques Ko, exact au aller-retour — le fondement du partage d'adaptateurs (Su-LoRA, OpenAdapter…) |\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@
"source": [
"## Le cœur technique : cutouts, losses, boucle DDIM guidée\n",
"\n",
"~120 lignes recréent ce que DD fait sous le capot (les ports type `dd-pytorch` servent de\n",
"La cellule suivante recrée ce que DD fait sous le capot (les ports type `dd-pytorch` servent de\n",
"référence ; le repo officiel DD est un notebook Colab). Trois blocs : les *cutouts* (vues\n",
"globales + recadrages intérieurs aléatoires, augmentation par miroir/niveaux de gris), la\n",
"**distance sphérique** CLIP (`2·arcsin(‖x̂−ŷ‖/2)²` — la métrique de Crowson utilisée par DD),\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,8 @@
"source": [
"### ✓ Lecture ancrée — Analyse du banc de tests\n",
"\n",
"Le spec définit **4 tests** dans le module : connexion à la page principale, liste des modèles, accès au menu utilisateur, et capture de screenshot. \n",
"Il contient également **4 exercices** embarqués dans les commentaires, ce qui permet une approche pédagogique progressive."
"Le spec définit les tests du module : connexion à la page principale, liste des modèles, accès au menu utilisateur, et capture de screenshot. \n",
"Il contient également des exercices embarqués dans les commentaires, ce qui permet une approche pédagogique progressive."
]
},
{
Expand Down Expand Up @@ -276,7 +276,7 @@
"source": [
"### ✓ Lecture ancrée — Inventaire Playwright\n",
"\n",
"L'appel `npx playwright test --grep 01 --list` retourne **5 tests au total** (4 tests du module + 1 fixture d'authentification) répartis dans 2 fichiers. \n",
"L'appel `npx playwright test --grep 01 --list` retourne l'inventaire des tests du module et de la fixture d'authentification, répartis dans les fichiers du banc. \n",
"Le retour code **0** confirme que la configuration Playwright est valide et que les tests sont bien définis."
]
},
Expand Down Expand Up @@ -433,7 +433,7 @@
"source": [
"## Exercices\n",
"\n",
"Trois exercices, tous **exécutables tels quels** (ils tournent sans erreur et renvoient un placeholder). Remplace le corps de chaque fonction, ré-exécute, et compare au comportement attendu décrit plus haut."
"Des exercices, tous **exécutables tels quels** (ils tournent sans erreur et renvoient un placeholder). Remplace le corps de chaque fonction, ré-exécute, et compare au comportement attendu décrit plus haut."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -699,7 +699,7 @@
"| 1 | Installation | dépendances UI et pipeline |\n",
"| 2 | Imports | Semantic Kernel, logging, widgets |\n",
"| 3 | `NotebookState` | la machine à états du notebook cible |\n",
"| 4 | Création | le template devient un notebook de 12 cellules |\n",
"| 4 | Création | le template devient un notebook |\n",
"| 5 | Plugins | les mains des agents dans le notebook |\n",
"| 6 | Stratégies | qui parle, et quand arrêter |\n",
"| 7 | Agents | Coder, Reviewer, Admin — même modèle, rôles distincts |\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -834,7 +834,7 @@
"\n",
"1. Prouver le backend GPU se fait par **observation** (module provider chargé, VRAM), jamais par déduction du débit. La jambe LLamaSharp (10e) en est le contre-exemple coûteux : `GpuLayerCount = 99` était **demandé** puis réaffiché, le débit paraissait plausible, et l'inférence tournait pourtant sur CPU. Un paramètre relu n'est pas une mesure ; seuls `backend_ptrs.size()`, le placement des couches et la VRAM tranchent.\n",
"2. Un bake-off compare des moteurs à protocole constant — mais les conditions réelles (VRAM disponible, format de modèle, in-process ou distant) font partie du résultat et doivent voyager avec lui.\n",
"3. Le taux de jetons `<pad>` est un détecteur de dégénérescence quasi gratuit : trois lignes de code qui ont disqualifié un moteur entier.\n",
"3. Le taux de jetons `<pad>` est un détecteur de dégénérescence quasi gratuit : quelques lignes de code qui ont disqualifié un moteur entier.\n",
"4. La qualité sémantique appartient au modèle : sur le même moteur, passer de Qwen3-4B *base* à la variante *Instruct* est le levier évident pour un notebook de curriculum.\n",
"\n",
"**Limites** : run unique, machine unique, modèle *base* (choisi pour la comparabilité avec la Phase 2) — aucune statistique multi-seed. Le **périphérique**, lui, n'est plus une limite : la jambe LLamaSharp dispose depuis sa réparation d'un débit GPU sur la même carte (36,57 tok/s), ce qui rend la comparaison enfin homogène de ce côté ; ce sont désormais le **format de modèle** et le **nombre de jetons émis** qui la bornent. La décision d'adoption (et la réparation de #8369) revient au coordinateur et au user, comme prévu par la Phase 3 de l'issue.\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"- **SWA à l'échelle réelle** : le champ réceptif `L*(W-1)+1` du TV-00b dit quand la fenêtre contraint vraiment ;\n",
"- **latence et perplexité** : préfill/décodage mesurés, perte sur un vrai corpus (WikiText-2) en perplexité\n",
" **et** en bits/caractère — la seule unité comparable entre tokenizers ;\n",
"- **le tableau bloc A contre bloc B** : ce que les 182 lignes du TV-00a et les 383 du TV-00b rendent visible,\n",
"- **le tableau bloc A contre bloc B** : ce que le TV-00a et le TV-00b rendent visible,\n",
" contre ce que l'industrie met derrière `from_pretrained`.\n",
"\n",
"**Matériel.** GPU CUDA requis (H.2 : bloc B de l'epic, documenté ici) ; le premier run télécharge ~4 Go de\n",
Expand Down Expand Up @@ -905,9 +905,9 @@
"source": [
"### 7.1 Lecture\n",
"\n",
"Le tableau ne départage pas : les 182 lignes du TV-00a et les 383 du TV-00b rendent **chaque\n",
"Le tableau ne départage pas : le TV-00a et le TV-00b rendent **chaque\n",
"constante lisible** (une rotation, un masque, une formule vérifiée exacte) ; le côté industrie met\n",
"la même architecture derrière 507 lignes de `modeling_mistral.py` — plus les noyaux fused, la\n",
"la même architecture derrière `modeling_mistral.py` — plus les noyaux fused, la\n",
"quantification et la génération, non comptés — et c'est ce qui fait tenir 7 milliards de paramètres\n",
"dans un GPU 16 Go avec quelques lignes d'appel.\n",
"Le from scratch achète l'intuition, le SOTA achète l'échelle : les deux notebooks A existent\n",
Expand Down
Loading