LYCÉE → PRÉPA · L37

Module L37 · Partie K · Ingénierie de l’IA

Créer un modèle : l’escalade des solutions, et où s’arrêter.

« Je vais entraîner mon propre modèle » est presque toujours la mauvaise première phrase. Entre « pas de modèle » et « pré-entraînement from scratch », il y a huit paliers — règles et heuristiques, modèle classique, modèle pré-entraîné en zero-shot, prompt et few-shot, RAG et outils, affinage léger (LoRA, têtes), affinage complet, pré-entraînement — chacun avec ses limites, ses contraintes, ses avantages, son coût et son délai. Ce chapitre donne la règle de décision pour monter d’un palier (jamais deux), les mathématiques qui la justifient (transfert, rang faible, oubli catastrophique, lois d’échelle), les implémentations minimales de chaque palier, et les cas — rares — où le from scratch est le bon choix.

Durée : 3 séances · Prérequis : L13, L25, L27, L28, L34, L36. Objectifs : parcourir l’escalade sur un cas réel avec des mesures à chaque palier ; implémenter LoRA et un affinage de tête ; quantifier l’oubli catastrophique ; estimer le coût et le délai de chaque palier ; reconnaître les situations qui justifient le from scratch.

Ce que vous saurez faire à la fin
  • Placer un problème sur l’escalade et justifier le palier de départ.
  • Mesurer, à chaque palier, qualité, coût, délai, risque — et décider de monter ou de s’arrêter.
  • Expliquer pourquoi LoRA marche (rang faible), pourquoi l’affinage oublie, pourquoi le pré-entraînement exige des lois d’échelle.
  • Rédiger le dossier « from scratch » : conditions, données, calcul, équipe, plan d’évaluation.

Fiche de cours · Définitions

Définitions

Définition (l’escalade). Suite ordonnée de solutions par coût, délai et risque croissants : (0) règles/heuristiques ; (1) modèle classique sur traits (régression, arbres) ; (2) modèle pré-entraîné utilisé tel quel (zero-shot, plongements + classifieur linéaire) ; (3) prompt engineering et few-shot ; (4) RAG et outils ; (5) affinage léger (LoRA, adaptateurs, tête, quelques couches) ; (6) affinage complet ; (7) pré-entraînement continu (continued pretraining) sur un domaine ; (8) pré-entraînement from scratch. Règle : on monte d’un palier seulement quand le banc d’essai (L32) prouve que le palier courant plafonne sous l’exigence.
Définition (apprentissage par transfert). Réutiliser les représentations d’un modèle entraîné sur une tâche source (grand corpus) pour une tâche cible (peu de données) : extraction de traits (encodeur gelé + tête), ou affinage (tout ou partie des poids).
Définition (affinage léger — PEFT). N’entraîner qu’une petite fraction des paramètres : LoRA (matrices de rang faible ajoutées aux projections), adaptateurs (petits MLP insérés), prefix/prompt tuning (vecteurs d’entrée appris), BitFit (biais seulement), gel de couches. QLoRA : LoRA sur un modèle de base quantifié en 4 bits.
Définition (oubli catastrophique). Perte des capacités antérieures lors de l’affinage sur une nouvelle tâche ; mesurée par la baisse sur un jeu général avant/après. Atténué par : petit pas, peu d’époques, mélange de données générales (rehearsal), régularisation vers les poids initiaux (L2-SP, EWC), PEFT.
Définition (pré-entraînement continu). Poursuivre le pré-entraînement (token suivant) d’un modèle existant sur un corpus de domaine (médical, juridique, code interne) avant l’affinage d’instruction ; coûte 10–100× moins qu’un from scratch pour un gain de domaine substantiel.
Définition (from scratch). Entraîner depuis une initialisation aléatoire : architecture, tokeniseur, corpus, recette d’optimisation, lois d’échelle, évaluation — tout est à concevoir. Justifié quand aucune base pré-entraînée ne couvre la modalité, la langue, la structure des données, ou les contraintes (licence, taille embarquée, souveraineté), et que données et calcul sont disponibles.
Définition (distillation). Entraîner un petit modèle (élève) à imiter les sorties (logits ou textes) d’un grand (maître) : garde la qualité à moindre coût d’inférence ; c’est un « from scratch » guidé.

