Garden of KnowledgeApplied Sciences › Computer Science › Software › Data Science › Machine Learning › Apprentissage
February 22, 2026

Fine Tuning

Le fine-tuning (ajustement fin) consiste à prendre un modèle pré-entraîné sur une grande quantité de données et à l’adapter à une tâche spécifique en continuant l’entraînement sur un dataset plus petit et ciblé.

Pourquoi faire du fine-tuning ?§

Entraîner un modèle de deep learning depuis zéro nécessite :

Le fine-tuning permet de réutiliser les connaissances déjà acquises par un modèle existant et de les adapter à moindre coût.

graph LR
    subgraph "Entraînement classique"
        A1["Données massives<br/>(millions)"] --> B1["Modèle aléatoire"] --> C1["Entraînement long<br/>(jours/semaines)"] --> D1["Modèle final"]
    end

    subgraph "Fine-tuning"
        A2["Vos données<br/>(centaines/milliers)"] --> B2["Modèle pré-entraîné<br/>(déjà intelligent)"] --> C2["Entraînement court<br/>(heures)"] --> D2["Modèle adapté"]
    end

    style D1 fill:#4CAF50,color:#fff
    style D2 fill:#4CAF50,color:#fff
    style B2 fill:#2196F3,color:#fff

Transfer Learning vs Fine-Tuning§

Ces deux termes sont liés mais distincts :

Transfer LearningFine-Tuning
PrincipeRéutiliser les features d’un modèle pré-entraînéSous-catégorie du transfer learning
Couches geléesToutes les couches du backbone sont geléesOn dégèle certaines couches pour les ré-entraîner
Ce qu’on entraîneUniquement les nouvelles couches ajoutéesCouches existantes + nouvelles couches
Données requisesTrès peuUn peu plus
Quand l’utiliserTâche très similaire à celle du pré-entraînementTâche différente ou données spécifiques
graph TB
    subgraph "Feature Extraction (Transfer Learning)"
        direction LR
        FE1["Couches convolutives<br/>🔒 GELÉES"] --> FE2["Nouvelles couches<br/>🔓 ENTRAÎNÉES"]
    end

    subgraph "Fine-Tuning"
        direction LR
        FT1["Premières couches<br/>🔒 GELÉES"] --> FT2["Dernières couches<br/>🔓 DÉGELÉES"] --> FT3["Nouvelles couches<br/>🔓 ENTRAÎNÉES"]
    end

    style FE1 fill:#9E9E9E,color:#fff
    style FE2 fill:#4CAF50,color:#fff
    style FT1 fill:#9E9E9E,color:#fff
    style FT2 fill:#FF9800,color:#fff
    style FT3 fill:#4CAF50,color:#fff

Stratégies de fine-tuning§

1. Fine-tuning complet (Full Fine-Tuning)§

2. Fine-tuning partiel (Gradual Unfreezing)§

3. Discriminative Learning Rates§

Fine-tuning des LLM§

Le fine-tuning des grands modèles de langage (LLM) pose des défis spécifiques en raison de leur taille (des milliards de paramètres).

Le problème§

ModèleParamètresVRAM requise (FP16)
LLaMA 7B7 milliards~14 Go
LLaMA 13B13 milliards~26 Go
LLaMA 70B70 milliards~140 Go

Un fine-tuning complet de ces modèles est hors de portée pour la plupart des praticiens.

Solutions : Parameter-Efficient Fine-Tuning (PEFT)§

Les méthodes PEFT ne modifient qu’une petite fraction des paramètres, réduisant drastiquement les besoins en mémoire et en calcul.

graph TB
    PEFT["PEFT<br/>Parameter-Efficient Fine-Tuning"]
    PEFT --> LORA["LoRA"]
    PEFT --> QLORA["QLoRA"]
    PEFT --> PREFIX["Prefix Tuning"]
    PEFT --> PROMPT["Prompt Tuning"]
    PEFT --> ADAPTER["Adapters"]

    style PEFT fill:#673AB7,color:#fff
    style LORA fill:#2196F3,color:#fff
    style QLORA fill:#FF5722,color:#fff

LoRA (Low-Rank Adaptation)§

Idée clé : au lieu de modifier les poids originaux $W$, on ajoute une modification de rang faible :

$$W’ = W + \Delta W = W + BA$$

Avantages :

QLoRA (Quantized LoRA)§

Combine la quantification du modèle de base avec LoRA :

  1. Le modèle de base est quantifié en 4-bit (NormalFloat4)
  2. Les adaptateurs LoRA restent en 16-bit
  3. Rétro-propagation à travers le modèle quantifié

Résultat : fine-tuner un modèle de 65B paramètres sur un seul GPU de 48 Go.

Prefix Tuning§

Prompt Tuning§

Bonnes pratiques§

Préparation des données§

Hyperparamètres recommandés§

ParamètreValeur typiqueNotes
Learning rate1e-5 à 5e-5Plus faible que l’entraînement from scratch
Epochs2 à 5Surveiller l’overfitting
Batch sizeLe plus grand possibleLimité par la VRAM
Warmup5-10% des stepsMontée progressive du learning rate
Weight decay0.01 à 0.1Régularisation

Pièges à éviter§

Quand choisir quelle méthode ?§

graph TD
    START["Quel type de fine-tuning ?"] --> Q1{"Taille du modèle ?"}
    Q1 --> |"< 1B params"| FULL["Fine-tuning complet"]
    Q1 --> |"> 1B params"| Q2{"Budget GPU ?"}
    Q2 --> |"Multi-GPU / Cloud"| LORA2["LoRA"]
    Q2 --> |"GPU unique"| QLORA2["QLoRA"]

    Q1 --> |"Très similaire à<br/>la tâche originale"| FEAT["Feature Extraction<br/>(geler tout)"]

    style START fill:#673AB7,color:#fff
    style FULL fill:#4CAF50,color:#fff
    style LORA2 fill:#2196F3,color:#fff
    style QLORA2 fill:#FF5722,color:#fff
    style FEAT fill:#9E9E9E,color:#fff

Ressources§

—The Gardener