Guide

Statut éditorial : En attente de relecture

LoRA et QLoRA : fine-tuner un LLM avec moins de mémoire

Comprendre les adaptateurs LoRA, la quantification QLoRA et les compromis de mémoire, qualité et déploiement.

Classification du contenu

Types

  • Modèles et API
Niveau
Avancé
Publié le
24 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
24 novembre 2026

LoRA évite de mettre à jour tous les poids d’un modèle. La base reste gelée et de petites matrices de faible rang apprennent une correction. QLoRA charge en plus la base sous une forme quantifiée pendant l’entraînement. Ces méthodes réduisent fortement la mémoire, sans supprimer le besoin de bonnes données et d’une évaluation rigoureuse.

Comment fonctionne LoRA

Les adaptateurs sont insérés dans certains modules, souvent les projections linéaires de l’attention. Le rang contrôle leur capacité et le nombre de paramètres entraînables ; alpha ajuste l’échelle ; le dropout peut régulariser. PEFT permet de cibler des modules précis. Un mauvais ciblage peut produire peu d’apprentissage ou des artefacts.

Ce que QLoRA ajoute

La base quantifiée occupe moins de mémoire, tandis que les adaptateurs sont entraînés avec une précision adaptée. Une configuration de style QLoRA cible souvent toutes les couches linéaires. La quantification rend l’entraînement accessible sur moins de GPU, mais ajoute contraintes de compatibilité, précision numérique et parfois temps de calcul.

Choisir et mesurer

Commencez avec une base assez petite pour la tâche, un rang modeste et une expérience courte. Comparez à la base non adaptée sur un test séparé. Suivez perte, qualité métier, mémoire maximale, temps, régressions de sécurité et oubli de capacités générales. Une faible perte d’entraînement ne prouve pas une meilleure application.

Déployer les adaptateurs

Vous pouvez charger base et adaptateur séparément ou fusionner certains adaptateurs pour l’inférence. Versionnez ensemble base, révision, tokenizer, configuration PEFT et dataset. Plusieurs adaptateurs sur une même base économisent du stockage, mais exigent un routage et un cycle de validation clairs.

FAQ

QLoRA signifie-t-il modèle final quantifié ?

Pas nécessairement. Il décrit surtout l’entraînement d’adaptateurs sur une base quantifiée ; le format de déploiement reste un choix.

LoRA égale-t-il un fine-tuning complet ?

Non. Il apprend une correction contrainte, parfois suffisante et parfois moins adaptée.

Peut-on combiner plusieurs adaptateurs ?

Oui dans certains moteurs, mais leurs interactions doivent être testées.

Configuration QLoRA avec PEFT

~~~python import torch from transformers import AutoModelForCausalLM, BitsAndBytesConfig from peft import LoraConfig, prepare_model_for_kbit_training

quant = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_use_double_quant=True, bnb_4bit_compute_dtype=torch.bfloat16, ) model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=quant, device_map="auto", ) model = prepare_model_for_kbit_training(model)

peft_config = LoraConfig( r=16, lora_alpha=32, lora_dropout=0.05, target_modules="all-linear", task_type="CAUSAL_LM", ) ~~~

Mesurez la mémoire réellement disponible et gardez une marge pour activations et optimizer. Comparez l’adapter à la baseline sur un jeu de test jamais vu. Sauvegardez modèle de base, révision, tokenizer, template de chat et configuration PEFT : l’adapter seul ne suffit pas pour reproduire le résultat.

Sources utilisées