Fiche de cours · Formules

Formules et ordres de grandeur

PalierDonnées nécessairesCalculDélai typiqueCompétenceRisque principal
0. RèglesAucune (expertise)0Heures–joursMétierNe généralise pas ; maintenance des règles
1. Modèle classique10²–10⁵ exemples étiquetésCPU, minutesJoursML de baseTraits à concevoir ; plafond sur données non structurées
2. Pré-entraîné tel quel0–10² pour évaluerInférenceHeuresIntégrationDomaine hors distribution ; licence
3. Prompt / few-shot10¹–10² exemplesInférenceJoursL28Sensibilité, coût par requête, plafond
4. RAG / outilsCorpus + 10² questions annotéesInférence + indexSemainesL26Rappel de la recherche
5. Affinage léger10²–10⁴ exemples1 GPU, heuresSemainesEntraînementSur-apprentissage, oubli modéré, évaluation
6. Affinage complet10⁴–10⁶Plusieurs GPU, joursSemaines–moisInfra + entraînementOubli catastrophique, coût, reproductibilité
7. Pré-entraînement continu10⁸–10¹⁰ tokens de domaine8–64 GPU, semainesMoisÉquipeDérive des capacités générales, données
8. From scratch10¹⁰–10¹³ tokens10²–10⁴ GPU, mois6–18 moisÉquipe experteTout ; coût 10⁵–10⁸ €
LoRA : W′ = W₀ + BA, B ∈ ℝd×r, A ∈ ℝr×k, r ≪ min(d, k) ; paramètres r(d + k) au lieu de dk ; facteur d’échelle α/r ; A gaussien, B = 0 à l’initialisation
Coût d’affinage ≈ 6 × Nentraînés × D + 2 × Ngelés × D (passage avant sur tout, arrière sur la partie entraînée) — LoRA divise la mémoire des états d’optimiseur par ≈ 100, le temps par ≈ 1,5–2 seulement
Oubli : Δgénéral = scoregénéral(avant) − scoregénéral(après) ; EWC : L = Lcible + (λ/2) Σi Fii − θ*i)² avec F la diagonale de Fisher
Pré-entraînement continu : mélanger p % de données générales (rehearsal, p ≈ 5–20 %) et réchauffer le pas (warmup) pour éviter le choc de distribution
From scratch (Chinchilla, L25) : pour N paramètres, D ≈ 20N tokens, C = 6ND FLOPs ; 1B → 20 G tokens, 1,2·10²⁰ FLOPs ≈ 140 h de H100 à 50 % de MFU
Distillation : L = (1 − λ)·CE(y, élève) + λ·T²·KL(softmax(zmaître/T) ‖ softmax(zélève/T))
Règle de montée : monter au palier k + 1 ssi borne haute de l’IC(qualité au palier k, après effort raisonnable) < exigence, et coût(k + 1) ≤ valeur attendue du gain

Fiche de cours · Théorèmes et démonstrations

Démonstrations à savoir refaire

