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
1,841 changes: 1,841 additions & 0 deletions MyIA.AI.Notebooks/GenAI/PostTraining/PT_14_neural_thermodynamic_laws.ipynb

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions MyIA.AI.Notebooks/GenAI/PostTraining/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ breakdown: PostTraining=16
maturity: BETA=10, ALPHA=6
-->

> **Place dans GenAI** : cette série est le pendant *théorique et SOTA 2024-2025* de la série [FineTuning](../FineTuning/README.md). FineTuning couvre la boîte à outils pratique (LoRA, QLoRA, SFT, DPO, model merging) sur 5 notebooks exécutés ; PostTraining remonte la chaîne conceptuelle complète SFT → RLHF → DPO → GRPO → RLVR → **GAE** et reproduit les techniques récentes (Deepseek-R1) sur petits modèles, complétée par un notebook d'évaluation comparative, un détecteur de reward hacking, et un notebook d'implémentation from-scratch de la famille "no critic" (GRPO/RLOO/GAE) sur toy env CPU, par un **notebook multi-step à crédit différé causal** (PT-12 : les cinq estimateurs re-mesurés, GAE-λ devient discriminant, verdict BEATS 5/5 seeds — le "1-step collapse" était une propriété du banc), et de **trois notebooks appliqués Qwen + GRPO + reward vérifiable + rewardspy en ligne** (PT-11a Z3 CSP arithmétique sur Qwen3.5-0.8B + PT-11b SymPy arithmétique + Z3 N-queens, plus leur validation multi-seed, **plus PT-11c sur le cran au-dessus Qwen3-1.7B/2B** qui qualifie l'étage GPU moyen 16 Go et oppose 0.8B vs 1.7B/2B à budget steps égal) qui font sortir la série du toy env vers un vrai LLM, et **PT-13 sur les corrections 2025 de la loss GRPO** (`Dr. GRPO` : retrait de `÷|o_i|` et `÷std` ; `clip-higher` de `DAPO` : ε_high=0.28 > ε_low=0.2), dont le biais de longueur est mesuré au **niveau gradient**, soit **16 notebooks** au total. Les deux se complèment : commencer par FineTuning pour la pratique, PostTraining pour la profondeur méthodologique.
> **Place dans GenAI** : cette série est le pendant *théorique et SOTA 2024-2025* de la série [FineTuning](../FineTuning/README.md). FineTuning couvre la boîte à outils pratique (LoRA, QLoRA, SFT, DPO, model merging) sur 5 notebooks exécutés ; PostTraining remonte la chaîne conceptuelle complète SFT → RLHF → DPO → GRPO → RLVR → **GAE** et reproduit les techniques récentes (Deepseek-R1) sur petits modèles, complétée par un notebook d'évaluation comparative, un détecteur de reward hacking, et un notebook d'implémentation from-scratch de la famille "no critic" (GRPO/RLOO/GAE) sur toy env CPU, par un **notebook multi-step à crédit différé causal** (PT-12 : les cinq estimateurs re-mesurés, GAE-λ devient discriminant, verdict BEATS 5/5 seeds — le "1-step collapse" était une propriété du banc), et de **trois notebooks appliqués Qwen + GRPO + reward vérifiable + rewardspy en ligne** (PT-11a Z3 CSP arithmétique sur Qwen3.5-0.8B + PT-11b SymPy arithmétique + Z3 N-queens, plus leur validation multi-seed, **plus PT-11c sur le cran au-dessus Qwen3-1.7B/2B** qui qualifie l'étage GPU moyen 16 Go et oppose 0.8B vs 1.7B/2B à budget steps égal) qui font sortir la série du toy env vers un vrai LLM, et **PT-13 sur les corrections 2025 de la loss GRPO** (`Dr. GRPO` : retrait de `÷|o_i|` et `÷std` ; `clip-higher` de `DAPO` : ε_high=0.28 > ε_low=0.2), dont le biais de longueur est mesuré au **niveau gradient**, et **PT-14 sur les lois thermodynamiques de l'entraînement** (R08 : T ∼ η, équipartition ℓf = C·η, schedule 1/t optimal avec discontinuité η/2, force entropique — la physique des learning-rate schedules utilisés en PT-11), soit **17 notebooks** au total. Les deux se complèment : commencer par FineTuning pour la pratique, PostTraining pour la profondeur méthodologique.

Série pédagogique dédiée aux techniques de **post-training** des LMs ouverts : SFT, DPO, GRPO, RLVR. L'objectif est de comprendre pourquoi 2024-2025 marque une rupture pédagogique dans la façon dont les modèles de langue passent du pre-training brut à un assistant utile, et comment cette chaîne s'est simplifiée depuis la cascade RLHF historique jusqu'aux méthodes "direct" récentes.

Expand Down Expand Up @@ -43,6 +43,7 @@ L'angle pédagogique est d'expliquer la **math du loss** avant le code pour chaq
| PT-11c | `PT_11c_grpo_qwen17_rlvr.ipynb` | RLVR sur **cran au-dessus** (Qwen3-1.7B ou Qwen3-2B QLoRA 4-bit) — extension directe de PT-11b au cran supérieur, 4 seeds × 100 steps, **verdict mémoire** (pic VRAM RTX 3080 Ti 16GB) + **comparaison honnête** 0.8B vs 1.7B/2B à budget steps égal. Architecture compatible `trl.GRPOTrainer`, peft 0.20.0 (vs 0.13.2 de PT-11b). Reward SymPy Tier-1 + Z3 N-queens Tier-2 + informative-group métrique #10603. **Verdict mesuré (4 seeds × 100 steps chacun, RTX 3070 8 Go)** : MECANISME_REPRO sur les DEUX crans — 1.7B mean 0.1148 ± 0.0059 (edge 19.33σ), 2B mean 0.1653 ± 0.0051 (edge 32.44σ), VRAM peak 3.67/4.98 Go, ~31/~43 min/seed ; le decideur intra-seed reste non-exécutable à 20 pts/seed (fix : `logging_steps=4`). **Note env** : `rewardspy` (GitHub-only, absent de PyPI) peut être non installé — wrapper no-op gracieux | `trl.GRPOTrainer` + verifiers SymPy/Z3 + `rewardspy.watch_trl` (optionnel) | Qwen3-1.7B ou Qwen3-2B (QLoRA 4-bit, GPU 16 Go cible) | See #12653 |
| PT-12 | `PT_12_multistep_delayed_credit.ipynb` | GAE-λ sur env **multi-step à crédit différé causal** (`count_ones`, terminal dépendant de toute la séquence) — re-mesure des 5 estimateurs REINFORCE/GRPO/RLOO/GAE-λ=0/GAE-λ=0.95, **5 seeds**, vérificateur terminal Z3 | `torch` from-scratch (no `trl`) + Z3 (RLVR) | MLP jouet acteur-critique (CPU, ~5.5k params) | See #1454 |
| PT-13 | `PT_13_dapo_drgrpo_corrections.ipynb` | **Corrections de la loss GRPO** — `Dr. GRPO` (retire `÷\|o_i\|` et `÷std`) et `clip-higher` de `DAPO` (ε_high=0.28 > ε_low=0.2) — **biais de longueur mesuré au niveau gradient** (norme par bucket : vanille dilue long-faux à ~0.32× vs dr ~0.81×, 5 seeds), amplification `÷std` (jusqu'à ×3.0), taux de climb sous clip (ε=0.2→21.5 pas, 0.28→15.8, 0.40→11.6), verdict comportemental honnête (aucun coût, banc non discriminant), Z3 vérificateur RLVR | `torch` from-scratch (no `trl`) + Z3 (RLVR) | MLP jouet (CPU, ~1.5k params) | See #1454 |
| PT-14 | `PT_14_neural_thermodynamic_laws.ipynb` | **Lois thermodynamiques de l'entraînement** (R08 Liu et al. 2025) — perte = énergie, η = température, bruit minibatch = bain thermique : largeur stationnaire σ(a) SGD/SignGD (edge of stability, plancher √(2π)/4·η), **équipartition** ℓf = (σg²η/4)/(1−aη/2) indépendant de la sharpness, T ∼ η, **confrontation mini-GPT 106k au plateau** (bruit d'étiquette q=0.15 : terme thermique BORNÉ C < 0.1, sous résolution du banc toy — verdict honnête, le GPT-2 rapporté 3.145+110·η_min le résout à son échelle ; écart SGD/Adam(0,0) qui s'inverse entre progrès et plateau), **schedule 1/t optimal** (discontinuité η/2, diagramme de phase (b, t_h) à optimum théorique exact 6.03e-06 vs 6.10e-06), **loi de Fourier** (relaxation de taux 2aη_B après switch de lr, 4 répliques), **force entropique** (piégeage vers les zones plates E.1, seuil de blocage η* = 4c/(ασg²) E.2) | `numpy` + `torch` from-scratch (toy + mini-GPT CPU) | toy river-valley + mini-GPT (CPU) | See #16741 |

> **Migration vers Qwen3.5 (complète sur les notebooks GPU).** Qwen2.5 est *superseded* par [Qwen3.5](https://huggingface.co/Qwen/Qwen3.5-0.8B) (modèle vision-langage unifié, multimodal). **PT-03 est migré** vers Qwen3.5-0.8B (#5078) : l'évaluation DPO est désormais une vraie *forward pass* (accuracy mesurée 40 % sur 10 préférences *held-out*, vs 50 % aléatoire — le DPO n'a pas convergé sur 50 exemples, verdict honnête documenté dans le notebook) qui remplace l'ancienne accuracy *hardcodée* à 72 %. **PT-02 est migré** vers Qwen3.5-0.8B (#10289, #10813) : le SFT s'exécute sur le vrai petit modèle SOTA (architecture hybride 18×linear_attn + 6×self_attn, LoRA ciblant les deux types + MLP) — verdict honnête documenté : sur 50 exemples (3 steps), le loss oscille (1.92→2.17→1.76) et la génération se dégrade (SFT sous-alimenté sur modèle déjà instruct-tuned, pas un bug). **PT-04 est migré** vers Qwen3.5-0.8B (#10817, re-exec #11442) : le GRPO s'exécute sur le vrai petit modèle SOTA (vrai GRPO GPU, QLoRA 4-bit, récompense basée sur le score). **PT-06 est migré** vers Qwen3.5-0.8B (#10819) : l'évaluation comparative porte désormais sur le modèle migré. **PT-05 est migré** vers Qwen3.5-0.8B (#10487 : re-ciblage + run GPU réel commité — delta honnête documenté 12.5 % → 0.0 %, et #10504 : reward branché sur le ground truth). Architecture Qwen3.5 multimodale (`Qwen3_5ForConditionalGeneration`) chargée via `AutoModelForImageTextToText` (et non `AutoModelForCausalLM`).

Expand Down Expand Up @@ -192,7 +193,7 @@ PT-06 documente le pipeline d'évaluation complet et produit un tableau comparat
| **[RL — rlpt_4 DPO vs PPO](../../RL/rlpt_4_dpo_vs_ppo.ipynb)** | Comparaison offline vs online | DPO/ORPO offline vs GRPO online à budget 40 steps — prérequis empirique pour PT-06 (évaluation comparative). |
| **[RL — rl_9 offline](../../RL/rl_9_offline_rl.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.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 sur 5 notebooks. PostTraining = profondeur méthodologique (14 notebooks), FineTuning = recettes exécutables. |
| **[GenAI/FineTuning](../FineTuning/)** | Boîte à outils fine-tuning | Série sœur dans GenAI : LoRA/QLoRA/SFT/DPO en pratique sur 5 notebooks. PostTraining = profondeur méthodologique (17 notebooks), FineTuning = recettes exécutables. |

## Frontière avec RL/rlpt_* — où ouvre `PT_*`, où ouvre `rlpt_*`

Expand Down Expand Up @@ -257,6 +258,7 @@ Les références sont cliquables (arXiv / publisher). Les chiffres que la série
| Hoffmann et al., "Chinchilla" (NeurIPS 2022) | [arXiv:2203.15556](https://arxiv.org/abs/2203.15556) | Scaling laws compute-optimal (référencé dans la narration coût/token) |
| Penedo et al., "FineWeb-Edu" (2024) | [arXiv:2406.17557](https://arxiv.org/abs/2406.17557) | Dataset de pré-entraînement éducatif (barème coût/token) |
| Liu / Su et al., "Moonlight / Muon" (2025) | [arXiv:2502.16982](https://arxiv.org/abs/2502.16982) | Optimizer Muon (vérifié firsthand) — note prospective architecture from-scratch |
| Liu et al., "Neural Thermodynamic Laws for Large Language Model Training" (2025) — **R08** | [arXiv:2505.10559](https://arxiv.org/abs/2505.10559) | Thermodynamique de l'entraînement : T ∼ η, équipartition, 1/t, force entropique (source de PT-14) |
| Zhai, "XSA: X-only Sparse Attention" (2026) | [arXiv:2603.09078](https://arxiv.org/abs/2603.09078) | Architecture XSA remplaçant DiffAttn (vérifié firsthand) — note prospective |
| Ye et al., "Differential Attention" (Microsoft, 2024) | [arXiv:2410.05258](https://arxiv.org/abs/2410.05258) | Attention différentielle (citée par la série Substack) |
| Ainslie et al., "GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints" (Google, 2023) | [arXiv:2305.13245](https://arxiv.org/abs/2305.13245) | Grouped-Query Attention (citée par la série Substack) |
Expand Down
Loading