Aller au contenu principal

Chapitre 1 : Qu'est-ce que QLoRA ?

Adaptation Quantifiée de Bas Rang​

QLoRA combine la quantification en 4 bits avec LoRA pour réduire considérablement les besoins en mémoire tout en maintenant la qualité.


L'Innovation QLoRA​

Comparaison de la Mémoire​

ModèleFT CompletLoRAQLoRA
7B~80GB~14GB~6GB
13B~160GB~26GB~10GB
70B~600GB~140GB~48GB

Comment Fonctionne QLoRA​

  1. Charger le modèle de base en 4 bits (format NF4)
  2. Ajouter des adaptateurs LoRA en haute précision (bf16/fp16)
  3. Entraîner uniquement les paramètres LoRA
  4. Les gradients circulent à travers les poids déquantifiés
from transformers import BitsAndBytesConfig, AutoModelForCausalLM
from peft import LoraConfig, get_peft_model

# Configuration 4 bits
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)

# Charger le modèle quantifié
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
quantization_config=bnb_config,
device_map="auto",
)

# Ajouter LoRA par-dessus
lora_config = LoraConfig(r=16, lora_alpha=32, ...)
model = get_peft_model(model, lora_config)

Composants Clés​

NF4 (4-bit NormalFloat)​

Format de quantification conçu pour les poids normalement distribués :

  • Nombre égal de valeurs dans chaque bin
  • Meilleur pour les poids de réseau neuronal que la quantification uniforme

Double Quantification​

Quantifie les constantes de quantification :

  • Économise environ ~0.4 bits supplémentaires par paramètre
  • ~11% d'économies de mémoire supplémentaires

Optimiseurs Paginés​

Gère les pics de mémoire pendant l'entraînement :

  • Page les états de l'optimiseur vers le CPU lorsque nécessaire
  • Prévient les erreurs OOM

Compromis Qualité vs Mémoire​

MéthodeMémoireQualité (relative)
FT Complet100%100%
LoRA18%99%
QLoRA8%98%

QLoRA atteint ~98% de la qualité de l'affinage complet avec ~8% de la mémoire.


Quand Utiliser QLoRA​

✅ Utilisez QLoRA lorsque :

  • Le GPU a < 24GB de VRAM
  • Entraînement de modèles 7B+ sur du matériel consommateur
  • Le coût est une préoccupation majeure
  • Expérimenter et itérer rapidement

❌ Considérez LoRA/FT Complet lorsque :

  • La qualité maximale est critique
  • Vous avez une abondance de mémoire GPU
  • Déploiement de modèle fusionné (surcharge de fusion)

Points Clés à Retenir​

✅ QLoRA = quantification en 4 bits + LoRA ✅ Réduit la mémoire d'environ 60% par rapport à LoRA ✅ Perte de qualité minimale (~1-2%) ✅ Permet l'entraînement de modèles 70B sur 48GB ✅ Utilise le format NF4 et la double quantification


Continuez vers le Chapitre 2 : Quantification en 4 bits →