Théorème 1 (pourquoi LoRA suffit : la mise à jour d’affinage est de rang faible effectif). Si l’affinage complet produit ΔW = Wfin − W₀ dont les valeurs singulières décroissent vite (σr+1 ≪ σ₁), alors la meilleure approximation de rang r (Eckart-Young, L10) capture ΔW avec une erreur σr+1 en norme spectrale, et LoRA peut la représenter exactement avec r(d + k) paramètres.
Eckart-Young : minrang ≤ r ‖ΔW − M‖₂ = σr+1(ΔW), atteint par la SVD tronquée UrΣrVrᵀ = (UrΣr)(Vrᵀ) = BA. L’observation empirique (Aghajanyan 2020 ; Hu 2021) est que la « dimension intrinsèque » des tâches d’affinage est faible : un modèle pré-entraîné a déjà les traits, l’affinage les re-pondère — une opération de rang faible. Pour d = k = 4 096, r = 16 : 131 k paramètres au lieu de 16,8 M par matrice (0,8 %). Conséquences : mémoire d’optimiseur ÷ 100 (on peut affiner un 70B sur un GPU en QLoRA), adaptateurs de quelques Mo échangeables à chaud (un modèle de base, N tâches), moins d’oubli (W₀ intact). Limite : si la tâche exige de nouvelles connaissances massives (langue nouvelle, domaine étranger), ΔW n’est plus de rang faible et LoRA plafonne — signal pour monter au palier 6 ou 7.
Théorème 2 (oubli catastrophique : un argument géométrique). Deux tâches A et B ont des minima θ*A, θ*B. Descendre sur LB depuis θ*A augmente LA d’environ ½(θ − θ*A)ᵀHA(θ − θ*A), HA la hessienne de LA ; l’oubli est grand dans les directions de forte courbure de A.
Taylor à l’ordre 2 de LA autour de son minimum (gradient nul) : LA(θ) ≈ LA(θ*A) + ½ΔθᵀHAΔθ. Le gradient de LB n’a aucune raison d’éviter les directions de grande courbure de A. Remèdes déduits : (1) EWC pénalise Δθ dans les directions importantes pour A (F ≈ H diagonale — l’information de Fisher) ; (2) le rehearsal ajoute LA à l’objectif (on ne quitte pas le bassin de A) ; (3) PEFT restreint Δθ à un sous-espace de faible dimension, donc à une faible « masse » de courbure ; (4) petit pas et peu d’époques bornent ‖Δθ‖. Mesure obligatoire : un jeu général avant/après (MMLU, HellaSwag, ou vos propres tâches antérieures) — l’affinage qui gagne 10 points sur la cible et en perd 15 ailleurs n’est pas un progrès.
Théorème 3 (l’extraction de traits + classifieur linéaire est une borne inférieure de l’affinage). Le classifieur linéaire sur des plongements gelés atteint une exactitude ≤ celle du meilleur affinage de la même architecture ; l’écart mesure ce que l’affinage apporte.
L’affinage optimise sur un ensemble d’hypothèses qui contient (poids de l’encodeur figés, tête libre) le classifieur linéaire : son minimum de risque empirique est ≤ ; en généralisation, la relation tient sauf sur-apprentissage (petits jeux : le linéaire gagne souvent, car moins de paramètres). Méthode : toujours commencer par le linéaire sur plongements (minutes de calcul, aucune infra) ; si l’exigence est atteinte, s’arrêter (palier 2) ; sinon, l’écart avec quelques essais de LoRA dit si le palier 5 vaut l’effort.
Théorème 4 (le from scratch n’est rentable qu’au-delà d’un seuil de données et de calcul). Avec les lois d’échelle L(N, D) = E + A/Nα + B/Dβ, un modèle from scratch de N paramètres entraîné sur vos D tokens ne dépasse un modèle pré-entraîné de N′ paramètres (perte L′ sur votre domaine après adaptation) que si E + A/Nα + B/Dβ < L′ — ce qui exige D ≳ (B/(L′ − E − A/Nα))1/β.
Inversion directe de la loi. Numériquement (constantes de Chinchilla) : pour battre une perte de 2,3 avec N = 1B, il faut D ≳ 10¹⁰ tokens de domaine de qualité — rarement disponibles hors web ; un pré-entraînement continu de 10⁹ tokens sur une base de 7B atteint généralement mieux, pour 1 % du calcul. Le from scratch se justifie surtout par des contraintes non capturées par la perte : modalité nouvelle (signaux de capteurs, protéines, séries industrielles), tokeniseur inadapté (langue, code chimique), taille embarquée (10 M de paramètres pour un microcontrôleur : aucune base n’existe à cette taille pour votre tâche), souveraineté ou licence.

01 / Parcourir l’escalade

Un cas réel simulé : classer des tickets techniques en 6 catégories, palier par palier

01 / Parcourir l’escalade

Paliers 2 et 5 : plongements gelés + linéaire, puis LoRA sur une couche — implémentés

02 / Mesurer l’oubli

Oubli catastrophique et ses remèdes : une expérience contrôlée

03 / Décider

La règle de montée, palier par palier : limites, contraintes, avantages

