Tutoriel

Statut éditorial : En attente de relecture

Fine-tuner Llama avec QLoRA sur un GPU unique

Préparer un dataset d’instructions, entraîner des adaptateurs QLoRA et évaluer le modèle sans modifier tous les poids.

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

QLoRA charge le modèle de base en 4 bits et entraîne de petits adaptateurs LoRA. Cette méthode réduit la mémoire, mais ne dispense ni d’un dataset propre ni d’une évaluation face au modèle de base.

Prérequis

Utilisez un modèle dont la licence autorise votre usage, un GPU CUDA et une version de PyTorch compatible.

~~~bash pip install -U transformers datasets peft trl accelerate bitsandbytes ~~~

Préparer les exemples

Chaque ligne doit contenir une conversation cohérente avec le format de chat du modèle :

~~~json {"messages":[{"role":"user","content":"Classe ce ticket : paiement refusé"},{"role":"assistant","content":"billing"}]} ~~~

Séparez train et test par client ou document source pour éviter les fuites. Supprimez données personnelles, doublons et exemples contradictoires.

Charger en 4 bits

~~~python import torch from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

model_id = 'votre-modele-llama-autorise' quant = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type='nf4', bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True, )

tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=quant, device_map='auto', ) ~~~

Configurer LoRA

~~~python from peft import LoraConfig

lora = LoraConfig( r=16, lora_alpha=32, lora_dropout=0.05, target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj'], task_type='CAUSAL_LM', ) ~~~

Les noms de modules varient selon l’architecture. Inspectez le modèle et utilisez la documentation correspondant à sa version.

Entraîner

Avec SFTTrainer de TRL, fournissez modèle, dataset formaté, configuration PEFT et arguments d’entraînement. Commencez par peu de pas, petit batch avec accumulation, séquence courte et checkpoint fréquent. Journalisez loss, débit, mémoire et version exacte des données.

Évaluer avant de fusionner

Comparez base et adaptateur sur le jeu de test : exactitude métier, format, refus, régressions générales et latence. Une loss plus basse ne prouve pas une meilleure application. Faites aussi une revue humaine en aveugle.

Sauvegardez d’abord les adaptateurs, beaucoup plus petits que le modèle complet. Ne fusionnez les poids que si le format de déploiement l’exige.

Production

Conservez modèle de base, commit, tokenizer, template de chat, configuration LoRA, seed et dataset. Analysez les licences de tous les jeux de données. Ajoutez une model card décrivant limites et évaluations.

FAQ

QLoRA ajoute-t-il des connaissances fiables ?

Il adapte surtout le comportement et les régularités des données. Pour des connaissances changeantes et sourcées, préférez souvent un RAG.

Pourquoi le modèle répète-t-il les réponses ?

Vérifiez format de chat, token de fin, surapprentissage et répétition excessive dans le dataset.

Sources utilisées