Fine-tuning, LoRA et QLoRA

Ce que j’ai compris avant de lancer ma première expérience de fine-tuning avec Kaggle et Hugging Face.

Kaggle et Hugging Face, deja entendu parlé ? qui fait quoi ?

Au début, je pensais que Hugging Face servait seulement à stocker les modèles, un peu comme GitHub stocke du code. Cette comparaison est utile, mais elle est incomplète.

Kaggle est plutôt mon atelier de calcul. Je peux y ouvrir un notebook, activer un GPU lorsqu’il est disponible, installer les bibliothèques Python, télécharger un modèle et lancer l’entraînement. L’intégration entre les deux plateformes permet d’ouvrir certains modèles Hugging Face directement dans un notebook Kaggle

Que signifie fine-tuner un modèle alors ?

Un modèle de langage a déjà été pré-entraîné sur une grande quantité de textes. Le fine-tuning consiste à continuer son entraînement avec un dataset plus spécialisé.

Dans mon cas, ce dataset pourrait contenir des mots mooré, des traductions françaises, des phrases, des explications grammaticales et, plus tard, des dialogues pédagogiques.

Il existe deux grandes façons de procéder. Le fine-tuning complet modifie tous les paramètres du modèle. Il demande beaucoup de mémoire et produit une nouvelle copie complète du modèle. Cette méthode est intéressante dans certains contextes, mais elle est trop lourde pour ma première expérience sur un GPU gratuit.

L’autre approche est le fine-tuning léger, souvent appelé PEFT, pour Parameter-Efficient Fine-Tuning. Le modèle de base reste en grande partie gelé et seuls de petits paramètres supplémentaires sont entraînés.

PEFT, LoRA et QLoRA

PEFT est une famille de méthodes de fine-tuning léger. LoRA est l’une des méthodes les plus connues de cette famille. Il existe également d’autres approches, comme AdaLoRA, IA3, Prefix Tuning ou Prompt Tuning.

Avec LoRA (Low-Rank Adaptation), je ne modifie pas directement tous les poids du modèle. J’ajoute de petites matrices entraînables, appelées adaptateur. Le modèle original reste donc presque inchangé et l’adaptateur contient la spécialisation apprise.

On peut représenter le résultat ainsi :

Modèle de base + adaptateur LoRA = modèle spécialisé

QLoRA (Quantized LoRA) combine deux idées. Le modèle de base est chargé en quantification 4 bits pour réduire la mémoire utilisée, puis un adaptateur LoRA est entraîné par-dessus. La documentation PEFT décrit cette méthode comme l’association d’un modèle quantifié et d’un entraînement LoRA

Qwen/Qwen3-1.7B-Base
+ chargement en 4 bits
+ adaptateur LoRA entraînable
= fine-tuning léger avec QLoRA

Le mot « adaptateur » désigne donc le petit composant ajouté au modèle. QLoRA n’est pas un modèle différent : c’est une manière économique d’entraîner un adaptateur LoRA.

Le modèle que j’ai choisi pour commencer

Qwen/Qwen3-1.7B-Base

La version Base me paraît adaptée pour commencer à expérimenter avec du vocabulaire, des textes et des structures linguistiques. Sa fiche officielle indique qu’il s’agit d’un modèle causal de 1,7 milliard de paramètres, sous licence Apache-2.0, entraîné sur un corpus couvrant de nombreuses langues

Retenir

Fine-tuning       = adapter un modèle avec des données spécialisées
PEFT              = famille de méthodes de fine-tuning léger
LoRA              = méthode PEFT qui entraîne un petit adaptateur
QLoRA             = modèle quantifié en 4 bits + adaptateur LoRA
Kaggle            = environnement pour coder et entraîner avec un GPU
Hugging Face      = hub pour modèles, datasets, adaptateurs et versions
Dataset           = données structurées et nettoyées pour l’entraînement
Modèle Base       = meilleur point de départ pour expérimenter la langue
Modèle Instruct   = meilleur pour suivre les consignes et dialoguer
SigleSignificationDéfinition courte
IAIntelligence artificielleSystèmes capables d’effectuer des tâches nécessitant normalement l’intelligence humaine.
LLMLarge Language ModelGrand modèle de langage capable de comprendre et générer du texte.
NLP/TALNatural Language Processing / traitement automatique du langageDomaine de l’IA consacré à la compréhension et à la génération des langues humaines.
GPUGraphics Processing UnitProcesseur particulièrement adapté aux calculs parallèles utilisés pour entraîner les modèles.
APIApplication Programming InterfaceInterface permettant à des logiciels de communiquer entre eux.
JSONLJSON LinesFormat où chaque ligne contient un objet JSON représentant un exemple du dataset.
SFTSupervised Fine-TuningFine-tuning réalisé avec des exemples contenant une entrée et une réponse attendue.
PEFTParameter-Efficient Fine-TuningMéthodes de fine-tuning qui entraînent seulement une petite partie des paramètres.
LoRALow-Rank AdaptationMéthode PEFT qui ajoute de petits adaptateurs entraînables au modèle.
QLoRAQuantized LoRALoRA appliqué à un modèle chargé en faible précision, généralement 4 bits, pour économiser la mémoire.
OCROptical Character RecognitionTechnologie qui convertit une image ou un PDF scanné en texte.
TTSText-to-SpeechTechnologie qui transforme un texte en parole audio.
RAGRetrieval-Augmented GenerationMéthode qui permet au modèle de rechercher des informations dans une base avant de répondre.
EmbeddingReprésentation vectorielleTransformation d’un texte en nombres pour comparer son sens et effectuer des recherches sémantiques.
CheckpointPoint de sauvegardeCopie intermédiaire du modèle ou de l’adaptateur pendant l’entraînement.
TokenizerTokeniseurOutil qui découpe le texte en unités compréhensibles par le modèle.