PalierAvantagesLimitesContraintesSignal pour monter
0. RèglesTransparent, immédiat, sans données, débogableFragile aux formulations ; explosion combinatoire des casExpertise disponible> 30 règles, précision qui stagne, cas non couverts fréquents
1. ClassiqueRapide, peu de calcul, interprétable (coefficients, arbres), robusteTraits à concevoir ; plafond sur texte/image bruts10²+ exemples annotésCourbe d’apprentissage plate sous l’exigence ; traits épuisés
2. Pré-entraîné tel quelZéro entraînement ; qualité générale élevée ; plongements universelsHors domaine ; pas de contrôle du format ; licenceInférence disponibleLinéaire sur plongements sous l’exigence
3. Prompt/few-shotItération en minutes ; pas d’infra d’entraînementPlafond, sensibilité, coût par requête, latenceBanc d’essaiPlateau après 10 itérations mesurées ; coût/latence hors SLO
4. RAG/outilsConnaissances privées, à jour, citablesRappel de la recherche ; complexitéCorpus, index, évaluationRappel > 0,9 mais qualité sous l’exigence → le modèle est la limite
5. Affinage légerFormat et style fiables, latence ↓ (prompt court), adaptateurs ; 1 GPUConnaissances nouvelles limitées (rang faible) ; sur-apprentissage10²–10⁴ exemples de qualité, banc d’oubliRang ↑ sans gain ; domaine trop éloigné
6. Affinage completCapacité maximale d’adaptationOubli, coût, infra multi-GPU, reproductibilité10⁴+ exemples, équipeVocabulaire/domaine absents de la base
7. Pré-entraînement continuDomaine profond pour 1 % du from scratchDérive des capacités générales ; données de domaine massives10⁹+ tokens, clusterTokeniseur inadapté ; modalité absente
8. From scratchContrôle total (données, licence, taille, modalité)Coût, délai, risque ; expertise rareDonnées massives, calcul, équipe, lois d’échelle— (dernier palier)

03 / Décider

Le dossier « from scratch » : les conditions à remplir, et l’estimation du coût

Les cas légitimes existent : modèles de fondation pour les séries de capteurs industriels, la chimie, la génomique, les signaux radar, un micro-modèle de 5 M de paramètres pour un microcontrôleur (L18), une langue sans base pré-entraînée, ou un acteur souverain. Dans ces cas, la partie K entière est le cahier des charges — lois d’échelle (L25), données (L36), infra (L33), évaluation (L32), MLOps (L38).

04 / Articles

Les articles à lire

ArticleContributionÀ retenir
Pan & Yang, A Survey on Transfer Learning, IEEE TKDE 2010Cadre du transfertQuand le transfert aide, quand il nuit (transfert négatif)
Howard & Ruder, Universal Language Model Fine-tuning (ULMFiT), ACL 2018 — 1801.06146Affinage progressif, pas différencié par coucheLes recettes anti-oubli avant les LLM
Aghajanyan et al., Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning, ACL 2021 — 2012.13255 ; Hu et al., LoRA, 2021 — 2106.09685Dimension intrinsèque faible ; adaptation de rang faibleThéorème 1
Dettmers et al., QLoRA, 2023 — 2305.14314LoRA sur base 4 bitsAffiner un 65B sur un GPU
Kirkpatrick et al., Overcoming catastrophic forgetting in neural networks (EWC), PNAS 2017 — 1612.00796Pénalité de FisherThéorème 2 ; mesurer l’oubli
Luo et al., An Empirical Study of Catastrophic Forgetting in LLMs During Continual Fine-tuning, 2023 — 2308.08747L’oubli croît avec la taille et l’affinageJeu général avant/après, toujours
Gururangan et al., Don’t Stop Pretraining, ACL 2020 — 2004.10964Pré-entraînement continu de domaine et de tâchePalier 7 : gains solides pour peu de calcul
Hinton, Vinyals & Dean, Distilling the Knowledge in a Neural Network, 2015 — 1503.02531Distillation par logits à températurePetit modèle guidé plutôt que from scratch aveugle
Hoffmann et al., Chinchilla, 2022 (L25)Lois d’échelleThéorème 4 : le seuil du from scratch
Biderman et al., Pythia, ICML 2023 — 2304.01373 ; Groeneveld et al., OLMo, 2024 — 2402.00838Recettes de pré-entraînement entièrement ouvertesCe qu’un from scratch exige, documenté de bout en bout
Zhou et al., LIMA, 2023 (L36)Peu d’exemples de qualité pour l’affinage d’instructionLe palier 5 avec 1 000 exemples
Bommasani et al., 2021 (L34)Modèles de fondationPourquoi l’escalade commence par « réutiliser »

