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
12 changes: 6 additions & 6 deletions MyIA.AI.Notebooks/Complexity/README.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions MyIA.AI.Notebooks/GenAI/3D/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ L'objectif fil rouge de la série est de **comprendre NeRF de l'intérieur** —

À l'issue de la série, l'apprenant sait :

- **Écrire un pipeline NeRF complet** : encodage positionnel $\gamma$ (pont avec les Fourier features de [`3.4d`](../../ML/DataScienceWithAgents/03-DeepLearning/3.4d-Fourier-Features-Biais-Spectral-Python.html)), MLP à sauts de connexion, échantillonnage stratifié le long des rayons, compositing alpha différentiable, quadrature de l'équation de rendu.
- **Écrire un pipeline NeRF complet** : encodage positionnel $\gamma$ (pont avec les Fourier features de [`3.4d`](../../ML/DataScienceWithAgents/03-DeepLearning/3.4d-Fourier-Features-Biais-Spectral-Python.ipynb)), MLP à sauts de connexion, échantillonnage stratifié le long des rayons, compositing alpha différentiable, quadrature de l'équation de rendu.
- **Relier représentation continue et biais spectral** : pourquoi un MLP brut ne peut pas apprendre les hautes fréquences d'une scène, et ce que l'encodage positionnel change.
- **Mesurer les limites d'une architecture** : temps d'entraînement par scène, effondrement sans Fourier features, sensibilité aux poses, échelle unique du rayon, coût de l'échantillonnage volumique.
- **Situer les successeurs** : Mip-NeRF (frustum conique), Instant-NGP (tables de hachage), 3DGS (gaussiennes explicites) — et pourquoi chaque correctif change de représentation plutôt que de régler le MLP.
Expand All @@ -28,7 +28,7 @@ L'objectif fil rouge de la série est de **comprendre NeRF de l'intérieur** —

## Prérequis et exécution