TP guidé

TP — L’escalade complète sur votre tâche (8 h, étalées)

Exercices

Exercices auto-corrigés

Exercice 1 — LoRA : paramètres et approximation de rang faible

Écrivez params_lora(d, k, r), fraction_lora(d, k, r), et meilleure_approx_rang(M, r) (SVD tronquée) ; vérifiez Eckart-Young sur une matrice ΔW construite de rang effectif 4 + bruit : l’erreur relative chute jusqu’à r = 4 puis plafonne.

Correction
def params_lora(d, k, r): return r * (d + k)
def fraction_lora(d, k, r): return r * (d + k) / (d * k)
def meilleure_approx_rang(M, r):
    U, S, Vt = np.linalg.svd(M, full_matrices=False); return (U[:, :r] * S[:r]) @ Vt[:r]

Exercice 2 — La règle de montée

Écrivez palier_suivant(resultats, exigence, budget_restant) : resultats = liste ordonnée de (palier, f1, n_test, cout) déjà mesurés ; renvoie le palier courant s’il satisfait l’exigence en borne basse de l’IC (±1,96√(f1(1−f1)/n)), sinon le palier suivant si son coût estimé (dict) tient dans le budget, sinon "arrêt : exigence inatteignable dans le budget".

Correction
def palier_suivant(resultats, exigence, budget_restant):
    p, f1, n, _ = resultats[-1]; borne = f1 - 1.96 * np.sqrt(f1 * (1 - f1) / n)
    if borne >= exigence: return p
    if p + 1 in COUTS and COUTS[p + 1] <= budget_restant: return p + 1
    return "arrêt : exigence inatteignable dans le budget"

Exercices

Exercices auto-corrigés (suite)

Exercice 3 — Mesurer l’oubli et choisir le compromis

Écrivez oubli(avant, apres) (dict de scores généraux → baisse moyenne) et meilleur_compromis(strategies, poids_oubli) : strategies = {nom: (score_cible, oubli)} ; renvoie le nom qui maximise score_cible − poids_oubli × oubli. Vérifiez qu’avec un fort poids d’oubli, l’affinage complet n’est jamais choisi.

Correction
def oubli(avant, apres): return sum(avant[k] - apres[k] for k in avant) / len(avant)
def meilleur_compromis(strategies, poids_oubli): return max(strategies, key=lambda n: strategies[n][0] - poids_oubli * strategies[n][1])

Exercice 4 — Seuil du from scratch (Théorème 4)

Avec L(N, D) = E + A/Nα + B/Dβ (E = 1,69, A = 406,4, B = 410,7, α = 0,34, β = 0,28), écrivez tokens_necessaires(N, L_cible) (D minimal pour atteindre L_cible avec N paramètres, ou None si impossible) et cout_flops(N, D) = 6ND. Comparez : battre L = 2,3 avec 1B from scratch vs pré-entraînement continu de 10⁹ tokens sur 7B.

Correction
def tokens_necessaires(N, L_cible):
    reste = L_cible - E - A / N ** alpha
    if reste <= 0: return None
    return (B / reste) ** (1 / beta)
def cout_flops(N, D): return 6 * N * D

Fiche de cours · Exercices corrigés

Exercices corrigés (rédaction)

Exercice 1. Une start-up veut « son propre LLM » pour un assistant juridique en français. Rédiger l’avis d’un ingénieur.
Correction. Le besoin réel est un assistant qui répond juste, avec sources, en français juridique. Escalade : (2) tester 3 modèles ouverts/API en zero-shot sur 300 questions annotées par des juristes (une semaine) ; (4) RAG sur le corpus juridique (codes, jurisprudence, notes internes) — c’est presque toujours le palier décisif ici : l’information est vaste, à jour, citable ; (5) LoRA sur 2 000 paires (question, réponse citée) pour le format, le ton et les refus ; (7) pré-entraînement continu sur 10⁹ tokens juridiques français si le vocabulaire manque (mesuré par la perplexité et le banc) ; (8) from scratch : non — des bases françaises existent, le corpus juridique public est de l’ordre de 10⁹–10¹⁰ tokens (insuffisant pour battre une base de 7B, Théorème 4), le coût (10⁶–10⁷ €) et le délai (12 mois) sont incompatibles, et la performance viendra du RAG et de l’évaluation, pas des poids. Livrer un ADR avec ces mesures ; « son propre LLM » devient « son propre adaptateur LoRA et son propre index », ce qui est défendable et différenciant.
Exercice 2. Après LoRA (r = 64) sur 5 000 exemples, la qualité cible plafonne à 0,78 pour une exigence de 0,85, et le rang n’y change rien. Que conclure et que faire ?
Correction. Le plateau indépendant du rang indique que ΔW nécessaire n’est pas de rang faible ou que la limite n’est pas dans les poids : vérifier d’abord (a) le bruit d’étiquettes du test (Théorème 4 de L36 : un plafond de 0,78 peut être un plafond d’annotation), (b) l’analyse d’erreurs (les échecs sont-ils des connaissances absentes → RAG/pré-entraînement continu, ou des ambiguïtés → consigne), (c) la courbe d’apprentissage (les 5 000 exemples sont-ils saturés ?). Si la limite est bien le modèle : affinage complet avec rehearsal et mesure d’oubli (palier 6), ou base plus grande avec LoRA (souvent plus efficace que le palier 6 sur une petite base), ou pré-entraînement continu si le domaine est étranger. Chaque option se chiffre (coût, délai) avant d’être lancée ; l’exigence peut aussi être renégociée si 0,85 n’a pas de justification métier mesurée.
Exercice 3. Dans quels cas un modèle de 3 M de paramètres entraîné from scratch est-il le bon choix, et comment procéder ?
Correction. Cas : détection d’anomalies sur des séries de capteurs à 1 kHz dans un microcontrôleur (L18) avec 100 Ko de mémoire, sans réseau ; reconnaissance de 20 commandes vocales embarquée ; classification de gestes IMU. Aucun modèle pré-entraîné n’existe pour cette modalité à cette taille, et la distillation d’un grand modèle est possible mais pas nécessaire. Procédure : (1) données réelles du capteur (L36 : sessions, séparation par appareil), augmentation (bruit, décalages) ; (2) architecture à biais adapté (TCN causal, petit CNN 1D, L31), taille dimensionnée par la mémoire et le WCET ; (3) entraînement sur PC (minutes), validation par groupe ; (4) quantification int8, export (TFLite Micro, CMSIS-NN), test sur cible (latence, mémoire) ; (5) évaluation par condition (bruit, températures, appareils) ; (6) monitoring : télémétrie agrégée et mise à jour OTA signée (L35). Ici le from scratch est le palier 1 en pratique — la règle « ne pas partir de zéro » s’applique aux modèles de fondation, pas aux petits modèles spécialisés.

Vérification

Le palier « plongements gelés + régression logistique » donne 0,83 [0,80 ; 0,86] pour une exigence de 0,85. Prochaine étape ?

Deux questions supplémentaires

1. Pourquoi LoRA marche-t-il ? La mise à jour d’affinage est de rang faible effectif ; une SVD tronquée la capture (Théorème 1).

2. Que mesurer obligatoirement après un affinage ? Un jeu général avant/après : l’oubli catastrophique (Théorème 2).

Référence

Les mots à retenir

MotDéfinition
EscaladeRègles → classique → pré-entraîné → prompt → RAG → PEFT → complet → continu → from scratch.
Règle de montéeMonter d’un palier ssi la borne basse de l’IC est sous l’exigence et le coût tient.
TransfertRéutiliser les représentations ; linéaire sur plongements = borne inférieure.
LoRA / PEFTAdaptation de rang faible ; 1 % des poids ; adaptateurs échangeables.
Oubli catastrophiquePerte des capacités antérieures ; EWC, rehearsal, petit pas ; à mesurer.
Pré-entraînement continuDomaine profond pour 1 % du from scratch.
From scratchJustifié par modalité, taille embarquée, souveraineté ; jamais par la seule performance.
DistillationPetit modèle guidé par un grand.

Suite

Vous savez quoi construire. Reste comment le construire ensemble, proprement, durablement.

Chapitre suivant : les bonnes pratiques — CRISP-ML(Q), MLOps, AIOps — le cycle de vie, l’assurance qualité, l’automatisation, et les niveaux de maturité.

← L36SommaireL38 : CRISP-ML(Q), MLOps, AIOps →