- **Prérequis conceptuel** : biais spectral et Fourier features ([`3.4d-Fourier-Features`](../../ML/DataScienceWithAgents/03-DeepLearning/3.4d-Fourier-Features-Biais-Spectral-Python.html), Pli 1 de l'Epic #18605).
- **Prérequis conceptuel** : biais spectral et Fourier features ([`3.4d-Fourier-Features`](../../ML/DataScienceWithAgents/03-DeepLearning/3.4d-Fourier-Features-Biais-Spectral-Python.ipynb), Pli 1 de l'Epic #18605).
- **Exécution** : PyTorch (CPU jouable pour la scène jouet ; GPU recommandé — ~2-3 min pour 3D-01, ~10-12 min pour 3D-02 sur RTX 3090). Les seeds sont fixés : les résultats sont reproductibles.
- **Dataset** : `tiny_nerf_data.npz` (scène Blender « Lego » 100×100, © les auteurs de NeRF) téléchargé au premier lancement depuis la page projet UCSD des auteurs, mis en cache dans `data/` (hors dépôt).

Expand Down
36 changes: 18 additions & 18 deletions MyIA.AI.Notebooks/GenAI/FineTuning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,23 +44,23 @@ FineTuning/

| Notebook | Sujet | Prérequis | Durée | Niveau |
|----------|-------|-----------|-------|--------|
| [FT-00a](FT-00a-LoRA-from-scratch-Python.html) | LoRA from scratch : `LoRALinear`/`LoRAConv2d` en PyTorch pur, initialisation canonique, fusion et sa dérive | Bases PyTorch | ~30 min | Intermédiaire |
| [FT-00b](FT-00b-LoRA-Hyperparams-from-scratch-Python.html) | Ablation `r × alpha` from scratch : sweet-spots mesurés sur 18 configurations, comparaisons aux baselines | FT-00a | ~15 min | Intermédiaire |
| [FT-01](FT-01-Introduction-FineTuning-Python.html) | Fine-tuning complet, partiel, LoRA | Bases LLMs | ~30 min | Débutant |
| [FT-02](FT-02-QLoRA-Quantization-Python.html) | Quantization NF4, QLoRA, bitsandbytes | FT-01 | ~30 min | Intermédiaire |
| [FT-03](FT-03-Supervised-FineTuning-SFT-Python.html) | SFT sur Qwen3.5-0.8B : enseigner un contrat de format balisé | FT-01 | ~45 min | Intermédiaire |
| [FT-04](FT-04-RLHF-DPO-Python.html) | Reward Model, RLHF, DPO | FT-01, FT-02, FT-03 | ~30 min | Avancé |
| [FT-05](FT-05-ModelMerging-Routing-Python.html) | TIES, DARE, MergeKit, routage MoE | FT-01 à FT-04 | ~45 min | Avancé |
| [FT-06](FT-06-Vision-Language-LoRA-Python.html) | LoRA vision-langage Qwen3.5-0.8B, conformité image->texte | FT-02, FT-03 | ~45 min | Avancé |
| [FT-00a](FT-00a-LoRA-from-scratch-Python.ipynb) | LoRA from scratch : `LoRALinear`/`LoRAConv2d` en PyTorch pur, initialisation canonique, fusion et sa dérive | Bases PyTorch | ~30 min | Intermédiaire |
| [FT-00b](FT-00b-LoRA-Hyperparams-from-scratch-Python.ipynb) | Ablation `r × alpha` from scratch : sweet-spots mesurés sur 18 configurations, comparaisons aux baselines | FT-00a | ~15 min | Intermédiaire |
| [FT-01](FT-01-Introduction-FineTuning-Python.ipynb) | Fine-tuning complet, partiel, LoRA | Bases LLMs | ~30 min | Débutant |
| [FT-02](FT-02-QLoRA-Quantization-Python.ipynb) | Quantization NF4, QLoRA, bitsandbytes | FT-01 | ~30 min | Intermédiaire |
| [FT-03](FT-03-Supervised-FineTuning-SFT-Python.ipynb) | SFT sur Qwen3.5-0.8B : enseigner un contrat de format balisé | FT-01 | ~45 min | Intermédiaire |
| [FT-04](FT-04-RLHF-DPO-Python.ipynb) | Reward Model, RLHF, DPO | FT-01, FT-02, FT-03 | ~30 min | Avancé |
| [FT-05](FT-05-ModelMerging-Routing-Python.ipynb) | TIES, DARE, MergeKit, routage MoE | FT-01 à FT-04 | ~45 min | Avancé |
| [FT-06](FT-06-Vision-Language-LoRA-Python.ipynb) | LoRA vision-langage Qwen3.5-0.8B, conformité image->texte | FT-02, FT-03 | ~45 min | Avancé |

### Socle from-scratch (compléments techniques, 00a → 00b → 00c)

| Notebook | Sujet | Prérequis | Durée | Niveau |
|----------|-------|-----------|-------|--------|
| [FT-00a](FT-00a-LoRA-from-scratch-Python.html) | LoRA from scratch : `LoRALinear`/`LoRAConv2d` en PyTorch pur, initialisation canonique, fusion et sa dérive | Bases PyTorch | ~30 min | Intermédiaire |
| [FT-00b](FT-00b-LoRA-Hyperparams-from-scratch-Python.html) | Ablation `r × alpha` from scratch : sweet-spots mesurés sur 18 configurations, comparaisons aux baselines | FT-00a | ~15 min | Intermédiaire |
| [FT-00c](FT-00c-LoRA-SOTA-Comparison-Python.html) | La même adaptation refaite avec `peft.LoraConfig` : paramètres, exactitude, lignes de code — le coût/bénéfice de l'outil SOTA mesuré | FT-00a | ~15 min | Intermédiaire |
| [FT-00d](FT-00d-LoRA-QLoRA-SOTA-Comparison-Python.html) | QLoRA = peft + bitsandbytes 4-bit NF4 ; la mesure structurelle first-hand qui montre que bnb ne mord que sur `nn.Linear` (SmallCNN 19.85 %, BigMLP 100 %, DistilBERT 64.37 % — mesures first-hand) — l'arbre de décision avant d'invoquer QLoRA | FT-00a, FT-00c | ~30 min | Intermédiaire |
| [FT-00a](FT-00a-LoRA-from-scratch-Python.ipynb) | LoRA from scratch : `LoRALinear`/`LoRAConv2d` en PyTorch pur, initialisation canonique, fusion et sa dérive | Bases PyTorch | ~30 min | Intermédiaire |
| [FT-00b](FT-00b-LoRA-Hyperparams-from-scratch-Python.ipynb) | Ablation `r × alpha` from scratch : sweet-spots mesurés sur 18 configurations, comparaisons aux baselines | FT-00a | ~15 min | Intermédiaire |
| [FT-00c](FT-00c-LoRA-SOTA-Comparison-Python.ipynb) | La même adaptation refaite avec `peft.LoraConfig` : paramètres, exactitude, lignes de code — le coût/bénéfice de l'outil SOTA mesuré | FT-00a | ~15 min | Intermédiaire |
| [FT-00d](FT-00d-LoRA-QLoRA-SOTA-Comparison-Python.ipynb) | QLoRA = peft + bitsandbytes 4-bit NF4 ; la mesure structurelle first-hand qui montre que bnb ne mord que sur `nn.Linear` (SmallCNN 19.85 %, BigMLP 100 %, DistilBERT 64.37 % — mesures first-hand) — l'arbre de décision avant d'invoquer QLoRA | FT-00a, FT-00c | ~30 min | Intermédiaire |

## Technologies couvertes

Expand Down Expand Up @@ -100,7 +100,7 @@ pip install mergekit # Pour FT-05 uniquement
## Concepts clés

### LoRA (Low-Rank Adaptation)
Décompose les mises à jour de poids en matrices de bas rang (A, B avec rang r << dim). Réduit les paramètres entraînables de ~99%. Le mécanisme est démonté from-scratch (sans `peft`) dans [FT-00a](FT-00a-LoRA-from-scratch-Python.html) : initialisation canonique, gel, budget `r(d+k)`, fusion et sa (non-)bit-exactitude. Le **réglage** `r × alpha` est mesuré dans [FT-00b](FT-00b-LoRA-Hyperparams-from-scratch-Python.html) : 18 configurations sur la même mini-tâche, trois régularités quantifiées. La **confrontation à l'outil SOTA** est faite dans [FT-00c](FT-00c-LoRA-SOTA-Comparison-Python.html) : `peft.LoraConfig` refait la même adaptation en deux lignes — le notebook mesure ce que l'écosystème apporte et ce qu'il masque.
Décompose les mises à jour de poids en matrices de bas rang (A, B avec rang r << dim). Réduit les paramètres entraînables de ~99%. Le mécanisme est démonté from-scratch (sans `peft`) dans [FT-00a](FT-00a-LoRA-from-scratch-Python.ipynb) : initialisation canonique, gel, budget `r(d+k)`, fusion et sa (non-)bit-exactitude. Le **réglage** `r × alpha` est mesuré dans [FT-00b](FT-00b-LoRA-Hyperparams-from-scratch-Python.ipynb) : 18 configurations sur la même mini-tâche, trois régularités quantifiées. La **confrontation à l'outil SOTA** est faite dans [FT-00c](FT-00c-LoRA-SOTA-Comparison-Python.ipynb) : `peft.LoraConfig` refait la même adaptation en deux lignes — le notebook mesure ce que l'écosystème apporte et ce qu'il masque.

### QLoRA
Combine quantization 4-bit (NF4 + double quantization) avec LoRA. Permet de fine-tuner des modèles 7B sur un GPU consumer (RTX 3090/4090).
Expand Down Expand Up @@ -164,7 +164,7 @@ Le rang `r` de LoRA contrôle le compromis paramètres/qualité :
- **r=32-64** : tâches complexes (raisonnement, code). Plus de paramètres mais plus de VRAM.
- **r=128+** : rarement nécessaire — à ce stade, un full fine-tuning partiel est souvent plus efficace.

Le notebook [FT-01](FT-01-Introduction-FineTuning-Python.html) compare r=4 vs r=16 vs r=64 sur DistilBERT pour rendre ce compromis visible.
Le notebook [FT-01](FT-01-Introduction-FineTuning-Python.ipynb) compare r=4 vs r=16 vs r=64 sur DistilBERT pour rendre ce compromis visible.

### bitsandbytes ne s'installe pas sur Windows

Expand Down Expand Up @@ -208,10 +208,10 @@ Si le modèle merge (FT-05) perd en qualité par rapport aux adaptateurs individ
| Série | Connection | Détails |
|-------|------------|---------|
| **[GenAI/PostTraining](../PostTraining/README.md)** | Profondeur méthodologique | Série sœur : la math du loss derrière SFT/DPO + GRPO/RLVR. FineTuning = recettes, PostTraining = pourquoi ça marche. |
| **[RL — RL-05 MDP/Q-Learning](../../RL/RL-05-MDP-Programmation-Dynamique-Q-Learning-Python.html)** | Fondations policy/value | Socle Bellman/Q réutilisé par tout post-training. |
| **[RL — RL-06c PPO from scratch](../../RL/RL-06c-PPO-Depuis-Zero-Python.html)** | PPO from scratch | L'optimiseur derrière PPO-RLHF, implémenté pas à pas. |
| **[RL — RL-09 offline RL](../../RL/RL-09-RL-Offline-Behavior-Cloning-Python.html)** | SFT = Behavior Cloning | DPO comme preference learning offline ; contrainte de support = KL. |
| **[RL — RL-10 reward shaping](../../RL/RL-10-Reward-Shaping-Curriculum-Python.html)** | Reward model = shaping appris | Reward shaping (Ng 1999) et reward hacking, préfiguration tabulaire du reward model RLHF. |
| **[RL — RL-05 MDP/Q-Learning](../../RL/RL-05-MDP-Programmation-Dynamique-Q-Learning-Python.ipynb)** | Fondations policy/value | Socle Bellman/Q réutilisé par tout post-training. |
| **[RL — RL-06c PPO from scratch](../../RL/RL-06c-PPO-Depuis-Zero-Python.ipynb)** | PPO from scratch | L'optimiseur derrière PPO-RLHF, implémenté pas à pas. |
| **[RL — RL-09 offline RL](../../RL/RL-09-RL-Offline-Behavior-Cloning-Python.ipynb)** | SFT = Behavior Cloning | DPO comme preference learning offline ; contrainte de support = KL. |
| **[RL — RL-10 reward shaping](../../RL/RL-10-Reward-Shaping-Curriculum-Python.ipynb)** | Reward model = shaping appris | Reward shaping (Ng 1999) et reward hacking, préfiguration tabulaire du reward model RLHF. |

## Références

Expand Down
2 changes: 1 addition & 1 deletion MyIA.AI.Notebooks/GenAI/Image/01-Foundation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Ce module couvre les fondamentaux de la génération d'images par IA : modèles
| 4 | [01-4-Forge-SD-XL-Turbo](01-4-Forge-SD-XL-Turbo.ipynb) | Stable Diffusion XL Turbo | ComfyUI | Variable |
| 5 | [01-5-Qwen-Image-Edit](01-5-Qwen-Image-Edit.ipynb) | Introduction Qwen | ComfyUI | ~29GB |
| 5b | [01-5b-Qwen-Image-Edit-2509](01-5b-Qwen-Image-Edit-2509.ipynb) | Édition avancée Qwen Image Edit 2509 | ComfyUI | ~29GB |
| 5c | [01-5c-Qwen-Image-21-Workflows](01-5c-Qwen-Image-21-Workflows.html) | Workflows de référence Qwen-Image 2.1 (nomadoor) sur instance hébergée | ComfyUI 0.37.2 (hébergée) | palier INT8 #17266 |
| 5c | [01-5c-Qwen-Image-21-Workflows](01-5c-Qwen-Image-21-Workflows.ipynb) | Workflows de référence Qwen-Image 2.1 (nomadoor) sur instance hébergée | ComfyUI 0.37.2 (hébergée) | palier INT8 #17266 |

**[01-1](01-1-OpenAI-DALL-E-3.ipynb) — API cloud.** Le point d'entrée le plus immédiat : un prompt, une clé, et gpt-image-1 renvoie un visuel en ~19 s :

Expand Down
22 changes: 11 additions & 11 deletions MyIA.AI.Notebooks/GenAI/PostTraining/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,12 +207,12 @@ PT-06 documente le pipeline d'évaluation complet et produit un tableau comparat

| Série | Connection | Details |
|-------|------------|---------|
| **[RL](../../RL/)** | RL classique fondamentaux + sous-série `rlpt_*` | Les notebooks RL ([RL-05 MDP/Q-Learning](../../RL/RL-05-MDP-Programmation-Dynamique-Q-Learning-Python.html) et [RL-06c PPO from scratch](../../RL/RL-06c-PPO-Depuis-Zero-Python.html)) établissent l'intuition policy/value que PPO/GRPO réutilisent. Recommandés comme prérequis pour PT-04. |
| **[RL — RLPT-02 GRPO](../../RL/PostTraining/RLPT-02-GRPO-Minimal-Python.html)** | GRPO *naked* (sans `trl`) | La mécanique de GRPO (group rollouts, avantage intra-groupe, no critic) écrite à la main sur Qwen3.5-0.8B. Bon prérequis conceptuel pour PT-11a/PT-11b. |
| **[RL — RLPT-03 reward hacking](../../RL/PostTraining/RLPT-03-Reward-Hacking-Python.html)** | Cas clinique d'inoculation | Mini-cas : 3 voies pour déclencher le hack sur récompense vérifiable, inoculation comme variable. PT-07 est l'outil (catalogue de détecteurs), RLPT-03 le cas d'usage. |
| **[RL — RLPT-04 DPO vs PPO](../../RL/PostTraining/RLPT-04-DPO-Offline-contre-GRPO-Online-Python.html)** | Comparaison offline vs online | DPO/ORPO offline vs GRPO online à budget 40 steps — prérequis empirique pour PT-06 (évaluation comparative). |
| **[RL — RL-09 offline](../../RL/RL-09-RL-Offline-Behavior-Cloning-Python.html)** | DPO = preference learning offline | Le Behavior Cloning y est l'analogue tabulaire du SFT, et la contrainte de support de BCQ celle de la pénalité KL de DPO (PT-03). Le meilleur prérequis conceptuel pour DPO. |
| **[RL — RL-10 reward shaping](../../RL/RL-10-Reward-Shaping-Curriculum-Python.html)** | Reward model = shaping appris | Le reward shaping (Ng 1999) et son biais (shaping naïf → reward hacking) préfigurent le reward model appris et le Goodhart traité en [PT-07](PT_07_rewardspy_reward_hacking.html). |
| **[RL](../../RL/)** | RL classique fondamentaux + sous-série `rlpt_*` | Les notebooks RL ([RL-05 MDP/Q-Learning](../../RL/RL-05-MDP-Programmation-Dynamique-Q-Learning-Python.ipynb) et [RL-06c PPO from scratch](../../RL/RL-06c-PPO-Depuis-Zero-Python.ipynb)) établissent l'intuition policy/value que PPO/GRPO réutilisent. Recommandés comme prérequis pour PT-04. |
| **[RL — RLPT-02 GRPO](../../RL/PostTraining/RLPT-02-GRPO-Minimal-Python.ipynb)** | GRPO *naked* (sans `trl`) | La mécanique de GRPO (group rollouts, avantage intra-groupe, no critic) écrite à la main sur Qwen3.5-0.8B. Bon prérequis conceptuel pour PT-11a/PT-11b. |
| **[RL — RLPT-03 reward hacking](../../RL/PostTraining/RLPT-03-Reward-Hacking-Python.ipynb)** | Cas clinique d'inoculation | Mini-cas : 3 voies pour déclencher le hack sur récompense vérifiable, inoculation comme variable. PT-07 est l'outil (catalogue de détecteurs), RLPT-03 le cas d'usage. |
| **[RL — RLPT-04 DPO vs PPO](../../RL/PostTraining/RLPT-04-DPO-Offline-contre-GRPO-Online-Python.ipynb)** | Comparaison offline vs online | DPO/ORPO offline vs GRPO online à budget 40 steps — prérequis empirique pour PT-06 (évaluation comparative). |
| **[RL — RL-09 offline](../../RL/RL-09-RL-Offline-Behavior-Cloning-Python.ipynb)** | DPO = preference learning offline | Le Behavior Cloning y est l'analogue tabulaire du SFT, et la contrainte de support de BCQ celle de la pénalité KL de DPO (PT-03). Le meilleur prérequis conceptuel pour DPO. |
| **[RL — RL-10 reward shaping](../../RL/RL-10-Reward-Shaping-Curriculum-Python.ipynb)** | Reward model = shaping appris | Le reward shaping (Ng 1999) et son biais (shaping naïf → reward hacking) préfigurent le reward model appris et le Goodhart traité en [PT-07](PT_07_rewardspy_reward_hacking.ipynb). |
| **[GenAI/FineTuning](../FineTuning/)** | Boîte à outils fine-tuning | Série sœur dans GenAI : LoRA/QLoRA/SFT/DPO en pratique. PostTraining = profondeur méthodologique (voir [`COURSE_CATALOG.generated.md`](../../../COURSE_CATALOG.generated.md) pour le décompte canonique), FineTuning = recettes exécutables. |

## Frontière avec RL/rlpt_* — où ouvre `PT_*`, où ouvre `rlpt_*`
Expand All @@ -223,11 +223,11 @@ Les sous-séries [RL/rlpt_*](../../RL/) et cette série PostTraining couvrent **

| Question pédagogique | Ouvrir | Pourquoi |
|---|---|---|
| « Comment SFT/DPO/GRPO sont-ils *câblés* dans `trl` ? Comment lire une loss ? » | [PT-02](PT_02_sft_baseline.html), [PT-03](PT_03_dpo_direct_preference.html), [PT-04](PT_04_grpo_deepseek_r1.html) | `trl.SFTTrainer`/`DPOTrainer`/`GRPOTrainer` sur vrai LLM Qwen3.5-0.8B QLoRA, vraies losses, vrais gradients via la pile HuggingFace. |
| « Comment GRPO *fonctionne* intérieurement — group rollouts, avantage intra-groupe, no critic ? » | [PT-08](PT_08_grpo_from_scratch_toy_env.html) (toy env) ou [RL/RLPT-02](../../RL/PostTraining/RLPT-02-GRPO-Minimal-Python.html) (vrai LM sans `trl`) | La mécanique écrite à la main — on voit chaque rollout, chaque reward, chaque log-prob ratio. |
| « GRPO + RLVR sur vrai LLM, avec détecteur Goodhart en ligne, multi-seed ? » | [PT-11a](PT_11a_grpo_qwen35_rlvr.html), [PT-11b](PT_11b_grpo_qwen_rlvr_on_verifiers.html) | La pile SOTA 2025 : `trl.GRPOTrainer` + Z3/SymPy + `rewardspy.watch_trl` (Goodhart live), 4 seeds dans PT-11b-multi-seed. |
| « Quels sont les détecteurs statistiques du reward hacking ? » | [PT-07](PT_07_rewardspy_reward_hacking.html) | Catalogue `rewardspy.detectors` (6 classes : Component Dominance, Length Drift, etc.) — l'**outil**. |
| « Le reward hacking est-il un attracteur spontané sur petit modèle ? Cas clinique. » | [RL/RLPT-03](../../RL/PostTraining/RLPT-03-Reward-Hacking-Python.html) | Mini-cas : 3 voies pour déclencher le hack, inoculation comme variable — le **cas d'usage** de `rewardspy`. |
| « Comment SFT/DPO/GRPO sont-ils *câblés* dans `trl` ? Comment lire une loss ? » | [PT-02](PT_02_sft_baseline.ipynb), [PT-03](PT_03_dpo_direct_preference.ipynb), [PT-04](PT_04_grpo_deepseek_r1.ipynb) | `trl.SFTTrainer`/`DPOTrainer`/`GRPOTrainer` sur vrai LLM Qwen3.5-0.8B QLoRA, vraies losses, vrais gradients via la pile HuggingFace. |
| « Comment GRPO *fonctionne* intérieurement — group rollouts, avantage intra-groupe, no critic ? » | [PT-08](PT_08_grpo_from_scratch_toy_env.ipynb) (toy env) ou [RL/RLPT-02](../../RL/PostTraining/RLPT-02-GRPO-Minimal-Python.ipynb) (vrai LM sans `trl`) | La mécanique écrite à la main — on voit chaque rollout, chaque reward, chaque log-prob ratio. |
| « GRPO + RLVR sur vrai LLM, avec détecteur Goodhart en ligne, multi-seed ? » | [PT-11a](PT_11a_grpo_qwen35_rlvr.ipynb), [PT-11b](PT_11b_grpo_qwen_rlvr_on_verifiers.ipynb) | La pile SOTA 2025 : `trl.GRPOTrainer` + Z3/SymPy + `rewardspy.watch_trl` (Goodhart live), 4 seeds dans PT-11b-multi-seed. |
| « Quels sont les détecteurs statistiques du reward hacking ? » | [PT-07](PT_07_rewardspy_reward_hacking.ipynb) | Catalogue `rewardspy.detectors` (6 classes : Component Dominance, Length Drift, etc.) — l'**outil**. |
| « Le reward hacking est-il un attracteur spontané sur petit modèle ? Cas clinique. » | [RL/RLPT-03](../../RL/PostTraining/RLPT-03-Reward-Hacking-Python.ipynb) | Mini-cas : 3 voies pour déclencher le hack, inoculation comme variable — le **cas d'usage** de `rewardspy`. |
| « InoculationRL complet, panel persona × reward hackable, capstone ? » | [#5105 ICT-25](https://github.com/jsboige/CoursIA/issues/5105) | Capstone final — **distinct** de `RLPT-03` (qui en est la version compacte). |

Le constat d'éventuelle duplication `RLPT-02 ↔ PT-11a` et `RLPT-03 ↔ PT-07` est traité en [#11460](https://github.com/jsboige/CoursIA/issues/11460) : les deux séries *se complètent* par l'angle du regard (mécanique vs déploiement outillé), pas par duplication.
Expand Down
Loading
Loading